Introduction to Software Development (Software Engineering - I)

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
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.
Multimedia Specification Design and Production 2013 / Semester 1 / week 7 Lecturer: Dr. Nikos Gazepidis
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Project Management
CS487 Software Engineering Omar Aldawud
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
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.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Process Models
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
CS 501: Software Engineering
CS 425/625 Software Engineering Software Processes
©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.
Software Life Cycle Model
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 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
RAD Model BY - Dhivakaran.JM.
Chapter 2 The process Process, Methods, and Tools
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.
 Software Models.  A software life-cycle model is a descriptive and diagrammatic representation of the software life-cycle. This includes a series of.
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
©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.
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,
Prescriptive Process Models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering MCS-2 Lecture # 6
1/23 Prescriptive Process Models. 2/23 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive.
An Introduction to Software Engineering
Chapter 6 Prototyping, RAD, and Extreme Programming Systems Analysis and Design Kendall & Kendall Sixth Edition.
Software Process Model
SOFTWARE ENGINEERING MCS-2 LECTURE # 4. PROTOTYPING PROCESS MODEL  A prototype is an early sample, model or release of a product built to test a concept.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Software Development Life Cycle (SDLC)
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
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.
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.
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
Software Processes (a)
Chapter :Software Process Model
Chapter 2 SW Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Software Life Cycle Models
Prescriptive Process Models
Software life cycle models
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
SNS College of Engineering Coimbatore
The Waterfall Model Also known as: classic life cycle, the waterfall model, the linear model Rarely projects are sequential (allows iteration indirectly)
Evolutionary Software Process Models
Information Systems Development (ISD) Systems Development Life Cycle
Presentation transcript:

Introduction to Software Development (Software Engineering - I) Course Instructor: Kashif Ihsan Kashif Ihsan, Lecturer CS, MIHE

Chapter # 03 Process Models Table of Contents: Introduction Linear Sequential Model System Development Life Cycle (SDLC) Prototyping Model Throw Away Prototype Evolutionary Prototype Rapid Application Development Model Evolutionary Software Model The Incremental Model The Spiral Model Kashif Ihsan, Lecturer CS, MIHE

Software Development Process Software development process is a coherent (logically, orderly) set of activities for specifying, designing, implementing and testing software systems. A software process model is an abstract (theoritical) representation of a process. It presents a description of a process from some particular perspective. Kashif Ihsan, Lecturer CS, MIHE

Software Development Process A software development process model defines software development phases, their sequence, tools and methods to be used, while trying to maximize quality of software and minimize resource usage such as money and time and man-power. Kashif Ihsan, Lecturer CS, MIHE

Software Process Model The software process model maybe defined as a simplified description of a software process, presented from a particular perspective. Examples of process perspectives are Work-flow perspective Data-flow perspective Role perspective Kashif Ihsan, Lecturer CS, MIHE

Work-Flow Perspective The work-flow model shows the sequence of activities in the process along with their inputs, outputs and dependencies. The activities in the model represent human actions. Kashif Ihsan, Lecturer CS, MIHE

Data-Flow Perspective The data-flow model represents the process as a set of activities, each of which carries out some data transformation. It shows how the input provided to the process is transformed to an output. Kashif Ihsan, Lecturer CS, MIHE

Role Perspective The role perspective represents the roles of people involved in the software process and the activities for which they are responsible. It represents who does what. Kashif Ihsan, Lecturer CS, MIHE

Linear Sequential Model (LSM) It is also called Waterfall Model. This model suggests a systematic sequential approach to software development. Linear sequential model starts at the system level and go through analysis, design, coding and testing. Kashif Ihsan, Lecturer CS, MIHE

Linear Sequential Model Requirement gathering Analysis design coding testing implementation

Advantages of LSM The oldest and mostly used model. Formal review at the end of each phase allows maximum management control. It provide a template into which method for analysis, design, coding and testing can be placed. Kashif Ihsan, Lecturer CS, MIHE

Disadvantages of LSM The end-user does not see the solution until the system is nearly complete. Users get a system that meets the need as understood by the developers; this may not be what was really needed. Often, users’ needs go unstated or are misunderstood. Kashif Ihsan, Lecturer CS, MIHE

Disadvantages of LSM Users cannot easily review intermediate products and evaluate whether a particular product meets their business requirements. The activities can not be reversed back at any stage. It is time consuming. Kashif Ihsan, Lecturer CS, MIHE

System Development Life Cycle SDLC use the linear sequential approach toward the development of s/w. The only change that makes SDLC different from LSM is that the activities can be reversed back at any stage. Kashif Ihsan, Lecturer CS, MIHE

System Development Life Cycle Requirement gathering Analysis design coding testing implementation

Prototyping Model One of the major disadvantage of Linear Sequential Model was that the customer can not tell all the requirements at the start. So, in order to get all the requirements from the user efficiently, prototyping model was introduced. Kashif Ihsan, Lecturer CS, MIHE

Prototype Before designing the actual product, a rough sketch (driving s/w) is drawn which is known as prototype. Prototype means an early sample or model built to test a concept or process or to act as a thing to be replicated or learned from. Kashif Ihsan, Lecturer CS, MIHE

Stages of Prototyping Prototyping model consist of three stages: Listen to the customer Build & revise stage Customer test stage Kashif Ihsan, Lecturer CS, MIHE

Stages of Prototyping Kashif Ihsan, Lecturer CS, MIHE Build & Revise Customer Test customer Listen to Kashif Ihsan, Lecturer CS, MIHE

Prototyping Model Requirement gathering analysis design coding testing Kashif Ihsan, Lecturer CS, MIHE

Types of Prototyping Throw Away Prototype Evolutionary Prototype Basically there are two types of prototyping: Throw Away Prototype Evolutionary Prototype Kashif Ihsan, Lecturer CS, MIHE

Throw Away Prototype This approach is also called Closed Ended Approach. This approach suggests that the constructed prototype should be discarded and the software should be build from the scratch. Kashif Ihsan, Lecturer CS, MIHE

Throw Away Prototype The objective of throw-away prototyping is to validate or derive the system requirements. The prototyping process starts with those requirements which are poorly understood. Kashif Ihsan, Lecturer CS, MIHE

Evolutionary Prototype This is also called Open Ended Approach. In this approach, the prototype constructed will be finally converted into the final product. The main goal when using Evolutionary Prototyping is to build a very robust prototype in a structured manner and constantly refine it. Kashif Ihsan, Lecturer CS, MIHE

Evolutionary Prototype The objective of evolutionary prototyping is to deliver a working system to end-users. The development starts with those requirements which are best understood. Kashif Ihsan, Lecturer CS, MIHE

Evolutionary Prototyping Kashif Ihsan, Lecturer CS, MIHE

Advantages of Prototyping Early visibility of the prototype gives users an idea of what the final system looks like. Encourages active participation among end users and the developer/producer. Helps to deliver the product in the best possible quality. Kashif Ihsan, Lecturer CS, MIHE

Disadvantages of Prototyping As the prototype is given to the customer, the customer may realize that this is the final product. Structure of system can be damaged since many changes could be made. Kashif Ihsan, Lecturer CS, MIHE

Disadvantages of Prototyping It is not suitable for very large applications /softwares. It may slow the development process, if there are large number of end users to satisfy. Kashif Ihsan, Lecturer CS, MIHE

RAD Model RAD stands for “Rapid Application Development”. It is an incremental software development model with very short time period (development cycle). In this model, the software engineer use the linear sequential approach using component based construction. Kashif Ihsan, Lecturer CS, MIHE

RAD Model The development process starts with the development of preliminary data models and business process models. In the next stage, requirements are verified using prototyping, eventually to refine the data and process models. These stages are repeated iteratively. Kashif Ihsan, Lecturer CS, MIHE

RAD Model Kashif Ihsan, Lecturer CS, MIHE

RAD Model Business Modeling: The information flow among business functions is defined by answering questions like what information drives the business process, what information is generated, who generates it, where does the information go, who process it and so on. Kashif Ihsan, Lecturer CS, MIHE

RAD Model Data Modeling: The information collected from business modeling is refined into a set of data objects (entities) that are needed to support the business. The attributes (character of each entity) are identified and the relation between these data objects (entities) is defined. Kashif Ihsan, Lecturer CS, MIHE

RAD Model Process Modeling: The data objects defined in the data modeling phase are transformed to achieve the information flow necessary to implement a business function. Processing descriptions are created for adding, modifying, deleting or retrieving a data object. Kashif Ihsan, Lecturer CS, MIHE

RAD Model Application Generation: Testing: Automated tools are used to facilitate construction of the software. Testing: Many of the programming components have already been tested since RAD emphasizes re-use. This reduces overall testing time. But new components must be tested and all interfaces must be fully exercised. Kashif Ihsan, Lecturer CS, MIHE

Advantages of RAD Model It use already existent components. Development life cycle is very short. Testing is reduced. Kashif Ihsan, Lecturer CS, MIHE

Disadvantages of RAD Model For large system, RAD model requires sufficient human resources. The customer and developer should be active, because the laziness of any one may lead to failure. Kashif Ihsan, Lecturer CS, MIHE

Evolutionary Software Model Evolutionary software model is the combination of Linear Sequential Model and the Prototyping. There are two main types of Evolutionary Software Models: The Incremental Model The Spiral Model Kashif Ihsan, Lecturer CS, MIHE

Incremental Model Incremental model use the linear sequential approach with the iterative nature of prototyping. Incremental model delivers the software in small but usable pieces called the “increment”. First increment is called the core product in which the basic requirement are fulfilled. Kashif Ihsan, Lecturer CS, MIHE

Incremental Model The core product than act as input for further increments. More specifically, the model is designed, implemented and tested as a series of incremental builds until the product is finished. Kashif Ihsan, Lecturer CS, MIHE

Incremental Model Kashif Ihsan, Lecturer CS, MIHE

Advantages of Incremental Model It is well suited in the case where the staffing is unavailable at the start. Each iteration delivers a functionally operational product and thus customers can get to see the working version of the product at each stage. Kashif Ihsan, Lecturer CS, MIHE

Advantages of Incremental Model Users may experiment with delivered increments while others are being developed. therefore, these serve as a form of prototype system. The main DISADVANTAGE is that it is too time consuming. Kashif Ihsan, Lecturer CS, MIHE

Spiral Model The Spiral Model is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the Linear Sequential Model. Using the Spiral Model. the software is developed in a series of incremental releases. Kashif Ihsan, Lecturer CS, MIHE

Spiral Model Unlike the Iteration Model, where in the first product is a core product, in the Spiral Model the early iterations could result in a paper model or a prototype. However, during later iterations, more complex functionalities could be added. Kashif Ihsan, Lecturer CS, MIHE

Spiral Model A Spiral Model is divided into a number of framework activities, also called task regions. These task regions could vary from 3-6 in number and they are: Customer Communication - tasks required to establish effective communication between the developer and customer. Kashif Ihsan, Lecturer CS, MIHE

Spiral Model Planning - tasks required to define resources, timelines and other project related information /items. Risk Analysis - tasks required to assess the technical and management risks. Engineering - tasks required to build one or more representation of the application. Kashif Ihsan, Lecturer CS, MIHE

Spiral Model Construction & Release - tasks required to construct, test and support (e.g. Documentation and training) Customer evaluation - tasks required to obtain periodic customer feedback so that there are no last minute surprises. Kashif Ihsan, Lecturer CS, MIHE

Kashif Ihsan, Lecturer CS, MIHE

Advantages of Spiral Model It is a realistic approach to the development because the software evolves as the process progresses. In addition, the developer and the client better understand and react to risks at each evolutionary level. The model uses prototyping as a risk reduction mechanism and allows for the development of prototypes at any stage of the evolutionary development. Kashif Ihsan, Lecturer CS, MIHE

Advantages of Spiral Model It maintains a systematic stepwise approach, like the classic waterfall model, and also incorporates into it an iterative framework that more reflect the real world. Kashif Ihsan, Lecturer CS, MIHE

Disadvantages of Spiral Model If in first stages the risk are not managed then it will create problem. It has not been employed as much proven models and hence may prove difficult to ‘sell’ to the client. Kashif Ihsan, Lecturer CS, MIHE

The End Kashif Ihsan, Lecturer CS, MIHE