Introduction to Software Architecture. Summarized by: Reza Gorgan Mohammadi Artificial Intelligence Laboratory (ISLAB) http://ceit.aut.ac.ir/islab September 2014. Definition of Software Architecture. Software Architecture:
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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Introduction to Software Architecture Summarized by: Reza GorganMohammadi Artificial Intelligence Laboratory (ISLAB) http://ceit.aut.ac.ir/islab September 2014
Definition of Software Architecture • Software Architecture: The software architecture of a system is defined as “the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them”.
The Roles of Software Architecture • Architecture of a system describes its gross structure which illuminates: • The top level design decisions including things such as: • How the system is composed of interacting parts • Where are the main pathways of interactions • What are the key properties of the parts • An architectural description includes sufficient information to allow high-level analysis and critical evaluation
The Roles of Software Architecture (Cont.) • S.A typically plays a key role as a bridge between requirements and implementation Requirements Software Architecture Code
The Roles of Software Architecture (Cont.) • Architecture exposes certain properties of a system, while hiding others, by providing an abstract description of the system which provides: • An intellectually tractable guide to the overall system • Permits designers • To reason about the ability of a system to satisfy certain requirements • Suggests a blueprint for system construction and composition
The Roles of Software Architecture (Cont.) • S.A. simplifies our ability to comprehend large systems by • presenting them at a level of abstraction at which a system’s high level design can be easily understood. • Architectural description exposes the high level constraints on system design.
The Roles of Software Architecture (Cont.) • Experiments has shown that successful projects view achievement of a viable software architecture as a key milestones in an industrial software development process. • Critical evaluation of an architecture typically leads to a much clearer • Understanding of requirements • Implementation strategies • Potential risks
What software architecture is not • Hardware, network, physical plant architecture • Hardware model number, hardware configuration, routers, LAN • Should not duplicate information on other sources • Appropriate level of detail • Low level implementation details should not included in the software architecture
Software Arch. vs. System Arch. • System Arch. is the overall architecture of system including hardware and softwarearchitecture. • In assuring quality attributes the architect needs to think about system architecture too (e.g. performance or reliability). • But architect has more freedom in software architecture than hardware (hardware choices is less under the architects control).