31
Short (30 min) and dry Need to spice it up/add an exersize Maybe add the SG diagrams on elegant/not elegant designs CSE 403, Spring 2008, Alverson

Short (30 min) and dry Need to spice it up/add an exersize

  • Upload
    nan

  • View
    31

  • Download
    0

Embed Size (px)

DESCRIPTION

Short (30 min) and dry Need to spice it up/add an exersize Maybe add the SG diagrams on elegant/not elegant designs. Requirements Wrap Up. Feature list. feature list : a list of user visible aspects of your product that reflect value-add - PowerPoint PPT Presentation

Citation preview

Page 1: Short (30 min) and dry Need to spice it up/add an exersize

Short (30 min) and dry Need to spice it up/add an exersize Maybe add the SG diagrams on elegant/not

elegant designs

CSE 403, Spring 2008, Alverson

Page 2: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Requirements Wrap Up

Page 3: Short (30 min) and dry Need to spice it up/add an exersize

Feature list feature list: a list of user visible aspects of your

product that reflect value-add

Which of these aren’t features/well defined features?• Rich text/music editor• Global search• Ability to create/update/delete accounts• Beta release• Chat facility• Performance improvements

CSE 403, Spring 2008, Alverson

Page 4: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Pulling it all together

How much is enough?

You have to find a balance • comprehensible vs. detailed correctness• graphics vs. explicit wording and tables• short and timely vs. complete and late

Your balance may differ with each customer depending on your relationship and flexibility

Page 5: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Words of Wisdom 5

After you create a specification, go over it to:• Eliminate all requirements not absolutely necessary• Simplify those that are more complicated than

necessary• Substitute cheaper options when available• Move non essentials to future releases

Page 6: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Words of Wisdom 5’

Agile Principle – Simplicity is Essential

Page 7: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Software Architecture

“Good software architecture makes the rest of the project easy.” McConnell, Survival Guide

Page 8: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Outline

Part 1 – Basics of software architecture

Part 2 – Common architecture models

Part 3 – Real examples

Page 9: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Readings

• The architecture of Web applications,

Grady Booch• Software Project Survival Guide, McConnell,

p144-150

• [optional] Software Architecture, Garlan, http://www.cs.cmu.edu/afs/cs/project/able/ftp/encycSE2001/encyclopedia-dist.pdf

Summary 3 is due today!

Page 10: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

The basic problem

Requirements Requirements

Code Code

?????

How do you bridge the gapbetween requirementsand code?

Page 11: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

One answer

Requirements Requirements

Code Code

A miracle happens!

Page 12: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

A better answer

Requirements Requirements

Code Code

Software Architecture

Provide a high level framework to build and evolve the system

Page 13: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

What exactly is an architecture?At the core of most all definitions is the notion that

the architecture of a system describes its gross structure --

1. Main components and their behaviors

2. Connections between the components

-- using one or more views

An architecture bridges the gap between requirements and code

Page 14: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

An architecture helps with … System understanding - describes the interactions between

modules

Reuse – by defining the high level components, we can see if there is opportunity for reuse

Construction – breaks development down into work items; provides a path from req to code

Evolution - see reuse

Management – helps understand the work to do, and the work done; track progress

Communication – gives you a vocabulary; pictures say 1000 words

Page 15: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

An architecture helps with … System understanding

Reuse

Construction

Evolution

Management

Communication

level of abstraction, vocabulary, constraints

of components, identifies commonalities

organization for change, separates “what” from “how”

good milestone

partial blueprint

between stakeholders

Garlan

Page 16: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Back to “views”

A view illuminates a set of top-level design decisions• how the system is composed of interacting parts• where are the main pathways of interaction• key properties of the parts• information to allow high-level analysis and appraisal

Page 17: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Importance of views

Multiple views are needed to understand the different dimensions of systems

Functional Requirements

Performance (execution) Requirements

PackagingRequirements

Installation Requirements

Booch

Page 18: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Let’s make this more concrete

We‘ll start with diagrams of some familiar architectures

And then look at several views of the Cray RS system architecture

Page 19: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Web application (client-server)

Booch

Page 20: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Model View Controller

Separates the application object (model) from the way it is represented to the user (view) from the way in which the user controls it (controller).

UserUser

ModelModel

ControllerControllerViewView

Application

sees uses

updates manipulates

Page 21: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

MVP – Sequence diagram (UML)

Page 22: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Pipe and filter

Filter - computes on the data

Pipe – passes the data

,,,

Each stage of the pipeline acts independently of the others. Can you think of a system based on this architecture?

top | grep alverson | grep acrobat

Page 23: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

LWK Linux

Compute Service & IO

Service Partition (256 nodes)• Linux OS• Specialized Linux nodes

Login Nodes ~ 10

Dedicated Functional Nodes

IO Server Nodes ~ 190

Network Server Nodes ~ 50

FS Metadata Server Nodes ~ 4

Database Server Nodes ~ 2

Compute Partition (10K nodes)

Sandia LWK OS (Catamount)

RAID Controllers

Network

PCI-X

10 GigE

Fiber ChannelPCI-X

RS Software Architecture

Page 24: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Allocator PBS mom

Job Launch

Compiler PerfToolTotalView

Login Node

Showmesh

LinuxLibraries

User Space

Boot

Portals

Portals Driver IPPortals Driver Support RCA

RCA

RCA daemon

Parallel File Systems

Support Services & daemons

Com

mon

Operating System

3rd Party3rd Party CrayCraySandiaSandia Open SourceOpen

Source3rd Party

Cray Integration3rd Party

Cray Integration

User’s Environment

Accounting

DBPBS srv

Server Node

Dedicated Server Functions

IO & FS daemons

IO Node

IO & Network

Nodes only

FC Driver

10GigEDriver

Dedicated Network & External RAID IO

Specialized by N

ode F

unction

Runs on all Service and IO Nodes

RS: Service Nodes

Page 25: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

LWK on Compute Side

SeaStar

RS: Message Passing

Application

LWKPortalsModule

Firmware Lib

Firmware

Portals3.2

MPI Library

PortalsState

Application

SSNAL

Kernel Lib

MPI Library orSML Library

API

SeaStar

FirmwareDriverState

PortalsState

Messages over High Speed Network

User

Kernel

HW

Linux on Service Side

Page 26: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Job Launch

Login Node

Linux

UserApplication

Login &

Start App

Red Storm User ComputeNode

Allocator

Database Node

Request CPU’s

CPU Inventory Database

CPU list

Load Application

catamount/QK

Compute Node

PCT

UserApplication

Fan out application

Application Runs

IO NodeIO

daemons

IO NodeIO

daemons

IO NodeIO

daemons

IO R

equ

ests from

Co

mp

ute N

od

es

IO N

od

es Im

plem

ent R

equ

est

Application Exit & Cleanup

Return CPU’s

Return CPU’s

RS: Job Launch

Page 27: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

RS: System boot

Requirement 5.11 The full system must be able to be booted in less than 15 minutes after a clean shutdown.

Service Nodes 1. RAS broadcasts kernel to Service nodes2. Service nodes verify Unix image is valid

If not, first loads image from RASand others, load from peer

3. Service nodes are up and running

Compute Nodes1. RAS broadcasts kernel to cage controllers2. Cage controllers broadcast to other nodes3. Compute nodes are up and running

C CC C

C C

R R

I II I

LL

Golden unix kernelGolden unix imageGolden micro kernel

RAS

Page 28: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Let’s reflect … Did you find the multiple views of the RS system

helpful in understanding its operation?

Would one view have sufficed?

Page 29: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Let’s discuss… What does it mean for an architecture to have

conceptual integrity?

What makes a software architecture different from software design? Is there a difference?

Architecture – spans the systemDesign – spans a component of the system

… shades of gray …

Page 30: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Another question … Could you start coding from any of these

diagrams? If you had the Model component and your partner had the View, could you both go off and develop, returning in a month to integrate?

What information would a design view need to allow you to get started, somewhat independently?

Page 31: Short (30 min) and dry Need to spice it up/add an exersize

CSE 403, Spring 2008, Alverson

Coming soon to theatres near you UML

• Unified Modeling Language or Union of all Modeling Languages

Language to describe the architecture/design of a system

We’ll look at a subset:• Class diagrams• Sequence diagrams