SlideShare a Scribd company logo
1 of 49
Download to read offline
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved.
CS 3212
Software Architecture & Design
Dr. Chinthana Wimalasuriya
Lecture 1
Introduction to Software Architecture
Software Architecture: Foundations, Theory, and Practice
Course Logistics
 Lectures: Fridays 8.15 a.m. – 10.15 a.m.
 Lecturer: Dr. Chinthana Wimalasuriya
 Instructor/Grader: TBD
 Assessment
 Final Exam 60%
 Continuous Assessment 40%
 Assignments 10%
 Projects 30%
2
Software Architecture: Foundations, Theory, and Practice
Textbooks
 Recommended Textbook
 Richard Taylor, Nenad Medvidovic and Eric Dashofy, Softare
Architecture – Foundations, Theory and Practice, 2010
 Supplementary Textbooks
 Len Bass, Paul Clements and Rick Kazman, Software Architecture
in Practice, 2nd Edition, 2003
 Diomidis Spinellis and Georgios Gousios, Beautiful Architecture,
2009.
 Nick Rozanski and Eoin Woods, Software Systems Architecture,
2009.
3
Software Architecture: Foundations, Theory, and Practice
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
4
Software Architecture: Foundations, Theory, and Practice
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”
5
Software Architecture: Foundations, Theory, and Practice
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
6
Software Architecture: Foundations, Theory, and Practice
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
7
Software Architecture: Foundations, Theory, and Practice
Essential Difficulties
 Only partial solutions exist for them, if any
 Cannot be abstracted away
 Complexity
 Conformity
 Changeability
 Intangibility
8
Software Architecture: Foundations, Theory, and Practice
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
9
Software Architecture: Foundations, Theory, and Practice
Conformity
 Software is required to conform to its
 Operating environment
 Hardware
 Often “last kid on block”
 Perceived as most conformable
10
Software Architecture: Foundations, Theory, and Practice
Changeability
 Change originates with
 New applications, users, machines, standards, laws
 Hardware problems
 Software is viewed as infinitely malleable
11
Software Architecture: Foundations, Theory, and Practice
Intangibility
 Software is not embedded in space
 Often no constraining physical laws
 No obvious representation
 E.g., familiar geometric shapes
12
Software Architecture: Foundations, Theory, and Practice
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
13
Software Architecture: Foundations, Theory, and Practice
Promising Attacks On Complexity (In
1987)
 Buy vs. Build
 Requirements refinement & rapid prototyping
 Hardest part is deciding what to build (or buy?)
 Must show product to customer to get complete spec.
 Need for iterative feedback
14
Software Architecture: Foundations, Theory, and Practice
Promising Attacks On Complexity
(cont’d)
 Incremental/Evolutionary/Spiral Development
 Grow systems, don’t build them
 Good for morale
 Easy backtracking
 Early prototypes
 Great designers
 Good design can be taught; great design cannot
 Nurture great designers
15
Software Architecture: Foundations, Theory, and Practice
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?
16
Software Architecture: Foundations, Theory, and Practice
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
17
Software Architecture: Foundations, Theory, and Practice
Some Obvious Parallels
 Satisfaction of customers’ needs
 Specialization of labor
 Multiple perspectives of the final product
 Intermediate points where plans and progress are
reviewed
18
Software Architecture: Foundations, Theory, and Practice
Deeper Parallels
 Architecture is different from, but linked with the
product/structure
 Similarly, the principal design decisions characterizing a software
architecture, exist independently from, but are linked to, the
code that implements the architecture.
 Properties of structures are induced by the design of the
architecture
 Similarly, properties of software applications such as resilience to
certain types of security attacks are determined by the design of
their architectures.
 The architect has a distinctive role and character
19
Software Architecture: Foundations, Theory, and Practice
Deeper Parallels (cont’d)
 Process is not as important as architecture
 Architects and construction companies follow and
depend on standard processes to guide their daily
activities and ensure that all aspects of the design
and build activities are addressed.
 But, the design and resulting qualities are at the
forefront
 Process is a means, not an end
20
Software Architecture: Foundations, Theory, and Practice
Deeper Parallels (cont’d)
 Building architecture has matured over time into a
discipline
 A body of knowledge exists about how to create a wide range of
buildings to meet many types of needs
 Architectural styles as sets of constraints
 Swiss Chalet, Gothic Cathedral, New York Skyscraper
 Styles also as wide range of solutions, techniques and palettes
of compatible materials, colors, and sizes
 Similarly software architecture is maturing into a robust
discipline leveraging the knowledge gained from various
system development experiences.
 Software architectural styles are a major point of
intellectual leverage in creating complex software
systems.
21
Software Architecture: Foundations, Theory, and Practice
More about the Architect
 A distinctive role and character in a project
 Very broad training
 Competence of engineering
 Amasses and leverages extensive experience
 A keen sense of aesthetics
 Deep understanding of the domain
 Properties of structures, materials, and
environments
 Needs of customers (how people work, play, eat
and live)
22
Software Architecture: Foundations, Theory, and Practice
More about the Architect (cont’d)
 Even first-rate programming skills are insufficient for the
creation of complex software applications
 But are they even necessary?
23
Software Architecture: Foundations, Theory, and Practice
Limitations of the Analogy…
 We know a lot about buildings, much less about
software
 Hence, we need to be more methodical and analytical about
software
 The nature of software (intangible) is different from that
of building architecture (can discern by looking at it)
 Hence, with software, it is more difficult to measure progress,
analyze design qualities, etc.
 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 24
Software Architecture: Foundations, Theory, and Practice
…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!
25
Software Architecture: Foundations, Theory, and Practice
Thus…
 Software architecture must be at the very heart of
software system design and development
 It must be in the foreground
 More than process
 More than component analysis
 And, more than programming
 This prominence has to be given over the entire lifespan
of the software development process.
26
Software Architecture: Foundations, Theory, and Practice
Notable Points
 All software systems have an architecture.
 There are good architectures, bad architectures, elegant
architectures, interesting architectures, dysfunctional
architectures and curious architectures.
 Your objective should be to develop the skills necessary
to ensure that the software systems you design have
good, elegant and effective architectures.
27
Software Architecture: Foundations, Theory, and Practice
Architecture in Action: WWW
 This is the Web
28
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
Architecture in Action: WWW
 So is this
29
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
Architecture in Action: WWW
 And this
30
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
Software Architecture: Foundations, Theory, and Practice
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.
31
Software Architecture: Foundations, Theory, and Practice
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”)
32
Software Architecture: Foundations, Theory, and Practice
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
33
Software Architecture: Foundations, Theory, and Practice
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.
34
Software Architecture: Foundations, Theory, and Practice
Architecture in Action:
Pipe and Filter on the Desktop
 Remember pipes and filters in Unix?
 ls invoices | grep –e august | sort
35
Software Architecture: Foundations, Theory, and Practice
Pipe and Filter on the Desktop
(contd.)
 Application architecture can be understood based on
very few rules
 Filter takes a stream of text characters as input and produces a
stream of characters as its output
 A filter’s processing may be controlled by a set of parameters
 Pipe is a way of connecting two filters (the character stream
output of the first filter is routed to the character stream input of
the second filter)
 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
36
Software Architecture: Foundations, Theory, and Practice
“Genres” of Architecture
 Enterprise Architecture
 System of Systems Architecture
 Systems Architecture
 Software Architecture
37
Software Architecture: Foundations, Theory, and Practice
Commonalities between the
Genres
 Satisfaction of functional and quality attributes
 Evaluation of architecture for suitability
 Documentation and communication of the architecture
 Using the architecture as a blueprint for construction and
development.
38
Software Architecture: Foundations, Theory, and Practice
Activities for All Genres
 Understanding goals, context, and requirements
 Architecture creation, evaluation and documentation
 Managing the architecture post-creation (evolution)
 Assisting in post-architecture activities (maintenance,
conformance and performance analysis, etc.)
39
Software Architecture: Foundations, Theory, and Practice
Software Architecture and Other
Genres
 Software architectures show up in the architectures of
other genres
 Enterprise architecture and system architecture provide an
environment in which software lives.
 Both provide requirements and constraints to which software
architecture must adhere.
 Elements of both are likely to contain software architecture, but
neither substitutes for or obviates a software architecture.
 Both software and system architectures are critical for ensuring
that the system meets its business and mission goals.
 Each system in a SoS has system and software architectures.
40
Software Architecture: Foundations, Theory, and Practice
What is Software Architecture
 Software architecture encompasses the structure of
large software systems:
 Abstract view
 Eliminates details of implementation, algorithm and
data representation
 Concentrates on the behavior and interaction of
“black box” elements.
41
Software Architecture: Foundations, Theory, and Practice
Definition
 The software architecture of a program or a computing
system is the structure or structures of the system,
which comprise software elements, the externally visible
properties of those elements, and the relationships
among them.
42
Software Architecture: Foundations, Theory, and Practice
Question
 What is the relationship of a system’s software
architecture to the environment in which the system will
be constructed and where it will exist?
43
Software Architecture: Foundations, Theory, and Practice
Answer
 It’s a cycle: Architecture Business Cycle (ABC)
 Software architecture is a result of technical, business
and social influences
 In turn, it affects each of these environments.
44
Software Architecture: Foundations, Theory, and Practice
Where do Architectures Come
From?
 The result of a set of business and technical decisions.
 In any development effort, the requirements make
explicit some – but only some – of the desired properties
of the final system.
 Failure to satisfy documented as well as non-
documented constraints can cause many problems.
45
Software Architecture: Foundations, Theory, and Practice
Influences of Stakeholders on the
Architect
46
Software Architecture: Foundations, Theory, and Practice
Architectural Influences
 Stakeholders
 Each stakeholder has different concerns and goals,
some contradictory
 Development Organization
 Immediate business, long-term business, and
organizational (staff skills, schedule, and budget)
 Background and Experience of the Architects
 Repeat good results, avoid duplicating disasters
 The Technical Environment
 Standard industry practices or common SE techniques
47
Software Architecture: Foundations, Theory, and Practice
Ramification of Influences
 Almost never are the properties required by the business
and organizational goals consciously understood let
alone fully articulated.
 Architects need to know and understand the nature,
source, and priority of constraints on the project as
early as possible.
 Architects must identify and actively engage the
stakeholders to solicit their needs and expectations.
 Use architecture reviews and iterative prototyping.
48
Software Architecture: Foundations, Theory, and Practice
Main Message
 Architectures affect the factors that influence them
 The relationship among business goals, product
requirements, architect’s experience, architectures,
and field systems form a cycle with feedback loops
that a business can manage:
 To handle growth
 To expand enterprise area
 To take advantage of previous investments in
architecture and system building.
49

More Related Content

Similar to Lecture-1-Introduction.pdf

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
 
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
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptxJuttG6
 
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 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
 
Lecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfAkilaGamage2
 
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
 
Lecture 01
Lecture 01Lecture 01
Lecture 01Rana Ali
 
se01.ppt
se01.pptse01.ppt
se01.pptxiso
 
Lukito Edi Nugroho - Information System Engineering
Lukito Edi Nugroho - Information System EngineeringLukito Edi Nugroho - Information System Engineering
Lukito Edi Nugroho - Information System Engineeringbelajarkomputer
 
Pr.SE2.361101659.pptx
Pr.SE2.361101659.pptxPr.SE2.361101659.pptx
Pr.SE2.361101659.pptxnazimsattar
 
香港六合彩
香港六合彩香港六合彩
香港六合彩pchgmf
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideSharehcslenk
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩tnxaht
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩eqhnwl
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩bxuket
 

Similar to Lecture-1-Introduction.pdf (20)

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)
 
Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)Cs 1023 lec 4 (week 1)
Cs 1023 lec 4 (week 1)
 
SDA 01.pptx
SDA 01.pptxSDA 01.pptx
SDA 01.pptx
 
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 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-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdfLecture-2-Architectural_Concepts.pdf
Lecture-2-Architectural_Concepts.pdf
 
You're the Engineer! Think Big!
You're the Engineer! Think Big!You're the Engineer! Think Big!
You're the Engineer! Think Big!
 
Lecture 01
Lecture 01Lecture 01
Lecture 01
 
se01.ppt
se01.pptse01.ppt
se01.ppt
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
lecture7.ppt
lecture7.pptlecture7.ppt
lecture7.ppt
 
Lukito Edi Nugroho - Information System Engineering
Lukito Edi Nugroho - Information System EngineeringLukito Edi Nugroho - Information System Engineering
Lukito Edi Nugroho - Information System Engineering
 
Pr.SE2.361101659.pptx
Pr.SE2.361101659.pptxPr.SE2.361101659.pptx
Pr.SE2.361101659.pptx
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 
六合彩|香港六合彩
六合彩|香港六合彩六合彩|香港六合彩
六合彩|香港六合彩
 
香港六合彩-六合彩
香港六合彩-六合彩香港六合彩-六合彩
香港六合彩-六合彩
 
六合彩,香港六合彩
六合彩,香港六合彩六合彩,香港六合彩
六合彩,香港六合彩
 

Recently uploaded

EduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIEduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIkoyaldeepu123
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
pipeline in computer architecture design
pipeline in computer architecture  designpipeline in computer architecture  design
pipeline in computer architecture designssuser87fa0c1
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxbritheesh05
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 

Recently uploaded (20)

EduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AIEduAI - E learning Platform integrated with AI
EduAI - E learning Platform integrated with AI
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
pipeline in computer architecture design
pipeline in computer architecture  designpipeline in computer architecture  design
pipeline in computer architecture design
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Artificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptxArtificial-Intelligence-in-Electronics (K).pptx
Artificial-Intelligence-in-Electronics (K).pptx
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 

Lecture-1-Introduction.pdf

  • 1. Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. CS 3212 Software Architecture & Design Dr. Chinthana Wimalasuriya Lecture 1 Introduction to Software Architecture
  • 2. Software Architecture: Foundations, Theory, and Practice Course Logistics  Lectures: Fridays 8.15 a.m. – 10.15 a.m.  Lecturer: Dr. Chinthana Wimalasuriya  Instructor/Grader: TBD  Assessment  Final Exam 60%  Continuous Assessment 40%  Assignments 10%  Projects 30% 2
  • 3. Software Architecture: Foundations, Theory, and Practice Textbooks  Recommended Textbook  Richard Taylor, Nenad Medvidovic and Eric Dashofy, Softare Architecture – Foundations, Theory and Practice, 2010  Supplementary Textbooks  Len Bass, Paul Clements and Rick Kazman, Software Architecture in Practice, 2nd Edition, 2003  Diomidis Spinellis and Georgios Gousios, Beautiful Architecture, 2009.  Nick Rozanski and Eoin Woods, Software Systems Architecture, 2009. 3
  • 4. Software Architecture: Foundations, Theory, and Practice 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 4
  • 5. Software Architecture: Foundations, Theory, and Practice 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” 5
  • 6. Software Architecture: Foundations, Theory, and Practice 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 6
  • 7. Software Architecture: Foundations, Theory, and Practice 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 7
  • 8. Software Architecture: Foundations, Theory, and Practice Essential Difficulties  Only partial solutions exist for them, if any  Cannot be abstracted away  Complexity  Conformity  Changeability  Intangibility 8
  • 9. Software Architecture: Foundations, Theory, and Practice 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 9
  • 10. Software Architecture: Foundations, Theory, and Practice Conformity  Software is required to conform to its  Operating environment  Hardware  Often “last kid on block”  Perceived as most conformable 10
  • 11. Software Architecture: Foundations, Theory, and Practice Changeability  Change originates with  New applications, users, machines, standards, laws  Hardware problems  Software is viewed as infinitely malleable 11
  • 12. Software Architecture: Foundations, Theory, and Practice Intangibility  Software is not embedded in space  Often no constraining physical laws  No obvious representation  E.g., familiar geometric shapes 12
  • 13. Software Architecture: Foundations, Theory, and Practice 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 13
  • 14. Software Architecture: Foundations, Theory, and Practice Promising Attacks On Complexity (In 1987)  Buy vs. Build  Requirements refinement & rapid prototyping  Hardest part is deciding what to build (or buy?)  Must show product to customer to get complete spec.  Need for iterative feedback 14
  • 15. Software Architecture: Foundations, Theory, and Practice Promising Attacks On Complexity (cont’d)  Incremental/Evolutionary/Spiral Development  Grow systems, don’t build them  Good for morale  Easy backtracking  Early prototypes  Great designers  Good design can be taught; great design cannot  Nurture great designers 15
  • 16. Software Architecture: Foundations, Theory, and Practice 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? 16
  • 17. Software Architecture: Foundations, Theory, and Practice 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 17
  • 18. Software Architecture: Foundations, Theory, and Practice Some Obvious Parallels  Satisfaction of customers’ needs  Specialization of labor  Multiple perspectives of the final product  Intermediate points where plans and progress are reviewed 18
  • 19. Software Architecture: Foundations, Theory, and Practice Deeper Parallels  Architecture is different from, but linked with the product/structure  Similarly, the principal design decisions characterizing a software architecture, exist independently from, but are linked to, the code that implements the architecture.  Properties of structures are induced by the design of the architecture  Similarly, properties of software applications such as resilience to certain types of security attacks are determined by the design of their architectures.  The architect has a distinctive role and character 19
  • 20. Software Architecture: Foundations, Theory, and Practice Deeper Parallels (cont’d)  Process is not as important as architecture  Architects and construction companies follow and depend on standard processes to guide their daily activities and ensure that all aspects of the design and build activities are addressed.  But, the design and resulting qualities are at the forefront  Process is a means, not an end 20
  • 21. Software Architecture: Foundations, Theory, and Practice Deeper Parallels (cont’d)  Building architecture has matured over time into a discipline  A body of knowledge exists about how to create a wide range of buildings to meet many types of needs  Architectural styles as sets of constraints  Swiss Chalet, Gothic Cathedral, New York Skyscraper  Styles also as wide range of solutions, techniques and palettes of compatible materials, colors, and sizes  Similarly software architecture is maturing into a robust discipline leveraging the knowledge gained from various system development experiences.  Software architectural styles are a major point of intellectual leverage in creating complex software systems. 21
  • 22. Software Architecture: Foundations, Theory, and Practice More about the Architect  A distinctive role and character in a project  Very broad training  Competence of engineering  Amasses and leverages extensive experience  A keen sense of aesthetics  Deep understanding of the domain  Properties of structures, materials, and environments  Needs of customers (how people work, play, eat and live) 22
  • 23. Software Architecture: Foundations, Theory, and Practice More about the Architect (cont’d)  Even first-rate programming skills are insufficient for the creation of complex software applications  But are they even necessary? 23
  • 24. Software Architecture: Foundations, Theory, and Practice Limitations of the Analogy…  We know a lot about buildings, much less about software  Hence, we need to be more methodical and analytical about software  The nature of software (intangible) is different from that of building architecture (can discern by looking at it)  Hence, with software, it is more difficult to measure progress, analyze design qualities, etc.  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 24
  • 25. Software Architecture: Foundations, Theory, and Practice …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! 25
  • 26. Software Architecture: Foundations, Theory, and Practice Thus…  Software architecture must be at the very heart of software system design and development  It must be in the foreground  More than process  More than component analysis  And, more than programming  This prominence has to be given over the entire lifespan of the software development process. 26
  • 27. Software Architecture: Foundations, Theory, and Practice Notable Points  All software systems have an architecture.  There are good architectures, bad architectures, elegant architectures, interesting architectures, dysfunctional architectures and curious architectures.  Your objective should be to develop the skills necessary to ensure that the software systems you design have good, elegant and effective architectures. 27
  • 28. Software Architecture: Foundations, Theory, and Practice Architecture in Action: WWW  This is the Web 28 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 29. Software Architecture: Foundations, Theory, and Practice Architecture in Action: WWW  So is this 29 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 30. Software Architecture: Foundations, Theory, and Practice Architecture in Action: WWW  And this 30 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
  • 31. Software Architecture: Foundations, Theory, and Practice 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. 31
  • 32. Software Architecture: Foundations, Theory, and Practice 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”) 32
  • 33. Software Architecture: Foundations, Theory, and Practice 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 33
  • 34. Software Architecture: Foundations, Theory, and Practice 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. 34
  • 35. Software Architecture: Foundations, Theory, and Practice Architecture in Action: Pipe and Filter on the Desktop  Remember pipes and filters in Unix?  ls invoices | grep –e august | sort 35
  • 36. Software Architecture: Foundations, Theory, and Practice Pipe and Filter on the Desktop (contd.)  Application architecture can be understood based on very few rules  Filter takes a stream of text characters as input and produces a stream of characters as its output  A filter’s processing may be controlled by a set of parameters  Pipe is a way of connecting two filters (the character stream output of the first filter is routed to the character stream input of the second filter)  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 36
  • 37. Software Architecture: Foundations, Theory, and Practice “Genres” of Architecture  Enterprise Architecture  System of Systems Architecture  Systems Architecture  Software Architecture 37
  • 38. Software Architecture: Foundations, Theory, and Practice Commonalities between the Genres  Satisfaction of functional and quality attributes  Evaluation of architecture for suitability  Documentation and communication of the architecture  Using the architecture as a blueprint for construction and development. 38
  • 39. Software Architecture: Foundations, Theory, and Practice Activities for All Genres  Understanding goals, context, and requirements  Architecture creation, evaluation and documentation  Managing the architecture post-creation (evolution)  Assisting in post-architecture activities (maintenance, conformance and performance analysis, etc.) 39
  • 40. Software Architecture: Foundations, Theory, and Practice Software Architecture and Other Genres  Software architectures show up in the architectures of other genres  Enterprise architecture and system architecture provide an environment in which software lives.  Both provide requirements and constraints to which software architecture must adhere.  Elements of both are likely to contain software architecture, but neither substitutes for or obviates a software architecture.  Both software and system architectures are critical for ensuring that the system meets its business and mission goals.  Each system in a SoS has system and software architectures. 40
  • 41. Software Architecture: Foundations, Theory, and Practice What is Software Architecture  Software architecture encompasses the structure of large software systems:  Abstract view  Eliminates details of implementation, algorithm and data representation  Concentrates on the behavior and interaction of “black box” elements. 41
  • 42. Software Architecture: Foundations, Theory, and Practice Definition  The software architecture of a program or a computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. 42
  • 43. Software Architecture: Foundations, Theory, and Practice Question  What is the relationship of a system’s software architecture to the environment in which the system will be constructed and where it will exist? 43
  • 44. Software Architecture: Foundations, Theory, and Practice Answer  It’s a cycle: Architecture Business Cycle (ABC)  Software architecture is a result of technical, business and social influences  In turn, it affects each of these environments. 44
  • 45. Software Architecture: Foundations, Theory, and Practice Where do Architectures Come From?  The result of a set of business and technical decisions.  In any development effort, the requirements make explicit some – but only some – of the desired properties of the final system.  Failure to satisfy documented as well as non- documented constraints can cause many problems. 45
  • 46. Software Architecture: Foundations, Theory, and Practice Influences of Stakeholders on the Architect 46
  • 47. Software Architecture: Foundations, Theory, and Practice Architectural Influences  Stakeholders  Each stakeholder has different concerns and goals, some contradictory  Development Organization  Immediate business, long-term business, and organizational (staff skills, schedule, and budget)  Background and Experience of the Architects  Repeat good results, avoid duplicating disasters  The Technical Environment  Standard industry practices or common SE techniques 47
  • 48. Software Architecture: Foundations, Theory, and Practice Ramification of Influences  Almost never are the properties required by the business and organizational goals consciously understood let alone fully articulated.  Architects need to know and understand the nature, source, and priority of constraints on the project as early as possible.  Architects must identify and actively engage the stakeholders to solicit their needs and expectations.  Use architecture reviews and iterative prototyping. 48
  • 49. Software Architecture: Foundations, Theory, and Practice Main Message  Architectures affect the factors that influence them  The relationship among business goals, product requirements, architect’s experience, architectures, and field systems form a cycle with feedback loops that a business can manage:  To handle growth  To expand enterprise area  To take advantage of previous investments in architecture and system building. 49