SlideShare une entreprise Scribd logo
1  sur  35
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
The Big Idea
Software Architecture
Lecture 1
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
2
The Origins
 Software Engineers have always employed software
architectures
Very often without realizing it!
 Address issues identified by researchers and
practitioners
Essential software engineering difficulties
Unique characteristics of programming-in-the-large
Need for software reuse
 Many ideas originated in other (non-computing) domains
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
3
Software Engineering Difficulties
 Software engineers deal with unique set of problems
Young field with tremendous expectations
Building of vastly complex, but intangible systems
Software is not useful on its own e.g., unlike a car,
thus
It must conform to changes in other engineering
areas
 Some problems can be eliminated
These are Brooks’ “accidental difficulties”
 Other problems can be lessened, but not eliminated
These are Brooks’ “essential difficulties”
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
4
Accidental Difficulties
 Solutions exist
Possibly waiting to be discovered
 Past productivity increases result of overcoming
Inadequate programming constructs & abstractions
Remedied by high-level programming languages
Increased productivity by factor of five
Complexity was never inherent in program at all
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
5
Accidental Difficulties (cont’d)
 Past productivity increases result of overcoming (cont’d)
Viewing results of programming decisions took long
time
Remedied by time–sharing
Turnaround time approaching limit of human
perception
Difficulty of using heterogeneous programs
Addressed by integrated software development
environments
Support task that was conceptually always
possible
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
6
Essential Difficulties
 Only partial solutions exist for them, if any
 Cannot be abstracted away
Complexity
Conformity
Changeability
Intangibility
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
7
Complexity
 No two software parts are alike
If they are, they are abstracted away into one
 Complexity grows non-linearly with size
E.g., it is impossible to enumerate all states of
program
Except perhaps “toy” programs
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
8
Conformity
 Software is required to conform to its
Operating environment
Hardware
 Often “last kid on block”
 Perceived as most conformable
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
9
Changeability
 Change originates with
New applications, users, machines, standards, laws
Hardware problems
 Software is viewed as infinitely malleable
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
10
Intangibility
 Software is not embedded in space
Often no constraining physical laws
 No obvious representation
E.g., familiar geometric shapes
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
11
Pewter Bullets
 Ada, C++, Java and other high–level languages
 Object-oriented design/analysis/programming
 Artificial Intelligence
 Automatic Programming
 Graphical Programming
 Program Verification
 Environments & tools
 Workstations
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
12
Primacy of Design
 Software engineers collect requirements, code, test,
integrate, configure, etc.
 An architecture-centric approach to software engineering
places an emphasis on design
Design pervades the engineering activity from the
very beginning
 But how do we go about the task of architectural design?
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
13
Analogy: Architecture of Buildings
 We all live in them
 (We think) We know how they are built
Requirements
Design (blueprints)
Construction
Use
 This is similar (though not identical) to how we build
software
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
14
Some Obvious Parallels
 Satisfaction of customers’ needs
 Specialization of labor
 Multiple perspectives of the final product
 Intermediate points where plans and progress are
reviewed
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
15
Deeper Parallels
 Architecture is different from, but linked with the
product/structure
 Properties of structures are induced by the design of the
architecture
 The architect has a distinctive role and character
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
16
Deeper Parallels (cont’d)
 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 constraints
Styles also as wide range of solutions, techniques
and palettes of compatible materials, colors, and
sizes
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
17
More about the Architect
 A distinctive role and character in a project
 Very broad training
 Amasses and leverages extensive experience
 A keen sense of aesthetics
 Deep understanding of the domain
Properties of structures, materials, and environments
Needs of customers
 Even first-rate programming skills are insufficient for the
creation of complex software applications
But are they even necessary?
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
18
Limitations of the Analogy…
 We know a lot about buildings, much less about software
 The nature of software is different from that of building
architecture
 Software is much more malleable than physical materials
 The two “construction industries” are very different
 Software deployment has no counterpart in building
architecture
 Software is a machine; a building is not
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
19
…But Still Very Real Power of
Architecture
 Giving preeminence to architecture offers the potential
for
Intellectual control
Conceptual integrity
Effective basis for knowledge reuse
Realizing experience, designs, and code
Effective project communication
Management of a set of variant systems
 Limited-term focus on architecture will not yield
significant benefits!
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
20
Architecture in Action: WWW
 This is the Web
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
21
Architecture in Action: WWW
 So is this
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
22
Architecture in Action: WWW
 And this
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
23
WWW in a (Big) Nutshell
 The Web is a collection of resources, each of which has
a 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 machine
on the Internet, known as an origin server, where the
value of the resource may be ascertained.
 Communication is initiated by clients, known as user
agents, who make requests of servers.
Web browsers are common instances of user agents.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
24
WWW in a (Big) Nutshell (cont’d)
 Resources can be manipulated through their
representations.
HTML is a very common representation language
used on the Web.
 All communication between user agents and origin
servers must be performed by a simple, generic protocol
(HTTP), which offers the command methods GET,
POST, etc.
 All communication between user agents and origin
servers must be fully self-contained. (So-called
“stateless interactions”)
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
25
WWW’s Architecture
 Architecture of the Web is wholly separate from the code
 There is no single piece of code that implements the
architecture.
 There are multiple pieces of code that implement the
various components of the architecture.
E.g., different Web browsers
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
26
WWW’s Architecture (cont’d)
 Stylistic constraints of the Web’s architectural style are
not apparent in the code
The effects of the constraints are evident in the Web
 One of the world’s most successful applications is only
understood adequately from an architectural vantage
point.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
27
Architecture in Action: Desktop
 Remember pipes and filters in Unix?
ls invoices | grep –e august | sort
 Application architecture can be understood based on
very few rules
 Applications can be composed by non-programmers
Akin to Lego blocks
 A simple architectural concept that can be
comprehended and applied by a broad audience
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
28
Architecture in Action: Product
Line
 Motivating example
A consumer is interested in a 35-inch HDTV with a built-in DVD
player 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 HDTV
with a built-in DVD player for the European market, where the
TV 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
million or more lines of code embedded within them.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
29
Growing Sophistication of Consumer Devices
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
30
Families of Related Products
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
31
The Necessity and Benefit of PLs
 Building each of these TVs from scratch would likely put
Philips out of business
 Reusing structure, behaviors, and component
implementations is increasingly important to successful
business practice
It simplifies the software development task
It reduces the development time and cost
it improves the overall system reliability
 Recognizing and exploiting commonality and variability
across products
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
32
Reuse as the Big Win
 Architecture: reuse of
Ideas
Knowledge
Patterns
engineering
guidance
Well-worn
experience
 Product families: reuse of
Structure
Behaviors
Implementations
Test suites…
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
33
Added Benefit – Product Populations
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
34
The Centerpiece – Architecture
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
35
Summary
 Software is complex
 So are buildings
And other engineering artifacts
Building architectures are an attractive source of
analogy
 Software engineers can learn from other domains
 They also need to develop—and have developed—a rich
body of their own architectural knowledge and
experience

Contenu connexe

Tendances

Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Marcello Thiry
 
Software Architecture: Introduction to the abstraction (May 2014_Split)
Software Architecture: Introduction to the abstraction (May 2014_Split)Software Architecture: Introduction to the abstraction (May 2014_Split)
Software Architecture: Introduction to the abstraction (May 2014_Split)Henry Muccini
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architecturesMajong DevJfu
 
The five expertise of a software architect
The five expertise of a software architectThe five expertise of a software architect
The five expertise of a software architectLior Bar-On
 
You're the Engineer! Think Big!
You're the Engineer! Think Big!You're the Engineer! Think Big!
You're the Engineer! Think Big!Fatih Karatana
 
The Role of the Software Architect (short version)
The Role of the Software Architect (short version)The Role of the Software Architect (short version)
The Role of the Software Architect (short version)Hayim Makabee
 
The role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsThe role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsHenry Muccini
 
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...Hayim Makabee
 
00_Welcome to the Software Architecture Course
00_Welcome to the Software Architecture Course00_Welcome to the Software Architecture Course
00_Welcome to the Software Architecture CourseHenry Muccini
 
software engineering
software engineeringsoftware engineering
software engineeringTayfun Çelik
 
20070921 Uni Softwareengineering
20070921 Uni Softwareengineering20070921 Uni Softwareengineering
20070921 Uni SoftwareengineeringTony Bibbs
 
CV of Minfeng Hu
CV of Minfeng HuCV of Minfeng Hu
CV of Minfeng HuMinfeng Hu
 
IT architectures - the good, the bad and the ugly
IT architectures - the good, the bad and the uglyIT architectures - the good, the bad and the ugly
IT architectures - the good, the bad and the uglyMiha Kralj
 
NETCDL : THE NETWORK CERTIFICATION DESCRIPTION LANGUAGE
NETCDL : THE NETWORK CERTIFICATION DESCRIPTION LANGUAGENETCDL : THE NETWORK CERTIFICATION DESCRIPTION LANGUAGE
NETCDL : THE NETWORK CERTIFICATION DESCRIPTION LANGUAGEijcsitcejournal
 
On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...University of l'aquila
 
Capstone Presentation 2015 - Quality+
Capstone Presentation 2015 - Quality+Capstone Presentation 2015 - Quality+
Capstone Presentation 2015 - Quality+Eric M. Pastore
 

Tendances (20)

Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)Software engineering principles (marcello thiry)
Software engineering principles (marcello thiry)
 
Software Architecture: Introduction to the abstraction (May 2014_Split)
Software Architecture: Introduction to the abstraction (May 2014_Split)Software Architecture: Introduction to the abstraction (May 2014_Split)
Software Architecture: Introduction to the abstraction (May 2014_Split)
 
04 designing architectures
04 designing architectures04 designing architectures
04 designing architectures
 
The five expertise of a software architect
The five expertise of a software architectThe five expertise of a software architect
The five expertise of a software architect
 
You're the Engineer! Think Big!
You're the Engineer! Think Big!You're the Engineer! Think Big!
You're the Engineer! Think Big!
 
The Role of the Software Architect (short version)
The Role of the Software Architect (short version)The Role of the Software Architect (short version)
The Role of the Software Architect (short version)
 
The role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture DescriptionsThe role of MDE in Software Architecture Descriptions
The role of MDE in Software Architecture Descriptions
 
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
Reducing Technical Debt: Using Persuasive Technology for Encouraging Software...
 
00_Welcome to the Software Architecture Course
00_Welcome to the Software Architecture Course00_Welcome to the Software Architecture Course
00_Welcome to the Software Architecture Course
 
2011/09/13 - Introduction
2011/09/13 - Introduction2011/09/13 - Introduction
2011/09/13 - Introduction
 
software engineering
software engineeringsoftware engineering
software engineering
 
SrinivasaVithal_CV
SrinivasaVithal_CVSrinivasaVithal_CV
SrinivasaVithal_CV
 
20070921 Uni Softwareengineering
20070921 Uni Softwareengineering20070921 Uni Softwareengineering
20070921 Uni Softwareengineering
 
CV of Minfeng Hu
CV of Minfeng HuCV of Minfeng Hu
CV of Minfeng Hu
 
IT architectures - the good, the bad and the ugly
IT architectures - the good, the bad and the uglyIT architectures - the good, the bad and the ugly
IT architectures - the good, the bad and the ugly
 
NETCDL : THE NETWORK CERTIFICATION DESCRIPTION LANGUAGE
NETCDL : THE NETWORK CERTIFICATION DESCRIPTION LANGUAGENETCDL : THE NETWORK CERTIFICATION DESCRIPTION LANGUAGE
NETCDL : THE NETWORK CERTIFICATION DESCRIPTION LANGUAGE
 
Chapter1
Chapter1Chapter1
Chapter1
 
Basics of se
Basics of seBasics of se
Basics of se
 
On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...On the Use of Component-Based Principles and Practices for Architecting Cyber...
On the Use of Component-Based Principles and Practices for Architecting Cyber...
 
Capstone Presentation 2015 - Quality+
Capstone Presentation 2015 - Quality+Capstone Presentation 2015 - Quality+
Capstone Presentation 2015 - Quality+
 

En vedette

Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)stanbridge
 
Week10 eng1060.ppt
Week10 eng1060.pptWeek10 eng1060.ppt
Week10 eng1060.pptstanbridge
 
Week9 eng1060.ppt
Week9 eng1060.pptWeek9 eng1060.ppt
Week9 eng1060.pptstanbridge
 
Santrock essentials4e ppt_ch16
Santrock essentials4e ppt_ch16Santrock essentials4e ppt_ch16
Santrock essentials4e ppt_ch16stanbridge
 
Santrock essentials4e ppt_ch17
Santrock essentials4e ppt_ch17Santrock essentials4e ppt_ch17
Santrock essentials4e ppt_ch17stanbridge
 
Week11 eng1060.ppt
Week11 eng1060.pptWeek11 eng1060.ppt
Week11 eng1060.pptstanbridge
 
Week12 eng1060
Week12 eng1060Week12 eng1060
Week12 eng1060stanbridge
 

En vedette (7)

Cs 1023 lec 1 big idea (week 1)
Cs 1023 lec 1   big idea (week 1)Cs 1023 lec 1   big idea (week 1)
Cs 1023 lec 1 big idea (week 1)
 
Week10 eng1060.ppt
Week10 eng1060.pptWeek10 eng1060.ppt
Week10 eng1060.ppt
 
Week9 eng1060.ppt
Week9 eng1060.pptWeek9 eng1060.ppt
Week9 eng1060.ppt
 
Santrock essentials4e ppt_ch16
Santrock essentials4e ppt_ch16Santrock essentials4e ppt_ch16
Santrock essentials4e ppt_ch16
 
Santrock essentials4e ppt_ch17
Santrock essentials4e ppt_ch17Santrock essentials4e ppt_ch17
Santrock essentials4e ppt_ch17
 
Week11 eng1060.ppt
Week11 eng1060.pptWeek11 eng1060.ppt
Week11 eng1060.ppt
 
Week12 eng1060
Week12 eng1060Week12 eng1060
Week12 eng1060
 

Similaire à Cs 1023 lec 1 big idea (week 1)

Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdfAkilaGamage2
 
Analysis of software architectures
Analysis of software architecturesAnalysis of software architectures
Analysis of software architecturesHoria Constantin
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)stanbridge
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)stanbridge
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.pptRohanBorgalli
 
Pr.SE2.361101659.pptx
Pr.SE2.361101659.pptxPr.SE2.361101659.pptx
Pr.SE2.361101659.pptxnazimsattar
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsJose Emilio Labra Gayo
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)stanbridge
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)stanbridge
 
se01.ppt
se01.pptse01.ppt
se01.pptxiso
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Michael Stal
 

Similaire à Cs 1023 lec 1 big idea (week 1) (20)

Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
Analysis of software architectures
Analysis of software architecturesAnalysis of software architectures
Analysis of software architectures
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)Cs 1023 lec 3 architecture (week 1)
Cs 1023 lec 3 architecture (week 1)
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt
 
Lect 01
Lect 01Lect 01
Lect 01
 
Pr.SE2.361101659.pptx
Pr.SE2.361101659.pptxPr.SE2.361101659.pptx
Pr.SE2.361101659.pptx
 
Software Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - DefinitionsSoftware Architecture Course - Part III Taxonomies - Definitions
Software Architecture Course - Part III Taxonomies - Definitions
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)Cs 1023 lec 13 web (week 4)
Cs 1023 lec 13 web (week 4)
 
Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)Cs 1023 lec 6 architecture (week 1)
Cs 1023 lec 6 architecture (week 1)
 
1. ch 1-introduction
1. ch 1-introduction1. ch 1-introduction
1. ch 1-introduction
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
se01.ppt
se01.pptse01.ppt
se01.ppt
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
Oop 2014 sw architekt v3
Oop 2014 sw architekt v3Oop 2014 sw architekt v3
Oop 2014 sw architekt v3
 

Plus de stanbridge

Micro Lab 3 Lecture
Micro Lab 3 LectureMicro Lab 3 Lecture
Micro Lab 3 Lecturestanbridge
 
Creating a poster v2
Creating a poster v2Creating a poster v2
Creating a poster v2stanbridge
 
Creating a poster
Creating a posterCreating a poster
Creating a posterstanbridge
 
OT 5018 Thesis Dissemination
OT 5018 Thesis DisseminationOT 5018 Thesis Dissemination
OT 5018 Thesis Disseminationstanbridge
 
Ot5101 005 week 5
Ot5101 005 week 5Ot5101 005 week 5
Ot5101 005 week 5stanbridge
 
Ot5101 005 week4
Ot5101 005 week4Ot5101 005 week4
Ot5101 005 week4stanbridge
 
Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors stanbridge
 
Ch 5 developmental stages of the learner
Ch 5   developmental stages of the learnerCh 5   developmental stages of the learner
Ch 5 developmental stages of the learnerstanbridge
 
OT 5101 week2 theory policy
OT 5101 week2 theory policyOT 5101 week2 theory policy
OT 5101 week2 theory policystanbridge
 
OT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentOT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentstanbridge
 
NUR 304 Chapter005
NUR 304 Chapter005NUR 304 Chapter005
NUR 304 Chapter005stanbridge
 
NUR 3043 Chapter007
NUR 3043 Chapter007NUR 3043 Chapter007
NUR 3043 Chapter007stanbridge
 
NUR 3043 Chapter006
NUR 3043 Chapter006NUR 3043 Chapter006
NUR 3043 Chapter006stanbridge
 
NUR 3043 Chapter004
NUR 3043 Chapter004NUR 3043 Chapter004
NUR 3043 Chapter004stanbridge
 
3043 Chapter009
3043 Chapter0093043 Chapter009
3043 Chapter009stanbridge
 
3043 Chapter008
 3043 Chapter008 3043 Chapter008
3043 Chapter008stanbridge
 
Melnyk ppt chapter_21
Melnyk ppt chapter_21Melnyk ppt chapter_21
Melnyk ppt chapter_21stanbridge
 
Melnyk ppt chapter_22
Melnyk ppt chapter_22Melnyk ppt chapter_22
Melnyk ppt chapter_22stanbridge
 

Plus de stanbridge (20)

Micro Lab 3 Lecture
Micro Lab 3 LectureMicro Lab 3 Lecture
Micro Lab 3 Lecture
 
Creating a poster v2
Creating a poster v2Creating a poster v2
Creating a poster v2
 
Creating a poster
Creating a posterCreating a poster
Creating a poster
 
Sample poster
Sample posterSample poster
Sample poster
 
OT 5018 Thesis Dissemination
OT 5018 Thesis DisseminationOT 5018 Thesis Dissemination
OT 5018 Thesis Dissemination
 
Ot5101 005 week 5
Ot5101 005 week 5Ot5101 005 week 5
Ot5101 005 week 5
 
Ot5101 005 week4
Ot5101 005 week4Ot5101 005 week4
Ot5101 005 week4
 
Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors Compliance, motivation, and health behaviors
Compliance, motivation, and health behaviors
 
Ch 5 developmental stages of the learner
Ch 5   developmental stages of the learnerCh 5   developmental stages of the learner
Ch 5 developmental stages of the learner
 
OT 5101 week2 theory policy
OT 5101 week2 theory policyOT 5101 week2 theory policy
OT 5101 week2 theory policy
 
OT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessmentOT 5101 week3 planning needs assessment
OT 5101 week3 planning needs assessment
 
Ot5101 week1
Ot5101 week1Ot5101 week1
Ot5101 week1
 
NUR 304 Chapter005
NUR 304 Chapter005NUR 304 Chapter005
NUR 304 Chapter005
 
NUR 3043 Chapter007
NUR 3043 Chapter007NUR 3043 Chapter007
NUR 3043 Chapter007
 
NUR 3043 Chapter006
NUR 3043 Chapter006NUR 3043 Chapter006
NUR 3043 Chapter006
 
NUR 3043 Chapter004
NUR 3043 Chapter004NUR 3043 Chapter004
NUR 3043 Chapter004
 
3043 Chapter009
3043 Chapter0093043 Chapter009
3043 Chapter009
 
3043 Chapter008
 3043 Chapter008 3043 Chapter008
3043 Chapter008
 
Melnyk ppt chapter_21
Melnyk ppt chapter_21Melnyk ppt chapter_21
Melnyk ppt chapter_21
 
Melnyk ppt chapter_22
Melnyk ppt chapter_22Melnyk ppt chapter_22
Melnyk ppt chapter_22
 

Dernier

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Dernier (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Cs 1023 lec 1 big idea (week 1)

  • 1. Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1
  • 2. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 2 The Origins  Software Engineers have always employed software architectures Very often without realizing it!  Address issues identified by researchers and practitioners Essential software engineering difficulties Unique characteristics of programming-in-the-large Need for software reuse  Many ideas originated in other (non-computing) domains
  • 3. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 3 Software Engineering Difficulties  Software engineers deal with unique set of problems Young field with tremendous expectations Building of vastly complex, but intangible systems Software is not useful on its own e.g., unlike a car, thus It must conform to changes in other engineering areas  Some problems can be eliminated These are Brooks’ “accidental difficulties”  Other problems can be lessened, but not eliminated These are Brooks’ “essential difficulties”
  • 4. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 4 Accidental Difficulties  Solutions exist Possibly waiting to be discovered  Past productivity increases result of overcoming Inadequate programming constructs & abstractions Remedied by high-level programming languages Increased productivity by factor of five Complexity was never inherent in program at all
  • 5. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 5 Accidental Difficulties (cont’d)  Past productivity increases result of overcoming (cont’d) Viewing results of programming decisions took long time Remedied by time–sharing Turnaround time approaching limit of human perception Difficulty of using heterogeneous programs Addressed by integrated software development environments Support task that was conceptually always possible
  • 6. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 6 Essential Difficulties  Only partial solutions exist for them, if any  Cannot be abstracted away Complexity Conformity Changeability Intangibility
  • 7. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 7 Complexity  No two software parts are alike If they are, they are abstracted away into one  Complexity grows non-linearly with size E.g., it is impossible to enumerate all states of program Except perhaps “toy” programs
  • 8. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 8 Conformity  Software is required to conform to its Operating environment Hardware  Often “last kid on block”  Perceived as most conformable
  • 9. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 9 Changeability  Change originates with New applications, users, machines, standards, laws Hardware problems  Software is viewed as infinitely malleable
  • 10. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 10 Intangibility  Software is not embedded in space Often no constraining physical laws  No obvious representation E.g., familiar geometric shapes
  • 11. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 11 Pewter Bullets  Ada, C++, Java and other high–level languages  Object-oriented design/analysis/programming  Artificial Intelligence  Automatic Programming  Graphical Programming  Program Verification  Environments & tools  Workstations
  • 12. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 12 Primacy of Design  Software engineers collect requirements, code, test, integrate, configure, etc.  An architecture-centric approach to software engineering places an emphasis on design Design pervades the engineering activity from the very beginning  But how do we go about the task of architectural design?
  • 13. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 13 Analogy: Architecture of Buildings  We all live in them  (We think) We know how they are built Requirements Design (blueprints) Construction Use  This is similar (though not identical) to how we build software
  • 14. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 14 Some Obvious Parallels  Satisfaction of customers’ needs  Specialization of labor  Multiple perspectives of the final product  Intermediate points where plans and progress are reviewed
  • 15. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 15 Deeper Parallels  Architecture is different from, but linked with the product/structure  Properties of structures are induced by the design of the architecture  The architect has a distinctive role and character
  • 16. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 16 Deeper Parallels (cont’d)  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 constraints Styles also as wide range of solutions, techniques and palettes of compatible materials, colors, and sizes
  • 17. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 17 More about the Architect  A distinctive role and character in a project  Very broad training  Amasses and leverages extensive experience  A keen sense of aesthetics  Deep understanding of the domain Properties of structures, materials, and environments Needs of customers  Even first-rate programming skills are insufficient for the creation of complex software applications But are they even necessary?
  • 18. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 18 Limitations of the Analogy…  We know a lot about buildings, much less about software  The nature of software is different from that of building architecture  Software is much more malleable than physical materials  The two “construction industries” are very different  Software deployment has no counterpart in building architecture  Software is a machine; a building is not
  • 19. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 19 …But Still Very Real Power of Architecture  Giving preeminence to architecture offers the potential for Intellectual control Conceptual integrity Effective basis for knowledge reuse Realizing experience, designs, and code Effective project communication Management of a set of variant systems  Limited-term focus on architecture will not yield significant benefits!
  • 20. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 20 Architecture in Action: WWW  This is the Web Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 21. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 21 Architecture in Action: WWW  So is this Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 22. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 22 Architecture in Action: WWW  And this Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 23. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 23 WWW in a (Big) Nutshell  The Web is a collection of resources, each of which has a 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 machine on the Internet, known as an origin server, where the value of the resource may be ascertained.  Communication is initiated by clients, known as user agents, who make requests of servers. Web browsers are common instances of user agents.
  • 24. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 24 WWW in a (Big) Nutshell (cont’d)  Resources can be manipulated through their representations. HTML is a very common representation language used on the Web.  All communication between user agents and origin servers must be performed by a simple, generic protocol (HTTP), which offers the command methods GET, POST, etc.  All communication between user agents and origin servers must be fully self-contained. (So-called “stateless interactions”)
  • 25. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 25 WWW’s Architecture  Architecture of the Web is wholly separate from the code  There is no single piece of code that implements the architecture.  There are multiple pieces of code that implement the various components of the architecture. E.g., different Web browsers
  • 26. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 26 WWW’s Architecture (cont’d)  Stylistic constraints of the Web’s architectural style are not apparent in the code The effects of the constraints are evident in the Web  One of the world’s most successful applications is only understood adequately from an architectural vantage point.
  • 27. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 27 Architecture in Action: Desktop  Remember pipes and filters in Unix? ls invoices | grep –e august | sort  Application architecture can be understood based on very few rules  Applications can be composed by non-programmers Akin to Lego blocks  A simple architectural concept that can be comprehended and applied by a broad audience
  • 28. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 28 Architecture in Action: Product Line  Motivating example A consumer is interested in a 35-inch HDTV with a built-in DVD player 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 HDTV with a built-in DVD player for the European market, where the TV 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 million or more lines of code embedded within them.
  • 29. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 29 Growing Sophistication of Consumer Devices
  • 30. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 30 Families of Related Products
  • 31. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 31 The Necessity and Benefit of PLs  Building each of these TVs from scratch would likely put Philips out of business  Reusing structure, behaviors, and component implementations is increasingly important to successful business practice It simplifies the software development task It reduces the development time and cost it improves the overall system reliability  Recognizing and exploiting commonality and variability across products
  • 32. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 32 Reuse as the Big Win  Architecture: reuse of Ideas Knowledge Patterns engineering guidance Well-worn experience  Product families: reuse of Structure Behaviors Implementations Test suites…
  • 33. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 33 Added Benefit – Product Populations
  • 34. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 34 The Centerpiece – Architecture
  • 35. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 35 Summary  Software is complex  So are buildings And other engineering artifacts Building architectures are an attractive source of analogy  Software engineers can learn from other domains  They also need to develop—and have developed—a rich body of their own architectural knowledge and experience