2-3-Software Process
2-3-Software Process
Fundamental activities
Process improvement
Implementing & testing: developing the programs and testing they are free of
bugs and meet the requirements
Incremental development
May be plan-driven or agile
This came from a standard engineering process which has been used
across the engineering industry for many years
However, most business systems change very quickly! So the assumption of no
change is not typical of most business systems
But instead of happening in a sequence as we’ve seen in the waterfall model these are
interleaved activities
We do a little bit of specification, a little bit of design and a little bit of implementation, and then
go around and repeat that process again and again
Incremental development
Over the last 15 years or so, we’ve seen a huge change in the way
software has been developed where there is much more reuse of
existing software rather than developing software from scratch
try to
understand look for • Go back the 2 cases: 1) in integrate them
what the reusable customer, case the with the adapted
system has to software • Modify the application existing ones to
do & Evaluate if it requirements system is make a new
meets the because the already system
needs of the reused available, we
customer software only need to
doesn’t do adapt it by doing
what’s some
required configurations to
make it work in
the present
context
but an iterative and agile approach can be taken to design and implement
And It’s not that the specification come from an external company, but
come from the company that is developing the product themselves
Validation
involves testing the system for the bugs and checking if it meets the users
requirements
Software evolution
happens after the software has been deployed, when it’s changed in response to
changing user requirements
Database design, where you design the system data structures and
how they are represented in a database
Debugging is the activity of using testing to reveal program faults and then
correcting these faults
It’s an inherent part of many agile methods that testing & programming are very
closely linked
so that sometimes we do test-first development (i.e., we prepare scenarios and tools for
testing even before we develop the software, which will be introduced in the later lecture)
System testing involves executing the system with test cases that are
derived from the specification of the data to be processed by the system
It’s not real data, but made up by the developers or the testing team which
seems to be consistent with the user specification
Each stage in the development process has its corresponding testing activity
Sometimes changes introduce new bugs into the system and causes existing bugs that
have been hidden to come to light the system must be modified and put into use
E.g., a prototype system may be developed to show some key features of the
system to customers
Improved maintainability
Prototype should focus on areas of the product that are not well-understood
The prototype probably will not meet normal organizational quality standards
Incremental development
Incremental delivery
Deploy an increment for use by end-users & more realistic evaluation about
practical use of software
The highest priority system services tend to receive the most testing
However, this conflicts with the procurement model of many organizations, where
the complete system specification is part of the system development
contract
and changing these processes to increase product quality and/or reduce costs
and development time
The level of process maturity reflects the extent to which good technical
practic has been adopted in organization of software
and management practice
development processes
Process analysis
The current process is assessed
and process weakness and bottlenecks are identified
Process models (sometimes called process maps) that describe the process may
be developed
Process change
Changes are processed to address some of the identified process weakness.
These are introduced and the cycle resumes to collect data about the
effectiveness of the changes
But this does not mean that measurements should drive the improvements
Quantity management
strategies defined & used
Process management
procedures and strategies
defined & used
Essentially uncontrolled
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 phases
Inception
establish the business
cases 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
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