Carnegie Mellon University Software Engineering Institute Software Architecture

  • Slides: 14
Download presentation
Carnegie Mellon University Software Engineering Institute Software Architecture in Practice Chapter 19: Open Issues

Carnegie Mellon University Software Engineering Institute Software Architecture in Practice Chapter 19: Open Issues and Course Summary Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 -3890 Sponsored by the U. S. Department of Defense © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 1

Carnegie Mellon University Software Engineering Institute Lecture Objectives This lecture will • enable students

Carnegie Mellon University Software Engineering Institute Lecture Objectives This lecture will • enable students to identify open issues in software architecture • summarize the course © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 2

Carnegie Mellon University Software Engineering Institute Topics Open issues • life-cycle cost models •

Carnegie Mellon University Software Engineering Institute Topics Open issues • life-cycle cost models • integrating legacy systems • achieving quality attributes • prescriptive design techniques • architecture description languages • product line practices Course summary © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 3

Carnegie Mellon University Software Engineering Institute Life-Cycle Cost Models Architecture is an up-front development

Carnegie Mellon University Software Engineering Institute Life-Cycle Cost Models Architecture is an up-front development effort. More work up front to design and evaluate pays off in • reduced implementation effort • reuse opportunities • lower modification costs Cost models need to be modified to reflect different life-cycle costs. • higher up-front costs • lower back-end costs © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 4

Carnegie Mellon University Software Engineering Institute Integrating Legacy Systems Need to repackage legacy systems

Carnegie Mellon University Software Engineering Institute Integrating Legacy Systems Need to repackage legacy systems for use in subsequent software development Need to extract architectural elements from available sources • visualization problem: need tool to visualize simple patterns within a system architecture • awareness of different architectural structures © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 5

Carnegie Mellon University Software Engineering Institute Achieving Quality Attributes Performance: analytic model exists which

Carnegie Mellon University Software Engineering Institute Achieving Quality Attributes Performance: analytic model exists which allows repeatable prediction techniques Modifiability: no analytic model exists, which forces reliance on case-specific scenarios Need a principled method for tradeoffs among quality attributes, including cost and schedule © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 6

Carnegie Mellon University Software Engineering Institute Prescriptive Design Techniques Need a method to produce

Carnegie Mellon University Software Engineering Institute Prescriptive Design Techniques Need a method to produce from desired qualities a method that achieves them Attribute tradeoff • understand interaction of different attributes • example: “jitter” (variance of arrival times) can affect performance, security, and reliability © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 7

Carnegie Mellon University Software Engineering Institute Architecture Description Languages The jury is still out

Carnegie Mellon University Software Engineering Institute Architecture Description Languages The jury is still out on architecture description languages. Architecture description languages give designers a choice of • structures to represent • notation to use • analyses and verifications that are possible Infrastructure for ADLs • must integrate with other development tools • requires community effort © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 8

Carnegie Mellon University Software Engineering Institute Product Line Practices Architectures for a product line

Carnegie Mellon University Software Engineering Institute Product Line Practices Architectures for a product line emphasize the quality of modifiability. More work is required to • understand characteristics of product line production • devise technical solutions to technical problems - tendency for slow initial development - synchronization of product line architecture and product architectures • recommend organizational solutions for nontechnical problems - organization structure - business case © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 9

Carnegie Mellon University Software Engineering Institute Topics Open issues • life-cycle cost models •

Carnegie Mellon University Software Engineering Institute Topics Open issues • life-cycle cost models • integrating legacy systems • achieving quality attributes • prescriptive design techniques • architecture description languages • product line practices Course summary © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 10

Carnegie Mellon University Software Engineering Institute Course Summary -1 Architecture is a crucial design

Carnegie Mellon University Software Engineering Institute Course Summary -1 Architecture is a crucial design asset. • vehicle for stakeholder communication • key to achieving system qualities • basis for development project structure Architecture is an important corporate asset. • can be reused from project to project • forms a basis for product lines • is a foundation for new market entry Architecture is an important community asset. • standard models emerge for mature domains • is a basis for component markets © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 11

Carnegie Mellon University Software Engineering Institute Course Summary -2 Architecture-based development differs from conventional

Carnegie Mellon University Software Engineering Institute Course Summary -2 Architecture-based development differs from conventional development. • Central authority is a must. • Architecture representation and communication become important. • Architecture evaluation provides an early opportunity for prediction and correction. • Components map to teams. © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 12

Carnegie Mellon University Software Engineering Institute Course Summary -3 Architecture is the key to

Carnegie Mellon University Software Engineering Institute Course Summary -3 Architecture is the key to achieving quality attributes. • A-7 E: modifiability • air traffic control: availability • USAF flight simulators: scalability • Celsius. Tech: reusability • METOC: short time to deployment The Architecture Business Cycle shows how architectures and their environments affect each other. © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 13

Carnegie Mellon University Software Engineering Institute Last Words If a project has not achieved

Carnegie Mellon University Software Engineering Institute Last Words If a project has not achieved a system architecture, including its rationale, the project should not proceed to full -scale system development. Specifying the architecture as a deliverable enables its use throughout the development and maintenance process. - Barry Boehm, 1995 I am more convinced than ever. Conceptual integrity is central to product quality. Having a system architect is the most important single step toward conceptual integrity. . . After teaching a software engineering laboratory more than 20 times, I came to insist that student teams as small as four people choose a manager, and a separate architect. - Fred Brooks, 1995 © 1998 by Carnegie Mellon University Version 1. 0 Chapter 19 - page 14