Symptoms of Software Development Problems
1) Not properly understanding
the end-users needs.
2) Inability to deal with
changing requirements.
3) Modules that do not fit
together.
4) Software that is hard to
maintain.
5) Late discovery of project
flaws.
6) Unacceptable software
performance.
7) No coordination between team
members.
Root Causes of Software Development Problems
1) Ad hoc requirement.
2) Gap in communication.
3) Overwhelming Complexity.
4) Inadequate testing.
5) Undetected inconsistencies
in requirements, designs and implementation.
6) Insufficient Testing.
7) Failure to take care of
Risk.
Best Practices
1) Develop Software
iteratively.
2) Manage Requirements.
3) Use Component based
architectures.
4) Visually model software.
5) Continuously verify software
quality.
6) Control changes to software.
Rational Unified Process builds on these 6 best
practices to deliver well-defined process.
It
is a software engineering process.
It
provides a disciplined approach to assigning tasks and responsibility within
the organization.
It is a process framework and a process
product.
In
addition to the 6 best practices, 3 other are important features of RUP
1) Use-Case-Driven Development
– which play a major role in requirement, design, test and implementation.
2) Process Configuration – to
produce high quality software.
Process describes who, what, how and when.
Workers: who
Activities: what
The work performed by the workers. It is a unit of
work an individual is asked to perform that role.
Artifacts: how
Is a piece of information
that is being produced, modified or used by the process.
It can be a Source code /
Executables / Document / Use – case or Design model.
Workflow: when
3) Tools Support
Use-Case Model
Use-Case
is a sequence of actions the system performs.
Actor is someone or something outside the system
and interacts with the system.
Flow
of Events sequence of actions between
the actor and the system written in simple language.
RUP
is a use-case driven approach. This means that the use cases defined for the
system are the basis for the entire development process.
Written
in simple prose, use cases are understandable by wide range of stakeholders.
Use
cases synchronize the content of various models.
Use
cases are organized in use-case model, which also expresses the relationships
among them.
Scenarios
are described instances of use cases.
Use
case drive numerous activities in RUP
·
Creation and validation of the design model.
·
Definition of test cases and test procedures in the test model.
·
Planning of Iterations.
·
Creation of user manuals.
·
Deployment of the system.
Project Management Workflow
PM
is the art of completing objectives by managing the risk factor and overcoming
the constraints to deliver the project.
PM
Workflow has three purposes
1. To provide framework for
managing software-intensive projects.
2. To provide practical
guidelines for planning, staffing, executing and monitoring projects.
3. To provide framework for
managing risk.
Risk is a variable, which can
take a value that endangers the success of a project.
It
can be direct (over which the project has a large degree of control) or
indirect (on which the project has less or no control)
Strategies
with Risk
1. Risk avoidance: Reorganize
the project such that it cannot be affected by risk.
2. Risk Transfer: Reorganize
such that someone or something bears the risk.
3. Risk acceptance: Monitor the
symptoms and decide on what to do if it materializes.
·
Migrate to Risk: Take immediate proactive steps to reduce the impact.
·
Define Contingency plan: Determine what to do if risk becomes problem.
Goals are to
·
Improve productivity.
·
Improve predictability.
·
Improve customer satisfaction.
·
Increase revenue.
·
Increase reuse.
Metrics
Is a measurable attribute or entity.
It can be a raw data that is used to calculate a metric.
Each metrics has one or more collected metrics.
Planning
an iterative Project
·
Phase plan.
·
Iteration plans.
Workers
·
Project Manager.
·
Project Reviewer.
Artifacts
·
Software Development Plan.
Produce acceptance plan.
Risk management plan.
Problem resolution plan.
Measurement plan.
·
Business case.
·
Iteration plans.
·
Iteration assessment.
·
Periodic assessment.
·
Work order.
PM Workflow
·
Conceive new project
Identify and assess risks, develop business case,
initiate project and project approval review.
·
Evaluate project scope and risk
Done after the project is initiated to give solid
base for detailed planning
·
Develop software development plan
Includes
Measurement plan
Risk management plan
Product acceptance plan
Problem resolution plan
Project organization and staffing
Monitoring and control process
Plan phases and iterations
Compile software development plan
·
Plan for next iteration
To create iteration plan to guide the next
iteration. To adjust software development plan, cost estimates and availability
dates
·
Monitor and control project
Deal with change request approved by CCB. Monitor
project for progress and risks. Report project status. Dealing with issues and
problems.
·
Manage iteration
To find necessary resources to perform iterations,
allocate work and assess the results.
·
Close-out phase
Ensure that issues are closed in that phase.
Deployment problems are addressed. Project finances are settled.
·
Close-out project
Readies the project for termination.
Requirement Workflow
Requirement
is a condition that the system needs to meet
Functional
Requirements are the behavior of the system with inputs and outputs.
Non-Functional
Requirement:
Usability: user documentation,
training material and other human factors.
Reliability: frequency and severity
of failure, recoverability and accuracy.
Performance: transaction rate,
speed, response time and memory usage.
Support: Testing and Maintenance
problems and making the system up-to-date.
Workers in Requirements
·
System Analyst
Coordinates requirements and use-case modeling.
·
Use-Case Specifier
Details all or part of system’s functionality.
·
User-Interface Designer
Interaction between user and the system.
Artifacts in Requirement
Business
Object Model developed during business model, Vision Document, Use-Case Model
and Use cases.Complementary to the above, we can have
·
Glossary
·
Use-Case Storyboard
·
User-interface prototype.
Analysis and Design workflow
To
translate the requirements into Specification. To describe how to implement the
system.
Analysis
To translate with use cases and
functional requirements, the requirements into classes and subsystems.
Design:
Adapt the results of the analysis to
the constraints imposed by non-functional
requirements.
It
is a refinement of analysis. It should be done so that the system can be
implemented unambiguously.
Workers
·
Architect
·
Designer
·
Database Engineer
·
Architect Reviewer and Design Reviewer
·
Capsule designer for real-time systems
Artifacts
·
Design Model blueprint of
the system under study. It consists of collaboration of classes aggregated
into packages.
A Class is a set of objects that share same
responsibilities, relationships, attributes and semantics.
A Package is a logical
grouping of classes.
·
Software Architecture Document
Workflow
·
Define a candidate Architecture
Create an initial sketch
Identify classes
Update use-case
·
Refine the architecture
Identify design mechanisms.
Identify design elements.
Incorporate existing design elements.
Describe run-time architecture.
Describe distribution.
·
Analyze behavior
Use-case analysis by designer.
Identify design elements by architect.
Review the design by design reviewer.
·
Design components
·
Design real-time components
·
Design the database
Implementation Workflow
To
implement classes and objects. To test developed components. To integrate
results of individual implementers or teams.
It
consists of 3 components.
·
Builds
Subset of the system. Generally a part of the
system.
·
Integrate
To integrate work of different groups of the same
subsystem.
To integrate different subsystems into a large one.
Incremental integration is code written in small
pieces is combined into large one.
Phased integration is integrating multiple
components at the same time.
·
Prototype
Directed way to reduce risk. To show something
concrete to user.
Workers
·
Implementer
Develops components and performs unit testing
·
System Integrator
Who constructs a build
·
Architect
·
Code Reviewer
Artifacts
·
Implementation subsystem
·
Component
·
Integration and build plan
Workflow
To make the development of
components and the build process as conflict-free as possible.
·
Plan the subsystem to be implemented and their order
·
Implementer writes code, adapt existing components, compile, link and
execute.
·
Implementer also fixes bugs.
·
Code is reviewed.
Test Workflow
To assess end product quality. To
verify interactions of components, verify proper integration of components,
verify all requirements have been implemented correctly, verify that defects
are addressed before software is deployed.
Dimensions of Testing
·
Quality
Reliability
Functionality
Performance
·
Stages of Testing
Unit Testing
Integration Test
System Test
Acceptance Test
·
Types of Test
Benchmark Test compares
to standard existing software measurement
Configuration Test functionality
in different hardware and software
Function Test executing
the required use cases
Installation Test install successfully in different conditions or
configurations
Integrity Test verifies the reliability,
robustness and resistance to failure during execution
Load Test performance under operational conditions like
max users, max transactions.
Performance Test
Stress Test performance under abnormal conditions like
diminished resources.
·
Regression Test
Test Model
Is a representation of what to be
tested and how to test.
·
Test Cases
Set of test data, execution conditions derived from
use case, design documents or code.
·
Test Procedures
Set of detailed instructions for the setup,
execution and evaluation of test results for test cases.
·
Test Scripts
Computer readable instruction to execute the
procedures automatically.
·
Test Classes and Components
·
Test Collaborations
·
Notes
Workers
·
Test Designer
Plans, design, implement and evaluate tests.
·
Tester
Person responsible for execution of test.
Artifacts
·
Test Plan
·
Test Model
·
Test Results data
captured during execution of the tests.
·
Defects failed
test results
Workflow
·
Plan Test
·
Design Test
·
Implement Test
·
Execute Test in integration stage
·
Execute Test in System stage
·
Evaluate Test
Configuration and Change Management Workflow
Track
and maintain the integrity of evolving project assets like valuable artifacts.
To obtain the appropriate versions.
CCM Cube
·
Change Request Management
·
Configuration Management
·
Status and Measurement
Workers
·
Configuration manager
Setting up the product structure in the CM system.
Define and allocate workspaces for developers. Extract metrics and status
report for PM.
·
Change control manager
Overseas the overall change control process.
·
Implementers
·
Integrators
Artifacts
·
Change Request
·
Configuration Management Plan
·
Metrics and Status Reports
Workflow
·
Create an environment for CM
·
Manage releases.
·
Monitor and report configuration reports
·
Manage change requests.
Environment Workflow
Support
the development organization with both processes and tools.
·
Tool selection and acquisition
·
Set up tools
·
Process configuration
·
Process improvement
·
Technical services
Workers
·
Process Engineer
Configuring the process before the project startup.
·
Business process analyst for
business modeling guidelines
·
System analyst for
use-case modeling guidelines
·
User-interface Designer
·
Architect for
programming guidelines
·
Technical writer for
user manual guidelines
·
System Administrator maintain
hardware and software environment
Artifacts
·
Development case
Describes for each process workflow, how the project
will apply the process.
Workflow
·
Prepare environment for project
·
Prepare environment for iteration
·
Prepare guidelines for an iteration
Deployment workflow
Turn the finished software product
over to its users.
To
test the final beta version in its operational environment.
Package
the delivery software.
Distribute
the software
Install
the software
Train
the end user
Migrate
the software
Workers
·
Deployment Manager
·
Project Manager
·
Technical Writer
·
Course Developer
·
Tester
Artifacts
·
Installation artifacts
·
Release Notes
·
Support material
·
Training material
·
Print specs
·
Release media
·
Test Results
·
Feedback Results
·
Test Evaluation summary
Workflow
·
Plan deployment customer’s
willingness with his collaboration and preparation.
·
Develop support material for
end user to operate, maintain and use the system.
·
Test product at development site
·
Create release everything for the end user to install and run the
software
·
Beta Test Release
·
Package product
·
Provide access
Configuring and Implementing RUP
Configure
RUP: The organization should
modify the process framework
Implement
RUP: The organization should
routinely and successfully use RUP.
Address the
following areas
1. The people and their
competence, skills , motivation and attitude
2. The supporting tools
3. The software development
process
Implementing RUP step by step
·
Access the current state of
The people
The tools
The process
·
Set (Revised) Goals
·
Identify risks
·
Plan the process Implementation
·
Execute the process
·
Evaluate the process