SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Software Processes
The software process
A structured set of activities required to develop a
software system
• Specification;
• Design;
• Validation;
• Evolution.
A software process model is an abstract
representation of a process. It presents a
description of a process from some particular
perspective.
Generic software process models
The waterfall model
• Separate and distinct phases of specification and
development.
Evolutionary development
• Specification, development and validation are
interleaved.
Component-based software engineering
• The system is assembled from existing components.
Waterfall model
Requir ements
definition
System and
software design
Implementa tion
and unit testing
Integ ration and
system testing
Oper ation and
maintenance
Waterfall model phases
Requirements analysis and definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
The main drawback of the waterfall model is
the difficulty of accommodating change after
the process is underway. One phase has to
be complete before moving onto the next
phase.
Waterfall model problems
Inflexible partitioning of the project into distinct
stages makes it difficult to respond to changing
customer requirements.
Therefore, this model is only appropriate when the
requirements are well-understood and changes
will be fairly limited during the design process.
Few business systems have stable requirements.
The waterfall model is mostly used for large
systems engineering projects where a system is
developed at several sites.
Evolutionary development
Exploratory development
• Objective is to work with customers and to
evolve a final system from an initial outline
specification. Should start with well-understood
requirements and add new features as
proposed by the customer.
Throw-away prototyping
• Objective is to understand the system
requirements. Should start with poorly
understood requirements to clarify what is really
needed.
Evolutionary development
Concurr ent
activities
Valida tion
Final
version
Development
Intermedia te
versions
Specification
Initial
version
Outline
description
Evolutionary development
Problems
• Lack of process visibility;
• Systems are often poorly structured;
• Special skills (e.g. in languages for rapid
prototyping) may be required.
Applicability
• For small or medium-size interactive systems;
• For parts of large systems (e.g. the user
interface);
• For short-lifetime systems.
Component-based software
engineering
Based on systematic reuse where systems
are integrated from existing components or
COTS (Commercial-off-the-shelf) systems.
Process stages
• Component analysis;
• Requirements modification;
• System design with reuse;
• Development and integration.
This approach is becoming increasingly
used as component standards have
emerged.
Reuse-oriented development
Requirements
specification
Component
analysis
Development
and integ ration
System design
with reuse
Requirements
modification
System
validation
Process iteration
System requirements ALWAYS evolve in the
course of a project so process iteration
where earlier stages are reworked is always
part of the process for large systems.
Iteration can be applied to any of the generic
process models.
Two (related) approaches
• Incremental delivery;
• Spiral development.
Incremental delivery
Rather than deliver the system as a single
delivery, the development and delivery is broken
down into increments with each increment
delivering part of the required functionality.
User requirements are prioritised and the highest
priority requirements are included in early
increments.
Once the development of an increment is started,
the requirements are frozen though requirements
for later increments can continue to evolve.
Incremental development
Valida te
increment
Develop system
increment
Design system
architectur e
Integrate
increment
Validate
system
Define outline
requirements
Assign requirements
to increments
System incomplete
Final
system
Incremental development
advantages
Customer value can be delivered with each
increment so system functionality is
available earlier.
Early increments act as a prototype to help
elicit requirements for later increments.
Lower risk of overall project failure.
The highest priority system services tend to
receive the most testing.
Spiral development
Process is represented as a spiral rather
than as a sequence of activities with
backtracking.
Each loop in the spiral represents a phase in
the process.
No fixed phases such as specification or
design - loops in the spiral are chosen
depending on what is required.
Risks are explicitly assessed and resolved
throughout the process.
Spiral model of the software process
Risk
anal ysis
Risk
anal ysis
Risk
anal ysis
Risk
anal ysis Proto-
type 1
Prototype 2
Prototype 3
Oper a-
tional
protoype
Concept of
Oper ation
Simulations , models , benchmar ks
S/W
requir ements
Requir ement
validation
Design
V&V
Product
design Detailed
design
Code
Unit test
Integ ration
test
Acceptance
testService Develop , verify
next-level pr oduct
Evalua te alterna tives,
identify, resolv e risks
Deter mine objecti ves,
alterna tives and
constr aints
Plan ne xt phase
Integ ration
and test plan
Development
plan
Requir ements plan
Life-cy cle plan
REVIEW
Spiral model sectors
Objective setting
• Specific objectives for the phase are identified.
Risk assessment and reduction
• Risks are assessed and activities put in place to
reduce the key risks.
Development and validation
• A development model for the system is chosen
which can be any of the generic models.
Planning
• The project is reviewed and the next phase of the
spiral is planned.
Process activities
Software specification
Software design and implementation
Software validation
Software evolution
Software specification
The process of establishing what services
are required and the constraints on the
system’s operation and development.
Requirements engineering process
• Feasibility study;
• Requirements elicitation and analysis;
• Requirements specification;
• Requirements validation.
The requirements engineering process
Feasibility
stud y
Requir ements
elicitation and
analysis
Requir ements
specification
Requir ements
validation
Feasibility
repor t
System
models
User and system
requirements
Requir ements
document
Software design and implementation
The process of converting the system
specification into an executable system.
Software design
• Design a software structure that realises the
specification;
Implementation
• Translate this structure into an executable
program;
The activities of design and implementation
are closely related and may be inter-leaved.
Design process activities
Architectural design
Abstract specification
Interface design
Component design
Data structure design
Algorithm design
The software design process
Architectural
design
Abstract
specification
Interface
design
Component
design
Data
structure
design
Algorithm
design
System
architecture
Software
specification
Interface
specification
Component
specification
Data
structure
specification
Algorithm
specification
Requirements
specification
Design activities
Design products
Programming and debugging
Translating a design into a program and
removing errors from that program.
Programming is a personal activity - there is
no generic programming process.
Programmers carry out some program
testing to discover faults in the program and
remove these faults in the debugging
process.
The debugging process
Locate
error
Design
error repair
Repair
error
Re-test
pr ogram
Software validation
Verification and validation (V & V) is
intended to show that a system conforms to
its specification and meets the requirements
of the system customer.
Involves checking and review processes and
system testing.
System testing involves executing the
system with test cases that are derived from
the specification of the real data to be
processed by the system.
The testing process
Component
testing
System
testing
Acceptance
testing
Testing stages
Component or unit testing
• Individual components are tested
independently;
• Components may be functions or objects or
coherent groupings of these entities.
System testing
• Testing of the system as a whole. Testing of
emergent properties is particularly important.
Acceptance testing
• Testing with customer data to check that the
system meets the customer’s needs.
Testing phases
Requir ements
specification
System
specification
System
design
Detailed
design
Module and
unit code
and test
Sub-system
integ ration
test plan
System
integration
test plan
Acceptance
test plan
Service
Acceptance
test
System
integ ration test
Sub-system
integ ration test
Software evolution
Software is inherently flexible and can change.
As requirements change through changing business
circumstances, the software that supports the
business must also evolve and change.
Although there has been a demarcation between
development and evolution (maintenance) this is
increasingly irrelevant as fewer and fewer systems
are completely new.
System evolution
Assess existing
systems
Define system
requirements
Propose system
changes
Modify
systems
New
system
Existing
systems
The Rational Unified Process
A modern process model derived from the
work on the UML and associated process.
Normally described from 3 perspectives
• A dynamic perspective that shows phases over
time;
• A static perspective that shows process
activities;
• A practice perspective that suggests good
practice.
RUP phase model
Phase iteration
Inception Elaboration Construction Transition
RUP phases
Inception
• Establish the business case for the system.
Elaboration
• Develop an understanding of the problem
domain and the system architecture.
Construction
• System design, programming and testing.
Transition
• Deploy the system in its operating environment.
RUP good practice
Develop software iteratively
Manage requirements
Use component-based architectures
Visually model software
Verify software quality
Control changes to software
Computer-aided software
engineering
Computer-aided software engineering (CASE) is
software to support software development and
evolution processes.
Activity automation
• Graphical editors for system model development;
• Data dictionary to manage design entities;
• Graphical UI builder for user interface construction;
• Debuggers to support program fault finding;
• Automated translators to generate new versions of a
program.
Case technology
Case technology has led to significant
improvements in the software process.
However, these are not the order of
magnitude improvements that were once
predicted
• Software engineering requires creative thought
- this is not readily automated;
• Software engineering is a team activity and, for
large projects, much time is spent in team
interactions. CASE technology does not really
support these.
CASE classification
Classification helps us understand the different
types of CASE tools and their support for process
activities.
Functional perspective
• Tools are classified according to their specific
function.
Process perspective
• Tools are classified according to process activities
that are supported.
Integration perspective
• Tools are classified according to their organisation
into integrated units.
Functional tool classification
Tool type Examples
Planning tools PERT tools, estimation tools, spreadsheets
Editing tools Text editors, diagram editors, word processors
Change management tools Requirements traceability tools, change control systems
Configuration management tools Version management systems, system building tools
Prototyping tools Very high-level languages, user interface generators
Method-support tools Design editors, data dictionaries, code generators
Language-processing tools Compilers, interpreters
Program analysis tools Cross reference generators, static analysers, dynamic analysers
Testing tools Test data generators, file comparators
Debugging tools Interactive debugging systems
Documentation tools Page layout programs, image editors
Re-engineering tools Cross-reference systems, program re-structuring systems
Activity-based tool classification
Specification Design Implementation Verification
and
Validation
Re-eng ineering tools
Testing tools
Debugg ing tools
Program analysis tools
Language-processing
tools
Method suppor t tools
Prototyping tools
Configuration
management tools
Change management tools
Documentation tools
Editing tools
Planning tools
Tools, workbenches, environments
Single-method
workbenches
General-purpose
workbenches
Multi-method
workbenches
Langua ge-specific
workbenches
Programming Testing
Analysis and
design
Integrated
environments
Process-centr ed
environments
File
compar ators
CompilersEditors
EnvironmentsWor kbenchesTools
CASE
technolo gy

Weitere ähnliche Inhalte

Was ist angesagt?

Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)ShudipPal
 
Unified Process
Unified ProcessUnified Process
Unified Processguy_davis
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)ShudipPal
 
المحاضرة الرابعة والخامسة
المحاضرة الرابعة والخامسةالمحاضرة الرابعة والخامسة
المحاضرة الرابعة والخامسةAhmed Alageed
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Managementrobertodepalma
 
Software Engineering Methodology
Software Engineering MethodologySoftware Engineering Methodology
Software Engineering MethodologyRajandeep Gill
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementChandan Chaurasia
 
WORKFLOW OF THE PROCESS IN SPM
 WORKFLOW OF THE PROCESS IN SPM WORKFLOW OF THE PROCESS IN SPM
WORKFLOW OF THE PROCESS IN SPMgarishma bhatia
 
Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Jauhari Ismail
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementationyogi syafrialdi
 
Configuration Management Best Practices
Configuration Management Best PracticesConfiguration Management Best Practices
Configuration Management Best PracticesTechWell
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)ShudipPal
 
Software process life cycles
Software process life cyclesSoftware process life cycles
Software process life cycles sathish sak
 
Chapter 2 Time boxing & agile models
Chapter 2   Time boxing & agile modelsChapter 2   Time boxing & agile models
Chapter 2 Time boxing & agile modelsGolda Margret Sheeba J
 
Software process Models
Software process ModelsSoftware process Models
Software process ModelsSADEED AMEEN
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 

Was ist angesagt? (20)

Chapter 2 software process models
Chapter 2   software process modelsChapter 2   software process models
Chapter 2 software process models
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
Unified Process
Unified ProcessUnified Process
Unified Process
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)
 
المحاضرة الرابعة والخامسة
المحاضرة الرابعة والخامسةالمحاضرة الرابعة والخامسة
المحاضرة الرابعة والخامسة
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Software Engineering Methodology
Software Engineering MethodologySoftware Engineering Methodology
Software Engineering Methodology
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
WORKFLOW OF THE PROCESS IN SPM
 WORKFLOW OF THE PROCESS IN SPM WORKFLOW OF THE PROCESS IN SPM
WORKFLOW OF THE PROCESS IN SPM
 
The unified process
The unified processThe unified process
The unified process
 
Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementation
 
Configuration Management Best Practices
Configuration Management Best PracticesConfiguration Management Best Practices
Configuration Management Best Practices
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
Software process life cycles
Software process life cyclesSoftware process life cycles
Software process life cycles
 
Chapter 2 Time boxing & agile models
Chapter 2   Time boxing & agile modelsChapter 2   Time boxing & agile models
Chapter 2 Time boxing & agile models
 
Software process Models
Software process ModelsSoftware process Models
Software process Models
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Models of SDLC (Contd..) & Feasibility Study
Models of SDLC (Contd..)  & Feasibility StudyModels of SDLC (Contd..)  & Feasibility Study
Models of SDLC (Contd..) & Feasibility Study
 
Software Development
Software DevelopmentSoftware Development
Software Development
 

Andere mochten auch

Andere mochten auch (19)

Environ.
Environ.Environ.
Environ.
 
Top 10 Innovations of 2015
Top 10 Innovations of 2015Top 10 Innovations of 2015
Top 10 Innovations of 2015
 
Windows vs linuxe
Windows vs linuxeWindows vs linuxe
Windows vs linuxe
 
Environment
EnvironmentEnvironment
Environment
 
iOS I phone operating system
iOS I phone operating system iOS I phone operating system
iOS I phone operating system
 
Stack and its usage in assembly language
Stack and its usage in assembly language Stack and its usage in assembly language
Stack and its usage in assembly language
 
Pom2
Pom2 Pom2
Pom2
 
Hybrid Cars
Hybrid Cars Hybrid Cars
Hybrid Cars
 
Calculas
CalculasCalculas
Calculas
 
Kotler pom13e instructor_03
Kotler pom13e instructor_03Kotler pom13e instructor_03
Kotler pom13e instructor_03
 
Critical Systems
Critical SystemsCritical Systems
Critical Systems
 
General Monitors Gdi Presentation
General Monitors Gdi PresentationGeneral Monitors Gdi Presentation
General Monitors Gdi Presentation
 
Pom 1
Pom 1Pom 1
Pom 1
 
Omni Guard 660 Flame Detector Presentation
Omni Guard 660 Flame Detector PresentationOmni Guard 660 Flame Detector Presentation
Omni Guard 660 Flame Detector Presentation
 
Calculas
CalculasCalculas
Calculas
 
Hybrid Cars , Autonomous Cars and future trends and Technologies
Hybrid Cars , Autonomous Cars and future trends and Technologies Hybrid Cars , Autonomous Cars and future trends and Technologies
Hybrid Cars , Autonomous Cars and future trends and Technologies
 
Introduction of sequence
Introduction of sequenceIntroduction of sequence
Introduction of sequence
 
General Monitors Flame Detectors Scp
General Monitors Flame Detectors ScpGeneral Monitors Flame Detectors Scp
General Monitors Flame Detectors Scp
 
Oxygen Analyzer
Oxygen AnalyzerOxygen Analyzer
Oxygen Analyzer
 

Ähnlich wie Software Processes

Process model rup
Process model rupProcess model rup
Process model rupAryan Ajmer
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering processRaheel Aslam
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3koolkampus
 
Soft Eng - Software Process
Soft  Eng - Software ProcessSoft  Eng - Software Process
Soft Eng - Software ProcessJomel Penalba
 
software Processes
software Processessoftware Processes
software ProcessesSeif Shaame
 
System models of sdlc- v model
System models of sdlc- v modelSystem models of sdlc- v model
System models of sdlc- v modelMinal Kashyap
 
Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Education Front
 
Software Engineering
Software EngineeringSoftware Engineering
Software EngineeringMohamed Essam
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdfkrishnaraj714229
 
se02_SW_Process.ppt
se02_SW_Process.pptse02_SW_Process.ppt
se02_SW_Process.pptNhân Công
 
Process in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software EngineerinProcess in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software EngineerinMuhammadSufianJani
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process ModelsEducation Front
 

Ähnlich wie Software Processes (20)

Process model rup
Process model rupProcess model rup
Process model rup
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
Software Process in Software Engineering SE3
Software Process in Software Engineering SE3Software Process in Software Engineering SE3
Software Process in Software Engineering SE3
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Soft Eng - Software Process
Soft  Eng - Software ProcessSoft  Eng - Software Process
Soft Eng - Software Process
 
Ch4
Ch4Ch4
Ch4
 
Ch4
Ch4Ch4
Ch4
 
software Processes
software Processessoftware Processes
software Processes
 
System models of sdlc- v model
System models of sdlc- v modelSystem models of sdlc- v model
System models of sdlc- v model
 
Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Lecture 2 (Software Processes)
Lecture 2 (Software Processes)
 
2. Software process
2. Software process2. Software process
2. Software process
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
se02_SW_Process.ppt
se02_SW_Process.pptse02_SW_Process.ppt
se02_SW_Process.ppt
 
Software process
Software processSoftware process
Software process
 
Process in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software EngineerinProcess in Software Engineering/4'ps in Software Engineerin
Process in Software Engineering/4'ps in Software Engineerin
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process Models
 
Mis unit iii by arnav
Mis unit iii by arnavMis unit iii by arnav
Mis unit iii by arnav
 
SE2.ppt
SE2.pptSE2.ppt
SE2.ppt
 

Kürzlich hochgeladen

Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 

Kürzlich hochgeladen (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 

Software Processes

  • 2. The software process A structured set of activities required to develop a software system • Specification; • Design; • Validation; • Evolution. A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
  • 3. Generic software process models The waterfall model • Separate and distinct phases of specification and development. Evolutionary development • Specification, development and validation are interleaved. Component-based software engineering • The system is assembled from existing components.
  • 4. Waterfall model Requir ements definition System and software design Implementa tion and unit testing Integ ration and system testing Oper ation and maintenance
  • 5. Waterfall model phases Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. One phase has to be complete before moving onto the next phase.
  • 6. Waterfall model problems Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. Therefore, this model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process. Few business systems have stable requirements. The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites.
  • 7. Evolutionary development Exploratory development • Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements and add new features as proposed by the customer. Throw-away prototyping • Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed.
  • 8. Evolutionary development Concurr ent activities Valida tion Final version Development Intermedia te versions Specification Initial version Outline description
  • 9. Evolutionary development Problems • Lack of process visibility; • Systems are often poorly structured; • Special skills (e.g. in languages for rapid prototyping) may be required. Applicability • For small or medium-size interactive systems; • For parts of large systems (e.g. the user interface); • For short-lifetime systems.
  • 10. Component-based software engineering Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. Process stages • Component analysis; • Requirements modification; • System design with reuse; • Development and integration. This approach is becoming increasingly used as component standards have emerged.
  • 11. Reuse-oriented development Requirements specification Component analysis Development and integ ration System design with reuse Requirements modification System validation
  • 12. Process iteration System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems. Iteration can be applied to any of the generic process models. Two (related) approaches • Incremental delivery; • Spiral development.
  • 13. Incremental delivery Rather than deliver the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality. User requirements are prioritised and the highest priority requirements are included in early increments. Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.
  • 14. Incremental development Valida te increment Develop system increment Design system architectur e Integrate increment Validate system Define outline requirements Assign requirements to increments System incomplete Final system
  • 15. Incremental development advantages Customer value can be delivered with each increment so system functionality is available earlier. Early increments act as a prototype to help elicit requirements for later increments. Lower risk of overall project failure. The highest priority system services tend to receive the most testing.
  • 16. Spiral development Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. Risks are explicitly assessed and resolved throughout the process.
  • 17. Spiral model of the software process Risk anal ysis Risk anal ysis Risk anal ysis Risk anal ysis Proto- type 1 Prototype 2 Prototype 3 Oper a- tional protoype Concept of Oper ation Simulations , models , benchmar ks S/W requir ements Requir ement validation Design V&V Product design Detailed design Code Unit test Integ ration test Acceptance testService Develop , verify next-level pr oduct Evalua te alterna tives, identify, resolv e risks Deter mine objecti ves, alterna tives and constr aints Plan ne xt phase Integ ration and test plan Development plan Requir ements plan Life-cy cle plan REVIEW
  • 18. Spiral model sectors Objective setting • Specific objectives for the phase are identified. Risk assessment and reduction • Risks are assessed and activities put in place to reduce the key risks. Development and validation • A development model for the system is chosen which can be any of the generic models. Planning • The project is reviewed and the next phase of the spiral is planned.
  • 19. Process activities Software specification Software design and implementation Software validation Software evolution
  • 20. Software specification The process of establishing what services are required and the constraints on the system’s operation and development. Requirements engineering process • Feasibility study; • Requirements elicitation and analysis; • Requirements specification; • Requirements validation.
  • 21. The requirements engineering process Feasibility stud y Requir ements elicitation and analysis Requir ements specification Requir ements validation Feasibility repor t System models User and system requirements Requir ements document
  • 22. Software design and implementation The process of converting the system specification into an executable system. Software design • Design a software structure that realises the specification; Implementation • Translate this structure into an executable program; The activities of design and implementation are closely related and may be inter-leaved.
  • 23. Design process activities Architectural design Abstract specification Interface design Component design Data structure design Algorithm design
  • 24. The software design process Architectural design Abstract specification Interface design Component design Data structure design Algorithm design System architecture Software specification Interface specification Component specification Data structure specification Algorithm specification Requirements specification Design activities Design products
  • 25. Programming and debugging Translating a design into a program and removing errors from that program. Programming is a personal activity - there is no generic programming process. Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process.
  • 26. The debugging process Locate error Design error repair Repair error Re-test pr ogram
  • 27. Software validation Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the system customer. Involves checking and review processes and system testing. System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system.
  • 29. Testing stages Component or unit testing • Individual components are tested independently; • Components may be functions or objects or coherent groupings of these entities. System testing • Testing of the system as a whole. Testing of emergent properties is particularly important. Acceptance testing • Testing with customer data to check that the system meets the customer’s needs.
  • 30. Testing phases Requir ements specification System specification System design Detailed design Module and unit code and test Sub-system integ ration test plan System integration test plan Acceptance test plan Service Acceptance test System integ ration test Sub-system integ ration test
  • 31. Software evolution Software is inherently flexible and can change. As requirements change through changing business circumstances, the software that supports the business must also evolve and change. Although there has been a demarcation between development and evolution (maintenance) this is increasingly irrelevant as fewer and fewer systems are completely new.
  • 32. System evolution Assess existing systems Define system requirements Propose system changes Modify systems New system Existing systems
  • 33. The Rational Unified Process A modern process model derived from the work on the UML and associated process. Normally described from 3 perspectives • A dynamic perspective that shows phases over time; • A static perspective that shows process activities; • A practice perspective that suggests good practice.
  • 34. RUP phase model Phase iteration Inception Elaboration Construction Transition
  • 35. RUP phases Inception • Establish the business case for the system. Elaboration • Develop an understanding of the problem domain and the system architecture. Construction • System design, programming and testing. Transition • Deploy the system in its operating environment.
  • 36. RUP good practice Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software
  • 37. Computer-aided software engineering Computer-aided software engineering (CASE) is software to support software development and evolution processes. Activity automation • Graphical editors for system model development; • Data dictionary to manage design entities; • Graphical UI builder for user interface construction; • Debuggers to support program fault finding; • Automated translators to generate new versions of a program.
  • 38. Case technology Case technology has led to significant improvements in the software process. However, these are not the order of magnitude improvements that were once predicted • Software engineering requires creative thought - this is not readily automated; • Software engineering is a team activity and, for large projects, much time is spent in team interactions. CASE technology does not really support these.
  • 39. CASE classification Classification helps us understand the different types of CASE tools and their support for process activities. Functional perspective • Tools are classified according to their specific function. Process perspective • Tools are classified according to process activities that are supported. Integration perspective • Tools are classified according to their organisation into integrated units.
  • 40. Functional tool classification Tool type Examples Planning tools PERT tools, estimation tools, spreadsheets Editing tools Text editors, diagram editors, word processors Change management tools Requirements traceability tools, change control systems Configuration management tools Version management systems, system building tools Prototyping tools Very high-level languages, user interface generators Method-support tools Design editors, data dictionaries, code generators Language-processing tools Compilers, interpreters Program analysis tools Cross reference generators, static analysers, dynamic analysers Testing tools Test data generators, file comparators Debugging tools Interactive debugging systems Documentation tools Page layout programs, image editors Re-engineering tools Cross-reference systems, program re-structuring systems
  • 41. Activity-based tool classification Specification Design Implementation Verification and Validation Re-eng ineering tools Testing tools Debugg ing tools Program analysis tools Language-processing tools Method suppor t tools Prototyping tools Configuration management tools Change management tools Documentation tools Editing tools Planning tools
  • 42. Tools, workbenches, environments Single-method workbenches General-purpose workbenches Multi-method workbenches Langua ge-specific workbenches Programming Testing Analysis and design Integrated environments Process-centr ed environments File compar ators CompilersEditors EnvironmentsWor kbenchesTools CASE technolo gy