Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Project Management Lecture 2 Software Development Models.

Similar presentations


Presentation on theme: "Software Project Management Lecture 2 Software Development Models."— Presentation transcript:

1 Software Project Management Lecture 2 Software Development Models

2 Software project management2 Overview Introduction Technical plan Software process models Selecting process model(s)

3 Software project management3 Definitions Software Process the set of activities, methods, and practices that are used in the production and evolution of software Software Process Model one specific embodiment of a software process architecture (Humphrey 1990)

4 Software project management4 Why Modelling? To provide a common understanding To locate any inconsistencies, redundancies and omissions To reflect the development goals and provide early evaluation To assist the development team to understand any special situation

5 Software project management5 Project Analysis Methodologies Object-Oriented Development (OOD) Structured System Analysis and Design Method (SSADM) Jackson Structured Programming (JSP) Technologies application-building environments knowledge-based system tools

6 Software project management6 Project Characteristics data oriented or control oriented system? general package or application specific? a particular type of system for which specific tools have been developed? safety-critical system? nature of the hardware/software environment?

7 Software project management7 Project Risks Product uncertainty Process uncertainty Resource uncertainty

8 Software project management8 Considerations for Project Approach Control systems Information systems General applications Specialized techniques Hardware environment Safety-critical systems Imprecise requirements

9 Software project management9 Technical Plan Contents Constraints Approach Implementation Implications

10 Software project management10 Technical Plan - Constraints Character of the system to be developed Risks and uncertainties of the project User requirements concerning implementation

11 Software project management11 Technical Plan - Approach Selected methodology or process model(s) Development methods Required software tools Target hardware/software environment

12 Software project management12 Technical Plan - Implementation Development environment Maintenance environment Training

13 Software project management13 Technical Plan - Implications Project products and activities effect on schedule duration and overall project effort Financial report used to produce costings

14 Software project management14 Software Process Models Waterfall Model V Model Spiral Model Prototyping Model

15 Software project management15 Software Process Models (cont’d) Phased Development Model incremental development model iterative development model Operational Specification Model Transformation Model

16 Software project management16 Waterfall Model Requirements Analysis System Design Coding Testing Maintenance

17 Software project management17 Waterfall Model (cont’d) classical one-shot approach effective control limited scope of iteration long cycle time not suitable for system of high uncertainty

18 Software project management18 V Model Requirements Analysis System Design Program Design Coding Unit and Integration Testing System Testing Maintenance User Acceptance Testing

19 Software project management19 V Model (cont’d) Additional validation process introduced Relate testing to analysis and design Loop back in case of discrepancy

20 Software project management20 Spiral Model (adapted from Boehm 1987) Plan next phases Determine objectives, alternatives and constraints Evaluate alternatives; identify and resolve risks Develop and verify next-level product Requirements plan Development plan Integration and Test plan Concept of operation Risk analysis Prototype Software requirements Requirements validation System product design Design validation Acceptance test Integration and Test Unit testing Coding Detailed design Cumulative cost Progress through steps

21 Software project management21 Spiral Model (cont’d) Evolutionary approach Iterative development combined with risk management Risk analysis results in “go, re-do, no-go” decision

22 Software project management22 Spiral Model (cont’d) Four major activities Planning Risk analysis Engineering Evaluation

23 Software project management23 Prototyping Model Goals meet (some) user requirements at an early stage reduce risk and uncertainty verify a design or implementation approach Should always answer specific questions; goals must be identified

24 Software project management24 Classification of Prototype Throw-away After users agree the requirements of the system, the prototype will be discarded. Evolutionary Modifications are based on the existing prototype. Incremental Functions will be arranged and built accordingly.

25 Software project management25 Prototyping Model Build prototype User satisfaction YES NO User feedback

26 Software project management26 Benefits of Prototyping Learning by doing Improved communication Improved user involvement Clarification of partially-known requirements

27 Software project management27 Prototyping Sequences Requirements gathering Quick design Prototype construction Customer evaluation Refinement Loop back to quick design for fine tuning Product engineering

28 Software project management28 Benefits of Prototyping Demonstration of the consistency and completeness of a specification Reduced need for documentation Reduced maintenance costs Feature constraint Production of expected results for testing real system

29 Software project management29 Drawbacks of Prototyping Users sometimes misunderstand the role of the prototype Lack of project standards possible Lack of control Additional expense Machine efficiency Close proximity of developers

30 Software project management30 Forms of Prototypes Mock-ups Simulated interaction Partial working model

31 Software project management31 Prototype Products Human-computer interface System functionality

32 Software project management32 Prototype Changes Three categories Cosmetic (35%) screen layout Local (60%) screen processing Global (5%) multi-parts processing design review

33 Software project management33 Phased Development Reduce cycle time Two parallel systems: operational system (Release n) development system (Release n+1) Two approaches incremental iterative

34 Software project management34 Incremental Model Break system into small components Implement and deliver small components in sequence Every delivered component provides extra functionality to user

35 Software project management35 Incremental Model (cont’d) Requirements Analysis Arrange requirements in increments Validate increment Design and develop increment Integrate increment YES NO System OK?

36 Software project management36 Iterative Model Deliver full system in the beginning Enhance functionality in new releases

37 Software project management37 Iterative Model (cont’d) Develop system version n Validate system version n YES NO Design system version n System complete n = n+1

38 Software project management38 Combined Incremental and Iterative Model Every new release includes extra functionality enhancement of existing functionality Popularly used in software industry

39 Software project management39 Ranking the Increments Rank by value to cost ratio V = value to customer (score 1 -10) C = cost (score 1- 10) Value to cost ratio = V/C Example: Table 4.1

40 Software project management40 Advantages of Phased Development Early feedback Less possible requirement changes Early benefits for users Improved cash flow Easier to control and manage

41 Software project management41 Advantages of Phased Development (cont’d) Capture early market Facilitate early training Can be temporarily abandoned Increase job satisfaction

42 Software project management42 Disadvantages of Phased Development ‘Software breakage’ Reduced productivity

43 Software project management43 Operational Specification Model Executable or translatable specification Use executables to demonstrate system behaviour Resolve requirement uncertainties in early stage Merging functionality and system design

44 Software project management44 Transformational Model Transform a specification into delivered system Requires automated support Relies on formal specification method

45 Software project management45 References Boehm, B. (1987) A sprial model of software development and enhancement, Software Engineering Project Management, p.128–142. Hughes, B. and Cotterell, M. (1999) Software Project Management, 2 nd ed., McGraw Hill. Humphrey, W. (1990) Managing the Software Process, Addison-Wesley. Pfleeger, S.L. (1998) Software Engineering Theory and Practice, Prentice Hall


Download ppt "Software Project Management Lecture 2 Software Development Models."

Similar presentations


Ads by Google