Software Engineering & Quality Definition The Process – Making a

Sep 12, 2006 - synonymous as systems development in this context). • Use real ... IT Audit. 2. 7. 12 September 2006. CS 0404 module# 2. Method, Methodology and Process. Method ... Project. Management. Quality Assurance Program. Implementation .... Information Technology Project Management, by. Kathy Schwalbe.
376KB taille 6 téléchargements 125 vues
Software Engineering & Quality

• Appreciate the various elements which would affect quality in software engineering (SE is synonymous as systems development in this context) • Use real life examples to demonstrate some of the practical issues

The University of Hong Kong Raymond Tang

1 12 September 2006

CS 0404 module# 2

Objectives

Definition

Contents • Definition of software engineering • Software engineering and quality • The key elements and checkpoints in the Systems development life cycle (SDLC) • Systems development approaches, processes, tools and techniques

3 12 September 2006

CS 0404 module# 2

The Process – Making a Cake

• Software engineering (SE)* is the application of a systematic, disciplined, quantifiable approach to the development, operation, maintenance of software. • SE deploys statistical means so that the product deliverables can be predictable, repeatable and consistent.** • SE works from a set of desired functions….. the product is developed by phases, where quality is built in throughout these phases CS 0404 module# 2

CS 0404 module# 2

IT Audit

Processing

4 *Source: IEEE

**Source: Agile Software Development, by Alistair Cockburn 12 September 2006

The Process – Building a System

Input Input

2 12 September 2006

CS 0404 module# 2

Processing

Output

Output 5 12 September 2006

CS 0404 module# 2

6 12 September 2006

1

Method, Methodology and Process

Systems Development Life Cycle

Method – It is the step by step procedure on doing things. It is formulated in terms of the concept of architecture. For example, the method of building a stone house is different from building a log house Methodology – It is the science of methods. It deals with conceptual thinking. With the understanding of the methodology, we will discover new method of doing things Process – It is established through careful examination of the available methods, tools and the nature of the work. For example, producing a chemical substance in the lab differs greatly from producing the same chemical commercially. In the lab, the goal is to find a method to produce the chemical. To make this method appropriate for large scale industrial use, a process must be defined. This usually means changing the working method. 7 12 September 2006

CS 0404 module# 2

Systems Development Life Cycle (cont’)

Planning

Definition

Feasibility & Analysis

Test Level Assessment

User Requirements Definition

Development

System Design

System Construction

System Testing

Test Design

Test Plan Environ. Set-up

Implementation

System Implementation

User Acceptance Execution Plan Data Prep

Post-impl

System Operation and Support

Sign-off

Stability

Test Report

Defect Managem't

Unit/String Test Quality Assurance Program

SDLC Speed

8 12 September 2006

CS 0404 module# 2

Systems Development Approach Typical Approaches* are: • Waterfall • Prototyping • Spiral • Iterative

Typical SDLC Phases: • • • • • • •

Project Management

Feasibility Analysis Design (include architecture) System Construction (Coding) Testing (Quality Control) User Acceptance Implementation

As projects are different in many cases, the choice of the right system approach would help improve project success and quality 9 12 September 2006

CS 0404 module# 2

CS 0404 module# 2

SDLC – Waterfall Approach*

*Source: Metrics and Models in Software Quality Engineering, by Stephen H. Kan

10 12 September 2006

SDLC – Spiral Approach*

System leasibility Validation

Cumulative cost Prograss through steps

Software plans and requirements Validation

Evaluate alternatives, identify, resolve risks

Determine objectives, alternatives, constraints

Product design

Risk analysis

Verification

Risk analysis

Risk analysis Risk Prototype 2 analysisPrototype 1

Detailed design

Review

Verification

Commitment

Requirements plan Concept of life-cycle plan operation

Code

Prototype 3

Software requirements Software product design

Development Requirements validation plan

Unit test

Integration and test plan

Integration Product verification

Plan next phases

Operational prototype

Simulations, models, benchmarks

Design validation and verification

Detailed design

Unit Integration and test test

Code

Acceptance Implementation test

Implementation

Develop, verify next-level product

System test

CS 0404 module# 2

IT Audit

Operations and maintenance

*Source: Barry Boehm

Revalidation

11 12 September 2006

CS 0404 module# 2

*Source: Barry Boehm

12 12 September 2006

2

SDLC & Quality* User Requirements Management

Turning An Idea to Product

Software Project Management Software Outsourcing Software Quality Assurance

Post Implementation Support

CS 0404 module# 2

Change Control

Software Testing

13 12 September 2006

*Source: Software Quality Assurance Model, HKPC

Customer vs Software Engineer Customer View

Idea Formulation

Authorisation of In-depth product definition Specification

Source of Rework in the SDLC Systems Dev Time

Product Management Customer Service

Sensing the Market

14 12 September 2006

CS 0404 module# 2

Design Testing Integration Stabilisation/Implementation

Testing Time

We need to focus on the areas in the SDLC which often cause us quality problems

Rework Time

60 50

SDLC Phases

Requirement Design Coding Testing Others

40 30 20 10

Development Team View

0 15 12 September 2006

CS 0404 module# 2

Others

Rework - A Notional View

CS 0404 module# 2

16 12 September 2006

SD Techniques

Systems Engineering Effort

• Prototypes Project Overrun*

Project Completed* 9%

47%

91%

CS 0404 module# 2

IT Audit

*Source: Standish Group, May 1994

– Time-box approach with all stakeholders

• Joint requirement definition • Joint application design • Peer reviews such as inspections, reviews and walkthroughs*

53%

53% of projects overrun their budgets, by as much as 180%

– Paper vs demonstrative

• Rapid application development

Only 9% of projects are successfully completed

17 12 September 2006

CS 0404 module# 2

*Source: ‘Peer Reviews in Software’ by Karl E. Wiegers

18 12 September 2006

3

Testing

Quality Design – some examples • • • • • •

• • • • • • • • •

Modular vs tightly coupled system design Unique transaction identifier Master and slave relationship One directional transaction flow System checkpoint files Pull and push of data ….. These are also controls which IT auditors are looking for too

CS 0404 module# 2

19 12 September 2006

Unit test, string test, sub-system test – ‘white box’ Quality control (QC) function test – ‘grey box’ Acceptance and operability tests – ‘black box’ Regression test Volume test Stress test Performance test Penetration test Hacking test …….. 20 12 September 2006

CS 0404 module# 2

Project Management Quality Assurance

Fundamental to the success of a project ……. ‘Project Management Body of Knowledge’*:

• To identify root cause of each problem • To determine if there is any problem patterns or trends • Assist developers and users to focus on enhancing specific processes, tools and techniques

CS 0404 module# 2

• • • • • • • • • 21 12 September 2006

Project integration management Project scope management Project time management Project cost management Project quality management Project human resource management Project communications management Project risk management Project procurement management

CS 0404 module# 2

*Source: Project Management Institute

22 12 September 2006

Reading Material Summary

• Information Technology Project Management, by

• SE has many pieces of the action which make the final product work • To make it work well (with quality), we need to understand and deploy the right approach, process, tool and technique…. under the leadership of a good project management

• Bank of Montreal’s Development Methodology • DMR ‘P+’ Standard Documentation Templates • Software Engineering-Principles and Practice, by

Kathy Schwalbe

Hans Van Vliet, chapter 2

• Quality Software Project Management, by Robert Futrel, Donald Shafer and Linda Shafer, chapter 4

• Hong Kong Software Quality Assurance Model, www.hkpc.org/itd/sqamodel

CS 0404 module# 2

IT Audit

23 12 September 2006

CS 0404 module# 2

24 12 September 2006

4

Reading Material (cont’) • Enterprise Knowledge Management – The Data Quality Approach, by David Loshin • Agile Software Development, by Alistair Cockburn • Software Engineering, 7th Edition, by Ian Sommerville

CS 0404 module# 2

IT Audit

25 12 September 2006

5