Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Software Engineering Lecture 2: The Software Process.

Similar presentations


Presentation on theme: "Advanced Software Engineering Lecture 2: The Software Process."— Presentation transcript:

1 Advanced Software Engineering Lecture 2: The Software Process

2 Today’s Topics l The role of process in SE l Typical process elements l Evolution of processes (CMM) l Specific life-cycle models l Associated Reading: Chapter 4 in SEPA 5/e

3 Fundamental Questions l What is the problem to be solved? l What are the characteristics of a possible solution? l How will the solution be designed? l How will the solution be built? l How will we test the design and implementation? l How will we maintain over time?

4 3 Conceptual Phases l Definition What is to be constructed? l Development How shall we construct it? l Support How will we maintain it over time?

5 Who are the Players? l Roles Client: person(s) requesting the SW Developer: person(s) building the SW User: person(s) using the SW l User and client may be different! l Internal SW development vs. contract SW development

6 Typical Activities (Phases) l Requirements Elicitation (Phase) l Specification Phase l Design Phase l Implementation Phase l Integration Phase l Maintenance Phase l Retirement Phase

7 Requirements Elicitation (Phase) l What’s the problem? l What are the constraints? Cost, deadlines, performance, platform, … l Elicitation of requirements l Successive refinement Technical feasibility Financial justification

8 Requirements [2] l Challenges: “I know this is what I asked for, but it’s not what I needed” Software is complex The customer doesn’t understand the problem well l Possible Solution: rapid prototyping

9 Specification Phase l Specification Document Explicit description of functionality Explicit list of constraints List of inputs and outputs l Specification is a Contract Includes acceptance criteria Should be written as precisely as possible!

10 Specification Phase [2] l Challenges Ambiguous: a specification has more than one interpretation Incomplete: an important specification is omitted Contradictory: two statements about the same situation which don’t agree l Possible Solution: formal specification review

11 Design Phase l Specification=“what” to build l Design=“how” to build it l Data flow l Modular decomposition l Algorithms and data structures l Two components: Architectural Design (global level) Detailed Design (module level)

12 Design Phase [2] l Challenges: Generality vs. Complexity Planning for future enhancements Design for reusability, maintainability l Approach: Be explicit about your goals Conduct formal design reviews

13 Implementation Phase l Coding up the data structures, algorithms, and modules l Commenting the code l Separate written documentation l Testing document, test cases l Unit (module) Testing l Evaluation: formal code walk-throughs

14 Integration Phase l Combine all the modules l Realistic operational tests l Methods Bottom-up integration Top-down integration l Challenges Both methods have drawbacks Best to integrate while implementing

15 Integration Phase [2] l Product Testing Developer vs. SQA group Installation testing Documentation testing Performance testing Robustness testing l Acceptance Testing Client tests specified functionality

16 Maintenance Phase l Activities Correction Adaptation Enhancement Prevention l Integration Regression testing

17 Retirement Phase l Good software is maintained l Sometimes software is rewritten from scratch Software is now unmaintainable because A drastic change in design has occurred The product must be implemented on a totally new hardware/operating system Documentation is missing or inaccurate Hardware is to be changed—it may be cheaper to rewrite the software from scratch than to modify it l True retirement is a rare event

18 Process-Specific Difficulties l Does the product meets the user’s real needs? l Is the specification document free of ambiguities, contradictions, and omissions?

19 Umbrella Activities l Project tracking, formal reviews l Formal technical reviews l Quality assurance l Configuration management l Documentation preparation and production l Reusability management l Measurement / testing l Risk management

20 Common process framework l Tasks l Milestones, deliverables l SQA points

21 Process Evolution l How can we measure the effectiveness of our SE processes? l Reflective practice involves a cycle of measurement, analysis, and adjustment (“learning from experience”) l Capability Maturity Model (CMM)

22 Improving the Software Process l U.S. Department of Defense initiative l Software Engineering Institute (SEI) l The fundamental problem with software The software process is badly managed

23 Improving the Software Process (contd) l Software process improvement initiatives Capability maturity model (CMM) ISO 9000-series ISO/IEC 15504

24 Capability Maturity Model l Not a life-cycle model l A set of strategies for improving the software process SW–CMM for software P–CMM for human resources (“people”) SE–CMM for systems engineering IPD–CMM for integrated product development SA–for software acquisition l These strategies are being unified into CMMI (capability maturity model integration)

25 SW–CMM l A strategy for improving the software process l Put forward in 1986 by the SEI l Fundamental ideas: Improving the software process leads to Improved software quality Delivery on time, within budget Improved management leads to Improved techniques l Five levels of “maturity” are defined l Organization advances stepwise from level to level

26 Level 1. Initial Level l Ad hoc approach Entire process is unpredictable Management consists of responses to crises l Most organizations world-wide are at level 1

27 Level 2. Repeatable Level l Basic software management Management decisions should be made on the basis of previous experience with similar products Measurements (“metrics”) are made These can be used for making cost and duration predictions in the next project Problems are identified, immediate corrective action is taken

28 Level 3. Defined Level l The software process is fully documented Managerial and technical aspects are clearly defined Continual efforts are made to improve quality, productivity Reviews are performed to improve software quality CASE tools are applicable now (and not at levels 1 or 2)

29 Level 4. Managed Level l Quality and productivity goals are set for each project Quality, productivity are continually monitored Statistical quality controls are in place

30 Level 5. Optimizing Level l Continuous process improvement Statistical quality and process controls Feedback of knowledge from each project to the next

31 Summary

32 Key Process Areas l There are key process areas (KPAs) for each level l Level 2 KPAs include: Requirements management Project planning Project tracking Configuration management Quality assurance l Compare Level 2: Detection and correction of faults Level 5: Prevention of faults

33 Experience l It takes: 3 to 5 years to get from level 1 to level 2 1.5 to 3 years from level 2 to level 3 SEI questionnaires highlight shortcomings, suggest ways to improve the process l Original idea: Defense contracts would be awarded only to capable firms

34 Experience (contd) l Profitability Hughes Aircraft (Fullerton, CA) spent $500K (1987–90) Savings: $2M per year, moving from level 2 to level 3 Raytheon moved from level 1 in 1988 to level 3 in 1993 Productivity doubled Return of $7.70 per dollar invested in process improvement

35 Other SPI Initiatives l Other software process improvement (SPI) initiatives: ISO 9000-series ISO/IEC 15504

36 ISO 9000 l Set of five standards for industrial activities ISO 9001 for quality systems ISO 9000-3, guidelines to apply ISO 9001 to software There is an overlap with CMM, but they are not identical Not process improvement Stress on documenting the process Emphasis on measurement and metrics ISO 9000 is required to do business with the E.U. Also by many U.S. businesses, for example, GE More and more U.S. businesses are ISO 9000 certified

37 ISO/IEC 15504 l Original name: Software Process Improvement Capability dEtermination (SPICE) International process improvement initiative Started by British Ministry of Defence (MOD) Includes process improvement, software procurement Extends and improves CMM, ISO 9000 Framework, not a method CMM, ISO 9000 conform to this framework Now referred to as ISO/IEC 15504 Or just 15504 for short

38 Process Improvement Data l SEI report on 13 organizations in the original study l They used a variety of process improvement techniques, not just SW–CMM

39 Process Improvement Data (contd) l Results of 34 Motorola projects

40 Software Process Models l Strategies encompassing process, methods, tools and generic steps l Choice based on nature of the application l Cycle: from status quo, to new problem definition, to new technical development, to solution integration (Figure 2.3a, SEPA 5/e)

41 The Basic Process Loop [from SEPA 5/e]

42 l Steps: System engineering Requirements analysis Design Code generation Testing Maintenance Linear Sequential Model

43 [From SEPA 5/e]

44 Linear Sequential Model l Challenges: Real projects rarely follow sequential flow (changes cause confusion) Difficult for customer to state requirements explicitly Customer must have patience Developers sometimes delayed unnecessarily (‘blocking states’)

45 Prototyping Model l Steps: Listen to customer Build prototype Customer “test drives” prototype l Challenges: “Throw-away” phenomenon Demos can set unrealistic expectations Compromises that solidify

46 Prototyping Model [From SEPA 5/e]

47 RAD Model l Rapid Application Development l Linear sequential, short cycle (60-90 days) l Steps: Business modeling Data modeling Process modeling Application generation Testing and turnover

48 Rapid Application Development (RAD) [From SEPA 5/e]

49 RAD Model l Challenges: For large projects, sufficient resources are needed for rapid cycle Strong commitment from developers and customers Presupposes modular solution Reusability sometimes implies loss of performance

50 The Incremental Model l Linear sequential, with iterative prototyping l “Core product” vs. incremental enhancements l Each increment operational l Useful when human/machine resources are limited

51 Incremental Model [From SEPA 5/e]

52 The Spiral Model l Iterative prototyping, with framework activities l For example: First circuit: specification Second circuit: prototype Third circuit: product release l Includes development and maintenance

53 Spiral Model [From SEPA 5/e]

54 The Spiral Model (2) l Challenges: Hard to show controllability (size and timing of each circuit) Risk assessment is fundamental Model fairly new (less experience)

55 WINWIN Spiral l A variation of the standard Spiral Model l Identify key “stakeholders” l Determine stakeholder win conditions l Reconcile win conditions into a set of win-win conditions for the whole project

56 WINWIN Spiral [From SEPA 5/e]

57 Component Assembly Model l Spiral Model, plus object-oriented reusability l Challenges: Reusability requires careful planning Most existing programs are not reusable More suitable for particular application domains (with significant patterns of reuse)

58 Component Assembly [From SEPA 5/e]

59 Concurrent Development l State charts for each activity l Events trigger state transitions l Useful for interorganizational development l Useful where there is a high degree of interdependence between different modules (e.g., client-server apps)

60 Concurrent Development Model [From SEPA 5/e]

61 Other Models l Formal Methods Rigorous mathematical (logical) specification of software Formal models are time-consuming Requires developer, customer skill l Fourth Generation Techniques High-level definition language E.g., UML -> Java code generation Benefits small/midsize projects most

62 Product and Process l Advances in one area trigger advances in another l “Pendulum” phenomenon l “The process should be as enjoyable as the product”

63 Questions?


Download ppt "Advanced Software Engineering Lecture 2: The Software Process."

Similar presentations


Ads by Google