400 likes | 790 Views
Software Development Process Models. The Waterfall Development Model. The Prototyping Approach. The Spiral Model. Iterative Development Process Model. The Object-Oriented Development Process. An eight step process (according to Branson and Herness) is divided into three phases
E N D
The Object-Oriented Development Process • An eight step process (according to Branson and Herness) is divided into three phases • The Analysis Phase • The Design Phase • The Implementation Phase
The Eight Steps of OO Development • Model the essential system • Derive candidate-essential classes • Constrain the essential model • Derive additional classes • Synthesize classes • Define interfaces • Complete the design • Implement the solution
Reviews Included in the Eight Step Process • Requirements review • External structure and design review • Class analysis and verification review • Class externals review • Code inspection
Agile Development – Extreme Programming (XP) by Beck • The Planning Game • System Metaphor • Simple Design • Pair Programming • Unit Testing and Acceptance Testing • Refactoring • Collective Code Ownership • Continuous Integration
Agile Development – Extreme Programming (XP) (Cont’d) • On-site Customer • 40-Hour Week • Small Releases • Coding Standard
Process Maturity Frameworks and Quality Standards • The SEI Process Capability Maturity Model • The SPR Assessment • The Malcolm Baldrige Assessment • ISO 9000
The SEI Process Capability Maturity Model (CMM) • CMM includes five levels of process maturity • Initial – Chaotic • Repeatable – Informal methods/procedures • Defined – Qualitative control of cost/schedule • Managed – Statistical control of quality • Optimizing – Quantitative basis for process improvement
The SEI Process Capability Maturity Model (Cont’d) • The assessment methodology depends on a questionnaire. • The pervasive use of software metrics and models is a key characteristic of level 4. • The following metrics related topics are addressed by the questionnaire: • Profiles of software size maintained for each software configuration item over time • Statistics on software design errors
The SEI Process Capability Maturity Model (Cont’d) • Topics are addressed by the questionnaire (cont’d): • Statistics on software code and test errors • Projection of design errors and comparison between projected and actual numbers • Projection of test errors and comparison between projected and actual numbers • Measurement of design review coverage • Measurement of test coverage
The SEI Process Capability Maturity Model (Cont’d) • Topics are addressed by the questionnaire (cont’d): • Tracking of design review actions to closure • Tracking of testing defects to closure • Database for process metrics data across all projects • Analysis of review data gathered during design reviews
The SEI Process Capability Maturity Model (Cont’d) • Topics are addressed by the questionnaire (cont’d): • Analysis of data already gathered to determine the likely distribution and characteristics of the errors in the remainder of the project • Analysis of errors to determine their process-related causes • Analysis of review efficiency for each project
The Capability Maturity Model Integration (CMMI) • The integration of CMMs for; • Software engineering • Systems engineering • Integrated product and process development • Acquisition
The Capability Maturity Model Integration (Cont’d) • The five CMMI levels are: • Initial – Ad hoc and chaotic • Managed – Focuses on basic project management • Defined – Focuses on process standardization • Quantitatively Managed – Focuses on quantitative management • Optimizing – Focuses on continuous process improvement
The SPR Assessment • Developed by Software Productivity Research, Inc. • SEI focuses on software organizational structure and software process. • SPR focuses on strategic corporate issues and tactical project issues that affect quality, productivity, and user satisfaction.
The SPR Assessment (Cont’d) • SPR questions regarding software quality and metrics relate to: • Quality and productivity measures • Pretest defect removal experience among programmers • Testing defect removal experience among programmers • Project quality and reliability targets • Pretest defect removal at the project level • Project testing defect removal • Postrelease defect removal
The Malcolm Baldrige Assessment • The most prestigious quality award in the United States • Evaluation criteria cover: • Leadership • Information and analysis • Strategic quality planning • Human resource utilization • Quality assurance of products and services • Quality results • Customer satisfaction
ISO 9000 • A set of standards and guidelines for a quality assurance management system • ISO 9000-3 covers software development • Twenty elements are evaluated • Management responsibility • Quality system • Contract review • Design control
ISO 9000 (Cont’d) • Twenty elements (cont’d) • Document control • Purchasing • Purchaser-supplier product • Product identification and traceability • Process control • Inspection and testing • Inspection, measuring, and test equipment • Inspection and test status
ISO 9000 (Cont’d) • Twenty elements (cont’d) • Control of nonconforming product • Corrective action • Handling, storage, packaging, and delivery • Quality records • Internal quality audits • Training • Servicing • Statistical techniques
ISO 9000 Software Metrics Requirements • Product Metrics: Measurements should be used for the following purposes: • To collect data and report metric values on a regular basis • To identify the current level of performance on each metric • To take remedial action if metric levels grow worse or exceed established target levels • To establish specific improvement goals in terns if metrics
ISO 9000 Software Metrics Requirements (Cont’d) • At a minimum, some metrics should be used that represent • Reported field failures • Defects from customer viewpoint
ISO 9000 Software Metrics Requirements (Cont’d) • Process Metrics: • Ask if in-process quality objectives are being met • Address how well development process is being carried out with check-points • And how effective the development process is at reducing the probability that faults are introduced or go undetected
Differences Between MBNQA and ISO 9000 • MBNQA is focused on quality results and customer satisfaction. • ISO 9000 is focused on a quality management system and process control – “say what you do, do what you say, and prove it”