Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.

Similar presentations


Presentation on theme: "Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn."— Presentation transcript:

1 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn from Pressman Vasudeva Varma vasu@iiit.net Spring 2002 International Institute of Information Technology, Hyderabad

2 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 2 of 32 Quick Review – Last week Studied the definitions of SE Discussed SDLC – Different phases Discussed Fred Brooks’ work on SE This week… We shall Discuss Product and Process concepts Look at various software Process models Discuss CMM and PSP (Friday)

3 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 3 of 32 What is Software Engineering? A modeling activity A problem-solving activity A knowledge acquisition activity A rationale-driven activity

4 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 4 of 32 What Causes SW Projects to Fail? Unrealistic plans, based on optimistic estimates Ineffective tracking of performance Volatile requirements Risks

5 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 5 of 32 But, Why do We Let it Happen? People tend to be risk averse when there is potential of loss People are unduly optimistic in their plans and forecasts People prefer to use intuitive judgment rather than quantitative models

6 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 6 of 32 Controlling Human Nature Documenting the way work is performed Provide guidance and quantifiable criteria where possible Record decisions and the data used to make them Analyze the results and improve the process where possible Learn - individually and organizationally

7 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 7 of 32 Software Engineering Products and Processes The software customer wants quality software products at reasonable prices The software producer wants a well managed software production process that consistently produces quality software in a cost-effective manner Some organizations have a defined and managed software engineering process

8 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 8 of 32 The Software Process The software product is created as part of the Software Engineering Process Definition: –the Software Process is a description of the process which guides the software engineers as they work

9 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 9 of 32 The Software Product u Composed of programs, data and documents u Delivers hardware computing potential u Delivers information Software Product Characteristics »developed or engineered, not manufactured »doesn’t wear out »most is custom built

10 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 10 of 32 The Software Process The set of activities which produce a software product The sequence of steps to develop and maintain software Sets out the technical and management framework for applying methods, tools and people to the software task

11 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 11 of 32 A Layered Technology Software Engineering

12 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 12 of 32 The Software Process... Software Engineering Layers u Quality Focus - bedrock of SE u Process »defines a framework as a basis for management control of projects and context for technical methods u Methods »technical ‘how to’ for building software u Tools »automated support for the process and the methods

13 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 13 of 32 The Software Process... There is no ‘right’ or ‘wrong’ software process. The ‘wrong’ process reduces the quality or usefulness of the product Software processes are complex and involve a large number of activities

14 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 14 of 32 The Software Process... Generic Phases (Pressman) u Definition Phase focuses on ‘what’ u Development Phase focuses on ‘how’ u Maintenance Phase focuses on change

15 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 15 of 32 The Software Process... Has a common process framework containing: u framework activities - for all software projects u work tasks u project milestones u software work products and deliverables u quality assurance points u umbrella activities - occur throughout the process u software quality assurance u software configuration management u software metrics or measurement

16 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 16 of 32 A Common Process Framework

17 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 17 of 32 Software Process Models... Evolutionary development u Linear or waterfall model u Prototyping (throw away) u Rapid Application Development u Incremental Process u Spiral Model u Concurrent Development Model u Fourth Generation Techniques u Extreme Programming

18 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 18 of 32 SDLC - the reality Overlapping phases u Large, complex systems are usually broken into subsystems and other smaller components u Each subsystem may have its own mini-lifecycle. u In reality there will be a continuous stream of change requests.

19 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 19 of 32 Process as Problem Solving

20 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 20 of 32 Linear Models - Problems Change handling during the process Requires that all requirements are stated clearly at the beginning of the process Working version is delivered at the end of the process cycle; mistakes at earlier stages may be disastrous “Blocking States”

21 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 21 of 32 Iterative Models - Prototyping Prototyping

22 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 22 of 32 Prototyping - The Problems There is a “working version” of software before the requirements for the overall quality and maintainability are satisfied. Implementation compromises, made to create a quick “working version” often become a part of the final version.

23 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 23 of 32 Iterative Models - RAD Rapid Application Development (RAD)

24 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 24 of 32 RAD - The Problems For large, but scalable projects, requires significant human resources Requires customers and developers willing to work in a rapid development environment If the requirements can not be modularized, this approach may not be suitable If fine-tuning is needed, this approach may not be suitable

25 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 25 of 32 Evolutionary Models - The Incremental Model

26 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 26 of 32 Evolutionary Models - Spiral Model

27 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 27 of 32 Spiral Model - The Lifecycle of SW Product Concept Development Projects New Product Development Projects Product Enhancement Projects Product Maintenance Projects

28 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 28 of 32 Spiral Model - Characteristics Advantages application in large systems and software used well as a risk reduction mechanism Disadvantages controllability (demands high risk assessment and expertise) has not been applied as much (little history)

29 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 29 of 32 Component Assembly Model extract components if available build components if available construct n th iteration of the system identify candidate components look up components in library put new components in library

30 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 30 of 32 Concurrent Model none Under development Baselined Done Under revision Awaiting changes Analysis activity

31 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 31 of 32 Still Other Process Models Formal methods—the process to apply when a mathematical specification is to be developed Cleanroom software engineering— emphasizes error detection before testing 4GT (fourth generation techniques) — automatic code generation

32 Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 32 of 32 Product and Process - Keep Thinking!


Download ppt "Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn."

Similar presentations


Ads by Google