1 / 32

What is Architecture ?

What is Architecture ?. Technology Issues. Ability to deal with organizational or product complexity in a timely manner Ability to adopt a disruptive technology that is not feasible today

aelwen
Download Presentation

What is Architecture ?

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. What is Architecture ?

  2. Technology Issues • Ability to deal with organizational or product complexity in a timely manner • Ability to adopt a disruptive technology that is not feasible today • Desire for systems or family of applications to have qualities or characteristics such as a high level of integration, evolvability, and understandability • Desire to reduce development, maintenance, and operating costs of system or applications.

  3. Architecture “Architecture is an instrument whose central function is to intervene in man’s favor” James Fitch, 1972

  4. What is Architecture ?

  5. What is Architecture ? • A collection of software and system components, connections, and constraints. • A collection of system stakeholders' need statements. • A rationale which demonstrates that the components, connections, and constraints define a system that, if implemented, would satisfy the collection of system stakeholders' need statements.

  6. Architecture as a tool to communicate with stakeholders • For designers and implementors, the architecture provides their "marching orders." The architecture establishes constraints (plus exploitable freedom) on downstream development activities. • For testers and integrators, the architecture dictates the correct black-box behavior of the pieces that must fit together. • For technical managers, architecture provides the basis for forming development teams corresponding to the work assignments identified. • For project managers, architecture serves as the basis for a work breakdown structure, planning, allocation of project resources, and tracking of progress by the various teams. • For designers of other systems with which this one must interoperate, the architecture defines the set of operations provided and required, and the protocols for their operation, that allows the interoperation to take place.

  7. Architecture as a tool to understand a system • For technical mangers, architecture is basis for conformance checking, for assurance that implementations have in fact been faithful to the architectural prescriptions. • For maintainers, architecture is a starting point for maintenance activities, revealing the areas a prospective change will affect. • For new project members, the architecture is usually the first artifact for familiarization with a system's design. • For those inheriting the job of architect after the previous architect's untimely departure, the architecture is the artifact that (if properly documented) preserves that architect's knowledge and rationale. • For re-engineers, architecture is the often first artifact recovered to understand existing system

  8. What does a good Architecture provide ? • It is at a high-enough level of abstraction that the system can be viewed as a whole. • The structure must support the functionality required of the system. Thus, the dynamic behavior of the system must be taken into account when designing the architecture. • The structure must conform to the system qualities (also known as non-functional requirements): • Performance, security, reliability requirements associated with current functionality • Flexibility, extensibility requirements associated with accommodating future functionality at a reasonable cost of change. • These requirements may conflict, and tradeoffs among alternatives are an essential part of designing an architecture. • At the architectural level, all implementation details are hidden.

  9. From Requirements to Architecture • From requirements specification to architecture • Decompose software into modules with interfaces • Specify high-level behavior, interactions, and non-functional properties • Consider key tradeoffs • Schedule vs. Budget, • Cost vs. Robustness, • Fault Tolerance vs. • Size, Security vs. Speed • Maintain a record of design decisions and traceability • Specifies how the software product is to do its tasks

  10. Architecture vs Design • Differences between Architecture and Design • Architecture is concerned about higher level issues • components vs procedures • interactions among components vs interfaces • constraints on components and interactions vs algorithms, procedures and type

  11. Architecture vs Design • Architecture is concerned with a different set • of structural issues • Large-grained composition vs procedural composition • Component interactions (protocols) vs procedural/task interactions (pc, rpc, msgs, etc) • Information content vs data types and representations

  12. How to document Architecture • Views approach • UML • Free form diagrams + text • Paper napkins

  13. Architectural Roles • Role Descriptions • The Architect says: I decide how the building will look and function. • The Engineer says: I will make sure the building will be structurally sound • The Scientist says: I do research and invent, to further knowledge. • The Builder says: I will build the building.

  14. Technology Architecture • Combined Architecture and Engineering Function • Determine what technologies will be used • Determine how the technologies will be used • Verify that the technologies are used correctly

  15. Architect Role and Responsibilities • An architect is someone who designs or develops architectures • Architectural or Technological Vision • Conceptualizing and Experimenting with Alternatives • Creating Models and Component and Interface Documents • Validates Technologies to Meet Requirements

  16. Architect Role and Responsibilities • Architectures are seldom embraced without challenges • Sell architectures to various stakeholders • Navigates Network of Influence to Ensure the Success of a Architecture • Consults and Provides Guidance to the Development Team • Consultant to Business and Management Teams • Communicates to all Interested Parties

  17. Architect Role and Responsibilities • Knowledge of organization's product domain and relevant technologies and development processes. • High tolerance of ambiguity and ability to work at an abstract level. • Combination of Strategist and Technologist

  18. Architect Role and Responsibilities • Organizational Politics • Architectures will have a diverse stakeholders and are to be used by many developers – to gain and maintain sponsorship the architect must be an influencer. • Understand both business and personal objectives. Listening, networking, articulation and selling a vision over the life of an architecture are important.

  19. Architect Role and Responsibilities • The architect is a consultant who is committed to the success of others. • Must create conceptual solutions for business customers. This includes the ability to clearly articulate the solution in a common vernacular. • Development teams are the users of an architecture, its not their job to make a architecture successful, but rather satisfy their specific functionality, schedule and quality requirements.

  20. Architect Role and Responsibilities • A few things that an Architect is not...... • Project Manager... but can provide clarity to complex dependencies or scheduling issues • Quality Assurance Technician... but can assist is integration evaluations • Guarantor that an application is programmed perfectly... but can provide development platform or architectural insights • Firefighters... but we can assist with prevention and recovery

  21. Technology Architecture Team “Conceptual integrity must proceed from one mind, or from a very small number of agreeing resonant minds” Fredrick Brooks – Mythical Man-Month (1995)

  22. Technology Architecture Team • Combined Architecture and Engineering Function • Concept and Functional Vision • Construction Philosophy and Direction • Ensure that the development teams have the guidance needed for success • Architectural Clarity • Landscape Guidance • Consistent Practices

  23. Technology Architecture Team • Quality Reviews and Consultant Services • End-to-End Technical Quality (Verification v. Validation) • Architectural Conformance • Maintenance Reviews • Compatibility Assessments • Team Guidance • Continuous Process Improvement • Modifications to Architecture as Applications or Systems Evolve

  24. Organization Pitfalls for Technology Architecture Teams • Leadership Issues • Architecture flounder without leadership or executive sponsorship • Individual Agenda • Strong opinions about directional issues with teams • Divided Attention • Development vs. Strategic Direction • Ivory Towers • Avoid setting direction in a isolation

  25. Critical Success Factors for Architecture Teams • Small dedicated full-time team to create and deploy the architecture • Complementary skills • Communications • Goodwill between Architecture, Management, and Development Teams, Production Support

  26. Execution for Technology Environment • Inventory Applications and assign architect to each initiative • Identify technologies patterns • Develop standards from existing patterns or technology requirements • Communicate architecture to the development teams

  27. Project Participation • Design • More than concept less than detailed design • Developer Education • Guidance with Tools and Technology • Communicate Vision for Product and Requirements

  28. Project Participation • Supervision • Confirm Plans (Partnership with Management) • Confirm Implementation (Partnership with Technical Lead) • Confirm Quality (Partnership with Quality Assurance) • Post Development Review • Confirm Architecture • Modify Existing

  29. Architecture Reviews • Meets Requirements for Application • Confirm technology or products meets the needs of the system of application • Meets Infrastructure Requirements • Confirm Architecture • Modify Existing • Meets Quality Requirements • Consistent with Enterprise Requirements

  30. Tactical Benefits • Cost • Reuse of existing tools • Redeployment of development resources • Reduction of training costs • Quality • Engineering Personal Participate in Verification and Validation process. • End-To-End Quality is a team function.

  31. Summary • A planned architecture will provide a framework to deal with organizational or product complexity • An effective architecture will enable the adoption of things not feasible today • A consistent architecture will ensure that applications possess qualities or characteristics such as a interoperability, evolvability, and understandability • A practiced architectural approach will reduce development, maintenance, and operating costs of system or applications.

  32. Reference Architecture Teams: Malan, Bredemeyer The Role of the Architect : Malan, Bredemeyer [June 2000] The Software Architect’s Profession: Sewell and Sewell [2002] How to Lead, Follow, and Get Out of the Way: Malan, Bredemeyer, Branson [Enterprise Architecture Conference Boston, March 2001] US Department of Energy – Technology Architecture Perspective [January 2001] Software Architecture Documentation in Practice: Documenting Architectural Layers : Bachmann et al.

More Related