Day |
Chapters & Strategies |
Topics |
1 |
Overview
Understanding Systems Architecture integrates all the requirements into one working system
|
- Definition: Architecture as an integration of
- domain concepts
- functional services
- interaction with users and other systems
- physical and environmental constraints
- real-time behavior and performance
- components design
- Goal: Designing all the components to build a whole that fulfills all the requirements
- breaking down into layers, components, packages, frameworks, objects
- following the OO design principles
- supporting iterative development
- Spirit: Architecture looks at a system as an autonomous body, it...
- grows a system like a body, with its own anatomy and physiology
- fulfills all requirements but allows for evolution
- builds the system as a whole, but incrementally
- addresses the highest risks first
- models for the system to sustain the test of time
|
1 |
The Conceptual Dimension
Delineating the knowledge, behavior, and mission of a system
If you were to compare a system with a human physiology, you could say the Conceptual Dimension is
what the system's brain contains: memories, knowledge, skills, purpose. This chapter shows how to model those as business
concepts, knowledge, rules, policies, and algorithms, and model where they physically resides. Furthermore, you will learn
how to break large Domain Models down to smaller, manageable conceptual blocks with UML Packages and their relationships.
That way, any Domain Model, however large and complex, can be properly broken down, distributed, and located.
|
- The Theoretical Model
- Business Concept Model (BCM)
- BCM Example and lab with the Autonomous Mission Tracking System (AMTS)
- Handling large Domains with UML Package Modeling
- Package Communication and Interface
- Educational packages
- Light or dense packages
- Large and heavy Packages
- Package communication architecture
- Interface for Architectural Packages
- Interface conceptual designation
- Interface simple and expanded notations
- Interface functional abstraction
- Contracts and seams
|
2 |
The Organizational Dimension
Organizing any systems architecture with universal UML Packages and Components
Learn how to quickly identify the main parts of your system, physical or not, and efficiently model
them using UML packages. At a later time, you may refine your architecture model and transform some areas into Layers or
Components. You'll get the opportunity to exercise that crucial skill on the concrete and sophisticated Autonomous Reconnaissance
Drone case study.
|
- Recognizing the architectural
parts
- Drone elements and their packaging
- Layers and nested packages
- Package communication
- Package interfaces
- Modeling some architectural
parts as UML Components
- Component definition and examples
- Features and behavior of a Component
- Powerful advantages and cost of Components
- When and how to use Components
- Component examples
- Components versus Packages, and their various combinations
- Component interfaces
- Component ports
- Component modeling for completion of the Reconnaissance Drone case study
- Components collaboration
- Interface direction versus dependency and realization
- Collaboration and sequences
- Sequence diagrams
- Missions Drone case study
|
3, 4 |
The Design Dimension
High-level usage of Design Patterns to solve advanced problems
A good developer uses Design Patterns to quickly solve typical problems. A good systems architect combines
them to solve much greater problems. This advanced chapter shows how to select, customize, and combine Design Patterns to
solve challenging problems. To make it concrete, we research the Automated Mission Tracking System and devise strategies to design
three types of architecture that control many assets dedicated to specific missions: centralized, distributed, and swarm-like.
|
- Design Patterns review
- The seven categories of Design Pattern motivations
- Review of a few, key Design Patterns
- Design Patterns selection process
- Design Pattern high-level UML notation
- Explicit UML representation
- Implicit UML representation
- Example on the Composite Pattern
- Nested patterns
- Patterns combination notation
- Patterns collaboration
- Patterns dependencies
- Distributed backup system for the AMTS
- Automated Mission Tracking System (AMTS) lab
- AMTS backup requirements
- Distributed, dynamic backup system
- Design Patterns selection
- Design Patterns combination
- Review of each group's solution
- Proposed solution
|
4, 5 |
The Physical Dimension
Breaking the Components boundaries to design the architecture of large systems
Real-life systems rarely are single, isolated machines. They are a combination and composite of multiple systems. We treat
each one as a UML component and design how they work and interact together. This workshops—the most advanced one—considers
the Automated Mission Tracking System (AMTS) and designs and architecture so that all the assets of a same mission
not only work together, but also work as a "swarm". That way, it will continue even while some assets "go dark", overtaken
by the hostile environment in which they operate. We take all the layers into account (Domain, Control, etc.) and all the components of that "macro"
system, and make it work as one, unified whole. Many issues are raised and challenges overtaken and students now realize what it really
means to be a Systems Architect.
|
- Case Study Problem domain
- Functional requirements
- Timing constraints
- Physical deterioration
- Case Study Architectural Alternatives
- Redundancy versus lightweight design
- Centralized versus distributed solutions
- Standard distributed versus swarm-like behaviors
- Corresponding architectural solutions
- Student Solution Validation
- Presentation to instructor
- Presentations to class
- Challenging and defending proposed solutions
- Architectural Solutions
- Distributed solution
- Swarm-based solution
- Assumptions, features, and limitations
|
5 |
Conclusion
Putting it all together
Now is the time to appreciate all that has been learned, and review the responsibilities, process, techniques, and strategies of UML Systems Architecture
|
- Systems Architecture's Dimensions:
- Conceptual
- Organizational
- Design
- Physical
- Making it work in real life:
- The Architect's responsibilities and attitude
- The System's Architecture process
- Organizing to keep projects agile
- Typical challenges and solutions
- Avoiding typical mistakes and the architectural anti-patterns
- Further readings and activities
|