UML Architecture and Implementation Modeling Fundamentals
Fundamentals of System Modeling
Definition: A model is an abstract representation of a system that provides a blueprint and visualizes the structure or behavior. It omits unwanted attributes to focus on essential aspects using modeling languages like the Unified Modeling Language (UML).
Static Models: These specify the structure of the system using object operations and associations independent of time. Examples include Class diagrams, Use case diagrams, and Composite structure diagrams.
Dynamic Models: These represent object interactions and behavior over time during runtime. Examples include Sequence diagrams, Activity diagrams, Collaboration diagrams, and State chart diagrams.
Goals of Modeling: To visualize and control architecture, manage risk, reduce complexity, and provide a template for system construction.
Architectural Landscapes: Logical and Physical
Logical Architecture: Focuses on the functional requirements provided to end-users. It organizes software classes, packages, and subsystems without considering how they are deployed. Typical diagrams include Class, Object, Sequence, and State diagrams.
Physical Architecture: Represents the runtime architecture, showing the topology of software components on hardware layers. It maps artifacts to platforms, including nodes, networks, and supporting software. It uses Deployment diagrams to detail the installation of packages on specific nodes.
Aspects of Architecture Modeling
Static Aspect: The collection of stable components forming the main structure. Represented by classes, interfaces, objects, and nodes; it does not change during execution.
Dynamic Aspect: Focuses on component/connection configurations controlled by nodes. It handles runtime modifications, sequencing, and state changes.
Functional Aspect: Defines how functions and data-flows operate together to satisfy requirements and drive other architectural views.
Non-functional Aspect: Describes operational capabilities, quality of service, and constraints (e.g., performance, layering techniques). These are often qualitative and abstract.
Implementation Diagrams: Components and Deployment
Component Diagram: Models the static implementation view, including physical parts like source code and executables.
Components: Reusable, replaceable software units represented as rectangles with tabs.
Interfaces: Communication paths using ball notation (provided interface) and socket notation (required interface).
Ports: Small squares on component edges providing encapsulation.
Connectors: Links between ports, either delegation (internal to externalports) or assembly (between components).
Deployment Diagram: Focuses on the configuration of runtime processing nodes.
Artifacts: Physical entities (e.g., config.dll) produced by the development process.
Nodes: Computational resources with memory and processing capability, represented as cubes (e.g., Web server, Client console).
Connections: Paths for node communication, such as satellite links or TCP/IP on Port .
Collaboration and Interaction
Collaboration: Defines roles and interactions among elements (classes, objects, interfaces) to provide behavioral requirements.
Collaboration Diagram: Part of the interaction diagram set, represented as an ellipse with dashed lines. It acts as a template where classifiers are bound to roles at runtime joined by connectors and numbered messages (e.g., ATM System interactions).
Questions & Discussion
What is a model, and why is it important for a software system? A model is an abstract representation in a similar or different medium that promotes understanding of system development. It is important because it provides blueprints for visualization, clarifies complexity levels, and provides an overview of planning, design, and testing.
What are the basic principles of modeling? Modeling requires selecting the right abstraction level, closing the gap between analysis and design, and using multiple views to solve problem domains, as no single model is sufficient.
Differentiate between static and dynamic aspects of architectural modeling. Static aspects are stable, representing components like classes and nodes that do not change during runtime. Dynamic aspects handle runtime modifications, emphasizing the sequencing of operations and changes to internal object states.
What role does physical architecture play in the design process? It provides the arrangement of physical elements and hardware topology. It identifies major modules and their responsibilities, ensuring the system can accomplish established tasks on specific infrastructure.
What are the main advantages of a deployment diagram? It helps visualize hardware components, aids in understanding the execution of artifacts on physical nodes during runtime, and describes the distribution and relation of components in the physical architecture.
Technical Specifics for ATM and Banking Systems Deployment diagrams for such systems involve hardware components like a Processor: Pentium, Memory: , Cash Dispenses, Card Readers, and Network Interfaces linking nodes like the Bank Server and ATM Node.