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

Slides:



Advertisements
Similar presentations
Departemen Ilmu Komputer IPB
Advertisements

Prescriptive Process models
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
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.
CS487 Software Engineering Omar Aldawud
Software Engineering Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable.
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.
Software Process Models
Ch 3 System Development Environment
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CS 425/625 Software Engineering Software Processes
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter : Software Process
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
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
Chapter 2 The Process.
Software Process and Models
SOFTWARE ENGINEERING MCS-2 LECTURE # 5. RAD (RAPID APPLICATION DEVELOPMENT) MODEL  In RAD model the components or functions are developed in parallel.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Chapter 2 Process: A Generic View
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Rapid Application Development. What is RAD……..?  Rapid Application Development (RAD) is a software development process.  first developed during the.
Chapter 3 Project Management Concepts
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
The Process Infsy 570 Dr. R. Ocker. Chapter 2 (Pressman, 1997) and Readings (Boehm88, Alavi84, Mantei&Teorey88 )
Chapter 4 프로세스 모델 Process Models
Introduction to Software Engineering.  Software Characteristics  Components  Applications  Layered Technologies  Processes  Methods And Tools 
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Developed by Reneta Barneva, SUNY Fredonia The Process.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Model Process
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Engineering 1A/1B/1C/1M School of Computer and Information Science, University of South Australia Week 1, Lecture 2, Page 1 Software Engineering.
Software Process By Sabeen Amjad Chapter-2. Objectives To comprehend  Software process  Software Engineering as layered technology  Generic view of.
Software Engineering Process Lecture -2:. –Software development life cycle –overview of software development process models.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Process Models. Process model or software engineering paradigm – development strategy encompassing Process Method Tool Generic phases Chosen.
Systems Development Life Cycle
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Configuration Control (Aliases: change control, change management )
Software Development Process includes: all major process activities all major process activities resources used, subject to set of constraints (such as.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Advanced Software Engineering Dr. Cheng
Software Life Cycle “What happens in the ‘life’ of software”
Software Processes (a)
Software Process Models
Software Life Cycle Models
Chapter 2 The Process.
For University Use Only
Chapter 2 The Process.
Software Processes Process should be
Presentation transcript:

Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn from Pressman Vasudeva Varma Spring 2002 International Institute of Information Technology, Hyderabad

Software Engineering Spring (C) Vasudeva VarmaClass 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)

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

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

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass of 32 A Layered Technology Software Engineering

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass of 32 A Common Process Framework

Software Engineering Spring (C) Vasudeva VarmaClass 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

Software Engineering Spring (C) Vasudeva VarmaClass 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.

Software Engineering Spring (C) Vasudeva VarmaClass of 32 Process as Problem Solving

Software Engineering Spring (C) Vasudeva VarmaClass 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”

Software Engineering Spring (C) Vasudeva VarmaClass of 32 Iterative Models - Prototyping Prototyping

Software Engineering Spring (C) Vasudeva VarmaClass 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.

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

Software Engineering Spring (C) Vasudeva VarmaClass 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

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

Software Engineering Spring (C) Vasudeva VarmaClass of 32 Evolutionary Models - Spiral Model

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

Software Engineering Spring (C) Vasudeva VarmaClass 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)

Software Engineering Spring (C) Vasudeva VarmaClass 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

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

Software Engineering Spring (C) Vasudeva VarmaClass 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

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