430 likes | 435 Vues
Software Architecture Design and analysis. Software Architecture premaster course. Presented By:. Israa Mosatafa Islam Neveen Adel Mohamed Omnia Ibrahim Ahmed. Presented to:. Dr Hany Ammar. Agenda. Introduction Representations Styles Architecture description language Conclusion.
E N D
Software Architecture Design and analysis Software Architecture premaster course
Presented By: • Israa Mosatafa Islam • Neveen Adel Mohamed • Omnia Ibrahim Ahmed Presented to: • Dr Hany Ammar
Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion
Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion
Introduction • Is the study of the structure of large software systems. • It concerns itself with achieving non-functional qualities in large systems.
Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion
Representations • ADD method • ATAM method
ADD Method • It is Attribute-Driven Design approach to defining a software architecture in which the design process is based on the software’s quality attribute requirements. • The method has been used for designing the software architecture of products ranging from embedded to information systems.
ADD Method (Cont.) • ADD follows a recursive design process that decomposes a system by applying architectural tactics and patterns that satisfy its driving requirements. • This method is based on understanding the relationship between software qualities and the architecture mechanisms used to achieve these qualities.
ADD Goals • Supporting the earliest stages of the design process where the ability to achieve desired quality attributes is determined. • Allowing design to begin early enough in the life cycle to support modern time-to-market requirements.
atam method • Architecture Tradeoff Analysis Method (ATAM) is a risk-mitigation process • ATAM is used early in the software development life cycle
atam Benefits • Clarified quality attribute requirements • Improved architecture documentation • Documented basis for architectural decisions • Identified risks early in the life-cycle • Increased communication among stakeholders
ATAM Steps • Present ATAM - Present the concept of ATAM to the stakeholders, and answer any questions about the process. • Present Business Drivers - Everyone in the process presents and evaluates the business drivers for the system in question. • Present the Architecture - The architect presents the high level architecture to the team, with an 'appropriate level of detail.
ADD Steps of the ATAM Process: • Identify Architectural Approaches - Different architectural approaches to the system are presented by the team, and discussed. • Generate Quality Attribute Utility Tree - Define the core business and technical requirements of the system, and map them to an appropriate architectural property. Present a scenario for this given requirement.
ADD Steps of the ATAM Process: • Analyze architectural approaches - Analyze each scenario, rating them by priority. The architecture is then evaluated against each scenario. • Brainstorm and prioritize scenarios - among the larger stakeholder group, present the current scenarios, and expand. • Analyze architectural approaches - Perform step 6 again with the added knowledge of the larger stakeholder community. • Present results - provide all documentation to the stakeholders.
Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion
Styles • It provides a framework on which to base design • Style of software architecture is an established pattern of components with a name, such as client-server architecture
Styles types (Cont.) 1- Pipe and filter:
Styles Types (Cont.) 2- Object-oriented Architecture: • The focus is on the different items in the system, modeled as objects, classes etc. • Object orientation is one of the most widely spread architectural styles, both in education, industrial practice and science.
Styles Types (Cont.) 3- Layered Architecture:
Styles Types (Cont.) 4- Blackboard Architecture:
Styles Types (Cont.) 5- Client-Server Architecture:
Styles Types (Cont.) 6- Process Control: • Real-world systems often control a physical reality, such as control systems in a power plant. • There are a number of software paradigms for process control. • The significant properties are that the software takes its input from sensors and perform control actions. • The control loop may be of feedback or feed-forward type.
Styles Types (Cont.) 7- State Machine:
Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion
Architecture description language • provides features for modeling a software system’s conceptual architecture, distinguished from the system’s implementation. • capture and represent details of software systems at the architectural level.
Types • DAOP-ADL • ACME
Types ( DAOP - ADL) (Cont.) • Description language used to describe components and aspects, together with the composition rules that govern the weaving of components and aspects. • The visual notation of the DAOP-ADL language is CAM (Component-Aspect Model).
Types ( DAOP - ADL) (Cont.) • Architecture descriptions using DAOP-ADL comprises of the two parts: - Defines standalone components and aspects - Composition specification.
Types ( ACME) • It is an ADL (Architecture Description Language) that was developed to create a common interchange format in the software engineering community. • Provides the following key features: • An architectural ontology consisting of basic architectural design elements.
Types ( ACME) • A flexible annotation mechanism supporting association of non-structural information using externally defined sublanguages. • A type mechanism for abstracting common, reusable architectural idioms and styles. • An open semantic framework for reasoning about architectural descriptions.
Types ( ACME) - Example • A trivial architectural drawing containing a client and server component, connected by an RPC connector.
Types ( ACME) - Example • Acme supports the hierarchical description of architectures any component or connector can be represented by one or more detailed, lower-level descriptions.
Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion
Conclusion • Architecture of a software system is its structures comprising of elements, their external properties, and relationships. • Architecture is a high level design. • Architecture can be analyzed for various non-functional attributes like performance, reliability, security, etc.