Ch2 SoftwareProcess (UIT)
Ch2 SoftwareProcess (UIT)
Software
Engineering
1
Evaluation
2
University of Information Technology
- Challenge #1
▪ Spec? Design? Coding?
- Challenge #2
▪ Want to test if we can programmatically control the door-locking
devices (e.g., via drivers) before the system may be built.
▪ Want to build a good GUI for administrators and get feedback
from them
- Challenge #3
▪ How to deal with changes (e.g., upgrading door-locking devices,
adding more features to the admin function)
WebPortal
GRANT
10
Software Development Process
- How we achieve our goal
Oct Nov Dec Jan Feb Mar
20017 20017 20017 20017 20017 20018
Analysis and
Software
Design Development Testing Deployment
Requirements
Gathering
11
Theory that follows
Process
▪ about the activities in these processes such as specifying a data
model, designing a user interface, etc. and the ordering of these
activities.
Process descriptions may also include:
▪ Products, which are the outcomes of a process activity;
▪ Roles, which reflect the responsibilities of the people involved in
the process;
▪ Pre- and post-conditions, which are statements that are true
before and after a process activity has been enacted or a
product produced.
Verification
▪ Are we building the thing right
Validation
▪ Are you building the right thing
Incremental development
▪ Develop the system in increments and evaluate each increment
before proceeding to the development of the next increment;
▪ Normal approach used in agile methods;
▪ Evaluation done by user/customer proxy.
Incremental delivery
▪ Deploy an increment for use by end-users;
▪ More realistic evaluation about practical use of software;
▪ Difficult to implement for replacement systems as increments
have less functionality than the system being replaced.
Objective setting
▪ Specific objectives for the phase are identified.
Risk assessment and reduction
▪ Risks are assessed and activities put in place to reduce the key
risks.
Development and validation
▪ A development model for the system is chosen which can be
any of the generic models.
Planning
▪ The project is reviewed and the next phase of the spiral is
planned.
Inception
▪ Establish the business case for the system.
Elaboration
▪ Develop an understanding of the problem domain and the
system architecture.
Construction
▪ System design, programming and testing.
Transition
▪ Deploy the system in its operating environment.
In-phase iteration
▪ Each phase is iterative with results developed incrementally.
Cross-phase iteration
▪ As shown by the loop in the RUP model, the whole set of phases
may be enacted incrementally.
Workflow Description
Business modelling The business processes are modelled using business
use cases.
Requirements Actors who interact with the system are identified and
use cases are developed to model the system
requirements.
Analysis and design A design model is created and documented using
architectural models, component models, object
models and sequence models.
Implementation The components in the system are implemented and
structured into implementation sub-systems.
Automatic code generation from design models helps
accelerate this process.
Workflow Description
Testing Testing is an iterative process that is carried out in conjunction
with implementation. System testing follows the completion of
the implementation.
Deployment A product release is created, distributed to users and installed in
their workplace.
Configuration and This supporting workflow managed changes to the system (see
change management Chapter 25).
Project management This supporting workflow manages the system development (see
Chapters 22 and 23).
Environment This workflow is concerned with making appropriate software
tools available to the software development team.
5 levels
Currently CMMI (CMM integration)
http://en.wikipedia.org/wiki/Capability_Maturity_Model_In
tegration
Customer-driven
Market-driven
In thinking about the process of developing
software
Who is involved? What roles do individuals have?
How many individuals are involved?
What are the tasks?
How are tasks allocated to people?
What are the characteristics of those engaged in a given task?
Is the a match between the characteristics of the individual and the
demands of the task?
How is the process managed, coordinated, controlled?
What are the work products produced during development?
How long do the various tasks take?
How do we know a task is complete?
Are there tasks that can be performed concurrently?
What communications support is required to facilitate people working
together?
In thinking about the product resulting
from the development activity
What is the functionality provided?
What are the intended use(s) of the product in the customer's
environment?
What expectations does the customer have for the product?
Is the product operating reasonably in the use environment?
What considerations are there for system reliability?
How will the product be maintained over time?
What performance characteristics do the various functions need?
How does the system interface with the users?
Are the resources involved with system use being used wisely?
How many defects are present in the product?
What quality attributes have been assigned to this product and
how should they be quantified?