DOC PREVIEW
CORNELL CS 501 - The Role of Software Architecture

This preview shows page 1-2-3-4-5-6 out of 19 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

2008 Adobe Systems Incorporated. All Rights Reserved.1The Role of Software ArchitectureRich Reitmanat Cornell UniversityFebruary 14, 20082008 Adobe Systems Incorporated. All Rights Reserved.2The Role of Software Architecture - Agenda What is software architecture? How do we capture software architecture? What do software architects do?2008 Adobe Systems Incorporated. All Rights Reserved.3My Context Commercial software companies Rational Software: 15  4000 IBM: 300,000 Adobe Systems: 6000 Multiple roles (primarily technical or technical management) Lead Developer, Product Architect Software engineering manager Chief software architect General Manager, CTO Mentor to software architects2008 Adobe Systems Incorporated. All Rights Reserved.4What is Software Architecture?From IEEE 1471-2000:Software architecture is the fundamental organization of a system embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution2008 Adobe Systems Incorporated. All Rights Reserved.5What is Software Architecture?From Unified Process (Jacobson, Booch, Rumbaugh):Software architecture encompasses the set of significant decisionsabout the organization of a software system Selection of the structural elements and their interfaces Behavior as specified in collaborations among those elements Composition of these structural and behavioral elements into larger subsystems Architectural style that guides this organization2008 Adobe Systems Incorporated. All Rights Reserved.6What is Software Architecture? All software systems have an architecture Even if: It isn’t written down No one understands it There are no architects How are we going to control and evolve the architecture? How do we capture software architecture?2008 Adobe Systems Incorporated. All Rights Reserved.7Capturing Software Architecture Problem Solution Architectural Quality Benefits Communication tool Identify and Address system level risks2008 Adobe Systems Incorporated. All Rights Reserved.8Capturing Software Architecture - Problem Identify architecturally significant requirements Actors Use cases Non-functional Constraints Use cases vs. User interfaces vs. User Experience2008 Adobe Systems Incorporated. All Rights Reserved.9Example - “Peripheral Actors” key to adoption Problem: provide a way of controlling the sharing of PDF files Includes posting on the web, sending email, etc.Solution: provide server Supports both simple and complex policies PDF Reader operation confirms with serverHow is the system managed? (backup/recovery, load balancing, …) Early on: different (better?) methods Now: can use standard methods from major vendors (DB, J2EE app server, …)Observation: be sure that all actors are considered The (peripheral) maintainer actor was key to adoption Cost of operation vs. benefit of capability2008 Adobe Systems Incorporated. All Rights Reserved.10Capturing Software Architecture - Solution Design a solution - 4 +1 views Use Case - provides behavior Logical - realization of functional requirements Implementation Deployment Process [ Data - additional view used at Adobe ] Focus on architecturally significant aspects CMU/SEI - many views; pick the ones you need2008 Adobe Systems Incorporated. All Rights Reserved.11Example - Plug & Play for Military Ships CelsiusTech Building the same sorts of ships repeatedly Define a software architecture based on abstraction of ship systems New hardware physically plugs in: radar, weapons, etc. Corresponding software plugs into the software architecture (object-oriented) Business-Driven Decision Reduced cost & risk 65% reuse between Danish and Swedish ships CelsiusTech business turn around2008 Adobe Systems Incorporated. All Rights Reserved.12Capturing Software Architecture - Architectural Quality System Characteristics - realize non-functional requirements Reliability, Security, Availability, … Performance, Scalability, … Testability, Maintainability, Extensibility, … Usability, Localization, … …2008 Adobe Systems Incorporated. All Rights Reserved.13Example - Incremental Compilation Problem: changing software interfaces causes massive recompilation Solution: extend syntax-directed paradigm to limit recompilation Determine impact at a granularity much finer than file Apply technique recursively to determine all places of possible impact Treat affected areas as non-terminal nodes associated with text needed compilationQuality characteristics Testability - full compilation and incremental compilation should yield same results Randomly generate sequence of changes & confirm Output seed along with failure to enable reproduction Usability 1st release: syntax tree model explicit to user - best precision 2nd release: underlying model invisible - everyone uses it!2008 Adobe Systems Incorporated. All Rights Reserved.14What do software architects do? Define the architecture Maintain the architectural integrity of the system Assess technical risks & find risk mitigation strategies Propose order and content of development iterations Consult on design, implementation, integration, test Participate in determining future system directions Time allocation rule of thumb 50% architecting: designing, prototyping, documenting 25% getting input: users, requirements, other architectures & technologies 25% providing info: communicating the architecture, assistingBased on “What do software architects do?”, by Philippe Kruchten2008 Adobe Systems Incorporated. All Rights Reserved.15Software Architecture and Agile Development Methods Agile Methods advocate avoiding “Big Design Up Front” Get close to customers with working code and iterate Enabled by: test-driven development, continuous integration & refactoring Agile Architectural Focus (architect =? coach) Where is there risk? - Prototype and focused reviews What are the recurring patterns and paradigms? - Refactor What are the system-level characteristics? - Design tests Enable the team - communicate Less is more - Document only what isn’t captured easily in code Architecture and Agility are complementary2008 Adobe Systems


View Full Document

CORNELL CS 501 - The Role of Software Architecture

Documents in this Course
Quiz 2

Quiz 2

2 pages

Usability

Usability

31 pages

Quiz 1

Quiz 1

2 pages

Stulba;''

Stulba;''

33 pages

Load more
Download The Role of Software Architecture
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 The Role of Software Architecture 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 The Role of Software Architecture 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?