Transcript Document

www.mahendar.com
Objectives
1. Identify steps for understanding and solving the
Software Engineering Problems
2. Explain some of the BEST PRACTICES
3. Present the Rational Unified Process within the
context of these BEST PRACTICES
www.mahendar.com
• Rational Unified Process is Architecture centric,
use-case centric, Process driven modeling the
abstraction of the system
• It is a team-based definition of the process
• Its process structure :
Inception
Elaboration Construction
Transition
www.mahendar.com
The Milestones
•Inception
: Scope
•Elaboration
: Base Line Architecture
•Construction : Build the product
•Transition
: Transit to the end user community
www.mahendar.com
Symptoms in Software Development Process
•
•
•
•
•
•
•
•
User needs not met
Requirements turn violently
User is not clear …. What he needs
Modules do not fit together
Hard to maintain
Poor or Compromise quality
Big difference in Progress v/s Schedule
Build and release (wait)
www.mahendar.com
Some Root causes
1.
2.
3.
4.
5.
6.
7.
8.
No clear scope definition
Architecture is brittle
90% done … 90% has to be done
Undetected inconsistency
Uncontrolled change
Improper estimation of project complexity
Incomplete study of requirements
Lack of common programming practices and
conventions within
9. Low Intra communication
10.Understanding of Technical risks
11.Gauging Team by the head
www.mahendar.com
The Best Practices
•Develop Iteratively
•Manage requirements
•Use Component based architecture
•Model Visually
•Change management
•Continuously verify Quality
www.mahendar.com
Practice 1 : Iterative Development
Advantages :
•Yields a good architecture
•Iteration gives an executable release
•Address greater risk with an earliest iteration
•Test and Integrate continuously
•Enables early user feedback
•Project management is easy
•Short term objectives and milestones
•Risk assessment is easy
•Helps to draw a comparison diagram
www.mahendar.com
Practice 2 : Manage Requirements
The Need :
Software projects failed because :
1. Poor requirement management
2. Incorrect definition of requirements
How to attack :
1. Solve the right problem
2. Build the right solution
www.mahendar.com
How to Achieve Right?
By
Eliciting,
Organizing,
Documenting,
Manage the changing
REQUIREMENTS
www.mahendar.com
Aspects of Requirement Management
1.
2.
3.
4.
5.
6.
Analyze
Understand
Define the scope of the system
Manage Scope
Refine the right system
Build the right one
The different kinds of requirements
• Functional
• Non functional
www.mahendar.com
What is Traceability
• Assess the process impact of the changing the
requirements
• Manage the scope and change
• Whether the system is doing what it intends to do
www.mahendar.com
Resiliency
Meet the current and future requirements
Improve extensibility
Enable reuse
Encapsulate system dependencies
Select from the commercially available components
Evolve the existing software incrementally
www.mahendar.com
Practice 3 : Use Component Architecture
Software architecture is the development product
that gives highest returns on investment
Architecture
Trade of analysis
Software architecture
www.mahendar.com
Architecture
It is part of design. Is is about making decision on
How the system will be built.
But it is not all design
It stops at major abstractions and major elements
Software system architect is the most important
aspect that can be used to control the iterative and
Incremental development of the system throughout
the life cycle
www.mahendar.com
The component architecture yields :
Basis for Re-Use
Basis for Architecture
Basis for Project Management (Planning, Staffing,
Delivery)
www.mahendar.com
Practice 4 : Visual Modeling
(Mostly adopted by many organizations)
Model : It is a simplification of reality
•
•
•
•
•
•
Reason for building models is for better understanding of the system and to comprehend its
entirety.
We capture the structure and behavior
To show how the elements put together
Keep design and implementation consistent
Hide or expose details
Promotes unambiguous communication
www.mahendar.com
Practice 5 : Continuously Verify Quality
Test based on the requirements
The ways that a program behaves almost infinite
Inception
Elaboration
Construction
Transition
www.mahendar.com
The dimensions for testing quality
1. Functionality
2. Reliability
3. Performance
Functionality Testing
• Create test for each key Use-case instance
• Assess the system functionality by asking what
scenario failed and where?
• What is the corresponding which is not yet
exercised
www.mahendar.com
Reliability Testing
Automated test script generation to provide the
broad coverage of application under test.
Performance Testing
Load testing.
Verifying the robustness of the application
www.mahendar.com
Practice 6 : Manage Change
We cannot stop change from being introduced into
Our project, but must control the changes, how
And when changes are introduced in to a project
Artifacts and who introduce the change between
Requirement
Release
www.mahendar.com
Changes to enable Iterative Development
•Secure work spaces for each developer
•Automated integration
•Build Management
•Parallel development
Common problems :
1.
2.
3.
4.
Simultaneous update
Limited notification (All users are not notified)
Multiple update
Multiple versions
www.mahendar.com
Aspects of Change Management System :
1.
2.
3.
4.
5.
Change Request Management (CRM)
Configuration Status Reporting (CSR)
Configuration Management (CM)
Change Tracking (CT)
Version Selection (VS)
CRM: Cost, schedule and impact changes on existing
product
CSR: For Accounting
CM: Defines configuration building and labeling
CT: History and rational of changes
VC: Right versions for changes of the system
www.mahendar.com
Concentrating more on
- Project Management
- Requirements and Change Management
- Design Review
- Bug/Error Tracking system should be
followed uniformly across all stages
helps in ensuring productivity and a better
quality deliverable