architecture - module 1 - what is software architecture rel 1 v2

15
BABW Lean IT Enablement Content x Architecture What is Software Architecture? Module 1

Upload: tommoore

Post on 20-Jul-2016

18 views

Category:

Documents


1 download

DESCRIPTION

What is software architecture

TRANSCRIPT

Page 1: Architecture - Module 1 - What is Software Architecture Rel 1 v2

BABW Lean IT Enablement Content

xArchitecture

What is Software Architecture?Module 1

Page 2: Architecture - Module 1 - What is Software Architecture Rel 1 v2

2Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

Architecture course learning objectives

Module 1 What is Software Architecture?Module 2 Architect RolesModule 3 The Practice of ArchitectingModule 4 Identifying Architectural Requirements

Module 5 Shaping the System

Module 6 Architecture Work Products

Module 7 Architecture Across the Lifecycle

Module 8 Evolving the Architecture Implementation

Module 9 Testing the Architecture

Page 3: Architecture - Module 1 - What is Software Architecture Rel 1 v2

3Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

What is “software architecture”?

• A systematic response to dealing with technical risks

• A recognition that while every system is unique, there are commonalities between them

• A way to avoid every project team (or team member) from having to solve fundamental problems

• A framework of common assumptions under which applications interoperate

Developing a software architecture is still a mixture of art and science - the art is in knowing what risks are significant, and the science is in the systematic eradication of those risks.

Page 4: Architecture - Module 1 - What is Software Architecture Rel 1 v2

4Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

Software architecture – some definition extracts

• ANSI/IEEE Std 1471-2000─ 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 evolution

• Boehm et al., 1995─ A collection of system stakeholders' need statements─ A collection of components, connections and constraints─ A rationale which demonstrates that the components, connections

and constraints define a system that, if implemented, would satisfy the stakeholders' need statements

• Kruchten ─ The result of assembling . . . architectural elements . . . to satisfy the

major functionality and performance requirements of the system, as well as . . . non-functional requirements.

Page 5: Architecture - Module 1 - What is Software Architecture Rel 1 v2

5Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

Software architecture – some definition extracts (continued)

─ Deals . . . with style and aesthetics

• Jacobson, Booch, Rumbaugh─ The set of significant decisions about the organization of a software

system, the selection of the structural elements and their interfaces by which the system is composed

─ The behavior of these elements as specified in their collaborations─ The architectural style that guides this organization, these elements

and their interfaces, their collaborations and their composition─ Also concerned with usage, functionality, performance, resilience,

reuse, comprehensibility, economic and technology constraints and trade-offs and aesthetic concerns

• Eoin Woods─ The set of design decisions which, if made incorrectly, may cause

your project to be cancelled

Page 6: Architecture - Module 1 - What is Software Architecture Rel 1 v2

6Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

What is software architecture?

• The significant decisions, principles andtrade-offs made regarding the system

• The blueprints that enable a multi-discipline team to work together toproduce a quality solution

• Includes the most important:─ Scenarios and non-functional requirements─ Information and relationships─ Patterns and frameworks─ Common components and mechanisms─ Connections between things

• The stuff that, if changed, would have significant and pervasive impact

The architecture of a software system represents the fundamental, irreducible choices made by the designers of the system as they work to balance a large set of trade-offs.

Page 7: Architecture - Module 1 - What is Software Architecture Rel 1 v2

7Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

Architecture: a balance between forces

• Architecture goals─ Stability, availability, cost of ownership, maintainability, consistency

across applications, recoverability, supportability, testability, extensibility, adaptability, compatibility, configurability, serviceability, scalability, deployability, internationalization . . .

• Architecture constraints• Platform standardization • Resource constraints• External interfaces and

dependencies betweensystems

Page 8: Architecture - Module 1 - What is Software Architecture Rel 1 v2

8Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

Architecture: a balance between forces (continued)

• Critical system requirements• Scalability and throughput at peak load• Needs for business flexibility; anticipation of needs• Business-critical functionality

Page 9: Architecture - Module 1 - What is Software Architecture Rel 1 v2

9Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

What do developers do with architecture?

• Use as starting point for initial development work─ The "Candidate Architecture"─ Adapt “frameworks” where they exist to establish overall approach─ Adapt “patterns” where they apply─ Utilize common components to solve recurrent problems─ Architecture constrain the developer’s design space

• Add to it through refinement, refactoring─ Complete the feedback loop by engaging with the architecture team─ The architecture team works to generalize solutions and re-

baseline the architecture

arrinbr
Should this be adopt versus adapt frameworks and patterns?
Page 10: Architecture - Module 1 - What is Software Architecture Rel 1 v2

10Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

Benefits of a good architecture

• Increased flexibility and resilience to change─ Enable system to be maintained over time

• Minimize risk of significant late design breakage and rework─ Make the “critical” decisions early, and validate that they are correct

• Ensure a cost-effective solution approach is adopted─ Buy / build / reuse decisions─ Reduces the chance of solving the same problem in different ways

• Enable efficient parallel development─ Minimize “destructive interference” between teams and team

members

Page 11: Architecture - Module 1 - What is Software Architecture Rel 1 v2

11Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

Benefits of a good architecture (continued)

• Increase mobility of resources across teams─ Easier to work on other applications that share the same

architecture

• Increase predictability of outcome and reliability of estimates─ Estimates are more reliable once the architectural risks are retired

Page 12: Architecture - Module 1 - What is Software Architecture Rel 1 v2

12Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

How does architecture emerge?

• Top-down─ Recognition of common solution patterns─ Reflection of standards, especially related

to security, recoverability, information integrity

─ Refactoring across projects

• Bottom-up─ Organic responses to technical risks and

mitigation strategies, project-specific needs

─ Refactoring within the project design and code spaces- But refactoring alone is usually insufficient

to shape the architecture

Page 13: Architecture - Module 1 - What is Software Architecture Rel 1 v2

13Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

Different levels: enterprise vs. project

• At an enterprise level, it deals with mitigating technical risks that are common across many projects ─ So that each team does not have to develop their own solution

• At project level, it deals with mitigating technical risks that are specific to the project─ Because the enterprise architecture will not solve all problems

“Enterprise” “Project”

Page 14: Architecture - Module 1 - What is Software Architecture Rel 1 v2

14Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

Benefits of good software architecture

• Helps ensure the following are met─ Business case─ Stakeholder needs─ Solution lifetime objectives

• Ensures a cost-effective solution approach is adopted─ Buy / build / reuse decisions─ “Minimize unnecessary creativity” – ensure wheels are not

reinvented within the project

• Increased flexibility and resilience to change─ Enable system to be maintained over time

Page 15: Architecture - Module 1 - What is Software Architecture Rel 1 v2

15Company Confidential | For Internal Use Only | Do Not Copy

BABW Lean IT

Architecture – Module 1: What is Software Architecture?

Benefits of good software architecture (continued)

• Enables efficient parallel development─ Minimize “destructive interference” between teams and team

members─ Increases mobility of resources across teams─ Minimizes risk of significant late design breakage and rework

• Increases predictability of outcomes and reliability of estimates