Software Engineering Unit 2
Software Engineering Unit 2
UNIT – 2 [Part – I]
PROCESS MODELS
2.0 Process Models – Definition
* It is 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 provide a useful roadmap for software
engineering work
COMMUNICATION
PLANNING
=> Estimating
=> Scheduling
=> Tracking
MODELLING
=> Analysis
=> Design
CONSTRUCTION
=> Code
=> Test
DEPLOYMENT
=> Delivery
=> Support
=> Feedback
32
Increment # n
Delivery of
Nth Increment
Software Functionality & Features
Increment # 2
Delivery of
2nd Increment
Increment # 1
Delivery of
1st Increment
=> Communication
=> Planning
* The plan addresses the modification of the core product to better meet the needs of the
customer and the delivery of the additional features and functionality
* This process is repeated for each increment delivery, until the complete product is
developed
* Unlike prototyping model, the incremental model focuses on the delivery of an
operational product with each increment
* This model is particularly useful, when staffing is unavailable for a complete
implementation by the business deadline that has been established for the project
* Early increments can be implemented with fewer people. If core product is well
received additional staff can be added to implement the next increment
* Increments can be planned to manage technical risks
* For example a major availability of new hardware is under development, whose
delivery date is uncertain
* So plan early increments in a way that avoids the use of this hardware, there by
enabling partial functionality to be delivered to end-users without inordinate delay
Modeling
Construction
=> Business
Modeling => Component
=> Data Reuse
Modeling => Automatic
=> Process Code
Communication Generation
Modeling
=> Testing
Planning Construction
=> Component
Team # 1 Reuse
=> Automatic
Modeling Code
Generation
=> Business => Testing
Modeling
=> Data
Modeling
=> Process
Modeling Deployment
=> Integration
Construction => Delivery
=> Feedback
=> Component
Reuse
=> Automatic
Code
Generation
=> Testing
60 – 90 days
35
Communication:
* It works to understand the business problem and the information characteristics that the
software must accommodate
Planning:
* It is essential because multiple software teams work in parallel on different system
functions
Modeling:
* It encompasses three major phases;
=>Business modeling
=> Data modeling
=> Process modeling
* It establishes design representation that serves as the basis for RAD’s construction
activity
Construction:
* It emphasizes the use of pre-existing software components and the application of the
automatic code generation
Deployment:
* It establishes a basis for subsequent iterations, if required
RAD – Drawbacks:
(1) For large but scalable projects, RAD requires sufficient human resources to create the
right number of RAD teams
(2) If developers and the customers are not committed to rapid fire activities necessary to
complete the system in a much abbreviated time frame, RAD projects will fail
(3)If a system cannot be properly modularized, building the component necessary for
RAD will be problematic
(4) 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
(5) RAD may not be appropriate, when technical risks are high [e.g. when a new
application heavy use of new technology]
36
Types:
(1) Prototyping Model
(2) Spiral Model
(3) Concurrent Development Model
Quick Plan
Deployment
Construction of
Prototype
37
Communication:
* The prototype model begins with communication
* The software engineer and customer meet and define the overall objectives for the
software
=> Identify what ever requirements are known
=> Outline areas where further definition is mandatory
Quick design:
* The quick design focuses on a representation of those aspects of the software that will
be visible to the customer / end user
Example:
* Human interface Layout (Or0 Output display formats
Construction of prototype:
* Ideally the prototype serves as a mechanism for identifying software requirements
* If the working prototype is built, the developer uses the existing programs fragments
that ensure working programs to be generated quickly
Deployment:
* The prototype is deployed and evaluated by the customer
* Feedback is used to refine requirements for the software
Drawbacks:
(i) The customer sees what appears to be a working version of the software, unaware that
the prototype is held together
38
(ii) The developer makes the implementation compromises in order to get a prototype
working quickly
(iii) An inefficient algorithm may be implemented simply to demonstrate capability
Planning
=> Estimation
=> Scheduling
=> Risk Analysis
Communication Modeling
=> Analysis
=> Design
Start
Deployment Construction
=> Delivery => Code
=> Feedback => Test
Definition:
* It is evolutionary software process model that combines the iterative nature of
prototyping with the controlled and systematic aspect of the water fall model
39
(ii) It enables the developer to apply the prototyping approach at any stage in th evolution
of the product
(iii) It maintains the systematic stepwise approach suggested by classic life cycle and
incorporates it into iterative framework
None
Modeling Activity
Under
Development
Under Review
Awaiting
Changes
Base lined
Under
Revision
Done
* At any given time the modeling activity may be in any one of the states
* All activities exist concurrently, but reside in different states
Example:
* Initially in a project, the communication activity has completed its first iteration and
exists in awaiting change state
* When initial communication was completed, the modeling activity exists in none state,
makes a transition from none state into the under development state
* If customer indicates changes in requirements, the modeling activity moves from under
development into awaiting change state
* A series of events will trigger transition from state to state for each of the software
engineering activities, actions (Or) tasks
* During early stages of design [a software engineering action that occurs during the
modeling activity] an inconsistency in the analysis model will trigger the analysis action
from the done state into the awaiting change state
Advantages:
(1) The concurrent process model provides an accurate picture of the current state of a
project
(2) It defines the software engineering activities, actions and tasks as a network, instead
of sequence of events
(3) Each activity, action (Or) tasks on network exists simultaneously with other activities
=> Reuse
* It suggests a process flow that is iterative and incremental providing the evolutionary
feel
Elaboration
Inception
Planning
Modeling
Construction
Communication
Construction
Deployment
Release
Transition
Software
Increment
Production
Example:
=> User Manuals
=> Trouble shooting guides
=> Installation procedures
(5) Production Phase:
* During these phase the
=> On going use of the software is monitored
=> Support for the operating environment [infrastructure] is provided
=> Defect reports and requests for changes ar5e submitted and evaluated
45
* There are Six requirements which a software requirements document should satisfy:
(i) It should only specify external system behavior
(ii) It should specify constraints on the implementation
(iii) It should be easy to change
(iv) It should serve as a reference tool, for system maintainers
(v) It should record forethought about the life cycle of the system
(vi) It should characterize acceptable responses to undesired events
CHAPTER DESCRIPTION
Introduction This should describe
=> The need for the system
=> Its functions
=> Explain how it will work with other
systems
=> How the system fits into the overall
business
Glossary This should describe
=> The technical terms used in the
document
* Here no assumption should be made
about the experience or expertise of the
reader
System Models This should set out the relationship
between
=> The system components and its
environment
* This might include
=> Object Models
=> Data Flow Models
=> Semantic Data Models
48
Functional Requirements Definition * The services provided for the user should
be described in this section
* This description may use
=> Natural Language
=> Diagrams
=> Other notations
Non-Functional Requirements Definition This should describe
=>The constraints imposed on the software
=> Restrictions on the freedom of the
designer
=> The product and the process standards
followed should be specified
* It includes
=> Details of specific data representation
=> Response time and memory
requirements etc..