The document discusses analysis and design activities in software engineering. It describes analysis blending into design and analysis preceding design. It outlines typical roles like the designer and architectural analysis. It discusses benefits of a good architecture like managing complexity. It also discusses class construction, different processes for object-oriented analysis, design and programming, and complementary views. Finally, it discusses iteration in the Rational Unified Process.
1. Analysis and Design Discipline
• Using the Crystallization Analogy
• Understanding the Analysis and Design Discipline
• Defining the Analysis and Design Activities
• Documenting the Analysis and Design Discipline
• Viewing the Model
• A Word on Iteration
2. Process & Life-cycle Viewpoint
Project Management
Implementation
Test
Analysis & Design
Development Cycle Phases
Engineering Disciplines
Supporting Disciplines
Configuration & Change Mgmt
Requirements
Elaboration Transition
Inception Construction
Principal iteration for the discipline
3. Analysis and Design Activities
– The Crystallization Analogy
Analysis blends
with design
Analysis precedes
design
Analysis mixes
with design
5. Benefits to a Good Architecture
• Architecture lets developers gain and retain intellectual control
over a project, to manage its complexity, and to maintain system
integrity
• Architecture provides an effective basis for large-scale reuse
• Architecture provides a basis for project management
• Architecture facilitates component-based development
• A component fulfills a clear function in the context of a well-defined architecture
• A component conforms to and provides the physical realization of a set of interfaces
• Components exist relative to a given architecture
UPEDU Concept: Software Architecture
6. Typical Interactions
• Parameter interaction
• Data passed from one procedure to another
• Shared memory interfaces
• Block of memory is shared between procedures
• Procedural interfaces
• Components encapsulate sets of procedures to be
called by other components
• Message passing interaction
• Components request services from others
7. System’s Reuse and Resilience
• Good architectures that meet their requirements, are resilient, and
are component-based
• A resilient architecture enables
• Improved maintainability and extensibility
• Economically-significant reuse
• Clean division of work among teams of developers
• Encapsulation of hardware and system dependencies
• A component-based architecture permits
• Reuse or customization of existing components
• Choice of thousands of commercially-available components
• Incremental evolution of existing software
• The architecture should be initially constructed with basic boxes and
lines
• Should be derivable from the class diagram
• The resulting UML component diagram will reflect the initial architecture
8. Class Construction
•Definitions and Distinction of OOA, OOD, and OOP
•Object-oriented Analysis (OOA)
•Processes to understand a system of classes
and objects
•Creates the vocabulary to describe the system
•Object-oriented Design (OOD)
•Record sthe vocabulary from OOA to give the
model required behavior
•Object-oriented Programming (OOP)
•Implement sthe model from OOD
9. Different Processes – Different Concentrations
•Waterfall
• All OOA,
• all OOD,
• all OOP
•Spiral
• OOA, prototype, risk assessment
• OOD, prototype, risk assessment
• OOP, prototype, risk assessment
•Iterative
• Some OOA, some OOD, some OOP,
• More OOA, more OOD, more OOP
• …
11. Use Case View
• Describes
• an architecturally significant subset of the use-case model.
• Concerns
• functionality, critical functions, performance
• Represents
• graphically, on Use Case Diagrams
OK
Find
• Actors
• Use Cases
UPEDU Concept USE-CASE View
12. Logical View
• Describes
• an architectural subset of the design model, (a subset of the classes and use-
case realizations).
• Concerns
• functionality, behavior, use of frameworks, patterns
• Represents
• graphically, on Class Diagrams, Interaction Diagrams and State Diagrams
• Package structure
• Interesting classes
• Use Case Realizations
OK
Find
UPEDU Concept: Logical View
13. Implementation View
• Describes
• the software component organization in the development environment
• Concerns
• ease of development, team organization, inclusion of existing systems or
components, software configuration and management
• Represents
• graphically on Component Diagrams
• Code library structure
• Source code Deliverables
(.exe , .DLL, Data files)
OK
Find
UPEDU Concept: Implementation View
14. A Word on Iteration
• Risks are mitigated earlier, because elements are
integrated progressively.
• Changing requirements and tactics are
accommodated.
• Improving and refining the product is facilitated,
resulting in a more robust product.
• Organizations can learn from this approach and
improve their process.
• Reusability is increased.
15. Iterative Approach -- RUP
• The iteration goals and objectives are directly related
to the phase objectives, complexities, and risks.
An iteration:
Phases and associated Iterations:
16. RUP – Phases and Iteration Objectives
• Inception
• Iterations focus on management, requirements, and design activities
• Elaboration
• Iterations focus on defining, validating, and base lining the architecture
• Construction
• Iterations focus on design, implementation, and testing
• ex. Fixing Bugs iteration includes implementation and testing
• Transition
• Iterations focus on testing and deployment
• ex. User feedback iteration needed that touches all disciplines