Acknowledgement: some slides from Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture EECE417 Lecture 2.

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures Software Architecture Lecture 17.
Software Architecture Lecture 3
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Software Architecture Lecture 2
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
The Architecture Design Process
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1.
1 Origins of Software Architecture. The Origins  Software Engineers have always employed software architectures –Very often without realizing it!  Address.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Software Architecture in Practice
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
What is Software Architecture?
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures And Styles Software Architecture: Foundations,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Lecture 9: Chapter 9 Architectural Design
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures Software Architecture Lecture 13.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Acknowledgement: Most slides from Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture EECE417 Lecture 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures, Part 2 Software Architecture Lecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Brief Introduction to Software Connectors Software Architecture.
CS223: Software Engineering Lecture 13: Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Architecture Lecture 3
Software Architecture
Software Architecture
Software Connectors.
Software Architecture Lecture 19
Software Architecture Lecture 3
Software Architecture Lecture 2
Software Architecture Lecture 3
Software Architecture Lecture 1
Software Architecture Lecture 20
Implementing Architectures
Software Architecture Lecture 3
Software Connectors.
Software Architecture Lecture 3
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 3
Software Architecture Lecture 7
Software Architecture Lecture 6
Presentation transcript:

Acknowledgement: some slides from Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture EECE417 Lecture 2

Software Architecture Definition (source: Taylor et al., “Software Architecture: Foundations, Theory, and Practice) “[Software architecture is] the set of principal design decisions governing a system”

Software Architecture Definition (source: Software Engineering CMU) “The software architecture of a computing system is the structure(s) of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.” Provided services, Interfaces, Performance characteristics, Fault handling, Shared resource usage Omit information not related to structure  abstraction More than one structure! Implications: (1) any system has a structure; (2) does not say what’s a good or a bad architecture.

Essential Difficulties Only partial solutions exist, if any Cannot be abstracted away u Complexity u Conformity u Changeability u Intangibility 4

More about the Architect A distinctive role in a project Broad training, leverages extensive experience A keen sense of aesthetics Deep understanding of the domain u Properties of structures, materials, and environments u Needs of customers 5 Even first-rate programming skills are insufficient for the creation of complex software applications u But are they even necessary?

What is the role of the architect?

f

Why is software architecture important? Communication with stakeholders Manifests early design decisions Transferable abstraction of a system

Why is software architecture important? Communication with stakeholders u Offers a common language! Manifests early design decisions Transferable abstraction of a system

Why is the architecture important? Communication with stakeholders Manifests early design decisions u The architecture defines constraints on implementation u The architecture dictates organizational structure u The architecture inhibits/enables system's quality attributes High-performance, modifiability, security, scalability, reusable- components System qualities can be predicted by studying the architecture u The architecture makes it easier to reason about and manage change Transferable abstraction of a system

Why is software architecture important? Communication with stakeholders Manifests early design decisions Transferable abstraction of a system u Reuse at architectural system level Less is more: It pays to restrict the vocabulary of design alternatives u Systems can be built using large, externally developed elements u Enables families of products

So far What is a software architecture? What is the role of the software architect? Why is software architecture important? Next Examples of architectures An architecture-centric design process

Is this an architecture? An attempt to describe the architecture of an underwater acoustic simulation Missing: What is the nature of the elements? What are the responsibilities of the elements? What is the significance of the connections? What is the significance of the layout?

Architecture in Action: WWW What is the architecture of the WWW? 15 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Architecture in Action: WWW This is the Web 16 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Architecture in Action: WWW So is this 17 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Architecture in Action: WWW And this 18 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

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” (URL) Each resource denotes, informally, some information. URL’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 to servers. u Web browsers are common instances of user agents. 19

WWW in a (Big) Nutshell (cont’d) Resources can be manipulated through their representations. u 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. Communication between user agents and origin servers is fully self-contained. u (So-called “stateless interactions”) 20

WWW’s Architecture Architecture (of the Web) is wholly separate from the code There is no one piece of code that implements the architecture. There are multiple pieces of code that implement each of the various components of the architecture. u E.g., different Web browsers Stylistic constraints of the Web’s architectural style are not apparent in the code u 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. 21

Architecture in Action small scale Unix command line ls invoices | grep -e august | sort 22

Unix command line ls invoices | grep -e august | sort Application architecture can be understood based on very few rules Applications can be composed by non-programmers u Akin to Lego blocks A simple architectural concept that can be comprehended and applied by a broad audience 23 Architecture in Action small scale

Architecture in Action (3): Product Line Motivating example u A consumer is interested in a 35-inch HDTV with a built-in DVD player for the North American market. Such a device might contain upwards of a million lines of embedded software. This particular television/DVD player will be very similar to a 35- inch HDTV without the DVD player, and also to a 35-inch HDTV with a built-in DVD player for the European market, where the TV must be able to handle PAL or SECAM encoded broadcasts, rather than North America’s NTSC format. These closely related televisions will similarly each have a million or more lines of code embedded within them. 24

Growing Sophistication of Consumer Devices 25

Families of Related Products 26

The Necessity and Benefit of PLs Building each of these TVs from scratch would likely put Philips out of business Reusing structure, behaviors, and component implementations is increasingly important to successful business practice u It simplifies the software development task u It reduces the development time and cost u it improves the overall system reliability Recognizing and exploiting commonality and variability across products 27

Reuse as the Big Win Architecture: reuse of u Ideas u Knowledge u Patterns u Engineering guidance u Well-worn experience Product families: reuse of u Structure u Behaviors u Implementations u Test suites… 28

The Centerpiece – Architecture 29

So far What is a software architecture? What is the role of the software architect? Why is software architecture important? Examples of architectures Next An architecture-centric design process