Software Life Cycle “What happens in the ‘life’ of software”

Slides:



Advertisements
Similar presentations
Departemen Ilmu Komputer IPB
Advertisements

Prescriptive Process models
Lecture # 2 : Process Models
CS487 Software Engineering Omar Aldawud
TCS2411 Software Engineering1 Software Life Cycle “What happens in the ‘life’ of software”
CSE 470 : Software Engineering The Software Process.
Software Engineering 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.
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 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.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Chapter : Software Process
Process: A Generic View
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
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.
Chapter 2 Process: A Generic View
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.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
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.
Prescriptive Process Models
Chapter 2 Process: A Generic View
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
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.
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
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
Software Engineering CE 501 Prepared by : Ashwin Raiyani.
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.
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, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter 2.
Software Process Models. Process model or software engineering paradigm – development strategy encompassing Process Method Tool Generic phases Chosen.
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.
Lecture 3 Prescriptive Process Models
Software Engineering (CSI 321)
Software Processes (a)
CS 425/625 Software Engineering Software Processes
Rapid Application Development Model
Software Engineering: A Practitioner’s Approach
Software Process Models
Chapter 2 SW Process Models
Software Process Models
Software Life Cycle Models
Chapter 2 Process: A Generic View
Chapter 2 The Process.
For University Use Only
Chapter 2 The Process.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Process Models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes Process should be
Software Processes.
Presentation transcript:

Software Life Cycle “What happens in the ‘life’ of software” TCS2411 Software Engineering

TCS2411 Software Engineering Lecture Objectives To look at the ‘life cycle’ of a software To understand the software process and its related elements To relate to the different software engineering paradigms TCS2411 Software Engineering

Software Engineering Layers a “quality” focus process model methods tools TCS2411 Software Engineering

TCS2411 Software Engineering Software Process Activities in software projects Characterised by a common process framework Framework activities - task sets Umbrella activities “Process maturity” enables development of quality software products TCS2411 Software Engineering

Common Process Framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities TCS2411 Software Engineering

TCS2411 Software Engineering Umbrella Activities Software project management Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management TCS2411 Software Engineering

Process as Problem Solving TCS2411 Software Engineering

The Process Model: Adaptability the framework activities will always be applied on every project ... BUT the tasks (and degree of rigor) for each activity will vary based on: the type of project (an “entry point” to the model) characteristics of the project common sense judgment; concurrence of the project team TCS2411 Software Engineering

The Primary Goal: High Quality Remember: High quality = project timeliness Why? Less rework! TCS2411 Software Engineering

The Systematic Process Problem Analysis Design Models Development Solution Testing TCS2411 Software Engineering

TCS2411 Software Engineering Generic Phases Definition Phase Focus on ‘what’ the software is Development Phase Focus on ‘how’ the software works Maintenance Phase Focus on ‘change’ to the software TCS2411 Software Engineering

TCS2411 Software Engineering Definition Phase Identify information to be processed Identify system behaviour - functions and performance Determine constraints, interfaces, validation criteria Major tasks: System engineering Software project planning Requirements analysis TCS2411 Software Engineering

TCS2411 Software Engineering Development Phase Define data structures, function implementation, procedural details, interfaces Translate design to programming language How testing is performed Major tasks: Software design Code generation Software testing TCS2411 Software Engineering

TCS2411 Software Engineering Maintenance Phase Reapplies definition and development phases to existing software Types of changes: Correction Adaptation Enhancement Prevention TCS2411 Software Engineering

TCS2411 Software Engineering Waterfall Model TCS2411 Software Engineering

Waterfall Model Characteristics The classic life cycle - oldest and most widely used paradigm Activities ‘flow’ from one phase to another If there are corrections, return to a previous phase and ‘flow’ from there again Major advantages: Good for planning and well-defined/repeated projects TCS2411 Software Engineering

Problems of Waterfall Model Real projects often follow the sequence All requirements may not be stated explicitly by customer Customer only sees the results after some time Developers are often delayed at certain phases TCS2411 Software Engineering

TCS2411 Software Engineering Prototyping Model Requirements gathering and refinement Building prototype Quick design Customer evaluation Refining Engineer product Start Stop TCS2411 Software Engineering

Prototyping Model Characteristics Developer and customer determine objectives and draft requirements Prototype quickly produced and evaluated by customer Prototype then refined, and re-evaluated Process iterated, before final product development Advantages: Customer participation and better requirements TCS2411 Software Engineering

Problems of Prototyping Model Problem 1: Customer may see prototype as working model and expects fast results Problem 2: Developer compromised when producing prototype quickly, e.g. different operating system or programming language TCS2411 Software Engineering

Rapid Application Development (RAD) Business Modeling Data Process Application Generation Testing & Turnover Team #1 Team #2 Time period TCS2411 Software Engineering

TCS2411 Software Engineering RAD Characteristics “High-speed” version of waterfall model Primarily for information systems applications Requirements well-understood, fully functional system produced in short time The application modularised - major functions can be completed in 3 months Separate teams complete the functions, then integrated as a whole Requires human resource and commitment TCS2411 Software Engineering

TCS2411 Software Engineering Incremental Model TCS2411 Software Engineering

Incremental Model Characteristics Software separated into different “increments” - complete working portions Focus on delivery of operational product with each increment - can be evaluated Useful when insufficient staff and can be planned to manage technical risks, e.g. waiting for new hardware TCS2411 Software Engineering

TCS2411 Software Engineering Spiral Model TCS2411 Software Engineering

Spiral Model Characteristics Originally proposed by Boehm, couples iterative nature of prototyping and the systematic aspects of waterfall model Software is developed in series of incremental releases Each iteration produces a more complete product Better management through risk analysis TCS2411 Software Engineering

Problems of Spiral Model May be difficult to convince customers that evolution is controllable Demands risk assessment expertise - major risk will cause problems if not identified Relatively new and not widely used - cannot determine performance TCS2411 Software Engineering

Component Assembly Model Extract components yes Identify candidate components Look up components in library Available? Construct System no Build components TCS2411 Software Engineering

Component Assembly Characteristics Use of object-oriented technology Components - classes that encapsulate both data and algorithms Components developed to be reusable Paradigm similar to spiral model, but engineering activity involves components System produced by assembling the correct components TCS2411 Software Engineering

Fourth Generation Techniques (4GT) TCS2411 Software Engineering

TCS2411 Software Engineering 4GT Characteristics Use of software tools that allow software engineer to specify s/w characteristics at higher level The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use, codes generated may not be efficient TCS2411 Software Engineering

TCS2411 Software Engineering Other Process Models Component assembly model—the process to apply when reuse is a development objective Concurrent process model—recognizes that different part of the project will be at different places in the process Formal methods—the process to apply when a mathematical specification is to be developed Cleanroom software engineering—emphasizes error detection before testing TCS2411 Software Engineering

TCS2411 Software Engineering Conclusion The paradigm used for development of software depends on a number of factors People - staff & users Software product Tools available Environment Existing models makes development process clearer, but they can be evolved to become new paradigms TCS2411 Software Engineering

TCS2411 Software Engineering References “Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001 “Software Engineering” by Ian Sommerville, Addison-Wesley, 2001 TCS2411 Software Engineering