university of utah soccs6961 - lecture 61 architecture – an introduction cs 6961 - lecture 6...
TRANSCRIPT
University of Utah SoC CS6961 - Lecture 6 1
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.
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
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
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.
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)
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…)
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
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.
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.
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
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.
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
University of Utah SoC CS6961 - Lecture 6 14
Robustness Analysis Example
cd
Customer
Storefront Cart Manager
Profile Manager Customer Profile
Shopping Cart
Profile Page
University of Utah SoC CS6961 - Lecture 6 15
Robustness Analysis Example
«Entity»StoreItem
«Boundary»Storefront
Customer
«Control»InventoryManager
Warehouse
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.
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
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?