Published on

COMP2120 - Week 1 - Process Fundamentals

Table of Contents

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
  • 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

  1. Waterfall model -> Plan-driven. Separate and distinct phases of specification and development
  2. Incremental development -> Specification, development and validation are interleaved.
    • May be plan-driven -> Planned beforehand
    • Agile -> Planned incrementally
  3. Integration and configuration -> Assembled from existing configurable components. May be plan-driven or agile

Waterfall Model

Waterfall Model
  • Possible flowbacks
Waterfall Model with iterative 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

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
  • 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
  1. Process maturity approach -> Focuses on improving process and project management and introducing good SENG practice
  2. Agile approach -> Focuses on iterative development and reduction of overheads
Process improvement cycle

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

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