Software Processes
a structured set of activites required to develop a SW system
specification
design
development
validation
evolution
generic SWP models
waterfall
phases
requirements
design
implementation
verfiction
maintenance
problems
once phase complete accommodating changes if defficult
appropriate when requirments are well-understood
used for large systems eng. projects (system developed at several sites)
evolutionary development
requirements have to be refined during the development
new and updated require. lead to new versions of the SW
outline description
specification
sevelopment
validation
iterative development
phases
start with a simple imple. of a subset of the requirements
requirement may be prioritised & the highest priority requ. are included in early deliveries
may be functional requi. classification
iteratively take a new set of requirements
refine design & develop new functionality elements
repeat until the final version is reached
advantages
Customer may be able to deploy early
versions of the software
Early increments act as a prototype to help
elicit requirements for later increments
The highest priority system services tend to receive the most testing
risk
customer tells you a part of the
story then the next part'll demolish
everything
component-based SWE
based on systematic reuse (systems are integrated from existing components ot COTS
process stages
components analysis
requirement modifiction
system design with reuse
development and integration
the rational unified process
6 basic practices
develop iteratively
manage requirements
use components
model visually
continuously verfy quality
control changes
concepts
artifacts (the what)
roles (the who)
activities (the how)
disciplines (the when)
phases
inception
elaboration
construction
transition
disciplines
business modeling
requirments
analysis and design
implementation
test
deployment
supporting disciplines
environment
config and change management
project management
agile programming
iterative light processes
examples
XP (extreme programming)
principles
freq. release cycles
lifecycle and behavior is defined in test cases
improve code with refactoring
pair programming
everybody tests all the time
use simplest pissible design that works
refine the architecture all the time
integrate and test several times a day
overcomes some SW problems
schedule problems
project cancellation
major bugs
high defect rate
bisiness misunderstood
false feature rich
Scrum