1 / 42

Software Architecture Design and analysis

This course covers the principles and techniques of software architecture design and analysis. Learn about architectural representations, styles, and architecture description languages. Presented by Israa Mostafa Islam, Neveen Adel Mohamed, and Omnia Ibrahim Ahmed under the guidance of Dr. Hany Ammar.

andyd
Download Presentation

Software Architecture Design and analysis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Architecture Design and analysis Software Architecture premaster course

  2. Presented By: • Israa Mosatafa Islam • Neveen Adel Mohamed • Omnia Ibrahim Ahmed Presented to: • Dr Hany Ammar

  3. Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion

  4. Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion

  5. Introduction • Is the study of the structure of large software systems. • It concerns itself with achieving non-functional qualities in large systems.

  6. Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion

  7. Representations • ADD method • ATAM method

  8. 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.

  9. 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.

  10. 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.

  11. ADD method (Cont.)

  12. ADD Steps:

  13. atam method • Architecture Tradeoff Analysis Method (ATAM) is a risk-mitigation process • ATAM is used early in the software development life cycle

  14. 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

  15. Atam Process

  16. 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.

  17. 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.

  18. 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.

  19. Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion

  20. 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

  21. Styles types (Cont.) 1- Pipe and filter:

  22. Example of pipeline:

  23. 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.

  24. Styles Types (Cont.) 3- Layered Architecture:

  25. Styles Types (Cont.) 4- Blackboard Architecture:

  26. Example on Blackboard

  27. Styles Types (Cont.) 5- Client-Server Architecture:

  28. 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.

  29. Styles Types (Cont.) 7- State Machine:

  30. Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion

  31. 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.

  32. Types • DAOP-ADL • ACME

  33. 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).

  34. CAM design of a Chat application

  35. Types ( DAOP - ADL) (Cont.) • Architecture descriptions using DAOP-ADL comprises of the two parts: - Defines standalone components and aspects - Composition specification.

  36. Types ( DAOP - ADL) (Cont.)

  37. 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.

  38. 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.

  39. Types ( ACME) - Example • A trivial architectural drawing containing a client and server component, connected by an RPC connector.

  40. 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.

  41. Agenda • Introduction • Representations • Styles • Architecture description language • Conclusion

  42. 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.

More Related