- Published on
COMP2120 - Week 1 - Process Fundamentals
Table of Contents
- Software Process
- Plan-driven and Agile Processes
- Process Models
- Waterfall Model
- Phases
- Benefits
- Problems
- Software Processes
- Incremental Development
- Benefits
- Problems
- Staged Delivery
- Design to Schedule
- Prototyping
- Evolutionary Prototyping
- Spiral Model (Boehm)
- Process Improvement
- Process Improvement Activities
- Metrics
- Capability Maturity Levels
Software Process
-
What order activities should take place
-
Activities and ordering is talked about when discussing processes
- Descriptions can include:
- Products -> Outcomes of process activity
- Roles -> Responsibilities
- Pre- and post-conditions -> True before and after a process activity
- Descriptions can include:
-
Activities:
- Specification -> Define what system should do
- Development -> Define the organisation of the system and implementing it
- Validation -> Checking that the system works and does what the customer wants
- Evolution -> Maintains system after delivery + change according to changing needs
Plan-driven and Agile Processes
- Plan-driven -> Process activities planned in advance, progress measured against this plan
- Agile -> Process activities planned incrementally, easier to change process
Process Models
- Waterfall model -> Plan-driven. Separate and distinct phases of specification and development
- Incremental development -> Specification, development and validation are interleaved.
- May be plan-driven -> Planned beforehand
- Agile -> Planned incrementally
- Integration and configuration -> Assembled from existing configurable components. May be plan-driven or agile
Waterfall Model
- Possible flowbacks
Phases
-
Each phase are documents that are approved/"signed off" -> Heavy documentation
-
Phases correspond directly to software development activities
Benefits
-
Clearly tracked -> Management and budgeting
-
Continuous customer involvement not required
- Customers are busy
-
Fewer needs for coordination -> Distribution across specialist teams
-
Specification and design can be addressed all in one go
Problems
- Inflexible partitioning -> Difficult to respond to customer changes
- Waterfall only appropriate where requirements are well-understood and changes are fairly limited
Software Processes
Incremental Development
Benefits
-
Easier to accomodate change
- Upfront analysis and documentation less than Waterfall
-
Easier to get customer feedback early on
-
More rapid delivery and deployment possible
Problems
-
Process is not very visible
- Difficult for managers to keep track
-
System structure can degrade as new increments are added
- Time and money required to refactor
- Further changes can be increasingly difficult and costly
Staged Delivery
- Development and delivery broken into increments
- Highest priority requirements included first
- Later requirements can be incremented
Design to Schedule
-
Less iteration than staged delivery -> Another waterfall/iterative/incremental approach
-
Increments are released on fixed date, can satisfy customer
-
Requires careful prioritisation of features and risks
Prototyping
-
"Reduced" version to demonstrate concepts or try/test out ideas, small and fast
-
Can be kept or thrown away
-
Good for getting feedback early on
Evolutionary Prototyping
-
Prototype becomes delivered software after a number of iterations
-
Good for human computer interface components (i.e. games, apps, etc)
Spiral Model (Boehm)
-
"Process generator"
-
Quantification of risk
- Using risk to determine details of your process:
- Activities
- Requirements
- Using risk to determine details of your process:
-
Many activities are concurrent even though they may not appear concurrent
Process Improvement
- Involves understanding existing processes and changing them to increase quality or decrease development time
- Process maturity approach -> Focuses on improving process and project management and introducing good SENG practice
- Agile approach -> Focuses on iterative development and reduction of overheads
Process Improvement Activities
- Process measurement -> One or more attributes are measured to form a baseline to determine if improvements have been effective
- Where possible, quantitative process data should be collected
- Process analysis -> Process is assessed, and weaknesses and bottlenecks identified.
- Process change -> Process changes are proposed to address some of the identified process weaknesses.
Metrics
- Time taken to be completed
- Resources required
- Number of occurences of a particular event
Capability Maturity Levels
-
Initial -> Essentially uncontrolled
-
Repeatable ("Managed") -> Procedures defined and used
-
Defined -> Procedures and strategies defined and used
-
Managed ("Quantitatively Managed") -> Management strategies defined and used
-
Optimising -> Optimise procedures and strategies used