20
SOFTWARE ARCHITECTURE

Software Architecture Session1

Embed Size (px)

DESCRIPTION

Software Architecture

Citation preview

Page 1: Software Architecture Session1

SOFTWARE ARCHITECTURE

Page 2: Software Architecture Session1

Contents

• Why architecture?• What is architecture?• Why Software Architecture?• What is Software Architecture?• The Architecture Business Cycle (ABC)• The Architecture Process• What makes a Good Architecture?

05:20 PM 2SEPS ZG651 Software Architectures

Page 3: Software Architecture Session1

Analogy with Traditional Architecture

Architecting a doghouse Architecting a house

Built most efficiently and timely by a teamRequires ModelingWell-defined processPower tools

Can be built by one person Requires Minimal Modeling Simple process Simple tools

05:20 PM 3SEPS ZG651 Software Architectures

Page 4: Software Architecture Session1

Architecting a high rise ?

What will it require?05:20 PM 4SEPS ZG651 Software Architectures

Page 5: Software Architecture Session1

Kinds of civil architecture• Community

– houses, flats and apartments, gardens, education, hospitals, religion

• Commerce– shops and stores, restaurants, hotels, office buildings, banks, airports

• Industry– industrial buildings, laboratories, farm buildings

• Leisure– sport, theaters and cinemas, museums

05:20 PM 5SEPS ZG651 Software Architectures

Page 6: Software Architecture Session1

Why Software Architecture?

• Communication among stakeholders• Early design decisions• Transferable, reusable abstraction of a system

05:20 PM 6SEPS ZG651 Software Architectures

Page 7: Software Architecture Session1

What is Software Architecture?

• Bass, Clements, and Kazman. Software Architecture in Practice, “The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.”

05:20 PM 7SEPS ZG651 Software Architectures

Page 8: Software Architecture Session1

What is Software Architecture?

• Implications of this definition:– architecture defines components– systems can comprise more than one structure– every software system has an architecture– the behavior of each component is part of the architecture

05:20 PM 8SEPS ZG651 Software Architectures

Page 9: Software Architecture Session1

Influences on Architecture

Source : Bass, Clements, and Kazman. Software Architecture in Practice,

05:20 PM 9SEPS ZG651 Software Architectures

Page 10: Software Architecture Session1

The Architecture Business Cycle

• For decades, software designers have been taught to build systems based exclusively on the technical requirements.

• Software architecture encompasses the structures of large software systems:– abstract view– eliminates details of implementation, algorithm, &

data representation– concentrates on the behavior & interaction of “black

box” elements

05:20 PM 10SEPS ZG651 Software Architectures

Page 11: Software Architecture Session1

Architecture Business Cycle (ABC)

Source : Bass, Clements, and Kazman. Software Architecture in Practice,

05:20 PM 11SEPS ZG651 Software Architectures

Page 12: Software Architecture Session1

Where do Architectures Come From?

• The result of a set of business and technical decisions.

• In any development effort, the requirements make explicit some - but only some - of the desired properties of the final system.

• Failure to satisfy non-documented constraints can cause as many problems as if it functioned poorly.

05:20 PM 12SEPS ZG651 Software Architectures

Page 13: Software Architecture Session1

Influence of stakeholders on the Architect

Source : Bass, Clements, and Kazman. Software Architecture in Practice,

05:20 PM 13SEPS ZG651 Software Architectures

Page 14: Software Architecture Session1

Architectural Influences

• Stakeholders– Each stakeholder has different concerns & goals, some

contradictory• Development Organization

– immediate business, long-term business, and organizational (staff skills, schedule, & budget)

• Background & Experience of the Architects– repeat good results, avoid duplicating disasters

• The Technical Environment– standard industry practices or common SE techniques

05:20 PM 14SEPS ZG651 Software Architectures

Page 15: Software Architecture Session1

Ramifications of Influences

• Almost never are the properties required by the business & organizational goals consciously understood, let alone fully articulated.– Architects need to know & understand the nature,

source, and priority of constraints on the project as early as possible.

• Architects must identify & actively engage the stakeholders to solicit their needs & expectations.– Use architecture reviews & iterative prototyping.

05:20 PM 15SEPS ZG651 Software Architectures

Page 16: Software Architecture Session1

The Architecture Process

• Creating the Business Case for the system• Understanding the requirements• Creating or Selecting the Architecture• Representing or Communicating the Architecture• Analyzing or Evaluating the Architecture• Implementing based on the Architecture and

Ensuring Conformance

05:20 PM 16SEPS ZG651 Software Architectures

Page 17: Software Architecture Session1

What makes a Good Architecture?

• No such thing as an inherently good or bad architecture.

• Architectures are more or less fit for some stated purpose.

• Architectures can be evaluated - one of the great benefits of paying attention to them - but only in the context of specific goals.

• Rules of Thumb: process & product (structural) recommendations

05:20 PM 17SEPS ZG651 Software Architectures

Page 18: Software Architecture Session1

Rules of Thumb (pg 15 & 16)

• Process Recommendations:– include functional requirements and a prioritized list of

quality attributes the system must satisfy– analyze & formally evaluate before it is too late to change

• Product Recommendations:– well-defined modules using principles of information

hiding & separation of concerns– separate modules that produce data from those that

consume data to increase modifiability & staged upgrades

– write tasks or processes to allow easy reallocation, perhaps at runtime

05:20 PM 18SEPS ZG651 Software Architectures

Page 19: Software Architecture Session1

Summary

05:20 PM SEPS ZG651 Software Architectures 19

Page 20: Software Architecture Session1

05:20 PM 20SEPS ZG651 Software Architectures