Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. This the set of slides is majorly based on the first module of the course material of Rational University. 2. Philips Kruchten, The Rational Unified Process, Pearson Education Asia, 2000.
A quote first
Software developers normally estimate that they are 90% done, but it takes 90% to get the rest of the way to 100% done.
In short, 90% done, 90% still remains.
Objectives (Cond..)
Understand the different views of a software architecture, the key mechanism that are defined in support of that architecture, and the effect of the architecture and the mechanisms on the product design. Describe some basic design considerations, including the use of the patterns.
Situation Analysis
World economies are becoming software dependent (Should we put a big question mark
( ) today.
Applications are expanding in size, complexity, distribution and importance. Business is demanding increased productivity and quality in less time and within budget. Not enough qualified manpower is available.
A Challenging Scenario
Team sizes are increasing. Specialization is growing (New Specific Roles such as Performance Engineer & QA, Integrator & Tester, Release Engineer etc.) Rapid advancement in technology. Distribution at large.
So, Scenario is
There are many software products under use. There are many software products under development too. There are too many projects underway, some of them are at concept level, others are verge of completion and some others are under a middle state.
Unfortunately, What happens isTreating symptoms does not treat the disease, e.g. Late discovery of serious project flaws is only a symptom of larger problems. We have to diagnose for the symptom i.e. subjective project status assessment for above symptom.
Actually, what we should doWe should attack these root causes (diagnosis) so that we are not only in position to get rid off the system, but also we are in a better position to provide quality to the software in a repeatable and productive manner.
Manage Requirements
Model Visually
Verify Quality
Control Changes
Expect Outcome
Best practices enable high-performance teams resulting into more successful projects in terms of quality, timeliness and profits.
Manage Requirements
Model Visually
Verify Quality
Control Changes
Traditional
Waterfall Development
Requirement Analysis
Design Code & Unit Testing Subsystem Testing System Testing
Time
R D C T1 T2
Waterfall
TIME
Iteration 2
R D C T1 T2
Iteration 3
R D C T1 T2
TIME
-Earliest iterations address greatest risks. -Each iteration produces an executable release, an additional increment of the system. -Each iteration includes integration and test.
Waterfall
Iteration
Iteration
Iteration
Iteration
TIME
Solutions
Enables and encourages user feedback. Serious misunderstandings evident early in the life cycle. Development focuses on critical issues. Objective assessment thru testing. Inconsistencies detected early. Testing starts earlier. Risk Identified and addressed early.
Manage Requirements
Model Visually
Verify Quality
Control Changes
Terms of Agreement
The Goal
Client System to be built
Requirements Verification
Surrogate Goal
Requirements
Change Management
QA & Test
Requirement Management
Solutions
Disciplined approach to requirement gathering. Communications based on the specified requirements. Prioritizing, filtering and tracing the requirements. Objective assessment of functionality and performance. Inconsistencies detected early. Provision of a repository tool for requirements, attributes, and tracing with automatic links to the documents.
Manage Requirements
Model Visually
Verify Quality
Control Changes
Solutions
Component facilitates resilient architectures Reuse of commercially available components and framework is facilitated Modularity enables separation of concerns Components provide a natural basis for configuration management. Visual modeling tools provide automation for component based design.
Insufficient Automation
Manage Requirements
Model Visually
Verify Quality
Control Changes
Models
Solutions
Use cases and scenarios unambiguously specify behavior. Models capture software design s unambiguously. Non-modular or inflexible architectures are exposed. Unnecessary detail hidden when appropriate. Unambiguous designs reveal inconsistencies more readily. Application quality starts with good design. Visual modeling tools provide support for UML modeling.
Manage Requirements
Model Visually
Verify Quality
Control Changes
Deployment
Development
Iteration 2
R D C T1 T2
Iteration 3
R D C T1 T2
TIME
Test
Test
Plan Design Implement Execute Evaluate
Test
Plan Design Implement Execute Evaluate
T E S T
Test Suite 1
Test Suite 2
Test Suite 3
Test Automation
13000 Tests 6 Hours 1 Person
Why?
Does my application do what is required? Does my application leak memory? Does my application respond acceptably?
How?
Test cases for each scenario implemented Analysis tools and code instrumentation Check performance for each use-case/ scenario implemented
Test performance for all use cases under authentic and worstcase load
Poor Testing
Insufficient Automation
Solutions Testing provides objective project status assessment Objective assessment exposes inconsistencies early Testing and verification are focused on high risk areas Defects are found earlier and are less expensive to fix Automated testing tools provide testing for reliability, functionality and performance.
Manage Requirements
Model Visually
Verify Quality
Control Changes
Model Visually
Verify Quality
Solutions
Requirement change workflow is defined and repeatable Change requests facilitate clear communications Isolated workspaces reduce interference from parallel work Change rate statistics are good metrics for objectively assessing project status Workspaces contain all artifacts, facilitating consistency Change propagation is controlled. Changes maintained in a robust, customizable system
Develop Iteratively
Model Visually
Verify Quality
Control Changes
The RUP
The RUP (stands for Rational Unified Process) brings the six best practices together in a form that is suitable for a wide range of projects and organizations. It has four major phases- Inception, Elaboration, Construction, and Transition that work on organization along the contents of business modeling, requirements, analysis and design, implementation, test, deployment, configuration and change management, project management and environment.