TOPIC 2
Software Processes
- Software Process Models (2.1, 2.2)
- Change and Risk (2.2, 2.3)
Process Models and Activities
Software Process and Model
- Definitions
Software Process involve
● Specification
● Design and Implementation
● Validation / Testing
● Evolution / Maintenance
Software Process
Software Model
Software Process
- Specification
4
Software Process
- Software Design and Implementation
• Process to convert system specification into an executable system
– Often design and implementation are interleaved
Software Process
- Software Design and Implementation
Design Activity Description
Architectural Design Identify overall structure of the system &
principal components: subsystems or modules
Interface design Define interfaces between system components
Component design Design each system component
Database design Design the system's data structures and database
6
Software Process
- Software Validation
Verification – High level verification that system meets requirements and
design requirements
Validation – validating and testing the actual product by executing the code
Involves system testing
•Executing the system with test cases derived from real data to be processed
by the system.
Software Process
- Software Evolution
• Software is inherently flexible and can change.
• Software must change to meet new business needs
– Most of a project's time and cost associated with maintenance
• Programming stereotype is:
– development is creative and interesting, but maintenance is dull
– This is becoming increasingly irrelevant
8
Software Process
- Software Evolution
• Types of Maintenance:
1.
2.
3.
4.
Software Processes
Software processes
● Describe each process by:
- Activities
- Ordering of these activities
● All processes involve the four basic activities
● specification, development, validation and evolution.
11
Software processes
- (Planning) Paradigms
● Plan-driven processes:
● Also called Big Design Up Front (BDUF).
● Agile processes:
● Easier to change the process to reflect changing customer
.
requirements.
● Most practical processes include elements of both plan-driven and
agile approaches.
12
Software processes
- Delivery Types
● Single Delivery
● Incremental Delivery
● Continuous Delivery
13
Waterfall Model
● Single Delivery
● Plan-driven model – Separate and distinct phases
of specification and development.
14
Waterfall Model
- Issues
● Must complete phase N before starting phase N+1.
● Waterfall model is appropriate when..
15
Incremental Development
● Waterfall model delivers full system to user at the end of the process
● Incremental development delivers incomplete intermediate versions
16
Incremental Development
- Advantages
Advantages:
● Incremental development usable by either planning paradigm
● Plan Driven Models:
● Agile Models:
● Reduced Cost
● Quick Delivery of Software
● Obtains better (more useful) feedback from customers using
working software rather than paper designs
● Allows customer to gain experience / value from the system
earlier
17
Incremental Development
- Issues
Disadvantages:
● The process is not visible:
● Code/Software Rot:
● Incorporating code changes becomes increasingly difficult and
costly.
18
Incremental Development
- Refactoring
Refactoring: Improving the code without adding new features
19
Reuse Oriented Process
- Levels
• Functions / procedures / subroutines
• Standardize libraries (for single tasks)
• Object Orientated Programming
• Design Patterns
20
Reuse Oriented Process
-
System is assembled from existing components. May be plan-driven or agile.
21
Reuse Oriented Process
- Examples
• Web services: service available for remote invocation.
• Packages of objects designed for a component framework such as
.NET or Spring.
• Stand-alone software systems (COTS) configured for use in a
particular environment.
22
Software Processes
- Summary
Delivery Options
Single Delivery Incremental Delivery
Plan Driven
(BDUF)
(Planning)
Paradigms
Evolutionary
Planning
Most large systems developed using a process that incorporates elements from all of these models.
Spiral Model
24