210 likes | 395 Views
Overview of SAIP and LSSA. Software Architecture in Practice. Provides a set of techniques, not a prescriptive method for architectural design.
E N D
Software Architecture in Practice • Provides a set of techniques, not a prescriptive method for architectural design. • Based on belief that software architecture is the development product that gives the highest return on investment with respect to quality, schedule, and cost.
SAIP: Evisioning Architecture 1 - The Architecture Business Cycle 2 - What is Software Architecture? 3 - A-7E: A Case Study in Utilizing Architectural Structures
SAIP: Creating and Analyzing an Architecture 4 - Quality attributes 5 - Architectural styles 6 - Unit Operations 7 - The WWW: A Case Study 8 - CORBA: A Case Study 9 - The Software Architecture Analysis Method 10 - Architecture Reviews 11 - Air Traffic Control: A Case Study
SAIP: Moving from Architectures to Systems 12 - Architecture Description Languages 13 - Architecture-Based Development 14 - Flight Simulation: A Case Study
SAIP: Reusing Architectures 15 - Product Lines: Reusing Architectural Assets within an Organization 16 - CelsiusTech: A Case Study 17 - Communitywide Reuse 18 - Meteorological Anchor Desk: A Case Study 19 - Software Architecture in the Future
Architecture Business Cycle • Architecture is about things not normally thought of as part of the requirements, such as security, modifiability, reliability • Different organizations with the same requirements will produce different architectures
What are system stakeholders? • How can their priorities conflict? • How can technical constraints affect the architecture? • Caterpillar • How does the experience of architects and developers affect the architecture? • Innoverse
Architecture Business Cycle • Many influences on architect • Architect makes an architecture • System is developed from architecture • System (and architecture) become an influence • What is good about this model? • What is bad?
Architecture Business CYCLE • Architecture affects structure of developing organization • Architecture affects goals of developing organization • Architecture affects customer requirements • Building this systems develops experience • A few systems change S.E. culture
SAIP2: What is Software Architecture? • Document produced early in the project • The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them. (page 23)
What is the difference between? • Architectural style • Reference model • Reference architecture • Architecture
Why is Software Architecture Important? • Communication among stakeholders • Why do users care about components? • Early design decisions • Transferable abstractions of a system • Can be applied to other systems with similar requirements
Architectural Structures • Module • Conceptual • Process • Physical • Uses • Calls • Data flow • Control flow • Class
Large-Scale Software Architecture • What is large? • More than 50 developers • Several hardware platforms • Many operating systems processes • Over half a million lines of code
LSSA 1 - What is architecture? 2 - The software architect 3 - SA and the development process 4 - Techniques 5 - Example
LSSA 6 - System context and domain analysis 7 - Component design 8 - Subsystem design 9 - Transaction and data design 10 - Process and deployment design
Software Architecture is • The set of entities, the properties of those entities, and relationships among them that define structure of the system. • The set of software components, packages, relationships, interactions, the properties of each of these elements, and the set of guiding principles that together constitute the fundamental properties and constraints of a software system.
Software architecture is not • Specific implementation mechanisms like • compiler optimizations • shared versus static libraries • implementation languages • COTS class or method names • file format
Attributes of Software Architecture • Cultural adaptibility • Data integrity • Maintainability (portable, changeable, understandable, debugable) • Testability • Availability, upgradeability, reliability • Safety, security
Why Architecture is Important • Systems are big • Some decisions are hard to change • Most developers weren’t there at the beginning of a project and need the big picture • Properties like reliability require hard work, they do not happen by accident, and they are properties of the entire system