university of utah soccs6961 - lecture 61 architecture – an introduction cs 6961 - lecture 6...

18
University of Utah SoC CS6961 - Lecture 6 1 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

Upload: zoe-johnson

Post on 28-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 1

Architecture – An Introduction

CS 6961 - Lecture 6

Nathan Dykman

Page 2: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 2

Administration

• Questions so far?

• Homework 3 coming soon– But not before the fall break, so enjoy.

Page 3: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 3

Software Architecture• Architecture is still an evolving, dynamic

field– As such, no one agreement on a good

description

• Definition from Rational Unified Process– Organizational guidelines – Selection of structural elements and their

composition– Composition of those elements into

components, subsystems

Page 4: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 4

Architectural Elements

• In many cases, components and interfaces form the heart of architecture– The architecture is formed by having

component types:• EJB: Entity, Message, Session

• Sometimes an analysis model is used– Specialized classes

• At a higher level of abstraction – Seed for component model and class models

Page 5: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 5

Architectural Elements

• The key to an architecture is that the architecture contains more details as to the structure of the system, but not too many details as to completely constrain the design/implementation– In some cases, architecture is rolled into

design (smaller projects)– We won’t do this for pedagogical reasons.

Page 6: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 6

RUP: 4+1 View of Architecture

• One interesting view on architecture is the view taken by RUP– The “4+1” view of architecture– RUP defines five ways of viewing an software

system from an architectural standpoint– Logical, Implementation, Process,

Development Views (the 4 views)– All based on the Use Case view (the +1 view)

Page 7: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 7

Logical View

• Addresses the functionality of the system– Representation of stakeholders, business

roles, user functionality– “Cross-cutting” components, elements, etc.

• Contains logical design elements– Subsystems– Logical Interfaces, Entities, Activities

• Sometimes an Analysis model (BAC, MVC, etc…)

Page 8: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 8

Implementation View

• How the physical artifacts of the system are packaged together– Files, components, executables, libraries, etc.

• How physical artifacts are controlled and deployed into a product– SCM plans, layout– Build packaging, installation– Documentation

Page 9: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 9

Process View

• The system in terms of tasks, resources, and internal communication

• More and more complex in modern systems– Multiple clients, long standing transactions, n-

tier middleware, advanced messaging.– Critical in real-time or resource sensitive

systems.

Page 10: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 10

Deployment View

• A representation of the physical environment the software runs on, and how that software is placed in that environment– For modern web systems, this is not a trivial

task. • Also, complex software dependencies

– Variation of deployment scales, different middleware, etc.

Page 11: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 11

RUP: Use Case View

• Drives and validates all other views

• However, the architecture is not just “a decomposition of the Use Cases”– More on this later

• Architecture elements can cross multiple use cases– To enable reuse, for example

Page 12: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 12

Use-Case Driven Architecture

• Use Cases Driven Architecture– They are the core of the requirements– They influence the development of the

architecture– They are used to test system functionality and

validate implementation– Core of documentation of the system– And so on.

Page 13: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 13

Robustness Analysis

• In RUP, there is a phase in which you analyze a set of use cases by creating a class model with the following:– Boundary: How actors/other parts of the

system interact with this system– Control: Responsible for logic and control of

other classes– Entity: Managing persistent information in the

system

Page 14: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 14

Robustness Analysis Example

cd

Customer

Storefront Cart Manager

Profile Manager Customer Profile

Shopping Cart

Profile Page

Page 15: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 15

Robustness Analysis Example

«Entity»StoreItem

«Boundary»Storefront

Customer

«Control»InventoryManager

Warehouse

Page 16: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 16

Architectural Elements

• This kind of analysis covers a surprising amount of software projects– Especially business or UI intensive systems– Works less well for embedded systems

• In this world, there a big use of a processes, protocols, signals, events model

• Certainly, this a good set to work with.– However, there are many cases in which you

need to add architectural elements.

Page 17: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 17

Example

• Let’s work together to create a simple robustness analysis model for an eCommerce system– This will give us an idea of how this kind of

analysis can help create class or component models

– It’s a common example

Page 18: University of Utah SoCCS6961 - Lecture 61 Architecture – An Introduction CS 6961 - Lecture 6 Nathan Dykman

University of Utah SoC CS6961 - Lecture 6 18

Next Time

• We will discuss the concepts of architecture types, elements.

• We will also discuss the use of layers and how layers influence architecture– The use of tiered architectures to distribute

software complexity

• And…– What other concepts in architecture are you

interested in?