Process Models.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Computer Science Department
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Lecture # 2 : Process Models
Software Process Models
Software Project Management
CS487 Software Engineering Omar Aldawud
CSE 470 : Software Engineering The Software Process.
Chapter 3 Process Models
Chapter 2 Software 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.
Software Process Models
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Alternate Software Development Methodologies
COMP 6710 Course NotesSlide 2-0 Auburn University Computer Science and Software Engineering Course Notes Set 2: Software Process Models Computer Science.
CS 501: Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Life Cycle Model
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
1 CMPT 275 Software Engineering Software life cycle.
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
Software Process and Models
IT Systems Analysis & Design
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.
©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.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Prescriptive Process Models
Software Processes n What is a process?  Sequence of steps required to develop or maintain software n Characteristics  prescribes major activities 
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
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.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 4 프로세스 모델 Process Models
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Introduction to Software Development (Software Engineering - I)
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 Development Life Cycle (SDLC)
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
Software Model Process
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.
Software Engineering CE 501 Prepared by : Jay Dave.
44222: Information Systems Development
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
Jaypee Institute of Information Technology, Noida.
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 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 Life Cycle “What happens in the ‘life’ of software”
SNS College of Engineering Coimbatore
Software Processes (a)
Software Process Models
Software Life Cycle Models
Requirements and the Software Lifecycle
Introduction to Software Engineering
Software life cycle models
Software Process Models
Software Processes Process should be
Software Engineering Lecture 17.
SNS College of Engineering Coimbatore
Presentation transcript:

Process Models

Software Process Models A model is a structured collection of elements that describe characteristics of effective processes. Software Process Model Is the strategy to adopt software engineering as a layered technology A simplified representation of a set of activities whose goal is the development or evolution of software, presented from specific perspective

Prescriptive Models Prescriptive process models define a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality software These Process models are not perfect, but they do provide a useful roadmap Prescribe a set of process elements- framework activities, software engineering actions, tasks, work products, quality assurance and change control mechanisms for each project. Prescribes a workflow - The manner in which the process elements are interrelated to each other (linear, incremental or evolutionary)

The terminology and details of each process model differ, Software engineers have traditionally chosen a generic process framework consisting of the following framework activities which can be applied on any process model Communication Planning Modeling Construction Deployment The terminology and details of each process model differ, but the generic framework activities remain reasonably consistent.

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 The environment in which the work will be conducted

Software Development LifeCycle Software life cycle model depicts the significant phases or activities of a software project from conception until the product is retired.

Phases of Software Development LifeCycle Initiation System Concept Development Planning Requirements Analysis Design Construction/Development (Coding) Integration and Testing Implementation/Deployment Support/Maintenance Disposition

Initiation Problem- Undesirable situations that prevent the organization form fully achieving its purpose, goals, and/or objectives. Opportunity- is a chance to improve the organization even in the absence of specific problems. Directive- is a new requirement that’s imposed by management, government, or some external influence. Reasons of initiation are 3 in general, problem, opportunity, directive

System Concept Development Business need approved by senior official Scope identification Funding (Budget) Preliminary requirements and constraints Feasibility

Planning Describe how the business will operate To ensure the products and /or services provide the required capability on-time and within budget, project resources, activities, schedules, tools, and reviews are defined. Carefully assess risks and risk mitigation strategies Detailed task lists Dependency charts (Task dependency table) Set milestones (Gantt charts) Task and member assignment table

Requirements Phase Functional Requirements Non-functional Requirements specify actions that a system must be able to perform, without taking physical constraints into consideration. Non-functional Requirements developed under certain conditions (e.g. technology, expertise or time dependent). This would include a description of other features, characteristics, and constraints that define a satisfactory system. Data, Interface, Processes Detailed description of data going in and out of the system

Design Phase - How Retain design decisions Architectural design For the maintenance team Ideally, the design should be open-ended Architectural design Decompose the product into modules Top-down design Decide on programming language Decide on reuse All design decisions must be justified clearly Detailed design Design each module: data structures, algorithms

Development Phase Implement the detailed design in code

Integration and Testing Components integrated and tested Testing done to ensure that functional requirements identified in the functional requirement document are satisfied by the developed or modified system.

Implementation/Deployment The system or system modifications are installed and made operational. The phase is initiated after the system has been tested and accepted by the user.

Operations/Maintenance The system operation is ongoing. The system is monitored for continued performance in accordance with user requirements, and needed system modifications are incorporated. Any change once the client has accepted the software The most money is devoted to this phase Problem occurs if lack of documentation

Disposition The disposition activities ensure the orderly termination of the system and preserve the vital information about the system so that some or all of the information may be reactivated in the future if necessary.

The Waterfall Model Winston Royce 1970 Alternate names Linear Sequential Model Classic Life cycle

Introduction- Waterfall A systematic, sequential approach to software development that begins at the system level and progresses through analysis, design, coding, testing, and support. OR A systematic, sequential approach to software development that begins with customer specification of requirements and progresses through planning, modeling, construction, and deployment, culminating in on-going support of the completed software.

Linear Sequential Model Analysis Requirements Design Coding Testing Maintenance System/information engineering

Used when The requirements of a problem are reasonably well understood When work flows from communication through deployment in a reasonably linear fashion. Well defined adaptations or enhancements to an existing system must be made

Disadvantages Real projects rarely follow the sequential flow that the model proposes. It is often difficult for the customer to state all requirements explicitly. A working version of the program will not be available until late in the project time span. Linear nature leads to “blocking states”.

The Incremental model This is a combination of the linear sequential model and the iterative model. The problem is broken into increments, and each increment is tackled as a linear sequence. Further increments can either be done after the previous ones, or can overlap with the previous ones. Incremental delivery focuses on the delivery of an operational product with each increment. Early increments are stripped-down versions of the final product, but they do provide capability that serves the user and also provides a platform for evaluation by the user.

Incremental model - Advantages Less staffing available for a complete implementation by the business deadline that has been established for the project (Early increments can be implemented with fewer people) Early delivery is guaranteed Progress of the whole project is not delayed if one of the resources is not available for part of it Increments can be planned to manage technical risks

Incremental Model

Rapid Application Development Rapid Application Development is an adaptation of linear sequential software development process model that emphasises an extremely short development cycle. A component-based construction approach is used. To use this approach, the project scope must be constrained and the requirements should be well understood. A task that should take no more than ninety days to complete is modelled, generated and implemented. There can be several teams working on different components during this ninety day time-box

Like other process models, the RAD approach maps into the generic framework activities Communication, planning, modeling, construction, deployment

Advantages of RAD Less time Reusability

Problems For large, scalable projects, RAD requires sufficient human resources to create the right number of RAD teams RAD requires developers and customers who are committed to the rapid-fire activities necessary to complete a system in this time frame, or failure will result. RAD is not suitable for many project types. (must be modularized enabling each function to be completed in less than 3 months) If high performance is an issue, and performance is to be achieved through tuning the interfaces to system components, the RAD approach may not work RAD may not be appropriate when technical risks are high

The Prototyping Model The developer and customer define the overall (general) objectives for the software. In other cases, developer may be unsure of the efficiency of an algorithm, the adaptability of an operating system, or the form that human-machine interaction should take A quick design focuses on what the customer will see. From this, a prototype is constructed.

Assists to better understand what is to be Prototyping can be treated as a standalone process model More commonly treated as a TECHNIQUE that can be implemented within the context of any one of the process models Assists to better understand what is to be built when requirements are fuzzy

A prototype is a smaller-scale, representative or working model of the user requirements or a proposed design for an information system. The user evaluates it and improvements are made. This continues in an iterative fashion until a satisfactory product is achieved

The Prototyping Model Quick plan Communication Modeling Quick design Deployment Delivery &Feedback Construction of prototype

Customer Evaluation of Prototype Design Requirements Gathering Quick Design Refine Requirements Build Prototype Customer Evaluation of Prototype Design Implement Test Maintain Customer satisfied Requirement has multiple engineering activities.. Elicitation, and validation etc

Throw away prototyping Prototype merely used for the identification of requirements Evolutionary prototyping Final product will be based upon it

Benefits Misunderstandings between developers and users identified Incomplete requirements found A working system is available quickly to demonstrate feasibility Used as a basis for writing the specification for production of quality software

Disadvantages No Non-functional requirements Change deteriorates software Time less, so no specification maintained

Problems The customer sees a working version and expects the finished product to be available in a short time. This puts pressure on the developer to take short cuts, at the expense of quality and maintainability. The developer may make compromises for speed. Inappropriate tools may be used or inefficient algorithms may be used, which then become integral parts of the system. If the user isn’t focused on what they want, the system may never be completed.

The Spiral model Boehm’s (1988) spiral model couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. Software is developed in a series of incremental releases. During the early releases, there may be just a paper model, but the system becomes increasingly more complete. There are a number of framework activities (Customer communication, Planning, Risk analysis, Engineering, Construction and release, Customer evaluation). Unlike any of the other models, this model keeps revisiting the system throughout its lifetime.

It has two main distinguishing features. The spiral model is a risk-driven process model generator that is used to guide multi-stakeholder concurrent engineering of software intensive systems It has two main distinguishing features. One is a cyclic approach for incrementally growing a system’s degree of definition and implementation while decreasing its degree of risk. The other is a set of anchor point milestones for ensuring stakeholder commitment to feasible and mutually satisfactory system solutions.

Spiral Model

Spiral Model Spiral model is divided into a number of framework activities, named as task regions.3-6 task regions. Each task region has its own task sets.

Advantages Explicit risk handling More realistic and appropriate for large scale projects-research based Evolutionary

Differences between Spiral and Incremental Model Both models, incremental and spiral offer partial deliveries to the customer at different phases BUT …. The Incremental Model focuses on the delivery of a fully-tested production code in a step-by-step fashion; each step adds more functionality The Spiral Model focuses on the development of prototypes at each stage which will be used only for information gathering and then throw-away

Formal Methods Model Formal methods enable a software engineer to specify, develop, and verify a computer-based system by applying a rigorous, mathematical notation. Variation called cleanroom software engineering is currently applied. Eliminates many of the problems that are difficult to overcome.

Advantages Ambiguity, incompleteness, and inconsistency can be discovered and corrected easily Enable software engineers to discover and correct errors that might go undetected Offers the promise of defect-free software

Disadvantages The development of formal models is currently quite time consuming and expensive. Because few software developers have the necessary background to apply formal methods, extensive training is required. It is difficult to use the models as a communication mechanism for technically unsophisticated customers.

Agile Process An Agile Process implies a A light Process – prefers a small set of activities and artifacts An Adaptive Process – emphasizes on handling changing requirements

Conclusion There are a variety of process models, each of which can be used successfully. Once a process model has been used to develop a system, documentation style, organisation and structure should either remain in the format of that process model, or all be converted to a different process model. This is particularly important where automated tools are used.

ASSIGNMENT

Case study “XYZ”, an emerging group of schools in the market, is planning to develop a “Virtual Class room System”. In this system, students will register themselves for different courses online. The management wants to see the automation of Lectures, Attendance and Registration to be done as soon as possible due to its immediate need and market competition. The further focus will be on developing online Quizzes and Assignments as well as all issues related to academia of the selected courses. The higher authorities are taking this project as a break through product, which will accelerate their business in the current market remarkably. Risks can arise and must be managed accordingly. If the software is developed successfully, higher management has plans to launch it commercially.  What Software Process Model would you choose and why? State your assumptions clearly, if any, and give logical reasons in support to your answer.

Case study FC College University is currently running through different departments like Administration, Accounts, Examination, Admission, Library, Computer Labs, Faculty Management, and Student Management etc. Every department has its own specific processes and each department is using computer-based system to some extent but not complete computer based solutions. There is also inter-departmental communication for the smooth running of all functions in respective departments. It is decided by the higher management that all the departments should be integrated under one system and that system should accommodate all the processes existing in all departments. Higher Management wants to see this system within this year. Risks, which can arise, should be accommodated implicitly keeping the time factor in mind. Verification and validation factors must be administered accordingly. What Software Process Model would you choose and why? State your assumptions clearly, if any, and give logical reasons in support to your answer.

References Software Engineering-Chapter 3 By Roger S. Pressman 6th edition