3-4 Software Development Models
3-4 Software Development Models
Fundamental activities
Process improvement
There are several formal software processes, but all of them share
four fundamental activities, sometimes in different forms
Specification: defining what the software should do
Implementing & testing: developing the programs and testing to ensure they
are free of bugs and meet the requirements
Incremental development
Maybe plan-driven or agile
This process was derived from a standard engineering approach that had been
used across the engineering industry for many years
The goal is to deliver useful functionality to users more quickly than the
waterfall process
The 3rd type is web services which are developed according to service
standards and are available for remote invocation
try to
look for • Go back to the In case where Integrate them
understand
reusable customer, the application with the adapted
what the
software • Modify the system is existing
system needs requirements
& Evaluate if it already components to
to do because the
meets the available, we create a new
reused
needs of the only need to system
software
customer doesn’t meet
adapt it by
the necessary making some
specification configuration to
ensure it works
in the current
context
Validation involves testing the system for bugs and verifying that it meets the
users’ requirements
Software evolution occurs after the software has been deployed, when it is
modified to accommodate changing user requirements
Database design: in this phase, you define the system’s data structures and
how they are represented in a database
Component selection & design: in this phase, you search for and select
reusable components for the system
System testing involves executing the system using test cases derived
from data specifications to be processed by the system
This data is not real but rather created by developers or the testing team to be
consistent with user specifications
Sometimes changes introduce new bugs into the system or reveal existing bugs
that were previously hidden. This means the system must be modified and
redeployed the cycle again
The prototype should focus on areas of the product that are not
well understood
Incremental development
Incremental delivery
Deploy each increment for end-user use, allowing for a more realistic evaluation
of the software’s practical application
Process analysis
The current process is assessed, and process weakness and bottlenecks are
identified
Process models that describe the process may be developed
Process change
Changes are made to address some of the identified process weakness
and the cycle resumes to collect data on the effectiveness of the changes
a modern process model derived from the work on UML and associated processes
is typically described from 3 perspectives
A dynamic perspective that shows phases over time
A static perspective that show process activities
A practice perspective that suggests good practices
RUP phases
Inception
Establish the business case
for the system
Elaboration
Develop an understanding
of the problem domain and
the system architecture
Construction
Design, program, and test
the system
Transition
Deploy the system into its
operating environment
Manage requirements
Activity automation
However, there are not the order of magnitude improvements that were once
predicted
SE is a team activity
Functional perspective
Process perspective
Integrated perspective
Workbenches
Environments
Software validation is the process of checking that the system conforms to its
specification and that it meets the real needs of the users of the system
Software evolution takes place when you change existing software systems to
meet new requirements. The software must evolve to remain useful
The SEI process maturity framework identifies maturity levels that essentially
correspond to the use of good SE practice