Software Engineering Introduction (The Process) James Gain

Slides:



Advertisements
Similar presentations
Lecture # 2 : Process Models
Advertisements

Software Project Management
Software Life-Cycle Models
CS487 Software Engineering Omar Aldawud
CSE 470 : Software Engineering The Software Process.
Chapter 3 Process Models
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.
CS3773 Software Engineering Lecture 01 Introduction.
Software Process Models
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Chapter 2 The Software Process
Alternate Software Development Methodologies
Introduction to Software Engineering Lecture 4 André van der Hoek.
CS 5150 Software Engineering
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.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Process: A Generic View
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
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.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Prescriptive Process Models
Chapter 2 Process: A Generic View
Lecture 1 Introduction to Software Engineering
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Prescriptive Process Models Jon Walker. Prescription? What does prescriptive mean?
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
Software Engineering Summary James Gain
Introduction to Software Development (Software Engineering - I)
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 Engineering Introduction (The Process). Objectives lTo define software engineering lTo introduce a range of software engineering process models.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Development Life Cycle (SDLC)
1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Software Engineering Introduction.
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 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Software Engineering (CSI 321) Software Process: A Generic View 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Process By Sabeen Amjad Chapter-2. Objectives To comprehend  Software process  Software Engineering as layered technology  Generic view of.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Introduction Requirements and the Software Lifecycle (3)
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.
Systems Development Life Cycle
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
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
Software Process Models
Chapter 2 The Process.
Introduction to Software Engineering
For University Use Only
Chapter 2 The Process.
Presentation transcript:

Software Engineering Introduction (The Process) James Gain

Objectives lDefine Software Engineering lShow the layers of Software Engineering lOrder from Chaos - Introduce a range of software life-cycle models  Linear  Incremental  Spiral lCompare and contrast different models

Software Engineering Defined lDef 1:  The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines lDef 2:  The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software lConstruct your own definition:  Purpose: solve the “software crisis”  Approach: using engineering-style practices

Software Engineering a “quality” focus life-cycle model methods tools A Layered Technology  Focus: the underlying philosophy. High quality means project timeliness because of less debugging and rework  Model: structured sequence of high-level tasks  Methods: technical tasks for building software  Tools: automated or semi-automated support (CASE)

Life-cycle Models: Generic Phases 1.Definition (“what”):  Establish what the system requirements are  Use system engineering, project planning, requirements analysis 2.Development (“how”):  Establish how the system is to be realized – designed and built  Use software design, code generation, testing 3.Support:  Handle changes as the software environment evolves  Four flavours: correction, adaptation, enhancement, prevention 4.Umbrella Activities:  Ongoing across every phase  Project management, configuration control, risk management

Build and Fix Model lChaos! No specification or design. Rework until the client is satisfied.  Only works on small projects  All changes are in coding phase (expensive) lNot a realistic option Build first version Modify until client is satisfied Maintenance Retirement

Waterfall Model lAdapted (in 1970) from conventional engineering cycle lBroken into phases, customers and developers sign-off documents at each phase, one-way trip  Cannot return to fix problems in previous phases Requirements Specification Implementation Integration Design Maintenance

Modified Waterfall Model  Well established and widely used  Driven by text documents (but also  )  Needs up-front requirements  Customers only see the product at the end Requirements Specification Implementation Integration Design Maintenance

Prototyping Model lEarly versions of the software are for demonstration and requirements purposes. They are meant to be discarded.  Users get a feel for the system  Developers learn how to build the real thing  Customer may imagine that the prototype is final  Initial quick fix choices may be carried over to later development Listen to customers Build/revise mock up Customers test-drive mock-up Normal or modified Waterfall

Incremental Models lMany systems evolve over time lBusiness and product requirements change over the (lengthy) period of a project lLinear (Waterfall and Prototyping) models cannot handle this lAn iterative process which develops increasingly more complete versions of the software is called for lTwo types: 1.Single Analysis phase followed by multiple incremental Design and Build phases 2.Everything is incremental (including Analysis)

Concurrent Incremental Model lDeliver increasing functionality at each build (usually n = 5..20) lFirst build is the core  Requires an open architecture that accommodates integration  Get partial functionality early  Allows specialisation (e.g. full time designers)  Not as well proven AnalysisDesignCode Integrate Build 1 AnalysisDesignCode Integrate Build 2 Build n

Evaluating the Spiral Model lEmphasises Identifying and managing risks lQuit if the risks can’t be quantified  Considers entire software life cycle  Adaptable  Only suitable for large scale project (cost of risk analysis is high)  Requires risk assessment expertise  Only works for Internal Development (where the plug can be pulled without contractual issues)

Other Lifecycle Models lRapid Application Development (RAD):  Iterative model that needs well-defined requirements and uses 4GL techniques  Rapid (60-90 days)  Requires sufficient human resources, the right type of modular application and low technical risks lExtreme Programming:  Controversial lightweight iterative model with unique features (e.g. pair programming)  Model adopted in this course and for CS2 projects  Works well for vague requirements  Unproven, only really good for small projects

Even More Models lFormal methods:  Development is driven by a mathematical specification üAttacks ambiguity, incompleteness and inconsistency; allows formal verification  Time consuming and expensive; requires extensive training; not good for customer communication lCABTAB: –Code A Bit, Test A Bit –Like “hacker” it originally had a positive meaning (used to describe successful OO iterative models) –But now a derogatory term for iterative models that degenerate into haphazard development

Comparing Models ModelStrengthsWeaknesses Build-and-Fix Fine for short programs not needing maintenance Inappropriate for nontrivial programs Waterfall Disciplined approach Document driven Final product may not meet client’s real needs Prototyping Helps to detail user’s requirements The prototype may outlive its usefulness Iterative Get early results Promotes maintenance May degenerate into CABTAB Spiral Incorporates features from other models Only suited to large-scale in-house development Component- based Supports re-use and iteration Expensive in the short term

Adaptability of Models lA life-cycle model (but not build-and-fix) will always be applied on every project BUT lThe most suitable model and details of phases (e.g. degree of rigor) will vary based on:  Type of project (scientific, embedded, business, etc.)  Characteristics of the project  Common sense judgment  Experience of the project team lProcesses can be lightweight or heavyweight (little or lots of administration overhead and control)