Software Project Management Lecture 2 Software Development Models

  • Slides: 45
Download presentation
Software Project Management Lecture 2 Software Development Models Software Project Management

Software Project Management Lecture 2 Software Development Models Software Project Management

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

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

Definitions n Software Process n n the set of activities, methods, and practices that

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

Why Modelling? n n To provide a common understanding To locate any inconsistencies, redundancies

Why Modelling? n n 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 Software project management 4

Project Analysis n Methodologies n n Object-Oriented Development (OOD) Structured System Analysis and Design

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

Project Characteristics n n n data oriented or control oriented system? general package or

Project Characteristics n n n 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? Software project management 6

Project Risks n n n Product uncertainty Process uncertainty Resource uncertainty Software project management

Project Risks n n n Product uncertainty Process uncertainty Resource uncertainty Software project management 7

Considerations for Project Approach n n n n Control systems Information systems General applications

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

Technical Plan n Contents n n Constraints Approach Implementation Implications Software project management 9

Technical Plan n Contents n n Constraints Approach Implementation Implications Software project management 9

Technical Plan - Constraints n n n Character of the system to be developed

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

Technical Plan - Approach n n Selected methodology or process model(s) Development methods Required

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

Technical Plan Implementation n Development environment Maintenance environment Training Software project management 12

Technical Plan Implementation n Development environment Maintenance environment Training Software project management 12

Technical Plan - Implications n Project products and activities n n effect on schedule

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

Software Process Models n n Waterfall Model V Model Spiral Model Prototyping Model Software

Software Process Models n n Waterfall Model V Model Spiral Model Prototyping Model Software project management 14

Software Process Models (cont’d) n Phased Development Model n n incremental development model iterative

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

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

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

Waterfall Model (cont’d) n n n classical one-shot approach effective control limited scope of

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

V Model Maintenance Requirements Analysis User Acceptance Testing System Design System Testing Unit and

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

V Model (cont’d) n n n Additional validation process introduced Relate testing to analysis

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

Spiral Model (adapted from Boehm 1987) Cumulative cost Progress through steps Determine objectives, alternatives

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

Spiral Model (cont’d) n n n Evolutionary approach Iterative development combined with risk management

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

Spiral Model (cont’d) n Four major activities n n Planning Risk analysis Engineering Evaluation

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

Prototyping Model n Goals n n meet (some) user requirements at an early stage

Prototyping Model n Goals n n 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 Software project management 23

Classification of Prototype n Throw-away n n Evolutionary n n After users agree the

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

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

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

Benefits of Prototyping n n Learning by doing Improved communication Improved user involvement Clarification

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

Prototyping Sequences n n n n Requirements gathering Quick design Prototype construction Customer evaluation

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

Benefits of Prototyping n n n Demonstration of the consistency and completeness of a

Benefits of Prototyping n n n 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 Software project management 28

Drawbacks of Prototyping n n n Users sometimes misunderstand the role of the prototype

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

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

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

Prototype Products n n Human-computer interface System functionality Software project management 31

Prototype Products n n Human-computer interface System functionality Software project management 31

Prototype Changes n Three categories n Cosmetic (35%) n n Local (60%) n n

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

Phased Development n n Reduce cycle time Two parallel systems: n n n operational

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

Incremental Model n n n Break system into small components Implement and deliver small

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

Incremental Model (cont’d) Requirements Analysis Arrange requirements in increments Design and develop increment NO

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

Iterative Model n n Deliver full system in the beginning Enhance functionality in new

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

Iterative Model (cont’d) Design system version n n = n+1 Develop system version n

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

Combined Incremental and Iterative Model n Every new release includes n n n extra

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

Ranking the Increments n n n Rank by value to cost ratio V =

Ranking the Increments n n n 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 Software project management 39

Advantages of Phased Development n n n Early feedback Less possible requirement changes Early

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

Advantages of Phased Development (cont’d) n n Capture early market Facilitate early training Can

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

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

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

Operational Specification Model n n Executable or translatable specification Use executables to demonstrate system

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

Transformational Model n n n Transform a specification into delivered system Requires automated support

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

References n n Boehm, B. (1987) A sprial model of software development and enhancement,

References n n 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. , Mc. Graw Hill. Humphrey, W. (1990) Managing the Software Process, Addison-Wesley. Pfleeger, S. L. (1998) Software Engineering Theory and Practice, Prentice Hall Software project management 45