Lesson 4 (1)
Lesson 4 (1)
Part 1
Topics covered
Software process models
Process activities
Software process
A structured set of activities required to develop a software system.
In practice, most practical processes include elements of both plan-driven and
agile approaches.
Incremental development
Specification, development and validation are interleaved. May be plan-driven or
agile.
The main drawback of the waterfall model is the difficulty of accommodating change after the
process is underway.
In principle, a phase has to be complete before moving onto the next phase.
Waterfall model problems
Inflexible partitioning of the project into distinct stages makes it difficult to respond
to changing customer requirements.
Therefore, this model is only appropriate when the requirements are well-
understood and changes will be fairly limited during the design process.
This methodology is suited for smaller projects with deliverables that are easy to
define from the start.
In those circumstances, the plan-driven nature of the waterfall model helps
coordinate the work.
Process activities
Real software processes are inter-leaved sequences of technical, collaborative
and managerial activities with the overall goal of specifying, designing,
implementing and testing a software system.
In the waterfall model, they are organized in sequence, whereas in incremental
development they are inter-leaved.
Software specification
The process of establishing what services are required and the
constraints on the system’s operation and development.
Software design
Design a software structure that realises the specification;
Implementation
Translate this structure into an executable program;
The activities of design and implementation are closely related and may be inter-
leaved.
A general model of the design
process
Design activities
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.
Component design, where you take each system component and design how it will
operate.
Interface design, where you define the interfaces between system components.
Database design, where you design the system data structures and how these are to
be represented in a database.
Software validation
Verification and validation (V & V) is intended to show that a system
conforms to its specification and meets the requirements of the system
customer.
System testing involves executing the system with test cases that are
derived from the specification of the real data to be processed by the
system.
System testing
Testing of the system as a whole. Testing of emergent properties are particularly
important.
Acceptance testing
Testing with customer data to check that the system meets the customer’s needs.
Testing phases in a plan-driven software process
Software Processes
Part 2
Software evolution
Software is inherently flexible and can change.
Change leads to rework so the costs of change include both rework (e.g. re-
analysing requirements) as well as the costs of implementing new
functionality
Reducing the costs of rework
Change avoidance, where the software process includes activities that can
anticipate possible changes before significant rework is required.
For example, a prototype system may be developed to show some key
features of the system to customers.
51
Unified Process: 4 Phases
Inception:
Plan the project.
Evaluate risk.
Elaboration:
Understand problem domain.
Design system architecture.
Plan development.
Construction:
Design, programming and test.
Transition:
3/19/2024
52
Moving system from developer to user environment.
Acceptance testing, release of full system.
RUP and UP
UP is more of a philosophy of how to run development projects.
53
Rational Corporate Introduction
Background Introduction
Products Introduction:
1) Requirements & analysis
Rational Suite® AnalystStudio
2) Visual modeling & development
Rational Suite® DevelopmentStudio
3)Automated Testing
Rational Suite® TestStudio®
4)Project Management
Rational Unified Process®
5)Configurable Process
RUP
54
UML and RUP
UML: international standard for object-oriented modeling.
RUP uses UML to prepare blueprints of the software
55
RUP view I
56
57
58
RUP good practice
Develop software iteratively
Plan increments based on customer priorities and deliver highest priority
increments first.
Manage requirements
Explicitly document customer requirements and keep track of changes to
these requirements.
Use component-based architectures
Organize the system architecture as a set of reusable components.
RUP good practice
Visually model software
Use graphical UML models to present static and dynamic views of the
software.
Scrum
Extreme Programming
Most prominent Agile Software development method.
Phases of AUP
Inception
Elaboration
Construction
Transition
Disciplines of AUP
Model
Implementation
Test
Deployment
Configuration Management
Project Management
Environment
Scrum
It is an Agile S/w development method for project management
Characteristics:
Prioritized work is done.
Completion of backlog items
Progress is explained
Agile Software Development
Scrum
It is an Agile S/w development method for project management
Characteristics:
Prioritized work is done.
Completion of backlog items
Progress is explained
Agile Software Development