Unformatted text preview:

1The Importance of Software ArchitectureThe Importance of Software The Importance of Software ArchitectureArchitecture GSAW 2002 Linda M. Northrop Director, Product Line Systems Program Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 This work is sponsored by the U.S. Department of Defense. © 2002 Carnegie Mellon University GSAW 2002 Linda M. Northrop Director, Product Line Systems Program Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 This work is sponsored by the U.S. Department of Defense. © 2002 Carnegie Mellon University2My Focus: Software ArchitectureSoftware is pervasive in today’s systems and business operations.“The only thing you can do with an F-22 that does not require software is take a picture of it” ~ Lt. Gen FainSoftware is the root cause of most of today’s system problems.The quality and longevity of a software system is determined by its architecture.3What Is Software Architecture? Software architecture is the structure or structures of the system, which comprise software components, the externally visible properties of these components, and the relationships among them. Software Architecture in Practice, Bass, Clements, Kazman The exact structures (views) to consider and the ways to represent them vary.4Why Architecture?Represents earliest design decisions• hardest to change • most critical to get rightFirst design artifact addressing• performance• reliability• modifiability• securityKey to systematic reuseTherightarchitecturepaves the way for system success.Thewrongarchitectureusually spells some form of disaster.Therightarchitecturepaves the way for system success.Thewrongarchitectureusually spells some form of disaster.5Others Agree -1 “The architecture of complex software or systems is a collection of hard decisions that are very expensive to change. Successful product development and evolution depend on making the right architectural choices.” Alexander Ran, Nokia “Too many systems have performance and other problems caused by an inappropriate architecture. Thus problems are introduced early, but are usually detected too late – when the deadline is near or, even worse, after the problem makes the headlines.” Connie Smith, Performance Solutions6Others Agree -2 “We were thinking of the qualities first. The quality that we needed primarily to achieve was flexibility. And that’s because we needed an architecture and a set of architectural principles that were going to be able to adapt quickly to changing market drivers and business goals; our architecture enabled us to be maximally flexible with respect to all of those things.” Jeromy Carriere, AOL7What Is Architecture-BasedDevelopment? Architecture-based development involves• understanding the domain requirements• developing or selecting the software architecture• representing and communicating the architecture• analyzing or evaluating the architecture for ability to satisfy requirements• organizing the work products the architecture• implementing the system basedon the architecture• ensuring that the implementationconforms to the architecture• maintaining the architectureThe architecture must be both prescriptive and descriptive.8Software System Development Functional Software RequirementsIf function were all that mattered, any monolithic software would do, ..but other things matter…• Modifiability• Interoperability• Availability• Security• Performance• Portability:The important quality attributes and their characterizations are key.has these qualitiesQualityAttributeDriversSoftware ArchitectureSoftwareanalysis, design, development9Common Impediments to Achieving Architectural Success Lack of adequate architectural talent and/or experience. Insufficient time spent on architectural design and analysis. Failure to identify the quality drivers and design for them. Failure to properly document and communicate the architecture. Failure to evaluate the architecture beyond the mandatory government review. Failure to understand that standards are not a substitute for a software architecture. Failure to ensure that the architecture directs the implementation. Failure to evolve the architecture and maintain documentation that is current.10Linda NorthropDirectorProduct Line Systems ProgramTelephone: 412-268-7638Email: [email protected]. mail:Software Engineering InstituteCarnegie Mellon UniversityPittsburgh, PA 15213-3890World Wide Web:http://www.sei.cmu.edu/atahttp://www.sei.cmu.edu/plpSEI Fax: 412-268-5758Contact Information


View Full Document

USC GSAW 2002 - northrop

Documents in this Course
Load more
Download northrop
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view northrop and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view northrop 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?