290 likes | 405 Views
Architectural Descriptions. Lecture 6. References. Chapter 12: Architectural Description Languages from Software Architectures in Practice. IEEE Recommended Practice for Architectural Description of Software Intensive Systems.
E N D
Architectural Descriptions Lecture 6
References • Chapter 12: Architectural Description Languages from Software Architectures in Practice. • IEEE Recommended Practice for Architectural Description of Software Intensive Systems. • Architectural Blueprints-The 4+1 View Model of Software Architecture by Philippe Kruchten. Available from www.rational.com/media/whitepapers/Pbk4p1.pdf
Classical Architectural Descriptions • Largely represented by box and line drawings. • Nature of components, their properties, semantics of connections and overall behavior of the systems is reflected poorly. • Offer an intuitive view of system’s constructions but fail to identify, • Components, their behavior and their associations with other components. • Differentiation between runtime and compile time abstractions. • Nature of connections.
Architectural Description Languages (ADLs) • A linguistic approach to formal representation of architectures. • Address the shortcomings of informal representations. • Sophisticated ADLs allow for early analysis and feasibility testing of architectural design decisions.
Advantages of ADL • Architectures allow • Mutual Communication. • Embodiment of early design decisions suitable for analysis. • Transferable abstractions of a system. • These issues are better served if a standard notation for describing and representing architectures exists.
Advantages of ADL (Contd…) • Standardized and formal architectural description languages allow: • Enhanced communication between architect and other stakeholders. • Analysis of early design decisions. • Enable tools to be built to assist in development. • Construction of artifacts that are transferable to subsequent systems.
What are ADLs • ADLs differ from requirement languages because ADLs describe solution space. • ADLs differ from programming languages as latter bind all architectural abstractions to specific point solutions. • ADLs differ from modeling languages as latter are more concerned with the behavior of the whole rather than of the parts. • ADLs provide abstractions, structures and analysis capabilities that are clearly architectural in nature.
Minimal Requirements for ADL • Suitability to communicate architecture to all stake holders. • Support for representation of static and dynamic structures. • Support for representation of components and connectors. • Support for creation, refinement and validation of architecture. This should include mechanisms to test completeness and consistency of the architecture.
Minimal Requirements for ADL (Contd…) • Support for the representation of most common architectural styles. • Support for structures that express architectural information while suppressing implementation or non-architectural information. • Support for further development by adding information to ADL specification to enable the final system specification to be derived from ADL.
Minimal Requirements for ADL (Contd…) • If the language can express implementation level information it must contain capabilities for matching more than one implementation to the architectural level structures of the system. • Support for either an analytical capability based on architectural level information or a capability for quickly generating prototype implementations.
Using the Object Oriented Notation for Architectural Description • Advantages: • Familiarity to developers. • Close mapping to implementation. • Commercial tool support. • Considerations in using an object oriented notation for an architectural notation. • A graphical language for visualizing, constructing,specifying and documenting the artifacts of a software intensive system. • Support for multiple structural and behavioral views of the system.
Using the Object Oriented Notation for Architectural Description (Contd…) • Considerations in using an object oriented notation for an architectural notation (Contd…) • Support for stylistic constraints. • Support for connectors and interfaces as first class entities. • Support for hierarchical structures.
IEEE-1471 • IEEE Recommended Practice for Architectural Description of Software Intensive Systems. • Scope of the recommendation includes architectural descriptions allowing • Expression of the system and its evolution. • Communication among stake holders. • Evaluation and comparison of architectures in a consistent manner. • Planning, managing and executing the activities of system development.
IEEE- 1471 (Contd…) • Scope of the recommendation includes architectural descriptions allowing (Contd…), • Expression of the persistent characteristics and supporting principles of a system to guide acceptable change. • Verification of a system implementation’s compliance with an architectural description. • Recording contributions to the body of knowledge of software intensive systems architecture.
Architectural Description as Specified in IEEE-1471 • Every system has an architecture. • An architecture can be recorded by an architectural description. • Architecture of a system is a conceptual entity distinguished from particular descriptions of that architecture. • Architectural descriptions are considered concrete products or artifacts.
Architectural Description as specified in IEEE-1471 (Contd…) • An architectural description is organized into one or more constituents called views. • Each view addresses one or more of the concerns of system stakeholders. • View is used to refer to the expression of a system’s architecture with respect to a particular viewpoint.
Architectural Description as specified in IEEE-1471 (Contd…) • A viewpoint establishes the conventions by which a view is created, depicted and analyzed, • A view conforms to a viewpoint. • The viewpoint determines the languages (including notations models, or product types ) to be used to describe a view. • Any associated modeling method or analysis technique to be applied to these representations of the view.
Architectural Description as specified in IEEE-1471 (Contd…) • An architectural description selects one or more viewpoints for use. • A viewpoint defined else where is referred to as library viewpoint. • A view may consist of one or more architectural models. • Each architectural model is developed using the methods established by its associated architectural viewpoints. • An architectural model may participate in more than one view.
4+1 View Model of Software Architecture • Description of a software architecture using several concurrent views each addressing one specific set of concerns. • Architectures made up of five main view • Logical view: Describes the object model of system. • Process view: Describes the concurrency and synchronization aspects of the system. • Physical view: Describes the mapping(s) of the software onto the hardware and reflects its distributed aspects. • Development view: Describes the static organisation of the software in its development environment. • Scenarios: Functionality illustrated by selected use-cases.
The 4+1 View Model End-user Functionality Programmers Software Management Logical View Development View Scenarios Process View Physical View Integrators Performance Scalability System Engineers Topology Communications
The 4+1 View Model(Contd.) • Perry & Wolfe’s equation applied independently on each view, • Software Architecture = {Elements, Forms, Rationale/Constraints} • For each view, a set of elements are to be defined. • Forms and patterns are described.
The 4+1 View Model(Contd.) • Rationale and constraints connecting an architecture to requirements are captured. • Each view is described by a blueprint in its own particular notation. • For each view, architects can pick a certain architectural style, allowing the coexistence of multiple styles in one system.
The Logical Architecture • Primarily supports the functional requirements. • The system is decomposed into a set of key abstractions taken mostly from the problem domain. • The abstractions as recorded in the form of objects and object classes.
The Logical Architecture(Contd.) • Key relationships between abstractions are highlighted, i.e., • Encapsulation, • Abstraction, • Inheritance. • Main guideline • Maintenance of a single coherent object model across the whole system. • Avoidance of premature specialisation of classes and mechanisms per site or per processor.
The Process Architecture • Takes into account non-functional requirements, e.g., performance, availability. • Addresses issues of • Concurrency and distribution, • System’s integrity, • Fault tolerance, • Manner in which main abstractions of logical view fit within the process architecture. • Typical styles for the process view • Pipe and filter, • Client server.
The Development Architecture • Focuses on the actual software module organisation on the software development environment. • The software is packaged into manageable chunks, e.g., program libraries or subsystems, that can be developed by one or a small number of developers. • A layered style is used for the development model. • RULE: Not to allow layer bridging to maintain simplicity.
The Physical Architecture • Focuses on non-functional requirements, e.g., • Availability, • Reliability or fault tolerance, • Performance or throughput, • Scalability. • Software executes on a network of computers or processing nodes. • Various elements identified earlier, i.e., objects, processes, etc., are to be mapped onto the various nodes.
Scenarios • Scenarios show the elements of the other four views to work together seamlessly. • Scenarios are abstractions of most important requirements. • Design of scenarios is expressed using the object scenario diagrams and object interaction diagrams. • The view is redundant with other views for • Discovering architectural elements, • Validation, illustration and demonstration.