software project management n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Software Project Management PowerPoint Presentation
Download Presentation
Software Project Management

Loading in 2 Seconds...

play fullscreen
1 / 45

Software Project Management - PowerPoint PPT Presentation


  • 131 Views
  • Uploaded on

Software Project Management. Lecture 2 Software Development Models. Overview. Introduction Technical plan Software process models Selecting process model(s). Definitions. Software Process

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Software Project Management


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
    Presentation Transcript
    1. Software Project Management Lecture 2Software Development Models

    2. Overview • Introduction • Technical plan • Software process models • Selecting process model(s)

    3. 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. 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. 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. 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. Project Risks • Product uncertainty • Process uncertainty • Resource uncertainty

    8. Considerations for Project Approach • Control systems • Information systems • General applications • Specialized techniques • Hardware environment • Safety-critical systems • Imprecise requirements

    9. Technical Plan • Contents • Constraints • Approach • Implementation • Implications

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

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

    12. Technical Plan - Implementation • Development environment • Maintenance environment • Training

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

    14. Software Process Models • Waterfall Model • V Model • Spiral Model • Prototyping Model

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

    16. Waterfall Model Requirements Analysis System Design Coding Testing Maintenance

    17. 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. V Model Maintenance Requirements Analysis User Acceptance Testing System Design System Testing Unit and Integration Testing Program Design Coding

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

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

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

    22. Spiral Model (cont’d) • Four major activities • Planning • Risk analysis • Engineering • Evaluation

    23. 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. 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. Prototyping Model User satisfaction Build prototype YES NO User feedback

    26. Benefits of Prototyping • Learning by doing • Improved communication • Improved user involvement • Clarification of partially-known requirements

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

    28. 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. 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. Forms of Prototypes • Mock-ups • Simulated interaction • Partial working model

    31. Prototype Products • Human-computer interface • System functionality

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

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

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

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

    36. Iterative Model • Deliver full system in the beginning • Enhance functionality in new releases

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

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

    39. 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. Advantages of Phased Development • Early feedback • Less possible requirement changes • Early benefits for users • Improved cash flow • Easier to control and manage

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

    42. Disadvantages of Phased Development • ‘Software breakage’ • Reduced productivity

    43. 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. Transformational Model • Transform a specification into delivered system • Requires automated support • Relies on formal specification method

    45. 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, 2nd ed., McGraw Hill. • Humphrey, W. (1990) Managing the Software Process, Addison-Wesley. • Pfleeger, S.L. (1998)Software Engineering Theory and Practice, Prentice Hall