Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 3
Advertisements

Architecture Representation
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 13.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Architecture Lecture 2
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 223 Applied Software Design Techniques.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 223 Applied Software Design Techniques.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 11.
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 121 Software Design I Lecture 4 Duplication.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 8 Duplication.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 10.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 11.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 14.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 6 Duplication.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 7 Duplication.
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.
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
Introduction to Software Architecture. Software Architecture Definition  Definition. A software system’s architecture is the set of principal design.
Software Architecture Lecture 5
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project.
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. Architectural Styles Software Architecture Lecture 5.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture Lecture 3
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
An Introduction to Software Architecture
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 223 Applied Software Design Techniques.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Software Architecture and Patterns
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 10.
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.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
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 121 Software Design I Lecture 7 Duplication.
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 121 Software Design I Lecture 11.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 5 Duplication.
University of Southern California Center for Systems and Software Engineering Architecture and Design Patterns CSCI577A Fall2015 Kan Qi, Bo Wang.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Lecture VIII: Software Architecture
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 5 Duplication.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 6 Duplication.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 223 Applied Software Design Techniques.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 121 Software Design I Lecture 5 Duplication.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Software Architecture Lecture 3
Software Architecture
Software Design and Architecture
CHAPTER 3 Architectures for Distributed Systems
Software Architecture Lecture 3
Software Architecture Lecture 2
Software Architecture Lecture 3
Software Architecture Lecture 3
An Introduction to Software Architecture
Software Architecture Lecture 3
Software Architecture Lecture 3
Presentation transcript:

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering Lecture 5-1 April 28, 2015 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited.

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 2 Today’s lecture Architectural styles Evolution Study guide for quiz 3 Some slides adopted and adopted from “Software Architecture: Foundations, Theory, & Practice” by Taylor, Medvidovic, and Dashofy

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 3 Today’s lecture Architectural styles Evolution Study guide for quiz 3

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 4 Defining software architecture A software system’s architecture is the set of principal design decisions about the system Software architecture is the blueprint for a software system’s construction and evolution Design decisions encompass every facet of the system under development – structure – behavior – interaction – non-functional properties

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 5 “Principal” “Principal” implies a degree of importance that grants a design decision “architectural status” – it implies that not all design decisions are architectural – that is, they do not necessarily impact a system’s architecture How one defines “principal” will depend on what the stakeholders define as the system goals

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 6 Other definitions Fowler: The highest-level breakdown of a system into its parts; the decisions that are hard to change Bass, Clements, and Kazman: The structure or structures of a system, which comprises software elements, the externally visible properties of those elements, and the relationships among them Natarén: The clear definition of multiple high-level components that, when working together, form your system and solve your problem

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 7 Software architecture’s elements A software system’s architecture typically is not (and should not be) a uniform monolith A software system’s architecture should be a composition and interplay of different elements – processing – data, also referred as information or state – interaction components connectors

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 8 Example configuration ship course ship radar GPS unit procedure call component connector

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 9 Example configuration - simplified ship course ship radarGPS unit component connector

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 10 Architectural style Certain design choices regularly result in solutions with superior properties – compared to other possible alternatives, solutions such as this are more elegant, effective, efficient, dependable, evolvable, scalable, and so on 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 – result in beneficial qualities in each resulting system

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 11 Architectural style A pattern of decisions that work well together A named, commonly used set of components and connectors – Each component/connector has its own job in an architectural style

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 12 Architectural style Victorian: Arts and Crafts:

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 13 Architectural style? Jazz: Rock and Roll:

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 14 Style 1: object-oriented ship course ship radar GPS unit procedure call component connector

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 15 Style 1: object-oriented (simplified) ship course ship radarGPS unit component connector

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 16 Style 1: object-oriented Components are objects – Containing all the data and behavior relevant to the object Connectors are messages and method invocations Key benefits – Objects expose a certain interface to other objects Abstraction – An object’s internal representation is hidden from other objects Anticipation of change – Objects in software are used to model real-world objects Understandability Examples – Business applications

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 17 Style 2: model-view-controller ATM display rules back account

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 18 Style 2: model-view-controller ATM display rules back account model controller view

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 19 Style 2: model-view-controller Components are models, views, and controllers Models store information about the state of the program View components present information to the user Controllers allow user to control model/view and tell models (views) to update

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 20 Style 2: model-view-controller Components are models, views, and controllers Models store information about the state of the program View components present information to the user Controllers allow user to control model/view and tell models (views) to update User interface

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 21 Style 2: model-view-controller Key benefits: – Decouples model and view – one model can support multiple views – Decouples view and controller – can change the way a view responds to user input – Modularity, anticipation of change Examples – Websites – Web applications

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 22 Style 3: client-server game client 2 game server remote call game client 1game client 3

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 23 Style 3: client-server (simplified) game client 2 game server game client 1game client 3

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 24 Style 3: client-server Components are clients and servers A server has computational resources that it provides to one or more clients Clients make requests of servers Generally used in distributed systems

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 25 Style 3: client-server Key benefits – Centralized security – Centralized data access and management Examples – – Web browser-based programs

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 26 Style 4: layered

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 27 Style 4: layered Components are organized in hierarchical layers Connectors are protocols of layer interaction “Multi-level client server:” each layer acts as a – Service: service provider to layers “above” – Client: service consumer of layer(s) “below” Key benefits – Increasing abstraction levels – Changes in a layer affect at most the adjacent two layers Anticipation of change – Lower layers are easily reusable Examples – Operating systems – Networks

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 28 Style 4: layered example Consider a supplier of tennis balls. It has several departments (in no particular order): Rolling: forms tennis balls from green ooze Assembly: puts balls into canisters Receiving: accepts shipments of canisters from Acme Canister Co. Packaging: packs filled canisters into cardboard boxes Inventory: stores parts

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 29 Which department goes on the top layer of the company’s manufacturing architecture? A.Rolling B.Assembly C.Receiving D.Packaging E.Inventory

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 30 Which department goes on the top layer of the company’s manufacturing architecture? A.Rolling B.Assembly C.Receiving D.Packaging E.Inventory

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 31 Which department goes on the second layer of the company’s manufacturing architecture? A.Rolling B.Assembly C.Receiving D.Packaging E.Inventory

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 32 Which department goes on the second layer of the company’s manufacturing architecture? A.Rolling B.Assembly C.Receiving D.Packaging E.Inventory

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 33 Which department goes on the third layer of the company’s manufacturing architecture? A.Rolling B.Assembly C.Receiving D.Packaging E.Inventory

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 34 Which department goes on the third layer of the company’s manufacturing architecture? A.Rolling B.Assembly C.Receiving D.Packaging E.Inventory

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 35 Which department goes on the fourth layer of the company’s manufacturing architecture? A.Rolling B.Assembly C.Receiving D.Packaging E.Inventory

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 36 Which department goes on the fourth layer of the company’s manufacturing architecture? A.Rolling B.Assembly C.Receiving D.Packaging E.Inventory

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 37 Style 4: layered example The tennis ball supplier’s organization can be viewed as having a layered architecture: TOP: Packaging: packs filled canisters into cardboard boxes Assembly: puts balls into canisters Inventory: stores parts BOTTOM – Receiving: accepts shipments of canisters from Acme Canister Co. – Rolling: forms tennis balls from green ooze

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 38 Style 5: peer-to-peer skype 1 skype 3skype 2 stream

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 39 Style 5: peer-to-peer (simplified) skype 1 skype 3skype 2

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 40 Style 4: peer-to-peer Components (“peers”) are equals and can act as either clients or servers – Data and behavior are distributed among peers Connectors are network protocols Key benefits – Highly robust in the face of failure of any given node Examples – File sharing systems, Skype

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 41 Style 6: pipe-and-filter print records stream sort stream remove duplicates

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 42 Style 6: pipe-and-filter Components are filters – Transform input data streams into output data streams Connectors are pipes – Conduits for data streams Key benefits – Easy filter addition, replacement, and reuse Possible to hook any two filters together Examples – UNIX shell ls invoices | grep -e August | sort

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 43 Style 7: publish-subscribe (“pub-sub”) stock market remote call stream remote call trader 1trader 2trader 3

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 44 Style 7: pub-sub Components are publishers or subscribers – Subscribers register/deregister to receive specific messages/content – Publishers broadcast messages to subscribers Connectors are network protocols Key benefits – Efficient one-way dissemination of information – Scalability Examples – Stock market – News

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 45 Mixing styles is often necessary stock market server remote call stream remote call trader 1trader 2trader 3 procedure call purchasing rules stock database

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 46 Today’s lecture Quiz Answers Architectural styles Evolution Quiz 3

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 47 Today’s lecture Architectural styles Evolution Study guide for quiz 3

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 48 Back to evolution Essential part of software development Must be accommodated as much as possible Must be planned as much as possible

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 49 Back to evolution Essential part of software development Must be accommodated as much as possible Must be planned as much as possible Architecture is a key tool in accommodating evolution

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 50 Accommodating change ATM display procedure call rules back account New overdraft rule?

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 51 Accommodating change skype 1 skype 3skype 2 stream Another user?

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 52 Accommodating change? list records stream sort stream remove duplicates Only records names starting with a letter from the first half of the alphabet?

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 53 Accommodating change stock market server remote call stream remote call trader 1trader 2trader 3 procedure call purchasing rules stock database Another trader?

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 54 Architectural evolution When a system evolves, ideally its prescriptive architecture is modified first In practice, the system – and thus its descriptive architecture – is often directly modified This happens because of – developer sloppiness – perception of short deadlines which prevent thinking through and documenting – lack of documented prescriptive architecture – need or desire for code optimizations – inadequate techniques or tool support

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 55 Today’s lecture Architectural styles Evolution Study guide for quiz 3

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 56 Quiz 3: software architecture Lectures: – Understand what software architecture is – Elements of software architecture – Prescriptive vs. descriptive architectures – Software/architectural evolution – What an architectural style is – The basics of the seven styles presented today Readings – Architectural styles: only those presented in lecture – Architectural views

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 57 Quiz 3: software architecture Mythical Man Month – Causes of late projects – Brooks’ Law – Brooks’ Law formula

Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 58 Next time Software process models Quiz 3 Homework 1 final draft due tonight 11:55pm – Submit as a Word doc! – Use format given in template and include scoring sheet!! – If you submit late, your homework will not be accepted