SlideShare a Scribd company logo
1 of 19
30
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
2.1 THE WATER FALL MODEL
* It is sometimes called the classic life cycle
* It suggests a systematic, sequential approach to software development that begins with
customer specification of requirements and progress through
=> Planning
=> Modeling
=> Construction and
=> Deployment
Problems encountered in waterfall model:
(1) Real projects rarely follow the sequential flow. As a result changes cause confusion as
the project team proceeds
(2) It is difficult for the customer to state all requirements explicitly
(3) The customer must have patience
* The linear nature of the water fall model leads to “ Blocking State” in which some
project team members must wait for other members of the team to complete dependent
task
* The water fall model can serve as a useful process model in situations where
=> Requirements are fixed and work is to proceed to completion in a
linear manner
31

COMMUNICATION
=> Project Initiation
=> Requirement
Gathering

PLANNING
=> Estimating
=> Scheduling
=> Tracking

MODELLING
=> Analysis
=> Design

CONSTRUCTION
=> Code
=> Test

DEPLOYMENT
=> Delivery
=> Support
=> Feedback
32
2.2 INCREMENTAL PROCESS MODELS
* The incremental model combines elements of the water fall model applied in an
iterative fashion
* This model applies linear sequences in a staggered fashion as calendar time progresses
* Each linear sequence produces deliverable “increments” of the software
Main Idea:
* When an incremental model is used the first increment is called “ CORE PRODUCT”
* i.e. the basic requirements are addressed but main supplementary features remain
undelivered
* The core product is used by customer (Or) undergoes detailed evaluation
* As a result of evaluation a plan is developed for next increment

Increment # n

Software Functionality & Features

Delivery of
Nth Increment

Increment # 2
Delivery of
2nd Increment

Increment # 1
Delivery of
1st Increment

Project Calendar Time
33
=> Communication
=> Planning
=> Modeling {Analysis, Design}
=> Construction {Code, Test}
=> Deployment {Delivery, Feedback}

* 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
2.3 RAPID APPLICATION DEVELOPMENT MODEL [RAD]
* The RAD model is a “high speed” adaptation of the water fall model, in which rapid
development is achieved by using a component, based construction approach
* The RAD process enables a development team to create a “fully functional system”
with in a very short period [e.g.60 to 90 days], if the requirements are well understood
and project scope is constrained
Team # n

Modeling
=> Business
Modeling
=> Data
Modeling
=> Process
Modeling

Team # 2
Modeling

Communication

Construction

=> Business
Modeling
=> Data
Modeling
=> Process
Modeling

Planning

34

=> Component
Reuse
=> Automatic
Code
Generation
=> Testing
Construction

Team # 1
Modeling
=> Business
Modeling
=> Data
Modeling
=> Process
Modeling

=> Component
Reuse
=> Automatic
Code
Generation
=> Testing

Deployment

Construction
=> Component
Reuse
=> Automatic
Code
Generation
=> Testing

60 – 90 days

=> Integration
=> Delivery
=> Feedback
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
2.4 EVOLUTIONARY PROCESS MODELS
* Like all computer systems software also evolve over a period of time
* Making a straight line path to an end-product is unrealistic, if business and product
requirements often change as development proceeds
* Suppose if a set of core product (Or) system requirement is well understood, but the
details of product (Or) system extensions have not yet to be defined.
* These case, a software engineer needs a process model that has been designed to
accommodate a product that evolves over time.
* The evolutionary process modes are more suitable for the above case
Types:
(1) Prototyping Model
(2) Spiral Model
(3) Concurrent Development Model
2.4.1 PROTOTYPE MODEL

Quick Plan

Communication

Modeling Quick
Plan

Deployment
Construction of
Prototype
37
* The prototype model may offer the best approach, if
=> Customer defines a set of objectives for software, but does not identify
detailed in put, processing (Or) output requirements
=> In other cases, the developer may be unsure of the efficiency of an algorithm
(Or) the form that human-machine interaction should take
* The prototyping model assists the software engineer and the customer to better
understand
=> What is to be built, when requirements are fuzzy?
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
2.4.2 SPIRAL MODEL:
Planning
=> Estimation
=> Scheduling
=> Risk Analysis

Communication

Modeling
=> Analysis
=> Design

Start

Deployment
=> Delivery
=> Feedback

Construction
=> Code
=> 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
Two main features
(i) A cyclic approach for incrementally growing a system’s degree of definition and
implementation while decreasing its degree of risk
(ii) An anchor point mile stones for ensuring stake holders commitment to feasible and
mutually satisfactory system solutions
Main idea:
* A spiral model is divided into a set of frame work activities, defined by the software
engineering team
* Each frame work activities represent one segment of spiral path
* As evolutionary process begins, the software team performs activities that are implied
by a circuit around the spiral in a clockwise direction beginning at the centre
* The first circuit around the spiral might result in development of a product specification
* Subsequent passes might be used to develop a prototype and more sophisticated
versions of the software
* Each pass through the planning region results in adjustments to the project plan
* Cost and Schedule are adjusted based on feedback derived from the customer after
delivery
* Using spiral model software is developed in a series of evolutionary release
* During each iteration the release might me a paper model (Or) prototype
* During later iterations, increasingly more complete versions of the engineered system
are produced
* Unlike other process model that end when software is delivered, the spiral model can be
adapted to apply throughout the life of the software
* In the above fig first circuit represents concept development project
* Once concept is developed into actual product, process proceeds outwards on spiral, A
new product development project commences
* Later circuit around the spiral might be used to represent “product enhancement
project”
* Whenever a change is initiated the process starts at the appropriate entry point
Advantages:
(i) It is a realistic approach to the development of large-scale system and software
40
(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
2.4.3 CONCURRENT DEVELOPMENT MODEL
* It is also called as “Concurrent Engineering”
* It can be represented schematically as a series of framework activities, software
engineering actions and tasks and their associated states

None
Modeling Activity

Under
Development

Under Review
Awaiting
Changes

Under
Revision

Base lined

Done

One Element of concurrent process model
41
* 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
2.5 THE UNIFIED PROCESS
* It is an attempt to draw on the best features and characteristics of conventional software
process models
* But characteristics them in a way that implements many of the best principles of agile
software development
* The unified process emphasizes the important role of software architecture and help the
architect focus on,
=> Right goals
=> Understandability
=> Reliance to future changes and
42
=> 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

Phases of the Unified Process:
(1) Inception Phase:
* This phase combines both customer communication and planning activities
43
* By combining these the
=> Business requirements for the software are identified
=> A rough architecture for the system is proposed
=> A plan for the iterative, incremental nature of the ensuring project is
developed
* In general a use-case describes a sequence of actions that are performed by an actor
[e.g. a person, a machine]
* Use-case helps to identify the scope of the project and provide a basis for project
planning
(2) Elaboration Phase:
* It refines and expands the preliminary use-cases that were developed on inception
phase
* It expands the architectural representation to include five different views of the
software:
=> Use-case model
=> Analysis Model
=> Design Model
=> Implementation Model
=> Deployment Model
* The modification to the plan may be made at this time
(3) Construction Phase:
* This phase develops (Or) acquires the software components that will make each usecase operational for end users
* All necessary and required features and functions of software release are imp[lamented
in source code
* After implementing components, unit tests are designed and executed for each
* In addition
(4) Transition Phase:
* The software is given to end-users for Beta testing
* The users feed back the reports both defects and necessary changes
* This phase allow software team creates the necessary support information
44
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
UNIT – 2 [Part – II]
SOFTWARE REQUIREMENTS
2.6 Functional Requirements:
* These are statements of services the system should provide
=> how the system should react to particular inputs and
=> how the system should behave in particular situations
* In some cases, the functional requirements may also explicitly state
=> What the system should not do
* The functional requirements definition of a system should be both
=> Complete [i.e. It means that all services required by the user should be
defined]
=> Consistent [i.e. it means that requirements should not have
contradictory definitions]
2.7 Non – Functional Requirements:
* These are constraints on the services (Or) functions offered by the system
* They include
=> Timing Constraints
=> Constraint on development process
=> Standards and so on…
* Some non-functional requirements may be process rather than product requirements
* Customer imposes these process requirements for two reasons;
=> System Quality
=> System Maintainability
Non – Functional Requirements Types:
Non – Functional Requirements

Product Requirements

Process Requirements

External Requirements
46
(i) Product Requirements:
* These requirements results from the need for the delivered product, to behave in a
particular way
Example:
* Requirements on how fast the system must execute and how much memory it requires
* Reliability Requirements [i.e. acceptable failure rate]
* Portability Requirements
(ii) Organizational Requirements:
* These requirements are consequence of organizational policies and procedures
Example:
* Implementation requirements such as programming language (Or) design method used
* Delivery Requirements which specify when the product and its documentation to be
delivered
(iii) External Requirements:
* This requirements arise from factors external to the system and its development process
Example:
* Interoperability Requirements which specify how the system interacts with systems in
other organizations
* Legislative Requirements, which ensure that the system operates within the law
2.8 The Software Requirements Document
* It is also called as Software Requirement Specification [SRS]
* This requirement document includes;
=> Requirement definition
=> Requirement Specification
* The software requirement document is not a design document
* It should set out
=> what the system should do without specifying, how it should be done
* If services, constraints and properties specified in the document are satisfied by
software design than,
=> the design is an acceptable solution to the problem
47
* 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
Structure of a Requirements document:
CHAPTER
Introduction

DESCRIPTION
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

Glossary

business
This should describe
=> The technical terms used in the
document
* Here no assumption should be made
about the experience or expertise of the

System Models

reader
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..
System Evolution

This should describe
=> The fundamental assumption on which
the system is based
=> Anticipated changes due to hardware
evolution

Requirements Specification

=> Changing user needs etc..
This should describe the functional
requirements in more detail
Example:
Interfaces to other systems may be defined

More Related Content

What's hot

Software Process Model in software engineering
Software Process Model in software engineeringSoftware Process Model in software engineering
Software Process Model in software engineeringMuhammadTalha436
 
software process model
software process modelsoftware process model
software process modeljuhi kumari
 
Unified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptUnified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptShweta Ghate
 
Software Engineering unit 5
Software Engineering unit 5Software Engineering unit 5
Software Engineering unit 5Abhimanyu Mishra
 
software engineering
software engineeringsoftware engineering
software engineeringramyavarkala
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering processRaheel Aslam
 
المحاضرة الرابعة والخامسة
المحاضرة الرابعة والخامسةالمحاضرة الرابعة والخامسة
المحاضرة الرابعة والخامسةAhmed Alageed
 
Types of software life cycle model
Types of software life cycle model Types of software life cycle model
Types of software life cycle model Santhia RK
 
Software Engineering Unit 1
Software Engineering Unit 1Software Engineering Unit 1
Software Engineering Unit 1Abhimanyu Mishra
 
Software process model
Software process modelSoftware process model
Software process modelUmar Farooq
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAhmed Alageed
 
Software Engineering Methodology
Software Engineering MethodologySoftware Engineering Methodology
Software Engineering MethodologyRajandeep Gill
 
CS8494 SOFTWARE ENGINEERING Unit-1
CS8494 SOFTWARE ENGINEERING Unit-1CS8494 SOFTWARE ENGINEERING Unit-1
CS8494 SOFTWARE ENGINEERING Unit-1SIMONTHOMAS S
 

What's hot (20)

Chapter 2 software process models
Chapter 2   software process modelsChapter 2   software process models
Chapter 2 software process models
 
Software Process Model in software engineering
Software Process Model in software engineeringSoftware Process Model in software engineering
Software Process Model in software engineering
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
software process model
software process modelsoftware process model
software process model
 
Unified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptUnified process,agile process,process assesment ppt
Unified process,agile process,process assesment ppt
 
5. software process model
5. software process model5. software process model
5. software process model
 
Software Engineering unit 5
Software Engineering unit 5Software Engineering unit 5
Software Engineering unit 5
 
Software engineering unit 1
Software engineering unit 1Software engineering unit 1
Software engineering unit 1
 
software engineering
software engineeringsoftware engineering
software engineering
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
المحاضرة الرابعة والخامسة
المحاضرة الرابعة والخامسةالمحاضرة الرابعة والخامسة
المحاضرة الرابعة والخامسة
 
Types of software life cycle model
Types of software life cycle model Types of software life cycle model
Types of software life cycle model
 
Software Engineering Unit 1
Software Engineering Unit 1Software Engineering Unit 1
Software Engineering Unit 1
 
Software process model
Software process modelSoftware process model
Software process model
 
Unified Process
Unified Process Unified Process
Unified Process
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Software Engineering Methodology
Software Engineering MethodologySoftware Engineering Methodology
Software Engineering Methodology
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
CS8494 SOFTWARE ENGINEERING Unit-1
CS8494 SOFTWARE ENGINEERING Unit-1CS8494 SOFTWARE ENGINEERING Unit-1
CS8494 SOFTWARE ENGINEERING Unit-1
 
Software process
Software processSoftware process
Software process
 

Similar to Unit 2 final

Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design Jayant Dalvi
 
Chapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.pptChapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.pptRayonJ1
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentRAVALCHIRAG1
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptxMarwondoMarwondo
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models MohsinAli773
 
Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfVikasRai405977
 
Traditional Process Models
Traditional Process ModelsTraditional Process Models
Traditional Process ModelsAhsan Rahim
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
Software life cycle models
Software life cycle modelsSoftware life cycle models
Software life cycle modelsWasif Khan
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
 
61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptxSuhleemAhmd
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1Badar Waseer
 

Similar to Unit 2 final (20)

Process models
Process modelsProcess models
Process models
 
Structured system analysis and design
Structured system analysis and design Structured system analysis and design
Structured system analysis and design
 
Chapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.pptChapter 3 Software Process Model.ppt
Chapter 3 Software Process Model.ppt
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Software process model
Software process modelSoftware process model
Software process model
 
3. ch 2-process model
3. ch 2-process model3. ch 2-process model
3. ch 2-process model
 
2-models.pptx
2-models.pptx2-models.pptx
2-models.pptx
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it student
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models
 
Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdf
 
Traditional Process Models
Traditional Process ModelsTraditional Process Models
Traditional Process Models
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Software life cycle models
Software life cycle modelsSoftware life cycle models
Software life cycle models
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
SDLC
SDLCSDLC
SDLC
 
61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx61f4fc87-9977-4003-baf8-37f13200977b.pptx
61f4fc87-9977-4003-baf8-37f13200977b.pptx
 
Ch 02 s.e software process models 1
Ch 02 s.e software process models   1Ch 02 s.e software process models   1
Ch 02 s.e software process models 1
 
Software engineering the process
Software engineering the processSoftware engineering the process
Software engineering the process
 

More from sietkcse

Unit 7 final
Unit 7 finalUnit 7 final
Unit 7 finalsietkcse
 
Unit 6 final
Unit 6 finalUnit 6 final
Unit 6 finalsietkcse
 
Unit 5 final
Unit 5 finalUnit 5 final
Unit 5 finalsietkcse
 
Unit 4 final
Unit 4 finalUnit 4 final
Unit 4 finalsietkcse
 
Unit 3 final
Unit 3 finalUnit 3 final
Unit 3 finalsietkcse
 
Unit 1 final
Unit 1 finalUnit 1 final
Unit 1 finalsietkcse
 
Unit 8 final
Unit 8 finalUnit 8 final
Unit 8 finalsietkcse
 

More from sietkcse (7)

Unit 7 final
Unit 7 finalUnit 7 final
Unit 7 final
 
Unit 6 final
Unit 6 finalUnit 6 final
Unit 6 final
 
Unit 5 final
Unit 5 finalUnit 5 final
Unit 5 final
 
Unit 4 final
Unit 4 finalUnit 4 final
Unit 4 final
 
Unit 3 final
Unit 3 finalUnit 3 final
Unit 3 final
 
Unit 1 final
Unit 1 finalUnit 1 final
Unit 1 final
 
Unit 8 final
Unit 8 finalUnit 8 final
Unit 8 final
 

Recently uploaded

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 

Unit 2 final

  • 1. 30 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 2.1 THE WATER FALL MODEL * It is sometimes called the classic life cycle * It suggests a systematic, sequential approach to software development that begins with customer specification of requirements and progress through => Planning => Modeling => Construction and => Deployment Problems encountered in waterfall model: (1) Real projects rarely follow the sequential flow. As a result changes cause confusion as the project team proceeds (2) It is difficult for the customer to state all requirements explicitly (3) The customer must have patience * The linear nature of the water fall model leads to “ Blocking State” in which some project team members must wait for other members of the team to complete dependent task * The water fall model can serve as a useful process model in situations where => Requirements are fixed and work is to proceed to completion in a linear manner
  • 2. 31 COMMUNICATION => Project Initiation => Requirement Gathering PLANNING => Estimating => Scheduling => Tracking MODELLING => Analysis => Design CONSTRUCTION => Code => Test DEPLOYMENT => Delivery => Support => Feedback
  • 3. 32 2.2 INCREMENTAL PROCESS MODELS * The incremental model combines elements of the water fall model applied in an iterative fashion * This model applies linear sequences in a staggered fashion as calendar time progresses * Each linear sequence produces deliverable “increments” of the software Main Idea: * When an incremental model is used the first increment is called “ CORE PRODUCT” * i.e. the basic requirements are addressed but main supplementary features remain undelivered * The core product is used by customer (Or) undergoes detailed evaluation * As a result of evaluation a plan is developed for next increment Increment # n Software Functionality & Features Delivery of Nth Increment Increment # 2 Delivery of 2nd Increment Increment # 1 Delivery of 1st Increment Project Calendar Time
  • 4. 33 => Communication => Planning => Modeling {Analysis, Design} => Construction {Code, Test} => Deployment {Delivery, Feedback} * 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 2.3 RAPID APPLICATION DEVELOPMENT MODEL [RAD] * The RAD model is a “high speed” adaptation of the water fall model, in which rapid development is achieved by using a component, based construction approach * The RAD process enables a development team to create a “fully functional system” with in a very short period [e.g.60 to 90 days], if the requirements are well understood and project scope is constrained
  • 5. Team # n Modeling => Business Modeling => Data Modeling => Process Modeling Team # 2 Modeling Communication Construction => Business Modeling => Data Modeling => Process Modeling Planning 34 => Component Reuse => Automatic Code Generation => Testing Construction Team # 1 Modeling => Business Modeling => Data Modeling => Process Modeling => Component Reuse => Automatic Code Generation => Testing Deployment Construction => Component Reuse => Automatic Code Generation => Testing 60 – 90 days => Integration => Delivery => Feedback
  • 6. 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]
  • 7. 36 2.4 EVOLUTIONARY PROCESS MODELS * Like all computer systems software also evolve over a period of time * Making a straight line path to an end-product is unrealistic, if business and product requirements often change as development proceeds * Suppose if a set of core product (Or) system requirement is well understood, but the details of product (Or) system extensions have not yet to be defined. * These case, a software engineer needs a process model that has been designed to accommodate a product that evolves over time. * The evolutionary process modes are more suitable for the above case Types: (1) Prototyping Model (2) Spiral Model (3) Concurrent Development Model 2.4.1 PROTOTYPE MODEL Quick Plan Communication Modeling Quick Plan Deployment Construction of Prototype
  • 8. 37 * The prototype model may offer the best approach, if => Customer defines a set of objectives for software, but does not identify detailed in put, processing (Or) output requirements => In other cases, the developer may be unsure of the efficiency of an algorithm (Or) the form that human-machine interaction should take * The prototyping model assists the software engineer and the customer to better understand => What is to be built, when requirements are fuzzy? 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
  • 9. 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 2.4.2 SPIRAL MODEL: Planning => Estimation => Scheduling => Risk Analysis Communication Modeling => Analysis => Design Start Deployment => Delivery => Feedback Construction => Code => 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
  • 10. 39 Two main features (i) A cyclic approach for incrementally growing a system’s degree of definition and implementation while decreasing its degree of risk (ii) An anchor point mile stones for ensuring stake holders commitment to feasible and mutually satisfactory system solutions Main idea: * A spiral model is divided into a set of frame work activities, defined by the software engineering team * Each frame work activities represent one segment of spiral path * As evolutionary process begins, the software team performs activities that are implied by a circuit around the spiral in a clockwise direction beginning at the centre * The first circuit around the spiral might result in development of a product specification * Subsequent passes might be used to develop a prototype and more sophisticated versions of the software * Each pass through the planning region results in adjustments to the project plan * Cost and Schedule are adjusted based on feedback derived from the customer after delivery * Using spiral model software is developed in a series of evolutionary release * During each iteration the release might me a paper model (Or) prototype * During later iterations, increasingly more complete versions of the engineered system are produced * Unlike other process model that end when software is delivered, the spiral model can be adapted to apply throughout the life of the software * In the above fig first circuit represents concept development project * Once concept is developed into actual product, process proceeds outwards on spiral, A new product development project commences * Later circuit around the spiral might be used to represent “product enhancement project” * Whenever a change is initiated the process starts at the appropriate entry point Advantages: (i) It is a realistic approach to the development of large-scale system and software
  • 11. 40 (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 2.4.3 CONCURRENT DEVELOPMENT MODEL * It is also called as “Concurrent Engineering” * It can be represented schematically as a series of framework activities, software engineering actions and tasks and their associated states None Modeling Activity Under Development Under Review Awaiting Changes Under Revision Base lined Done One Element of concurrent process model
  • 12. 41 * 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 2.5 THE UNIFIED PROCESS * It is an attempt to draw on the best features and characteristics of conventional software process models * But characteristics them in a way that implements many of the best principles of agile software development * The unified process emphasizes the important role of software architecture and help the architect focus on, => Right goals => Understandability => Reliance to future changes and
  • 13. 42 => 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 Phases of the Unified Process: (1) Inception Phase: * This phase combines both customer communication and planning activities
  • 14. 43 * By combining these the => Business requirements for the software are identified => A rough architecture for the system is proposed => A plan for the iterative, incremental nature of the ensuring project is developed * In general a use-case describes a sequence of actions that are performed by an actor [e.g. a person, a machine] * Use-case helps to identify the scope of the project and provide a basis for project planning (2) Elaboration Phase: * It refines and expands the preliminary use-cases that were developed on inception phase * It expands the architectural representation to include five different views of the software: => Use-case model => Analysis Model => Design Model => Implementation Model => Deployment Model * The modification to the plan may be made at this time (3) Construction Phase: * This phase develops (Or) acquires the software components that will make each usecase operational for end users * All necessary and required features and functions of software release are imp[lamented in source code * After implementing components, unit tests are designed and executed for each * In addition (4) Transition Phase: * The software is given to end-users for Beta testing * The users feed back the reports both defects and necessary changes * This phase allow software team creates the necessary support information
  • 15. 44 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
  • 16. 45 UNIT – 2 [Part – II] SOFTWARE REQUIREMENTS 2.6 Functional Requirements: * These are statements of services the system should provide => how the system should react to particular inputs and => how the system should behave in particular situations * In some cases, the functional requirements may also explicitly state => What the system should not do * The functional requirements definition of a system should be both => Complete [i.e. It means that all services required by the user should be defined] => Consistent [i.e. it means that requirements should not have contradictory definitions] 2.7 Non – Functional Requirements: * These are constraints on the services (Or) functions offered by the system * They include => Timing Constraints => Constraint on development process => Standards and so on… * Some non-functional requirements may be process rather than product requirements * Customer imposes these process requirements for two reasons; => System Quality => System Maintainability Non – Functional Requirements Types: Non – Functional Requirements Product Requirements Process Requirements External Requirements
  • 17. 46 (i) Product Requirements: * These requirements results from the need for the delivered product, to behave in a particular way Example: * Requirements on how fast the system must execute and how much memory it requires * Reliability Requirements [i.e. acceptable failure rate] * Portability Requirements (ii) Organizational Requirements: * These requirements are consequence of organizational policies and procedures Example: * Implementation requirements such as programming language (Or) design method used * Delivery Requirements which specify when the product and its documentation to be delivered (iii) External Requirements: * This requirements arise from factors external to the system and its development process Example: * Interoperability Requirements which specify how the system interacts with systems in other organizations * Legislative Requirements, which ensure that the system operates within the law 2.8 The Software Requirements Document * It is also called as Software Requirement Specification [SRS] * This requirement document includes; => Requirement definition => Requirement Specification * The software requirement document is not a design document * It should set out => what the system should do without specifying, how it should be done * If services, constraints and properties specified in the document are satisfied by software design than, => the design is an acceptable solution to the problem
  • 18. 47 * 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 Structure of a Requirements document: CHAPTER Introduction DESCRIPTION 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 Glossary business This should describe => The technical terms used in the document * Here no assumption should be made about the experience or expertise of the System Models reader This should set out the relationship between => The system components and its environment * This might include => Object Models => Data Flow Models => Semantic Data Models
  • 19. 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.. System Evolution This should describe => The fundamental assumption on which the system is based => Anticipated changes due to hardware evolution Requirements Specification => Changing user needs etc.. This should describe the functional requirements in more detail Example: Interfaces to other systems may be defined