Slides7.1 BestPractices
Slides7.1 BestPractices
design
Module 6: Best practices of Software
Engineering
Objectives: Best Practices
• Identify symptoms of software
development problems.
• Explain the Best Practices.
• Present the Rational Unified Process
(RUP) within the context of the Best
Practices.
Symptoms of Software
Development Problems
User or business needs not met
Requirements not addressed
Modules not integrating
Difficulties with maintenance
Late discovery of flaws
Poor quality of end-user experience
Poor performance under load
No coordinated team effort
Build-and-release issues
Trace Symptoms to Root Causes
Symptoms Root Causes Best Practices
Needs not met Insufficient requirements Develop Iteratively
Requirements churn Ambiguous communications
Modules do notfitfit
don’t Brittle architectures Manage Requirements
Hard to maintain Overwhelming complexity
Use Component Architectures
Late discovery Undetected inconsistencies
Poor quality Poor testing
Model Visually (UML)
Poor performance Subjective assessment
Colliding developers Waterfall development Continuously Verify Quality
Build-and-release Uncontrolled change
Insufficient automation Manage Change
Best Practices Reinforce Each Other
Best Practices
Develop Iteratively
3. Requirements
4. Analysis & Design
2. Planning
1. Initial
Management 5. Implementation
Planning
Environment
(on-going)
6. Test
8. Evaluation
7. Deployment
Each iteration
results in an
executable release
Managing Requirements
Ensures that you
– solve the right problem
– build the right system
by taking a systematic approach to
– eliciting
– organizing
– documenting
– managing
the changing requirements of a software
application.
Use Component Architectures
– Planning
– Staffing
Middleware
– Delivery
• Intellectual control
System-
– Manage complexity software
– Maintain integrity
Model Visually (UML)
• Captures structure and behavior
• Shows how system elements fit together
• Keeps design and implementation
consistent
• Hides or exposes details as appropriate
• Promotes unambiguous communication
– The UML provides one language for all
practitioners.
Visual Modeling with the Unified
Modeling Language
Static
Diagrams
Class
Use-Case Diagrams
Sequence Diagrams Object
Diagrams Diagrams
Communication Component
Diagrams Models
Diagrams
Functionality Reliability
Test the accurate
workings of each
usage scenario.
Supportability Performance
Test the ability to Test the online response
maintain and support the under average and
application under peak loading.
production use.
Manage Change
• To avoid confusion, have:
– Secure workspaces for each developer
– Automated integration/build management
– Parallel development
Workspace
Management
Process Parallel
Integration Development
Build
Management
Manage Change (continued)
• Unified Change Management (UCM) involves:
– Management across the lifecycle
• System
• Project management
– Activity-based management
• Tasks
• Defects
• Enhancements
– Progress tracking
• Charts
• Reports
Rational Unified Process
Implements Best Practices
Best Practices
Process Made Practical
Develop Iteratively
Manage Requirements
Manage Change
Achieving Best Practices
• Iterative approach
• Guidance for activities
and artifacts
• Process focus on
architecture
• Use cases that drive
design and
implementation
• Models that abstract
the system
A Team-Based Definition of
Process
A process defines Who is doing What, When, and
How, in order to reach a certain goal.
Time
Bringing It All Together: The
Iterative Approach
In an
iteration,
you walk
through all
disciplines.
Disciplines
group
activities
logically.
Summary
• Best Practices guide software engineering
by addressing root causes.
• Best Practices reinforce each other.
• Process guides a team on who does what,
when, and how.
• The Rational Unified Process is a means
of achieving Best Practices.