01 the big idea

Upload: doi-gio-hu

Post on 08-Apr-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/7/2019 01 the Big Idea

    1/38

    Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.

    The Big Idea

    Software Architecture

    Lecture 1

  • 8/7/2019 01 the Big Idea

    2/38

    Software Architecture: Foundations, Theory, and Practice

    The OriginsSoftware Engineers have always employed softwarearchitectures

    Very often without realizing it! Address issues identified by researchers andpractitioners

    Essential software engineering difficultiesUnique characteristics of programming-in-the-large

    Need for software reuseMany ideas originated in other (non-computing) domains

    2

  • 8/7/2019 01 the Big Idea

    3/38

    Software Architecture: Foundations, Theory, and Practice

    Softw are Engineering Di ff icul t iesSoftware engineers deal with unique set of problems

    Young field with tremendous expectations

    Building of vastly complex, but intangible systemsSoftware is not useful on its own e.g., unlike a car,thusIt must conform to changes in other engineeringareas

    Some problems can be eliminatedThese are Brooks accidental difficulties

    Other problems can be lessened, but not eliminatedThese are Brooks essential difficulties

    3

  • 8/7/2019 01 the Big Idea

    4/38

    Software Architecture: Foundations, Theory, and Practice

    Acciden t al Di ff icul t iesSolutions exist

    Possibly waiting to be discovered

    Past productivity increases result of overcomingInadequate programming constructs & abstractions

    Remedied by high-level programming languagesIncreased productivity by factor of five

    Complexity was never inherent in program at all

    4

  • 8/7/2019 01 the Big Idea

    5/38

    Software Architecture: Foundations, Theory, and Practice

    Acciden t al Di ff icul t ies (c o n td)Past productivity increases result of overcoming (cont d)

    Viewing results of programming decisions took long

    timeRemedied by time sharingTurnaround time approaching limit of humanperception

    Difficulty of using heterogeneous programs Addressed by integrated software development environmentsSupport task that was conceptually always possible

    5

  • 8/7/2019 01 the Big Idea

    6/38

    Software Architecture: Foundations, Theory, and Practice

    Essen t ial Di ff icul t iesOnly partial solutions exist for them, if anyCannot be abstracted away

    ComplexityConformityChangeability

    Intangibility

    6

  • 8/7/2019 01 the Big Idea

    7/38

    Software Architecture: Foundations, Theory, and Practice

    Comp lexi tyNo two software parts are alike

    If they are, they are abstracted away into one

    Complexity grows non-linearly with sizeE.g., it is impossible to enumerate all states of programExcept perhaps toy programs

    7

  • 8/7/2019 01 the Big Idea

    8/38

    Software Architecture: Foundations, Theory, and Practice

    Co n fo r m itySoftware is required to conform to its

    Operating environment

    HardwareOften last kid on blockPerceived as most conformable

    8

  • 8/7/2019 01 the Big Idea

    9/38

    Software Architecture: Foundations, Theory, and Practice

    Changeabili tyChange originates with

    New applications, users, machines, standards, laws

    Hardware problemsSoftware is viewed as infinitely malleable

    9

  • 8/7/2019 01 the Big Idea

    10/38

    Software Architecture: Foundations, Theory, and Practice

    In t angibili tySoftware is not embedded in space

    Often no constraining physical laws

    No obvious representationE.g., familiar geometric shapes

    10

  • 8/7/2019 01 the Big Idea

    11/38

    Software Architecture: Foundations, Theory, and Practice

    Pe wt er Bulle t s Ada, C++, Java and other high level languagesObject-oriented design/analysis/programming

    Artificial Intelligence Automatic ProgrammingGraphical ProgrammingProgram Verification

    Environments & toolsWorkstations

    11

  • 8/7/2019 01 the Big Idea

    12/38

    Software Architecture: Foundations, Theory, and Practice

    P r om ising A tt acks On C omp lexi ty (In1987)

    Buy vs. BuildRequirements refinement & rapid prototyping

    Hardest part is deciding what to build (or buy?)Must show product to customer to get complete spec.Need for iterative feedback

    12

  • 8/7/2019 01 the Big Idea

    13/38

    Software Architecture: Foundations, Theory, and Practice

    P r om ising A tt acks On C omp lexi ty (c o n td)

    Incremental/Evolutionary/Spiral Development Grow systems, don t build them

    Good for moraleEasy backtrackingEarly prototypes

    Great designers

    Good design can be taught; great design cannot Nurture great designers

    13

  • 8/7/2019 01 the Big Idea

    14/38

    Software Architecture: Foundations, Theory, and Practice

    Pri m ac y of DesignSoftware engineers collect requirements, code, test,integrate, configure, etc.

    An architecture-centric approach to software engineeringplaces an emphasis on designDesign pervades the engineering activity from thevery beginning

    But how do we go about the task of architecturaldesign?

    14

  • 8/7/2019 01 the Big Idea

    15/38

    Software Architecture: Foundations, Theory, and Practice

    Anal o g y:

    Archi t ec t ure of Buildings

    We all live in them(We think) We know how they are built

    RequirementsDesign (blueprints)ConstructionUse

    This is similar (though not identical) to how we buildsoftware

    15

  • 8/7/2019 01 the Big Idea

    16/38

    Software Architecture: Foundations, Theory, and Practice

    Som e Obvi o usP

    arallelsSatisfaction of customers needsSpecialization of labor

    Multiple perspectives of the final product Intermediate points where plans and progress arereviewed

    16

  • 8/7/2019 01 the Big Idea

    17/38

    Software Architecture: Foundations, Theory, and Practice

    Dee p erP

    arallels Architecture is different from, but linked with theproduct/structure

    Properties of structures are induced by the design of thearchitectureThe architect has a distinctive role and character

    17

  • 8/7/2019 01 the Big Idea

    18/38

    Software Architecture: Foundations, Theory, and Practice

    Dee p erP

    arallels (c o n td)Process is not as important as architecture

    Design and resulting qualities are at the forefront

    Process is a means, not an end Architecture has matured over time into a discipline

    Architectural styles as sets of constraintsStyles also as wide range of solutions, techniques and

    palettes of compatible materials, colors, and sizes

    18

  • 8/7/2019 01 the Big Idea

    19/38

    Software Architecture: Foundations, Theory, and Practice

    Mo re ab o u t t he

    Archi t ec t

    A distinctive role and character in a project Very broad training

    Amasses and leverages extensive experience A keen sense of aestheticsDeep understanding of the domain

    Properties of structures, materials, and environments

    Needs of customers

    19

  • 8/7/2019 01 the Big Idea

    20/38

    Software Architecture: Foundations, Theory, and Practice

    Mo re ab o u t t he

    Archi t ec t (c o n td)

    Even first-rate programming skills are insufficient for thecreation of complex software applications

    But are they even necessary?

    20

  • 8/7/2019 01 the Big Idea

    21/38

    Software Architecture: Foundations, Theory, and Practice

    Lim it a t io ns of t he

    Anal o g y

    We know a lot about buildings, much less about softwareThe nature of software is different from that of buildingarchitectureSoftware is much more malleable than physical materialsThe two construction industries are very different Software deployment has no counterpart in buildingarchitectureSoftware is a machine; a building is not

    21

  • 8/7/2019 01 the Big Idea

    22/38

    Software Architecture: Foundations, Theory, and Practice

    Bu t St ill Ver y Real P ow er of A rchi t ec t ure

    Giving preeminence to architecture offers the potentialfor

    Intellectual controlConceptual integrityEffective basis for knowledge reuseRealizing experience, designs, and code

    Effective project communicationManagement of a set of variant systems

    Limited-term focus on architecture will not yieldsignificant benefits!

    22

  • 8/7/2019 01 the Big Idea

    23/38

    Software Architecture: Foundations, Theory, and Practice

    Archi t ec t ure in

    Ac t io n : WWW

    This is the Web

    23

    Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.

  • 8/7/2019 01 the Big Idea

    24/38

    Software Architecture: Foundations, Theory, and Practice

    A rchi t ec t ure in A c t io n : WWW

    So is this

    24

    Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.

  • 8/7/2019 01 the Big Idea

    25/38

    Software Architecture: Foundations, Theory, and Practice

    Archi t ec t ure in

    Ac t io n : WWW

    And this

    25

    Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.

  • 8/7/2019 01 the Big Idea

    26/38

    Software Architecture: Foundations, Theory, and Practice

    WWW in a (Big) Nu t shellThe Web is a collection of resources, each of which hasa unique name known as a uniform resource locator, or

    URL .Each resource denotes, informally, some information.URI s can be used to determine the identity of a machineon the Internet, known as an origin server, where thevalue of the resource may be ascertained.Communication is initiated by clients, known as useragents, who make requests of servers.

    Web browsers are common instances of user agents.

    26

  • 8/7/2019 01 the Big Idea

    27/38

    Software Architecture: Foundations, Theory, and Practice

    WWW in a (Big) Nutshell (c

    on

    td)

    Resources can be manipulated through theirrepresentations.

    HTML is a very common representation languageused on the Web.

    All communication between user agents and originservers must be performed by a simple, generic protocol(HTTP), which offers the command methods GET, POST,etc.

    All communication between user agents and originservers must be fully self-contained. (So-called statelessinteractions )

    27

  • 8/7/2019 01 the Big Idea

    28/38

    Software Architecture: Foundations, Theory, and Practice

    WWW s A rchi t ec t ure

    Architecture of the Web is wholly separate from the codeThere is no single piece of code that implements thearchitecture.There are multiple pieces of code that implement thevarious components of the architecture.

    E.g., different Web browsers

    28

  • 8/7/2019 01 the Big Idea

    29/38

    Software Architecture: Foundations, Theory, and Practice

    WWW s A rchi t ec t ure (c o n td)

    Stylistic constraints of the Web s architectural style arenot apparent in the code

    The effects of the constraints are evident in the Web

    One of the world s most successful applications is onlyunderstood adequately from an architectural vantagepoint.

    29

  • 8/7/2019 01 the Big Idea

    30/38

    Software Architecture: Foundations, Theory, and Practice

    A rchi t ec t ure in A c t io n : Desk top

    Remember pipes and filters in Unix?

    ls invoices | grep e august | sort Application architecture can be understood based onvery few rules

    Applications can be composed by non-programmers Akin to Lego blocks

    A simple architectural concept that can becomprehended and applied by a broad audience

    30

  • 8/7/2019 01 the Big Idea

    31/38

    Software Architecture: Foundations, Theory, and Practice

    A rchi t ec t ure in A c t io n : P r o duc t L ine

    Motivating example A consumer is interested in a 35-inch HDTV with a built-in DVDplayer for the North American market.

    Such a device might contain upwards of a million lines of embedded software.

    This particular television/DVD player will be very similar to a 35-inch HDTV without the DVD player, and also to a 35-inch HDTVwith a built-in DVD player for the European market, where theTV must be able to handle PAL or SECAM encoded broadcasts,rather than North America s NTSC format.

    These closely related televisions will similarly each have a millionor more lines of code embedded within them.

    31

  • 8/7/2019 01 the Big Idea

    32/38

    Software Architecture: Foundations, Theory, and Practice

    Growing Sophistication of Consumer Devices

    32

  • 8/7/2019 01 the Big Idea

    33/38

    Software Architecture: Foundations, Theory, and Practice

    F a m ilies of Rela t ed P r o duc t s

    33

  • 8/7/2019 01 the Big Idea

    34/38

    Software Architecture: Foundations, Theory, and Practice

    The Necessi ty and Bene f it of PL s

    Building each of these TVs from scratch would likely put Philips out of businessReusing structure, behaviors, and component implementations is increasingly important to successfulbusiness practice

    It simplifies the software development taskIt reduces the development time and cost it improves the overall system reliability

    Recognizing and exploiting commonality and variabilityacross products

    34

  • 8/7/2019 01 the Big Idea

    35/38

    Software Architecture: Foundations, Theory, and Practice

    Reuse as t he Big Win

    Architecture: reuse of Ideas

    KnowledgePatternsengineeringguidance

    Well-wornexperience

    Product families: reuse of Structure

    BehaviorsImplementationsTest suites

    35

  • 8/7/2019 01 the Big Idea

    36/38

    Software Architecture: Foundations, Theory, and Practice

    A dded Bene f it P r o duc t P op ula t io ns

    36

  • 8/7/2019 01 the Big Idea

    37/38

    Software Architecture: Foundations, Theory, and Practice

    The C en t er p iece A rchi t ec t ure

    37

  • 8/7/2019 01 the Big Idea

    38/38

    Software Architecture: Foundations, Theory, and Practice

    S u mm ar y

    Software is complexSo are buildings

    And other engineering artifactsBuilding architectures are an attractive source of analogy

    Software engineers can learn from other domains

    They also need to develop and have developed a richbody of their own architectural knowledge andexperience

    38