Upload
gabriel-lamb
View
213
Download
0
Tags:
Embed Size (px)
Citation preview
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. No clear scope definition2. Architecture is brittle3. 90% done … 90% has to be done4. Undetected inconsistency5. Uncontrolled change6. Improper estimation of project complexity7. Incomplete study of requirements8. Lack of common programming practices and conventions within9. Low Intra communication10.Understanding of Technical risks11.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 management2. Incorrect definition of requirements
How to attack :
1. Solve the right problem2. Build the right solution
www.mahendar.com
How to Achieve Right?
ByEliciting,Organizing,Documenting,Manage the changing
REQUIREMENTS
www.mahendar.com
Aspects of Requirement Management
1. Analyze2. Understand3. Define the scope of the system4. Manage Scope5. Refine the right system6. 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 productthat gives highest returns on investment
ArchitectureTrade of analysis
Software architecture
www.mahendar.com
Architecture
It is part of design. Is is about making decision onHow 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 importantaspect that can be used to control the iterative and Incremental development of the system throughoutthe life cycle
www.mahendar.com
Basis for Re-Use
Basis for Architecture
Basis for Project Management (Planning, Staffing,Delivery)
The component architecture yields :
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 under- standing 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
QA
In
volv
em
en
t
Elaboration Construction Transition
www.mahendar.com
The dimensions for testing quality
1. Functionality2. Reliability3. 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 intoOur project, but must control the changes, how And when changes are introduced in to a projectArtifacts 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. Simultaneous update2. Limited notification (All users are not notified)3. Multiple update4. Multiple versions
www.mahendar.com
Aspects of Change Management System :
1. Change Request Management (CRM)2. Configuration Status Reporting (CSR)3. Configuration Management (CM)4. Change Tracking (CT)5. Version Selection (VS)
CRM: Cost, schedule and impact changes on existing productCSR: For AccountingCM: Defines configuration building and labelingCT: History and rational of changesVC: Right versions for changes of the system