The Architecture Business Cycle. Paul C. Clements Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890 Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon University. Carnegie Mellon University. Software Engineering Institute. 1.
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.
The Architecture Business Cycle Paul C. Clements Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890 Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute 1
The Importance of Architecture • To a project • vehicle for stakeholder communication • key to achieving system qualities • basis for development project structure • To an organization • can be reused from project to project • forms a basis for product lines • is a foundation for new market entry • To a community • standard models emerge for mature domains • is a basis for component markets
Definition of Software Architecture • 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 among them.
Communication Vehicle • Architecture provides a common frame of reference in which competing interests may be exposed and negotiated. • negotiating requirements with users • keeping the customer informed of progress and cost • implementing management decisions and allocations
Result of Early Design Decisions -1 • An architecture defines constraints on an implementation. • implementations must conform to architecture • (global) resource allocation decisions constrain implementations of individual components • system trade-offs are in the architectural realm
Result of Early Design Decisions -2 • The architecture dictates organizational structure for development/maintenance efforts. Examples include • division into teams • units for budgeting, planning • basis of work breakdown structure • organization for documentation • organization for CM libraries • basis of integration • basis of test plans, testing • basis of maintenance • Once decided, architecture is extremely hard to change!
Result of Early Design Decisions -3 • Architecture permits/precludes achievement of a system’s desired quality attributes. For example: • If you desire Examine • performance inter-component communication • modifiability component responsibilities • security inter-component communication, • specialized components (e. g., kernels) • scalability localization of resources • ability to subset inter-component usage • reusability inter-component coupling • The architecture influences qualities, but does not guarantee them.
Result of Early Design Decisions -4 • An architecture helps users reason about and • manage change (about 80% of effort in systems • occurs after deployment). • Architecture divides all changes into three classes. • local: modifying a single component • non-local: modifying several components • architectural: modifying the gross system topology, communication, and coordination mechanisms • A good architecture is one in which the most likely changes are also the easiest to make.
Reusable Model • Less is more: It pays to restrict the vocabulary of design alternatives. • Architectural styles serve as that restricted vocabulary of design alternatives. • Working with known styles • reduces learning time • enhances communication • takes advantage of known style properties (e.g., performance, security, reliability)
Where do architectures come from? • Architectures are influenced by • stakeholders of the system(s) being built • technical and organizational factors • architect’s background
Stakeholders • Customer: wants low cost, quick delivery, … • End user: wants functionality, usability, ... • Maintainer: wants modifiability, ... • Developer: wants understandability, simple interfaces, ... • Developing organization: amortizing infrastructure, employing personnel, low cost, ... • ...
Development organization’s management stakeholder Maintenance organization stakeholder End user stakeholder Customer stakeholder Behavior, performance, security, reliability! Modifiability! Low cost, keeping people employed, leveraging existing corporate assets! Neat features, short time to market, low cost, parity with competing products! Low cost, timely delivery, not changed very often! Architect Ohhhhh... Stakeholders of a System Marketing stakeholder
Technical Environment • Current trends: today’s information system will likely employ a • database management system • Web browser for delivery and distribution across platforms • This was not true 10 years ago. • Available technology: decisions on using a centralized or decentralized system depend on processor cost and communication speed; both are changing quantities.
Architect’s Background • Architects develop their mindset from their past experiences. • Prior good experiences will lead to replication of prior designs. • Prior bad experiences will be avoided in the new design.
Architect’s influences Stakeholders Requirements Architect(s) Development organization Architecture Technical environment System Architect’s experience Summary: Influences on the Architect
Factors Influenced by Architectures • Structure of the development organization • Enterprise goals of the development organization • Customer requirements • Architect’s experience • Technical environment • The architecture itself
Architecture Influences the Development Organization Structure • Short term: Work units are organized around architectural units for a particular system under construction. • Long term: When company constructs collection of similar systems, organizational units reflect common components • e.g., operating system unit or database unit • especially true in product line organization
Architecture Influences the Development Organization’s Enterprise Goals • Development of a system may establish a foothold in the market niche. • Being known for developing particular kinds of systems becomes a marketing device. • Architecture becomes a leveraging point for additional market opportunities and networking.
Architecture Influences Customer Requirements • Knowledge of similar fielded systems leads customers to ask for particular features. • Customers will alter their requirements on the basis of the availability of existing systems.
Architecture Influences the Architect’s Experience and Technical Environment • Creation of a system affects the architect’s background. • Occasionally, a system or an architecture will affect the technical environment. • the WWW for information systems • the three-tier architecture for database systems
A Cycle of Influences • Architectures and organizations influence each other. • Influences to and from architectures form a cycle. • An organization can manage this cycle to its advantage.
Architect’s influences Stakeholders Requirements Architect(s) Development organization Architecture Technical environment System Architect’s experience Architecture Business Cycle (ABC)
Importance of the ABC • Recognizing architecture as a capital asset • develop it with care • develop it with more than one system in mind • keep it, nurture it, grow it, use it later • Looking for new business opportunities that architecture opens up • Planning and managing the feedback cycle
Example of ABC: Product Lines • Architecture enables entire suite of products to be built more efficiently • Case study: CelsiusTech AB of Sweden
ABC for CelsiusTech Architect’s influences Customer and end user Various navies Requirements (Qualities) Fault tolerance Tailorability Asset reuse Time to market Developing organization CelsiusTech Architect(s) Architecture Technical environment Ada Object orientation Iterative development System SS2000 products Architect’s experience Real-time embedded C3I
CelsiusTech’s Software Architecture • Two dominant styles • layered architecture to separate application-specific software from software used across the entire product line • blackboard style to decouple producers and consumers of data • Both styles promote modifiability and reusability.
Target tracking Fire control General applications: 100% Ada ASC ECM Operator’s console Common application Common applications: 100% Ada Picture compilations IPC Fundamentals Fundamentals: 95% Ada, 5% assembly language Tactical configuration Common functions Diagnostics Database LAN IPC Base system 2000: 10% Ada, 90% C OS-2000 Base system architecture Layered Architecture
Track information Updates Updates Data-providing application COOB HCI Requests Requests Track-ball updates Runtime Blackboard Architecture • Similar to A-7E data banker module
Current Members of Product Family • Sold 55 variants in SS2000 product family • Swedish Goteborg class Coastal Corvettes (KKV) (380 tons) • Danish SF300 class multi-role patrol vessels (300 tons) • Finnish Rauma class Fast Attack Craft (FAC) (200 tons) • Australian/New Zealand ANZAC frigates (3225 tons) • Danish Thetis class Ocean Patrol vessels (2700 tons) • Swedish Gotland class A19 submarines (1330 tons) • Pakistani Type 21 class frigates • Republic of Oman patrol vessels • Danish Niels Juel class corvettes
A B C D E F G Ships 1986 1992 1996 1988 1990 1994 Result of Changes:Shrinking, Predictable Schedules
200 180 160 140 120 100 80 60 40 20 0 1986 1987 1990 1992 1988 1989 1991 1993 1994 1995 1996 Result of Changes: Lower Staffing
140 120 100 80 60 40 20 0 Number of System Modules E D C B • A Ships Unique application Modified Common (verbatim) National application Reusable application Result of Changes: Reuse
ABC Feedback Loop • CelsiusTech is now exploring other domains in which their architecture and product line approach offers promise. • Air defense sector: Surprise! 40% of brand new system could be lifted verbatim from SS2000.
How is architecture-based development different? • The architecture-specific aspects of system creation include: • forming an organizational structure that supports/reflects architecture • architecture design process • using reference models and domain models • using patterns and styles • building skeletal system, incremental development • architecture evaluation • checking for conformance
Can We Evaluate an Architecture? • Yes. Since architecture • is the key to system qualities • involves decisions relevant to achieving those qualities • is not a random process • it follows that we can evaluate architectural decisions for their effect on qualities. • Analyzing for system qualities early in the life cycle allows for a comparison of architectural options.
Why evaluate an architecture? • All design involves tradeoffs. Not all tradeoffs are optimal (or anywhere near). Architecture is the earliest artifact where trade-offs are visible. • A evaluation ensures that: • the right questions are asked . . . early • tradeoff points are explicitly identified • Since architecture has such a profound effect on the success/failure of a project, evaluating an architecture is cheap risk insurance.
Cost of architecture evaluations • AT&T • 300 full-scale reviews done on projects of 700 staff-days or longer • average cost per review: 70 staff days • Rational Software • 30 reviews done on projects gteq 500 KSLOC each • average cost per review: $50,000 • SEI SAAM evaluations • ~15 reviews done on projects ranging from 100 KSLOC to 1,000 KSLOC • average cost per review: 14 to 20 staff-days • average length of review: 2 days
Example of Indirect Staff Costs • Using senior designers for evaluations instead of designing • Loss of productivity (due to reassignment of superior designers) • Time spent training staff in review techniques
Benefits of Architectural Reviews • Five different types of benefits result from holding architectural reviews. • 1. financial • 2. forces preparation for review • 3. early detection of problems • 4. validation of requirements • 5. improved architectures
Financial Benefits of Reviews • AT&T estimated that each reviewed project saves 10% of total cost as a result of the review. Thus, a 70-staff-day review of projects of 700 staff-days pays for itself. • Consultants who perform architecture evaluations report 80% repeat business.
Forces Preparation for Review • Documentation/specifications must be provided, hence they must exist or be created. • Some reviews use standard questions, and the architect can prepare ahead to ensure that the architecture scores well. • Reviews make the criteria for evaluation explicit by prioritizing requirements or quality goals.
Early Detection of Problems • The problems that can be found by an architectural level inspection include • unreasonable requirements • performance problems • problems associated with potential future modifications • The earlier in the life cycle that problems are found, the easier it is to fix them.
Validation of Requirements • Reviews put stakeholders in the same room with each other, often for the first time. • uncovers conflicts and tradeoffs • provides a forum for negotiated resolution of problems • It often results in the generation of new requirements or the clarification of existing requirements.
Improved Architectures • Development organizations anticipate types of questions raised at reviews and • design architectures with questions in mind • prepare documentation of the type needed at review • give explicit consideration to qualities to be reviewed
Review Techniques • There are a variety of techniques for performing architectural reviews; each has a different cost and provides different information. • These techniques fall into one of two basic categories. • 1. questioning techniques: applied to evaluate any aspect of an architecture for any given reason • 2. measuring techniques: applied to answer questions about a specific quality
Architecture Tradeoff Analysis Method (ATAM) • ATAM is an architecture evaluation method that focuses on multiple quality attributes. In doing so, it: • illuminates points in the architecture where quality attribute sensitivities & tradeoffs occur • generates a framework for ongoing quantitative analysis
ATAM and Risks • The point of an ATAM analysis is not to provide precise analyses . . . the point is to discover areas of high potential risk in the architecture. • We want to find trends: correlations between architectural parameters and measurable properties. • These areas can then be made the focus of risk mitigation activities: e.g. further design, further analysis, prototyping.
ATAM Benefits • We have observed a number of benefits to performing ATAM analyses: • stakeholder buy-in and interaction • clarified requirements • improved architecture documentation • documented basis for architectural decisions • And, obviously, improved architectures.
ATAM Steps • The ATAM takes 3 days to execute • Each day follows the same set of steps, but with different emphases: Day 0 Day 1 Day 2 Scenario Elicitation Architecture Elicitation & Mapping Analysis
Day 0: Information Exchange • Purpose: to elicit or refine architectural descriptions, to identify stakeholders, to develop scenarios and initial analyses. • Activities: • identify important quality attributes • document “seed” scenarios • identify stakeholders needed at evaluation • create initial representations of the architecture • define homework for the architect • Outcome: an analyzable architecture