Software Project Management

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CSC 532 Term Paper Process Models In Software Engineering By Xiancong Xiong Fall 2004.
Lecture # 2 : Process Models
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Software Process Models
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Alternate Software Development Methodologies
CH02: Modeling the process and life cycle Process of developing software (organization and discipline in the activities) contribute to the quality of the.
CS 5150 Software Engineering
Software project management (intro ) Project approaches.
CS 501: Software Engineering
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
CS 425/625 Software Engineering Software Processes
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Life Cycle Model
Chapter 3 Software Processes.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 2 The process Process, Methods, and Tools
Software Project Management Introduction to Project Management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
What is a life cycle model? Framework under which a software product is going to be developed. – Defines the phases that the product under development.
Software Engineering Environment  A quality focus: constant incremental improvement  Process: framework to organize development activities  Methods:
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Software Engineering Management Lecture 1 The Software Process.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
1 SWE Introduction to Software Engineering Lecture 4.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
© Bennett, McRobb and Farmer Avoiding the Problems Based on Chapter 3 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
© The McGraw-Hill Companies, Software Project Management 4th Edition Selection of an appropriate project approach Chapter 4.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture 2 System Development Lifecycles. Building a house Definition phase Analysis phase Design phase Programming phase System Test phase Acceptance.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
 Chapter 4: Selection of an appropriate project approach NET481: Project Management Afnan Albahli.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Slide 3.1 © The McGraw-Hill Companies, 2002 SOFTWARE LIFE-CYCLE MODELS.
Software Life Cycle “What happens in the ‘life’ of software”
PROJECT LIFE CYCLE AND EFFORT ESTIMATION
CS 425/625 Software Engineering Software Processes
Chapter 2 SW Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Lecture # 5 Software Development Project Management
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Software life cycle models
Incremental Waterfall
CS310 Software Engineering Lecturer Dr.Doaa Sami
Information Systems Development (ISD) Systems Development Life Cycle
Presentation transcript:

Software Project Management Lecture 2 Software Development Models

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

Definitions Software Process Software Process Model (Humphrey 1990) 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) Software project management

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 Software project management

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

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? Software project management

Project Risks Product uncertainty Process uncertainty Resource uncertainty Software project management

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

Technical Plan Contents Constraints Approach Implementation Implications Software project management

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

Technical Plan - Approach Software Project Management Technical Plan - Approach Selected methodology or process model(s) Development methods Required software tools Target hardware/software environment The technical plan is typically a mixture of models. Eg prototyping to resolve some requirements plus V-model for production. Software project management

Technical Plan - Implementation Development environment Maintenance environment Training Software project management

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

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

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

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

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

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

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

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 Software project management

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

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

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 Software project management

Classification of Prototype Software Project Management 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. Software project management

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

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

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

Benefits of Prototyping Software Project Management 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 Reduced maintenance costs in the sense that users are less likely to ask for changes after the system goes into its operation. However, when asked for changes, the system is difficult to maintain because the software is usually not well structured. Software project management

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 Software project management

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

Prototype Products Human-computer interface System functionality Software project management

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

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

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

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

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

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

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

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 Software project management

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

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

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

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

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

Software Project Management 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 Software project management