 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

Chapter 2 – Software Processes Fall Chapter 2 – Software Processes Lecture 1 2Chapter 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
SE Fundamentals: 1. Software Processes
Unit 2. Software Lifecycle
Chapter 2 Software Processes (1/2) Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
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 2 – Software Processes
Chapter 2 – Software Processes
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 3 Software Processes.
Software Process Model
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
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,
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Lecture 1 Overview TopicsOverview Readings: Chapter 1 August 18, 2011 CSCE 740 Software Engineering.
CSc 461/561 Software Engineering Lecture 2 – Software Processes.
Chapter 2 – Software Processes 1Chapter 2 Software Processes.
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Chapter 2 Software Processes (2/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Chapter 2 – Software Processes Software Engineering Lecture 1 Summer 2013/2014 Dr. Nouh Alhindawi Department of Computer Science and Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Chapter 2 – Software Processes 1Chapter 2 Software Processes Ian Sommerville, Software Engineering, 9 th Edition Pearson Education, Addison-Wesley Note:
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software engineering 1.  Software process models  Process activities  Software change  The Rational Unified Process  An example of a modern software.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Chapter 2 – Software Processes 1Chapter 2 Software Processes Ian Sommerville, Software Engineering, 9 th Edition Pearson Education, Addison-Wesley Note:
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Chapter 2 – Software Processes
Chapter 2 – Software Processes
CS 389 – Software Engineering
CS 389 – Software Engineering
Chapter 2: Software Processes
Chapter 2 Software Processes
Chapter 2 – Software Processes
Chapter 2 – Software Processes
Software Processes.
Chapter 2 – Software Processes
Chapter 2 Software Processes
Chapter 2 – Software Processes
An Overview of Software Processes
Software Processes.
Chapter 2 – Software Processes
Chapter 2 – Software Processes
Chapter 2 – Software Processes
Software Design and Development Processes
Presentation transcript:

 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1

Processes and Process Models  Software processes  A ctivities involved in producing a software system.  Software process models  abstract representations of these processes. Chapter 2 Software Processes2

Software processes  Processes  Specification  Design  Implementation  Validation  Evolution  Occur in all process models Chapter 2 Software Processes3

Process Models  Describe the organization of software processes.  Key Examples  Waterfall model  Incremental development  Reuse-oriented development. Chapter 2 Software Processes4

Software Process Pescriptions  Activities of the process  Specifying a data model  Designing a user interface  Also  Outcomes of a process  Roles of people involved in the process  Pre- and post-conditions Chapter 2 Software Processes5

Software process models  Waterfall model  Plan-driven model.  Separate and distinct processes  specification  development.  Incremental development  Interleaved processes  Specification, development and validation  Reuse-oriented software engineering  The system is assembled from existing components. Chapter 2 Software Processes6

Development in Civil Engineering  Build a bridge  Requirements  Site Analysis  Design  Review/Approval  Schedule  Construction  Testing  Maintenance  Discussion  Requirements  Overlap of phases  Dependency of Phases Chapter 2 Software Processes7

The Waterfall Model (1970) Chapter 2 Software Processes8

Waterfall Model Phases  There are separate identified phases in the waterfall model:  Requirements analysis and definition  System and software design  Implementation and unit testing  Integration and system testing  Operation and maintenance Chapter 2 Software Processes9

Waterfall Model Problems  Responding to changing customer requirements.  Appropriate  requirements are well-understood  Changes will be fairly limited  Few business systems have stable requirements. Chapter 2 Software Processes10

Waterfall Applications  Large systems, developed at several sites.  Space Shuttle control system  Integration with many physical components Chapter 2 Software Processes11

Incremental Development  Initial Requirements, Design, Development…  Learn from usage  Modify requirements, design, redevelop Chapter 2 Software Processes12

Incremental development Chapter 2 Software Processes13

Incremental development benefits  Lower cost of accommodating changing customer requirements  Better customer feedback  Customers understand working system better than design  More rapid delivery  Partial delivery at beginning is useful Chapter 2 Software Processes14

Generic Products  Inherently incremental  Initial phase to  Get customers  Get feedback  Drive direction  Subsequent phases  Stay competitive  Meet changing needs Chapter 2 Software Processes15

Incremental development problems  The process is not visible.  Design documents not at extensive  Design documents not final  System structure tends to degrad e as new increments are added.  New features may not fit initial structure Chapter 2 Software Processes16

Reuse-Oriented Software Engineering  Systematic reuse  COTS (Commercial-off-the-shelf) systems.  Process stages  Component analysis;  Requirements modification;  System design with reuse;  Development and integration.  Standard approach for building many systems  SAS Chapter 2 Software Processes17

Reuse-oriented software engineering Chapter 2 Software Processes18

Types of software components  Web services  Standard specification  Remote invocation  Calendar, weather, scheduling, RSS,…  Collections of objects - framework .NET  User interface  Configurable software systems  COTS – Commercial Off The Shelf software  SAS Chapter 2 Software Processes19

Discussion  Identify 2 highly likely projects for each of the following  Waterfall  Incremental  Component Chapter 2 Software Processes20

Software Specification  Process of establishing  Services required  Constraints on the system  Requirements engineering process  Feasibility study  Requirements elicitation and analysis  Requirements specification  Requirements validation Chapter 2 Software Processes21

The requirements engineering process Chapter 2 Software Processes22

Software design and implementation  Design  Creation of design documents  From requirements  Implementation  Creation of running program  From design documents  Design and implementation  Closely related  May be inter-leaved. Chapter 2 Software Processes23

A general model of the design process Chapter 2 Software Processes24

Design activities  Architectural design,  overall structure  principal components (sub-systems or modules)  component relationships  Interface design  interfaces between system components  Interface with user  Component design  Individual component  Database design,  Tables, queries, interaction Chapter 2 Software Processes25

Software verification and validation  Show that  system conforms to its specification  meets the real needs of customer  Testing is a key approach  Code reviews Chapter 2 Software Processes26

Stages of testing Chapter 2 Software Processes27

Testing stages  Development or component testing  System testing  Acceptance testing Chapter 2 Software Processes28

Testing phases in a plan-driven software process Chapter 2 Software Processes29

Software evolution  Software is inherently flexible.  Software changes to meet  Changing business model  New applications Chapter 2 Software Processes30

System evolution Chapter 2 Software Processes31

Nature of Change  Change is inevitable in all large software projects.  Business changes  New technologies  Changing platforms  Changing Customer Base  Chaging usage Chapter 2 Software Processes32

Reducing the Costs of Rework  Change avoidance  Start with a prototype   Change tolerance  Incremental tolerance  Architecture Chapter 2 Software Processes33

Software prototyping  Prototype  initial version  demonstrate concepts  try out design options.  Uses:  requirements elicitation and validation;  UI design; Chapter 2 Software Processes34

Benefits of prototyping  Improved system usability.  A closer match to users’ real needs.  Improved design quality.  Improved maintainability.  Reduced development effort. Chapter 2 Software Processes35

The process of prototype development Chapter 2 Software Processes36

Prototype development  Tools  rapid prototyping languages  Leave out functionality  Focus on areas that are not well-understood  No error checking and recovery  Focus on functional requirements  not reliability and security  Different architecture Chapter 2 Software Processes37

Throw-away prototypes  Discard prototype:  Can’t be modified for all requirements;  Prototypes are undocumented;  Poor internal structure;  Poor quality standard Chapter 2 Software Processes38

Discussion  Describe a prototype for  Web application  Mobile app  Air traffic control system  Integrated controller in a printer Chapter 2 Software Processes39

Incremental delivery  Multiple deliveries  Phased functionality  Requirements prioritization  Requirements frozen at beginning of incremental phase Chapter 2 Software Processes40

Incremental development and delivery  Incremental development  Evaluate each increment before creating next  Normal approach used in agile methods;  Evaluation done by user/customer proxy.  May not require incremental delivery  Incremental delivery  Deploy to end-users  More realistic evaluation by users; Chapter 2 Software Processes41

Incremental delivery Chapter 2 Software Processes42

Incremental delivery advantages  Partially usable system available earlier.  Early versions elicit further requirements  Lower risk of overall project failure.  Most important features get tested more Chapter 2 Software Processes43

Incremental Delivery Problems  Common facilities.  Not fully thought out  Poorly architected  Conflicts with procurement processes  Companies require full specification Chapter 2 Software Processes44

Boehm’s spiral model (1988)  Spiral diagram rather than process diagram  Each loop in the spiral represents a phase in the process. Chapter 2 Software Processes45

Boehm’s spiral model of the software process Chapter 2 Software Processes46

Spiral model sectors  Objective setting  Specific objectives for the phase are identified.  Risk assessment and reduction  Risks are assessed and activities put in place to reduce the key risks.  Development and validation  A development model for the system is chosen which can be any of the generic models.  Planning  The project is reviewed and the next phase of the spiral is planned. Chapter 2 Software Processes47

Spiral model usage  Rarely used as published for practical software development. Chapter 2 Software Processes48

The Rational Unified Process  IBM 2003  Combination of other models  Largely iterative  Documentation  Prototyping Chapter 2 Software Processes49

Phases in the Rational Unified Process Chapter 2 Software Processes50

RUP phases  Inception  Establish the business case for the system.  Elaboration  Develop an understanding of the problem domain and the system architecture.  Construction  System design, programming and testing.  Transition  Deploy the system in its operating environment. Chapter 2 Software Processes51

RUP 6 Best Practices  Iterative development  Prioritized phases.  Manage requirements  Document requirements.  Use component-based architectures  Structure the system to be reusable. Chapter 2 Software Processes52

RUP 6 Best Practices (continued)  Visually model software  UML.  Verify software quality  Control changes to software  change management system tools Chapter 2 Software Processes53

Discussion Chapter 2 Software Processes54