Developing future-proof software starts today The QSD Qualification: Maintainability Foundation Level

Similar documents
ITIL Intermediate: Service Design. Lesson Plan. Mock Exam: Duration: Language:

Measuring Software Product Quality

Software Testing Certifications

Accredited ITIL elearning courses

From Traditional Functional Testing to Enabling Continuous Quality in Mobile App Development

Quality Management System Certification. Understanding Quality Management System (QMS) certification

EDUCORE ISO Expert Training

Quality Management System Certification. Understanding Quality Management System (QMS) certification

WebFOCUS Cloud Express. The WebFOCUS Cloud Express service is delivered as a managed G-Cloud service by Amtex Solutions Ltd.

Training and Certification. ACT Program Overview Apple Certified Trainer Program

White Paper Bridging the Essential Gap between Continuous Quality and Crowd Based Testing

BCS Specialist Certificate in Business Relationship Management Syllabus. Version 1.9 March 2015

EDUCORE ITIL FOUNDATION TRAINING

Load Testing Essentials

your IT skills A guide to BCS Qualifications

Working with us Support and benefits for authorised centres

ITIL Foundation Certification Program 3 / 3.5 Days

CIW Web Design Specialist

ITIL Service Lifecycle Design

University of Strathclyde: Information Services Directorate Operational Plan for 2014/15

Foundation Bridge in IT Service Management (ITSM) according to ISO/IEC Specification Sheet. ISO/IEC Foundation Bridge TÜV SÜD Akademie

Value Chain Formation for e-learning Outsourcing Services

Introduction to Questionmark s Assessment Management Technologies

Perfecto Mobile. All rights reserved.

Preparation Guide. IT Service Management Foundation Bridge based on ISO/IEC 20000

Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)

Business, Administration and IT Qualifications

ISSECO Syllabus Public Version v1.0

Workplace Productivity Snapshot

BCS Specialist Certificate in Service Desk & Incident Management Syllabus

Taking Your Online. APMG-International

Software Engineering Compiled By: Roshani Ghimire Page 1

Document control for sensitive company information and large complex projects.

White Paper. Bridging the essential gap between Mobile Cloud and crowd based testing. 1. Introduction. 2. Testing Lifecycle

How To Buy Nitro Security

The course is designed for teachers with any level of experience or subject knowledge.

ITIL Service Lifecycle Transition

OPTIMIZE ENTERPRISE ASSET MANAGEMENT WITH MOBILE

LONDON SCHOOL OF COMMERCE. Programme Specification for the. Cardiff Metropolitan University. BSc (Hons) in Computing

Quality Management. Objectives

Quality Management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Reducing Technical Debt Using Maintainability Index

Association for Project Management Business Management System

Code Review Best Practices. With Adam Kolawa, Ph.D.

Finance & Accounting. Professional Qualifications, Corporate Development and Short Courses

-Blue Print- The Quality Approach towards IT Service Management

and Certification What Does It Take To Get Certified? Steven Hoenig NJ Business Unit Manager

ITIL & The Service Oriented Approach. Vivek Shrivastava

NetBeans IDE Field Guide

Course: SE501 Semester: 121 Assessment: Final Exam Duration: 120 minutes Weight: 30%

Implementing Database Development Best Practices for Oracle

Course overview. CompTIA A+ Certification (Exam ) Official Study Guide (G188eng verdraft)

BCS Specialist Certificate in Change Management Syllabus

Modern practices TIE-21100/

Please Note: Temporary Graduate 485 skills assessments applicants should only apply for ANZSCO codes listed in the Skilled Occupation List above.

ITIL Service Lifecycle Operation

Simplifying Big Data Deployments in Cloud Environments with Mellanox Interconnects and QualiSystems Orchestration Solutions

Contents. 1. Technical Communication 2. Technical Communicators 3.

The Case Study highlights how a leading IT company has used SDE to identify and allocate best programmers for critical projects they manage.

Transformational Outsourcing Real-time Performance. Really happy customers. 1 Nokia Siemens Networks

INSTRUCTIONAL TECHNOLOGY

RG 7 Accreditation for Inspection Bodies Performing Non-Destructive Testing

Course: ISYS 4373 Application Development with Java Prerequisite: ISYS 3293

SPAN. White Paper. Warehouse Management through Mobile. Abstract. Warehouse Management through Mobile

Igniting young minds through computer programming

SERG. Test Code Quality and Its Relation to Issue Handling Performance

Creating a professional certification for the sustainability practitioner

PinkVERIFY 2011 IT SERVICE MANAGEMENT TOOL ASSESSMENT. Produced By : Pink Elephant Date : May 2015

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Online Testing Engine

20336B: Core Solutions of Microsoft Lync Server 2013

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

Streamlining BEA WebLogic Server Application Development. With VMware Infrastructure 3. With VMware Infrastructure 3

Education & Training Plan. Project Management for PMP and Leadership Certificate Program

Identify your future leaders with Kallidus Talent

Upping the game. Improving your software development process

JBoss Enterprise Middleware

FTP-Stream Data Sheet

We drive Aurix to success Aurix Services for Automotive & Industrial

System Requirement Specifications (SRS)

Go Cloud, Go Google. Google Apps for Education for NI Schools. making IT work for teachers and learners

ITIL Foundation for IT Service Management 2011 Edition

Mobile Application Test Automation Best Practices for Best Results. A white paper from Mobile Labs, Inc.

Getting software security Right

Approved Partner Programme. Professional, Practical, Proven.

QA DEGREE APPRENTICESHIPS. Apprenticeships

Reputation. Further excellence. business continuity. risk management. Data security

Toad for Oracle 8.6 SQL Tuning

MINDBill. Point of Sale

CMSC 435: Software Engineering Course overview. Topics covered today

Passing the PRINCE2 Foundation exam

Mobile Application Testing

IBM Global Business Services Microsoft Dynamics CRM solutions from IBM

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Transcription:

Developing future-proof software starts today The QSD Qualification: Maintainability Foundation Level Yiannis Kanellopoulos, Gijs Wijnholds 8 th of March 2016 GETTING SOFTWARE RIGHT

About SIG Getting Software Right We are an international consultancy firm with HQs in Amsterdam, and we aim at improving software. Started in 2000 as a spin-off of CWI. We operate as an independent, impartial mediator between IT customers and suppliers. We deliver insight to management on IT projects and systems. We do this based on validated facts and measurements. We actively support scientific research in the field of software engineering. Page 2 of 25

Our Analysis Lab in numbers Sole "Trusted Lab in Europe being accredited with the ISO 17025 standard 1,800 185 supported technologies 50 monitored 22,000 sourcecode- inspections snapshots per week Software Improvement Group PEOPLECERT systems / PUBLIC 227 clients >7,400,000,000 lines of code in software analysis warehouse Page 3 of 25

How do we help our clients? The SIG Capabilities Cost Estimation Functional Suitability QSD Architecture Review Performance Efficiency Security Development Process Assessment Early Effort Estimation Compatibility 25010 Maintainability Benchmarking Transferability Usability Portability Function point analysis > SIG Capabilities Reliability > SIG ISO IEC 25010 Certified Capabilities Page 4 of 25

About PEOPLECERT Global leader in assessment & certification of professional skills. ü 4,000,000+ exams delivered to date ü Web & Paper based exams in 25 languages ü Award-winning assessment technology Online Proctoring & Instant Scan and Mark ü e-certificates Speedy hard copy and e-certificate delivery ü 10,000 exam locations worldwide ü Any time, any place exams and customer service, 24/7/365 ü 150 countries every year of exam delivery peoplecert.org accreditations@peoplecert.org Page 5 of 25

About PEOPLECERT State-of-the-art, A-to-Z assessment solutions ü Certification Scheme & Test creation test testing & test validation ü Internet-Based / Computer-Based / Paper-Based Exams ü 30 types of Questions - Multiple Choice, Essay, Audio, Video etc. ü Award-winning marking solutions - Automated, Remote, Manual ü Certificate Printing and Delivery - e-certificate, hard copy certificate ü Certificate Validation - online on PEOPLECERT website ü Maintenance of Candidates Records and Database - All Data, Reports peoplecert.org accreditations@peoplecert.org Page 6 of 25

About PEOPLECERT Commitment to Quality ü Accredited by the National Hellenic Accreditation System (NHAS) as Certification Body according to: ü ISO 17024 for Certification of Persons (2006) ü ISO 17065 for Certification of Products, Processes & Services (2015) ü Certified by Lloyds Register (UK) according to: ü ISO 9001 Quality Management (2003) ü ISO 10002 Customer Satisfaction and Complaints Handling (2006) ü ISO 14001 Environmental Management (2006) ü ISO 27001 Information & Data Security (2008) ü ISO 23988 Use of IT in the delivery of assessments (2013) ü ISO 22301 Business Continuity (2015) peoplecert.org accreditations@peoplecert.org Page 7 of 25

The global challenge Global IT debt is $500 Billion and rapidly growing* The amount of change requires more developers than are available 52% of debugging effort is spent on 8% of the defects** High-risk parts of software systems consume developers time, no room left for innovation Better code is cheaper 66% of debugging time can be saved with software of high quality *Source: Andy Kyte, Measure and manage your IT debt, Gartner, Inc., August 9, 2010 (last reviewed June 19, 2013) **Source: Deloitte University Press, Tech Trends 2014 Inspiring Disruption ***Source: Dennis Bijlsma, Miguel Alexandre Ferreira, Bart Luijten, Joost Visser: Faster issue resolution with higher technical quality of software. Software Quality Journal, 2012 Page 8 of 25

The QSD approach 1) Distilled metrics-based standard A small number of guidelines that are clear, easy-to-follow, meaningful, high-impact 2) Training material for developers to use these standards effectively (Foundation) Thorough explanation, examples, exercises, immediately applicable in daily programming practice 3) Training material for teams to organize around these standards (Advanced) Tools, techniques, practices to be shared by a team to produce quality code consistently Page 9 of 25

The QSD Stack Body of Knowledge and videos Online content SIG Vanilla training material Education Exam items Examination and certification Page 10 of 25

Body of Knowledge Response of developers who reviewed our book Just finished reading the book this morning. I got a lot more out of the book than I had expected and would recommend it to others. - Vincent O Sullivan, VHI Ireland It contains many good ideas about how to write better code. I must say that my first reaction to some of the ideas is, No way! That's unnecessarily restrictive. But, I often find myself mellowing towards such ideas as I continue reading. - Roger House, Sebastopol CA These guidelines are spot on. They provide a crisp and actionable explanation of what the working programmer needs to know to deliver quality code in a consistent manner. - George Marinos, National Bank of Greece Page 11 of 25

Video Material Maintainability Foundation > Complementary material to the body of knowledge > Including many practical examples of building futureproof code > Available online at https://player.oreilly.com/videos/9781491950791 Page 12 of 25

The QSD Qualification Maintainability Foundation > Expected background: 2 years of working experience in object-oriented programming, or BSc in computer science or software engineering > Exam currently available for Java and C# > 75 questions, 2h duration > Closed book > Physical or web proctoring > Certificate of perpetual validity > To date, 170 certificates awarded since its launch early 2016 Page 13 of 25

Quality Software Development Trainer Prerequisites > Hold the Quality Software Development Certification. > At least 3 years of experience as a Software Engineer in Object Oriented programming. > Good knowledge of the Object Oriented paradigm and knowledge on how to apply it. > More than 10 hours of Training Experience. Page 14 of 25

Quality Software Development Available vanilla material > Trainer s manual > Syllabus > Lesson plans > Code snippets from open source systems > Example exam questions > Slide decks 1 Introduction slide deck 1 Code smells slide deck 8 Guideline slide decks 3 Refactoring slide decks 1 Automated testing slide deck 1 Code hygiene slide deck 1 Example exam questions slide deck 1 Next steps slide deck Page 15 of 25

Vanilla Material Samples Two versions of the slide decks 1. Slide decks in PDF, SIG style 1. Slide decks in PPTX, Vanilla style Chapter 2: Code Smells A famous example: Apple s SSL/TLS bug Background details CVE ID: CVE-2014-1266 Apple ios 6.x (< 6.1.6) Apple ios 7.x (< 7.0.6) Apple TV 6.x (< 6.0.2) Apple OS X 10.9.x (< 10.9.2) Impact: millions of devices? Chapter 2: Code Smells A famous example: Apple s SSL/TLS bug Background details CVE ID: CVE-2014-1266 Apple ios 6.x (< 6.1.6) Apple ios 7.x (< 7.0.6) Apple TV 6.x (< 6.0.2) Apple OS X 10.9.x (< 10.9.2) Impact: millions of devices? Unit: SSLVerifySignedServerKeyExchange( ) LOC: 64 McCabe: 14 Nr. of parameters: 5 Unit: SSLVerifySignedServerKeyExchange( ) LOC: 64 McCabe: 14 Nr. of parameters: 5 *Read more: https://www.imperialviolet.org/2014/02/22/applebug.html *Read more: https://www.imperialviolet.org/2014/02/22/applebug.html Software Improvement Group Page 3 of 4 Page 3 of 4 Page 16 of 25

Chapter 4: Write Simple Units of Code (Day 1, Part 3) The guideline Do: > Limit the number of branch points to 4 By: > Splitting complex units into simpler ones > Avoiding complex units Because simple units are: > Easy to test > Easy to understand > Easy to modify Positive effects on other guidelines: > Unit Size > Unit Interfacing Page 17 of 25

Chapter 4: Write Simple Units of Code (Day 1, Part 3) How you can measure it Count the cyclomatic complexity: > Every branch point (if, case, for, &&, ) is counted, and we add 1 to the total 2 branch points + 1 = cyclomatic complexity of 3 Page 18 of 25

Chapter 4: Write Simple Units of Code (Day 1, Part 3) Examples from the Jenkins CI source code (https://github.com/jenkinsci/jenkins) This unit has 3 branch points This unit has 4 branch points Page 19 of 25

Chapter 4: Write Simple Units of Code (Day 1, Part 3) An example of non-compliant code This unit has 5 branch points

Chapter 11: Extract Method (Day 2, Part 2) Applying Extract Method (1/2): Apache Tomcat on 25-05-2015* > The init() method contains 69 lines of code and has a McCabe complexity of 19 > The Extract Method has been applied to extract the configuration check to a separate method *Source of snapshot: http://tomcat.apache.org/download-80.cgi Page 21 of 25

Chapter 11: Extract Method (Day 2, Part 2) Applying Extract Method (2/2): Apache Tomcat on 07-10-2015* > After refactoring, the init() method now contains 50 lines of code and has a McCabe complexity of 15 *Source of snapshot: http://tomcat.apache.org/download-80.cgi Page 22 of 25

Chapter 16: Exam Preparation (Day 3, Part 2) Example questions 7 & 11 > Question: Which statement is true? The complexity of a unit of code is measured by A. The number of lines of code in the unit B. The number of parameters C. The number of branch points D. The number of calls to other units > Question: What is the unit complexity of this unit? A. 13 B. 15 C. 17 D. 20 * Slice.intersects() method from Apache Cassandra on Jan. 18 th 2016 Page 23 of 25

Tips & Tricks Focus of the training should be on the Maintainability Mindset : The guidelines; how to interpret them, how to apply them Refactoring techniques to turn non-compliant code into compliant code Maintainable software is a matter of discipline and practice: Show real-time refactorings, or let students do so themselves Bring your/their own source code Building maintainable software is technology-independent, training is language-specific The book and snippets are available in Java and C# Snippets in the slide decks and at https://github.com/oreillymedia/building_maintainable_software Page 24 of 25

Q & A Page 25 of 25

Contact +30 6938 119424 y.kanellopoulos@sig.eu, g.wijnholds@sig.eu @sig_eu www.peoplecert.org/en/communication/pages/contact.aspx communications@peoplecert.org @PEOPLECERT GETTING SOFTWARE RIGHT