CS 425/625 Software Engineering Software Processes

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

Prescriptive Process models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Software Project Management
Chap 2. Software Processes
What is software? Computer programs and associated documentation
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.
EE6421/ED5031Software Engineering Slide 1 Section # 2 (Read Sommerville Ch (3 or 4) and Pressman Ch 2) Software Processes.
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 Engineering COMP 201 1COMP201 - Software Engineering Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
©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 2000Software Engineering, 6th edition. Chapter 3Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
1 CS 425/625 Software Engineering CS 425/625 Software Engineering Software Processes Based on Chapter 4 of the textbook [SE-7] Ian Sommerville, Software.
1 CS 691z/791z Topics on Software Engineering CS 691z/791z Topics on Software Engineering Software Processes Based on Chapter 4 of the book [SE-8] Ian.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
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.
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
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.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©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 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Chapter 3 Software Processes.
©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 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Lecture 3 Software Engineering Models (Cont.)
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development.
Software Engineering MCS-2 Lecture # 6
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
An Introduction to Software Engineering
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Module Code: CST 240 / BIT 233 Chapter 1: Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Model Process
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
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.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Lecture 3 Prescriptive Process Models
Software Processes (a)
CS 425/625 Software Engineering Software Processes
Chapter 2 SW Process Models
Software Processes.
An Overview of Software Processes
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Presentation transcript:

CS 425/625 Software Engineering Software Processes Based on Chapter 3 of the textbook [Somm00]: Ian Sommerville, Software Engineering, 6th Ed., Addison-Wesley, 2000 and on Ch3 PowerPoint presentation from www.comp.lancs.ac.uk/computing/resources/IanS/SE6/Slides/index.html September 3, 2003

Outline Software Process Models Software Process Activities Waterfall model Evolutionary development Formal development Reuse-oriented development Incremental model Spiral model Software Process Activities Specification Design and implementation Validation Evolution Automated Process Support

Software Process Models Software process = organized set of activities aimed at building a software system Software process model = an abstract representation of a software process Fundamental software process activities: Software specification Software design and implementation Software validation Software evolution

Software Process Models: Waterfall.. The Waterfall model [Somm00, Fig 3.1]

Software Process Models: .Waterfall. Main characteristics: Also called classic software life cycle or sequential model Process activities (phases/stages) are clearly separated After a number of iterations, phases of the life cycle (such as specification and design) are “frozen”

Software Process Models: ..Waterfall Advantages: Organized approach, provides robust separation of phases Reflects common engineering practice Disadvantages: Doesn’t cope well with changes required by the client Development teams might wait for each other A working version of the product is available only late Applicability: When requirements are well known and few changes are likely to be needed Can be used also for parts of larger software systems

Software Process Models: Evolutionary Development… Evolutionary Development model [Somm00, Fig 3.2]

Software Process Models: .Evolutionary Development.. Main characteristics: The phases of the software construction are interleaved Feedback from the user is used throughout the entire process The software product is refined through many versions Types of evolutionary development: Exploratory development Throw-away prototyping

Software Process Models: ..Evolutionary Development. Advantages: Deals constantly with changes Provides quickly an initial version of the system Involves all development teams Disadvantages: Quick fixes may be involved “Invisible” process, not well-supported by documentation The system’s structure can be corrupted by continuous change

Software Process Models: …Evolutionary Development Disadvantages [cont’d]: Special tools and techniques may be necessary The client may have the impression the first version is very close to the final product and thus be less patient Applicability: When requirements are not well understood When the client and the developer agree on a “rapid prototype” that will be thrown away Good for small and medium-sized software systems

Software Process Models: Formal Development…. The Formal System Development model [Somm00, Fig 3.3]

Software Process Models: .Formal Development… The Formal Transformation process [Somm00, Fig 3.4]

Software Process Models: ..Formal Development.. Main characteristics: Approach based on formal, mathematics-based techniques for specification, refinement, and verification A formal specification is produced, than transformed using mathematical methods into the software product’s design and code; formal verification is also used

Software Process Models: ...Formal Development. Advantages: Transformations between stages are sufficiently close to ensure better verification and less expensive proofs Errors, omissions, ambiguities, and contradictions in specifications are more completely detected The final product is more likely to satisfy the requirements The product’s reliability is increased

Software Process Models: ….Formal Development Disadvantages: Requires knowledge of and experience with formal methods Are resource consuming Applicability: Safety- and security-critical systems Parts of the systems that must be thoroughly verified

Software Process Models: Reuse-Oriented Development… The Reuse-oriented Development model [Somm00, Fig 3.5]

Software Process Models: .Reuse-Oriented.. Main characteristics: Makes intensive use of existing reusable components The focus is on integrating the components rather than on creating them from the scratch

Software Process Models: ..Reuse-Oriented. Advantages: Reduces considerably the software to be developed “in-house” Allows faster delivery In principle, more reliable systems, due to using previously tested components

Software Process Models: …Reuse-Oriented Disadvantages: Compromises in requirements are needed Less control over the system’s evolution Applicability: When there is a pool of existing components that could satisfy the requirements of the new product

Software Process Models: Incremental Development… The Incremental Model [Somm00, Fig 3.6]

Software Process Models: .Incremental.. Main characteristics: Hybrid model that combines elements of the waterfall and evolutionary paradigms The specification, design, and implementation phases are broken in smaller increments

Software Process Models: ..Incremental. Advantages: Provides better support for process iteration Reduces rework in the software construction process Some decisions on requirements may be delayed Allows early delivery of parts of the system Supports easier integration of sub-systems Lower risk of project failure Delivery priorities can be more easily set

Software Process Models: ...Incremental Disadvantages: Increments need be relatively small Mapping requirements to increments may not be easy Common software facilities may be difficult to identify Applicability: When it is possible to deliver the system “part-by-part”

Software Process Models: Spiral Model.. Boehm’s Spiral Model [Somm00, Fig 3.7]

Software Process Models: .Spiral Model. Main characteristics: Also a hybrid model that support process iteration The process is represented as a spiral, each loop in the spiral representing a process phase Four sectors per loop: objective setting, risk assessment and reduction, development and validation, planning Risk is explicitly taken into consideration

Software Process Models: ..Spiral Model Advantages: Risk reduction mechanisms are in place Supports iteration and reflects real-world practices Systematic approach Disadvantages: Requires expertise in risk evaluation and reduction Complex, relatively difficult to follow strictly Applicable only to large systems Applicability: Internal development of large systems

Process Activities: Specification Requirements engineering [Somm00, Fig 3.8]

Process Activities: Design & Implementation A general model for design [Somm00, Fig 3.9]

Process Activities: Testing The debugging process [Somm00, Fig 3.10] The testing process [Somm00, Fig. 3.11]

Process Activities: Evolution System evolution [Somm00, Fig 3.13]

Automated Process Support Classification of CASE technology [Somm00, Fig 3.16]