03 module2-090710094221-phpapp02
TRANSCRIPT
NextBack
In this Module, we look at
• what we mean by a “process”• software development products, processes & resources• several models of the software development process• tools & techniques for process modeling
-- Process is a series of steps involving activities - constraints and resources that produce an - intended output of some kind.-- in building a software product, process is refer to a - life cycle -- software development process is sometimes called - software life cycle -- a process is more than a procedure-- a process may require design to occur before - coding, many different design may be used
-- Process guides our actions by allowing use - examine, control and improve that comprise the - process.-Characteristics of a Process-- The process prescribes all of the major process - activities.-- The process uses resources, subject to a set of - constraints (such schedule) and produces - intermediate and final product.-- The process may be composed that are linked in - some way. The process may be defined as - hierarchy of process, organized so that each sub-- process has its own process models
-- Each process activity has entry and exit criteria, so - that when the activity begins and ends.-- The activities are organized in sequence, so that it - is clear when one activity is performed relative to - the other activities.-- Every process has a guiding principles that explain - the goals of each activity.-- Constraints or controls may apply to an activity, - resource or product.
-Reasons for Modeling Process-- It forms common understanding of the activities, - resources and constraints involved in software - development.-- It helps the development team find - inconsistencies, redundancies and omissions in the - process and in its constituent parts.-- It reflects the goals of development such as - building high-quality software, finding faults in - early development and meeting required budget - and schedule constraints.
-- It helps the development team understand where - tailoring is to occur for the special situation.
-- The waterfall model is a sequential software - development model (a process for the creation of - software) in which development is seen as flowing - steadily downwards (like a waterfall) through the - phases of software developmet.
-- Winston W. Royce (1929–1995), present this - model cited in his article published in 1970.-- It is very useful in helping the developers lay out - what they need to do.-- The biggest problem with the waterfall model is - does not reflect the way the code is really - developed.
In Royce's original waterfall model, the following phases are followed in order:
1.Requirements specification 2.Design 3.Construction (AKA implementation or coding) 4.Integration 5.Testing and debugging (AKA validation) 6.Installation 7.Maintenance
Requirement Analysis
System Design
Coding
ProgramDesign
SystemTesting
Unit & Integration
Testing
Operation & Maintenance
AcceptanceTesting
The Waterfall Model
The software development process in reality.
-- The sashimi model (so called because it features - overlapping phases, like the overlapping fish of - Japanese sashimi) was originated by Peter - DeGrace.-- also referred as the waterfall model with - overlapping phases or with feedback
Requirement AnalysisSystem
Design
The Waterfall Model with overlapping phases / The Waterfall Model with feedback
ProgramDesign
Coding Unit & Integration
TestingSystemTestingAcceptance
TestingOperation & Maintenance
Instructor’s idea about theSashimi Model
-- Prototyping is a partially developed product that - enables customers and developers to examine - some aspect of the proposed system and decide if - it is suitable or appropriate for the finished - product.
-- Design prototyping helps developers assess - alternative design strategies and decide which is - the best for a particular project.
Requirement Analysis
System Design
Coding
ProgramDesign
SystemTesting
Unit & Integration
Testing
Operation & Maintenance
AcceptanceTesting
The Waterfall Model
Prototyping
Verify
Validation
-- The V-Model (or VEE model) is a systems - development model designed to simplify the - understanding of the complexity associated with - developing systems-- a variation of the waterfall model that demonstrate - how the activities are related to analysis and - design -- the focus of the V-Model is on activity and - correctness
The V-Model
-- It requires investigation to ensure that the - developer, user and customer have a common - understanding both of what is needed and what is - proposed.-- it reduce risk and uncertainty in development-- The process of prototyping involves the following - steps:
1. Identify basic requirements-2. Develop initial prototype-3. Review-4. Revise and enhancing prototype
The Prototyping Model.
-- The system requirments are evaluated or executed - in a way that demonstrates the behavior of the - system.-- Once the requirements are specified, it can be - enacted using the software package, so that their - implication can be assess before design begins.
The Operational Specification Model
-- It tries to reduce the opportunity for error by - eliminating several major development steps.-- It uses automated support-- Sample transformation can include: (1) changing - the data representation; (2) selecting algorithms; - (3) optimizing; (4) Compiling.
The Transformational Model
-- Cycle time is the time the documents are written - and the time for the system was delivered.-- To reduce the cycle time is to use development - phase , where two systems functioning in parallel.-- The Operational or Production System being used - by the customer or user-- The Development System is the next version that - is being prepared to replace the current production - system.
The Phased Development Model
-- The system as specified in the requirements - documents are partitioned into subsystems by - functionality.-- The releases are defined by beginning with one - small, functional subsystem and then adding with - each new releases.
-- It delivers the full system at the very beginning - and it changes the functionality of each subsystem - with each new releases.
-- The spiral model is a software development - process combining elements of both design and - prototyping-in-stages, in an effort to combine - advantages of top-down and bottom-up concepts
-- also known as the spiral life cycle model-- it is a systems development method (SDM) used in - Information technology (IT) -- a combination of features of Prototyping Model - and Waterfall Model defined by Barry Boehm (1988)-- The spiral model is intended for large, expensive - and complicated projects
The Spiral Model.
-- It depicts the process, showing the inputs are - transformed to outputs.-- See… A Toolset for Supporting Static and Dynamic - Model Checking
-- It can enact the process, so that the user can see - how intermediate and final products are - transformed over time.-- See… A Toolset for Supporting Static and Dynamic - Model Checking
-- Model Driven Development-- User Experience-- Top-Down to Bottom Design-- Chaos Model-- Evolutionary Prototyping-- ICONIX Process-- Unified Process-- Extreme Programming (XP)