CSC577 - Chapter 2 - Software Process
CSC577 - Chapter 2 - Software Process
SOFTWARE PROCESS
Software
Processes
The software process
and agile
processes In agile processes, planning is
incremental and it is easier to change
the process to reflect changing
customer requirements.
Software process models
01 02 03
Web services that are Collections of objects Stand-alone software
developed according to that are developed as a systems (COTS) that
service standards and package to be are configured for use
which are available for integrated with a in a particular
remote invocation. component framework environment.
such as .NET or JEE.
Process
Activities
Process activities
Requirements validation
The requirements
engineering process
Software design and implementation
The process of
converting the system
Software design Implementation
specification into an
executable system.
Architectural design, where you identify the overall structure of the system, the principal components
(sometimes called sub-systems or modules), their relationships and how they are distributed.
Interface design, where you define the interfaces between system components.
Component design, where you take each system component and design how it will operate.
Database design, where you design the system data structures and how these are to be represented in
a database.
Software Validation
and Testing
Software validation
Verification and validation (V & V)
is intended to show that a system
Involves checking and review
conforms to its specification and
processes and system testing.
meets the requirements of the
system customer.
Acceptance testing
• Prototype should focus on areas of the product that are not well-
development understood;
• Error checking and recovery may not be included in the prototype;
• Focus on functional rather than non-functional requirements such as
reliability and security
Throw-away prototypes
• 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
advantages
Lower risk of overall project failure.
model
sectors Development and validation
Planning
Spiral model usage
Elaboration
RUP phases
Construction
Transition
RUP iteration
In-phase Cross-phase
iteration iteration
Workflow Description
Business modelling The business processes are modelled using
business use cases.
the Rational Analysis and design A design model is created and documented
using architectural models, component
Unified models, object models and sequence models.
Process
Implementation The components in the system are
implemented and structured into
implementation sub-systems. Automatic code
generation from design models helps
accelerate this process.
Workflow Description
Testing Testing is an iterative process that is carried
out in conjunction with implementation.
System testing follows the completion of the
implementation.
Deployment A product release is created, distributed to
Static users and installed in their workplace.
workflows in Configuration This supporting workflow managed changes
and change to the system.
the Rational management
Unified Project This supporting workflow manages the system
management development.
Process Environment This workflow is concerned with making
appropriate software tools available to the
software development team.
RUP good practice
1 2 3 4 5 6
Develop Manage Use component- Visually model Verify software Control changes
software requirements based software quality to software
iteratively architectures
Small Programming
vs
Large Programming
Programming in the small vs.
Programming in the large