SE2: Introduction to Software Architecture Mei Nagappan What is - - PowerPoint PPT Presentation

se2 introduction to software architecture
SMART_READER_LITE
LIVE PREVIEW

SE2: Introduction to Software Architecture Mei Nagappan What is - - PowerPoint PPT Presentation

Material and some slide content from: - Emerson Murphy-Hill - Reid Holmes - Mehdi Mirakhorli - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture SE2: Introduction to Software Architecture Mei Nagappan


slide-1
SLIDE 1

Material and some slide content from:

  • Emerson Murphy-Hill
  • Reid Holmes
  • Mehdi Mirakhorli
  • Software Architecture: Foundations, Theory, and Practice
  • Essential Software Architecture

SE2: Introduction to Software Architecture

Mei Nagappan

slide-2
SLIDE 2

MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

What is Architecture?

  • Encyclopedia Britannica defines it as
  • both the process and the product of planning,

designing, and constructing buildings or any

  • ther structures
slide-3
SLIDE 3

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

The three original principles

  • Roman architect Vitruvius (early 1st century AD) in

his book De Architectura

  • Durability – a building should stand up robustly

and remain in good condition.

  • Utility – it should be suitable for the purposes for

which it is used.

  • Beauty – it should be aesthetically pleasing.
slide-4
SLIDE 4

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

The architect

  • Distinctive role.
  • Broadly trained.
  • Requirements, design, implementation, & use.
  • Has a keen sense of aesthetics.
  • Strong understanding of the domain.
  • What are these for buildings?
  • What are these for software?

[TAILOR ET AL.]

slide-5
SLIDE 5

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

What common benefits can software gain from an architect that a building gets from its architect?

[TAILOR ET AL.]

slide-6
SLIDE 6

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Analogy to Buildings

  • Arch focuses on client’s needs
  • Iteration on a set of blueprints, refining as req
  • Intermediate plans, mockups, prototypes
  • Created by specialists, not end users
  • Structure induces properties (e.g., in a castle)
  • Architects require broad training
  • Leverage lessons from past generations
slide-7
SLIDE 7

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

  • How is building

architecture different from software architecture?

  • [TAILOR ET AL.]
slide-8
SLIDE 8

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Shortcomings of Analogy

  • We have much more experience with buildings
  • Buildings are physical artifacts; SW is intangible
  • Software industry is less differentiated (e.g, no

‘exception specialists’)

  • Anyone can write software
  • Deployment and Ops are different
  • Nature of dynamic load is different
  • Changes are expected
slide-9
SLIDE 9

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Why do we need Architecture?

slide-10
SLIDE 10

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

The Software Equivalent

slide-11
SLIDE 11

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

Architecture

  • Architecture is:
  • All about communication.
slide-12
SLIDE 12

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

Architecture

  • Architecture is:
  • All about communication.
  • What ‘parts’ are there?
slide-13
SLIDE 13

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

Architecture

  • Architecture is:
  • All about communication.
  • What ‘parts’ are there?
  • How do the ‘parts’ fit together?
slide-14
SLIDE 14

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

Architecture

  • Architecture is:
  • All about communication.
  • What ‘parts’ are there?
  • How do the ‘parts’ fit together?
  • Architecture is not:
  • About development.
  • About algorithms.
  • About data structures.
slide-15
SLIDE 15

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

What is Software Architecture?

slide-16
SLIDE 16

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

What is Software Architecture?

  • The conceptual fabric that defines a system
  • All architecture is design but not all design is

architecture.

slide-17
SLIDE 17

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

What is Software Architecture?

  • The conceptual fabric that defines a system
  • All architecture is design but not all design is

architecture.

  • Architectures capture three primary dimensions:
  • Structure
  • Communication
  • Nonfunctional requirements
slide-18
SLIDE 18

MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

ANSI/IEEE 1471-200

  • “Architecture is the fundamental
  • rganization of a system,

embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution”

slide-19
SLIDE 19

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Logical Web Architecture

index.html cs846.html cs446.html a1.html a2.html project.html

slide-20
SLIDE 20

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Physical Web Architecture

slide-21
SLIDE 21

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Dynamic Web Architecture

cs446.html

u w a t e r l

  • .

c a g

  • g

l e . c a f r i e n d s t e r . c

  • m

scholar.html GET 200 GET 200

slide-22
SLIDE 22

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

Non-functional requirements

  • Technical constraints: restrictions made for

technical reasons

  • Business constraints: restrictions made for

business reasons

  • Quality attributes: e.g., the ‘ilities’
  • Scalability
  • Security
  • Performance
  • Maintainability
  • Evolvability
  • Reliability/Dependability
  • Deployability
slide-23
SLIDE 23

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Why is Software Architecture important?

slide-24
SLIDE 24

MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

Eoin Woods

  • “Software architecture is the set
  • f design decisions which, if

made incorrectly, may cause you project to be cancelled.”

slide-25
SLIDE 25

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Why is Software Architecture important?

  • Architecture focuses on those aspects of a system

that would be difficult to change once the system is built.

slide-26
SLIDE 26

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Why is Software Architecture Difficult?

slide-27
SLIDE 27

MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

Philippe Krutchen

  • “The life of a software architect is

long (and sometimes painful) succession of sub-optimal decisions made partly in the dark.

slide-28
SLIDE 28

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

What makes building systems so hard?

  • Young field.
  • High user expectations.
  • Software cannot execute independently.

[TAILOR ET AL.]

slide-29
SLIDE 29

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE

Difficulties Classified

  • Incidental difficulties [Brooks MMM].
  • Problems that can be overcome.
  • Essential difficulties [Brooks MMM].
  • Those problems that cannot be easily overcome.
slide-30
SLIDE 30

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

Essential Difficulties

  • Complexity
  • Grows non-linearly with program size.
  • Conformity
  • System is dependent on its environment.
  • Changeability
  • Perception that software is easily modified.
  • Intangibility
  • Not constrained by physical laws.

[TAILOR ET AL.]

slide-31
SLIDE 31

MEI NAGAPPAN- SE2: SOFTWARE DESIGN & ARCHITECTURE MEI NAGAPPAN - SE2: SOFTWARE DESIGN & ARCHITECTURE

Attacks on Essential Difficulties

  • High-level languages.
  • Development tools & environments.
  • Component-based reuse.
  • Development strategies.
  • Incremental, evolutionary, spiral models.
  • Emphasis on design.
  • Design-centric approach taken from outset.

[TAILOR ET AL.]