SlideShare a Scribd company logo
1 of 29
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
Designing
Architectures
Software Architecture
Lecture 4
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
2
Where do architectures come from?
Method
1) Efficient in familiar terrain
2) Not always successful
3) Predictable outcome (+ & - )
4) Quality of methods varies
Creativity
1) Fun!
2) Fraught with peril
3) May be unnecessary
4) May yield the best result
How Do You Design?
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
3
Objectives
 Creativity
Enhance your skill-set
Provide new tools
 Method
Focus on highly effective techniques
 Develop judgment: when to develop novel solutions, and
when to follow established method
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
4
Engineering Design Process
 Feasibility stage: identifying a set of feasible concepts for
the design as a whole
 Preliminary design stage: selection and development of
the best concept.
 Detailed design stage: development of engineering
descriptions of the concept.
 Planning stage: evaluating and altering the concept to
suit the requirements of production, distribution,
consumption and product retirement.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
5
Potential Problems
 If the designer is unable to produce a set of feasible
concepts, progress stops.
 As problems and products increase in size and
complexity, the probability that any one individual can
successfully perform the first steps decreases.
 The standard approach does not directly address the
situation where system design is at stake, i.e. when
relationship between a set of products is at issue.
  As complexity increases or the experience of the
designer is not sufficient, alternative approaches to the
design process must be adopted.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
6
Alternative Design Strategies
 Standard
Linear model described above
 Cyclic
Process can revert to an earlier stage
 Parallel
Independent alternatives are explored in parallel
 Adaptive (“lay tracks as you go”)
The next design strategy of the design activity is decided
at the end of a given stage
 Incremental
Each stage of development is treated as a task of
incrementally improving the existing design
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
7
Identifying a Viable Strategy
 Use fundamental design tools: abstraction and
modularity.
But how?
 Inspiration, where inspiration is needed. Predictable
techniques elsewhere.
But where is creativity required?
 Applying own experience or experience of others.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
8
The Tools of “Software
Engineering 101”
 Abstraction
Abstraction(1): look at details, and abstract “up” to
concepts
Abstraction(2): choose concepts, then add detailed
substructure, and move “down”
Example: design of a stack class
 Separation of concerns
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
9
A Few Definitions… from the OED
Online
 Abstraction: “The act or process of separating in thought, of
considering a thing independently of its associations; or a substance
independently of its attributes; or an attribute or quality
independently of the substance to which it belongs.”
 Reification: “The mental conversion of … [an] abstract concept into
a thing.”
 Deduction: “The process of drawing a conclusion from a principle
already known or assumed; spec. in Logic, inference by reasoning
from generals to particulars; opposed to INDUCTION.”
 Induction: “The process of inferring a general law or principle from
the observation of particular instances (opposed to DEDUCTION,
q.v.).”
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
10
Abstraction and the Simple
Machines
 What concepts should be chosen at the outset of a
design task?
One technique: Search for a “simple machine” that
serves as an abstraction of a potential system that will
perform the required task
For instance, what kind of simple machine makes a
software system embedded in a fax machine?
At core, it is basically just a little state machine.
 Simple machines provide a plausible first conception of
how an application might be built.
 Every application domain has its common simple
machines.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
11
Simple Machines
Domain Simple Machines
Graphics Pixel arrays
Transformation matrices
Widgets
Abstract depiction graphs
Word processing Structured documents
Layouts
Process control Finite state machines
Income Tax Software Hypertext
Spreadsheets
Form templates
Web pages Hypertext
Composite documents
Scientific computing Matrices
Mathematical functions
Banking Spreadsheets
Databases
Transactions
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
12
Separation of Concerns
 Separation of concerns is the subdivision of a problem
into (hopefully) independent parts.
 The difficulties arise when the issues are either actually
or apparently intertwined.
 Separations of concerns frequently involves many
tradeoffs
 Total independence of concepts may not be possible.
 Key example from software architecture: separation of
components (computation) from connectors (interaction)
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
13
The Grand Tool: Refined
Experience
 Experience must be reflected upon and refined.
 The lessons from prior work include not only the lessons
of successes, but also the lessons arising from failure.
 Learn from success and failure of other engineers
Literature
Conferences
 Experience can provide that initial feasible set of
“alternative arrangements for the design as a whole”.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
14
Patterns, Styles, and DSSAs
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
15
Domain-Specific Software
Architectures
 A DSSA is an assemblage of software components
specialized for a particular type of task (domain),
generalized for effective use across that domain, and
composed in a standardized structure (topology) effective
for building successful applications.
 Since DSSAs are specialized for a particular domain they are
only of value if one exists for the domain wherein the engineer
is tasked with building a new application.
 DSSAs are the pre-eminent means for maximal reuse of
knowledge and prior development and hence for developing a
new architectural design.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
16
Architectural Patterns
 An architectural pattern is a set of architectural design
decisions that are applicable to a recurring design
problem, and parameterized to account for different
software development contexts in which that problem
appears.
 Architectural patterns are similar to DSSAs but applied
“at a lower level” and within a much narrower scope.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
17
State-Logic-Display: Three-Tiered
Pattern
 Application Examples
Business applications
Multi-player games
Web-based applications
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
18
Model-View-Controller (MVC)
 Objective: Separation between information, presentation
and user interaction.
 When a model object value changes, a notification is
sent to the view and to the controller.
Thus, the view can update itself and the controller can
modify the view if its logic so requires.
 When handling input from the user the windowing
system sends the user event to the controller.
If a change is required, the controller updates the
model object.
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
19
Model-View-Controller
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
20
Sense-Compute-Control
Objective: Structuring embedded control applications
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
The Lunar Lander
 A simple computer game that first appeared in the
1960’s
 Simple concept:
You (the pilot) control the descent rate of the
Apollo-era Lunar Lander
Throttle setting controls descent engine
Limited fuel
Initial altitude and speed preset
If you land with a descent rate of < 5 fps: you
win (whether there’s fuel left or not)
“Advanced” version: joystick controls attitude &
horizontal motion
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
22
Sense-Compute-Control LL
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
Architectural Styles
 An architectural style is a named collection of
architectural design decisions …
 A primary way of characterizing lessons from
experience in software system design
 Reflect less domain specificity than architectural
patterns
 Useful in determining everything from subroutine
structure to top-level application structure
 Many styles exist and we will discuss them in detail
in the next lecture
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
24
Definitions of Architectural Style
 Definition. An architectural style is a named collection of
architectural design decisions that
are applicable in a given development context
constrain architectural design decisions that are specific to
a particular system within that context
elicit beneficial qualities in each resulting system.
 Recurring organizational patterns & idioms
Established, shared understanding of common design
forms
Mark of mature engineering field.
Shaw & Garlan
 Abstraction of recurring composition & interaction
characteristics in a set of architectures
Medvidovic & Taylor
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
25
Basic Properties of Styles
 A vocabulary of design elements
Component and connector types; data elements
e.g., pipes, filters, objects, servers
 A set of configuration rules
Topological constraints that determine allowed
compositions of elements
e.g., a component may be connected to at most two other
components
 A semantic interpretation
Compositions of design elements have well-defined
meanings
 Possible analyses of systems built in a style
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
26
Benefits of Using Styles
 Design reuse
Well-understood solutions applied to new problems
 Code reuse
Shared implementations of invariant aspects of a style
 Understandability of system organization
A phrase such as “client-server” conveys a lot of information
 Interoperability
Supported by style standardization
 Style-specific analyses
Enabled by the constrained design space
 Visualizations
Style-specific depictions matching engineers’ mental models
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
27
Style Analysis Dimensions
 What is the design vocabulary?
Component and connector types
 What are the allowable structural patterns?
 What is the underlying computational model?
 What are the essential invariants of the style?
 What are common examples of its use?
 What are the (dis)advantages of using the style?
 What are the style’s specializations?
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
28
Some Common Styles
 Traditional, language-
influenced styles
Main program and
subroutines
Object-oriented
 Layered
Virtual machines
Client-server
 Data-flow styles
Batch sequential
Pipe and filter
 Shared memory
Blackboard
Rule based
 Interpreter
Interpreter
Mobile code
 Implicit invocation
Event-based
Publish-subscribe
 Peer-to-peer
 “Derived” styles
C2
CORBA
Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture
29
Main Program and Subroutines LL
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

More Related Content

Viewers also liked

La justicia como equidad política, no metafísica -Rawls-
La justicia como equidad política, no metafísica  -Rawls-La justicia como equidad política, no metafísica  -Rawls-
La justicia como equidad política, no metafísica -Rawls-Miguel Ángel Pardo B.
 
Mi contexto de formación
Mi contexto de formaciónMi contexto de formación
Mi contexto de formacióncafrata64
 
Reconocimiento de los rasgos fundamentales Diego R.
Reconocimiento de los rasgos fundamentales Diego R.Reconocimiento de los rasgos fundamentales Diego R.
Reconocimiento de los rasgos fundamentales Diego R.Carlos Andres Garzon
 
PROYECTO CEIP NTRA SRA DE LA ASUNCIÓN
PROYECTO CEIP NTRA SRA DE LA ASUNCIÓNPROYECTO CEIP NTRA SRA DE LA ASUNCIÓN
PROYECTO CEIP NTRA SRA DE LA ASUNCIÓNMery Bg
 
Conceptos y cuestionario
Conceptos y cuestionarioConceptos y cuestionario
Conceptos y cuestionarioissabel17
 
Creacion de una base de datos
Creacion de una base de datosCreacion de una base de datos
Creacion de una base de datosYoung Hyun
 
Estacion2 Contexto de Formacion Carlos Garzon
Estacion2 Contexto de Formacion Carlos GarzonEstacion2 Contexto de Formacion Carlos Garzon
Estacion2 Contexto de Formacion Carlos GarzonCarlos Andres Garzon
 
Policy on Protection and Management of Peatland Ecosystem in Indonesia
Policy on Protection and Management of Peatland Ecosystem in IndonesiaPolicy on Protection and Management of Peatland Ecosystem in Indonesia
Policy on Protection and Management of Peatland Ecosystem in IndonesiaGlobalEnvironmentCentre
 
Stefania carvajal redes
Stefania carvajal  redesStefania carvajal  redes
Stefania carvajal redesStefa Carvajal
 
Atencion primaria de salud y participacion comunitaria
Atencion primaria de salud  y participacion comunitariaAtencion primaria de salud  y participacion comunitaria
Atencion primaria de salud y participacion comunitariaAzucena Prado Espinoza
 
PROYECTO CEIP VIRGEN CANDELARIA
PROYECTO CEIP VIRGEN CANDELARIAPROYECTO CEIP VIRGEN CANDELARIA
PROYECTO CEIP VIRGEN CANDELARIAMery Bg
 
Bioseguridad
BioseguridadBioseguridad
Bioseguridaddaac1990
 

Viewers also liked (20)

Inducción SENA estación 2
Inducción SENA estación 2Inducción SENA estación 2
Inducción SENA estación 2
 
La justicia como equidad política, no metafísica -Rawls-
La justicia como equidad política, no metafísica  -Rawls-La justicia como equidad política, no metafísica  -Rawls-
La justicia como equidad política, no metafísica -Rawls-
 
El sena
El  senaEl  sena
El sena
 
Mi contexto de formacion
Mi contexto de formacionMi contexto de formacion
Mi contexto de formacion
 
Trabajo 2
Trabajo 2Trabajo 2
Trabajo 2
 
Estilos de aprendizaje
Estilos de aprendizajeEstilos de aprendizaje
Estilos de aprendizaje
 
Facebook diapositivas
Facebook diapositivasFacebook diapositivas
Facebook diapositivas
 
Mi contexto de formación
Mi contexto de formaciónMi contexto de formación
Mi contexto de formación
 
Reconocimiento de los rasgos fundamentales Diego R.
Reconocimiento de los rasgos fundamentales Diego R.Reconocimiento de los rasgos fundamentales Diego R.
Reconocimiento de los rasgos fundamentales Diego R.
 
PROYECTO CEIP NTRA SRA DE LA ASUNCIÓN
PROYECTO CEIP NTRA SRA DE LA ASUNCIÓNPROYECTO CEIP NTRA SRA DE LA ASUNCIÓN
PROYECTO CEIP NTRA SRA DE LA ASUNCIÓN
 
Conceptos y cuestionario
Conceptos y cuestionarioConceptos y cuestionario
Conceptos y cuestionario
 
Redes Sociales
Redes SocialesRedes Sociales
Redes Sociales
 
Creacion de una base de datos
Creacion de una base de datosCreacion de una base de datos
Creacion de una base de datos
 
Estacion2 Contexto de Formacion Carlos Garzon
Estacion2 Contexto de Formacion Carlos GarzonEstacion2 Contexto de Formacion Carlos Garzon
Estacion2 Contexto de Formacion Carlos Garzon
 
Policy on Protection and Management of Peatland Ecosystem in Indonesia
Policy on Protection and Management of Peatland Ecosystem in IndonesiaPolicy on Protection and Management of Peatland Ecosystem in Indonesia
Policy on Protection and Management of Peatland Ecosystem in Indonesia
 
Stefania carvajal redes
Stefania carvajal  redesStefania carvajal  redes
Stefania carvajal redes
 
Compendio estadistico oms 2010
Compendio estadistico oms 2010Compendio estadistico oms 2010
Compendio estadistico oms 2010
 
Atencion primaria de salud y participacion comunitaria
Atencion primaria de salud  y participacion comunitariaAtencion primaria de salud  y participacion comunitaria
Atencion primaria de salud y participacion comunitaria
 
PROYECTO CEIP VIRGEN CANDELARIA
PROYECTO CEIP VIRGEN CANDELARIAPROYECTO CEIP VIRGEN CANDELARIA
PROYECTO CEIP VIRGEN CANDELARIA
 
Bioseguridad
BioseguridadBioseguridad
Bioseguridad
 

Similar to Cs 1023 lec 4 (week 1)

Cs 1023 lec 11 dsse (week 4)
Cs 1023 lec 11 dsse (week 4)Cs 1023 lec 11 dsse (week 4)
Cs 1023 lec 11 dsse (week 4)stanbridge
 
Analysis of software architectures
Analysis of software architecturesAnalysis of software architectures
Analysis of software architecturesHoria Constantin
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.pptRohanBorgalli
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdfAkilaGamage2
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
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
 
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
 
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
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle, awikhan12
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part iBisrat Girma
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionHenry Muccini
 
Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)stanbridge
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile DevelopmentHayim Makabee
 

Similar to Cs 1023 lec 4 (week 1) (20)

Cs 1023 lec 11 dsse (week 4)
Cs 1023 lec 11 dsse (week 4)Cs 1023 lec 11 dsse (week 4)
Cs 1023 lec 11 dsse (week 4)
 
Analysis of software architectures
Analysis of software architecturesAnalysis of software architectures
Analysis of software architectures
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
Lecture-1-Introduction.pdf
Lecture-1-Introduction.pdfLecture-1-Introduction.pdf
Lecture-1-Introduction.pdf
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
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)
 
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)
 
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)
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
23 intro to_dsse
23 intro to_dsse23 intro to_dsse
23 intro to_dsse
 
Design concepts and principle,
Design concepts and principle, Design concepts and principle,
Design concepts and principle,
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Object oriented sad-5 part i
Object oriented sad-5 part iObject oriented sad-5 part i
Object oriented sad-5 part i
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
Unit1
Unit1Unit1
Unit1
 
Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)Cs 1023 lec 7 architecture (week 1)
Cs 1023 lec 7 architecture (week 1)
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 

More from 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
 

More from 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
 

Recently uploaded

Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 

Recently uploaded (20)

Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 

Cs 1023 lec 4 (week 1)

  • 1. Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing Architectures Software Architecture Lecture 4
  • 2. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 2 Where do architectures come from? Method 1) Efficient in familiar terrain 2) Not always successful 3) Predictable outcome (+ & - ) 4) Quality of methods varies Creativity 1) Fun! 2) Fraught with peril 3) May be unnecessary 4) May yield the best result How Do You Design?
  • 3. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 3 Objectives  Creativity Enhance your skill-set Provide new tools  Method Focus on highly effective techniques  Develop judgment: when to develop novel solutions, and when to follow established method
  • 4. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 4 Engineering Design Process  Feasibility stage: identifying a set of feasible concepts for the design as a whole  Preliminary design stage: selection and development of the best concept.  Detailed design stage: development of engineering descriptions of the concept.  Planning stage: evaluating and altering the concept to suit the requirements of production, distribution, consumption and product retirement.
  • 5. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 5 Potential Problems  If the designer is unable to produce a set of feasible concepts, progress stops.  As problems and products increase in size and complexity, the probability that any one individual can successfully perform the first steps decreases.  The standard approach does not directly address the situation where system design is at stake, i.e. when relationship between a set of products is at issue.   As complexity increases or the experience of the designer is not sufficient, alternative approaches to the design process must be adopted.
  • 6. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 6 Alternative Design Strategies  Standard Linear model described above  Cyclic Process can revert to an earlier stage  Parallel Independent alternatives are explored in parallel  Adaptive (“lay tracks as you go”) The next design strategy of the design activity is decided at the end of a given stage  Incremental Each stage of development is treated as a task of incrementally improving the existing design
  • 7. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 7 Identifying a Viable Strategy  Use fundamental design tools: abstraction and modularity. But how?  Inspiration, where inspiration is needed. Predictable techniques elsewhere. But where is creativity required?  Applying own experience or experience of others.
  • 8. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 8 The Tools of “Software Engineering 101”  Abstraction Abstraction(1): look at details, and abstract “up” to concepts Abstraction(2): choose concepts, then add detailed substructure, and move “down” Example: design of a stack class  Separation of concerns
  • 9. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 9 A Few Definitions… from the OED Online  Abstraction: “The act or process of separating in thought, of considering a thing independently of its associations; or a substance independently of its attributes; or an attribute or quality independently of the substance to which it belongs.”  Reification: “The mental conversion of … [an] abstract concept into a thing.”  Deduction: “The process of drawing a conclusion from a principle already known or assumed; spec. in Logic, inference by reasoning from generals to particulars; opposed to INDUCTION.”  Induction: “The process of inferring a general law or principle from the observation of particular instances (opposed to DEDUCTION, q.v.).”
  • 10. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 10 Abstraction and the Simple Machines  What concepts should be chosen at the outset of a design task? One technique: Search for a “simple machine” that serves as an abstraction of a potential system that will perform the required task For instance, what kind of simple machine makes a software system embedded in a fax machine? At core, it is basically just a little state machine.  Simple machines provide a plausible first conception of how an application might be built.  Every application domain has its common simple machines.
  • 11. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 11 Simple Machines Domain Simple Machines Graphics Pixel arrays Transformation matrices Widgets Abstract depiction graphs Word processing Structured documents Layouts Process control Finite state machines Income Tax Software Hypertext Spreadsheets Form templates Web pages Hypertext Composite documents Scientific computing Matrices Mathematical functions Banking Spreadsheets Databases Transactions
  • 12. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 12 Separation of Concerns  Separation of concerns is the subdivision of a problem into (hopefully) independent parts.  The difficulties arise when the issues are either actually or apparently intertwined.  Separations of concerns frequently involves many tradeoffs  Total independence of concepts may not be possible.  Key example from software architecture: separation of components (computation) from connectors (interaction)
  • 13. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 13 The Grand Tool: Refined Experience  Experience must be reflected upon and refined.  The lessons from prior work include not only the lessons of successes, but also the lessons arising from failure.  Learn from success and failure of other engineers Literature Conferences  Experience can provide that initial feasible set of “alternative arrangements for the design as a whole”.
  • 14. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 14 Patterns, Styles, and DSSAs Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 15. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 15 Domain-Specific Software Architectures  A DSSA is an assemblage of software components specialized for a particular type of task (domain), generalized for effective use across that domain, and composed in a standardized structure (topology) effective for building successful applications.  Since DSSAs are specialized for a particular domain they are only of value if one exists for the domain wherein the engineer is tasked with building a new application.  DSSAs are the pre-eminent means for maximal reuse of knowledge and prior development and hence for developing a new architectural design.
  • 16. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 16 Architectural Patterns  An architectural pattern is a set of architectural design decisions that are applicable to a recurring design problem, and parameterized to account for different software development contexts in which that problem appears.  Architectural patterns are similar to DSSAs but applied “at a lower level” and within a much narrower scope.
  • 17. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 17 State-Logic-Display: Three-Tiered Pattern  Application Examples Business applications Multi-player games Web-based applications Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 18. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 18 Model-View-Controller (MVC)  Objective: Separation between information, presentation and user interaction.  When a model object value changes, a notification is sent to the view and to the controller. Thus, the view can update itself and the controller can modify the view if its logic so requires.  When handling input from the user the windowing system sends the user event to the controller. If a change is required, the controller updates the model object.
  • 19. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 19 Model-View-Controller Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 20. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 20 Sense-Compute-Control Objective: Structuring embedded control applications 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 The Lunar Lander  A simple computer game that first appeared in the 1960’s  Simple concept: You (the pilot) control the descent rate of the Apollo-era Lunar Lander Throttle setting controls descent engine Limited fuel Initial altitude and speed preset If you land with a descent rate of < 5 fps: you win (whether there’s fuel left or not) “Advanced” version: joystick controls attitude & horizontal motion
  • 22. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 22 Sense-Compute-Control LL 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 Architectural Styles  An architectural style is a named collection of architectural design decisions …  A primary way of characterizing lessons from experience in software system design  Reflect less domain specificity than architectural patterns  Useful in determining everything from subroutine structure to top-level application structure  Many styles exist and we will discuss them in detail in the next lecture
  • 24. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 24 Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions that are applicable in a given development context constrain architectural design decisions that are specific to a particular system within that context elicit beneficial qualities in each resulting system.  Recurring organizational patterns & idioms Established, shared understanding of common design forms Mark of mature engineering field. Shaw & Garlan  Abstraction of recurring composition & interaction characteristics in a set of architectures Medvidovic & Taylor
  • 25. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 25 Basic Properties of Styles  A vocabulary of design elements Component and connector types; data elements e.g., pipes, filters, objects, servers  A set of configuration rules Topological constraints that determine allowed compositions of elements e.g., a component may be connected to at most two other components  A semantic interpretation Compositions of design elements have well-defined meanings  Possible analyses of systems built in a style
  • 26. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 26 Benefits of Using Styles  Design reuse Well-understood solutions applied to new problems  Code reuse Shared implementations of invariant aspects of a style  Understandability of system organization A phrase such as “client-server” conveys a lot of information  Interoperability Supported by style standardization  Style-specific analyses Enabled by the constrained design space  Visualizations Style-specific depictions matching engineers’ mental models
  • 27. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 27 Style Analysis Dimensions  What is the design vocabulary? Component and connector types  What are the allowable structural patterns?  What is the underlying computational model?  What are the essential invariants of the style?  What are common examples of its use?  What are the (dis)advantages of using the style?  What are the style’s specializations?
  • 28. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 28 Some Common Styles  Traditional, language- influenced styles Main program and subroutines Object-oriented  Layered Virtual machines Client-server  Data-flow styles Batch sequential Pipe and filter  Shared memory Blackboard Rule based  Interpreter Interpreter Mobile code  Implicit invocation Event-based Publish-subscribe  Peer-to-peer  “Derived” styles C2 CORBA
  • 29. Foundations, Theory, and PracticeSoftware ArchitectureSoftware Architecture 29 Main Program and Subroutines LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Editor's Notes

  1. First view is the standard (dictionary) understanding Second view is how CS people think of it; it is top-down design (you’re always betting on the chance that you’ll be able to come up with a workable substructure)
  2. Draw a graph as an example Graph drawn as circles and lines Graph drawn as a bit matrix: a 1 indicates that those two nodes (x, y) are connected
  3. Main program displays greetings and instructions, then enters a loop in which it calls the three subroutines in turn.