Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 403, Spring 2007, Alverson Software Architecture “Good software architecture makes the rest of the project easy.” McConnell, Survival Guide.

Similar presentations


Presentation on theme: "CSE 403, Spring 2007, Alverson Software Architecture “Good software architecture makes the rest of the project easy.” McConnell, Survival Guide."— Presentation transcript:

1 CSE 403, Spring 2007, Alverson Software Architecture “Good software architecture makes the rest of the project easy.” McConnell, Survival Guide

2 CSE 403, Spring 2007, Alverson Outline Part 1 – Basics of software architecture Part 2 – Common architecture models Part 3 – Real examples

3 CSE 403, Spring 2007, Alverson Readings o The architecture of Web applications, Grady Booch o Software Project Survival Guide, McConnell, p144-150 o [optional] Software Architecture, Garlan, http://www.cs.cmu.edu/afs/cs/project/able/ftp/encycSE2 001/encyclopedia-dist.pdf These all get two thumbs up!!

4 CSE 403, Spring 2007, Alverson The basic problem Requirements Code ????? How do you bridge the gap between requirements and code?

5 CSE 403, Spring 2007, Alverson One answer Requirements Code A miracle happens! What lifecycle model does this remind you of?

6 CSE 403, Spring 2007, Alverson A better answer Requirements Code Software Architecture Provide a high level framework to build and evolve the system

7 CSE 403, Spring 2007, 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 -- o Main components and their behaviors o Connections between the components -- using one or more views An architecture bridges the gap between requirements and code

8 CSE 403, Spring 2007, Alverson An architecture helps with … System understanding - thinking about simplicity, identify the major components and understand what you need them to do Reuse – identify opportunities as you look at the big picture Construction – aim for simplicity to manage development, provides a blueprint to work from Evolution - helps identify things likely to change Management – milestone in the lifecycle Communication – way of sharing info with your stakeholders Garlan

9 CSE 403, Spring 2007, 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

10 CSE 403, Spring 2007, 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

11 CSE 403, Spring 2007, Alverson Importance of views Multiple views are needed to understand the different dimensions of systems Functional Requirements Performance (execution) Requirements Release requirements (including BOM) Installation Requirements Booch

12 CSE 403, Spring 2007, 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

13 CSE 403, Spring 2007, Alverson Web application (client-server) Booch

14 CSE 403, Spring 2007, 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). User Model Controller View Application seesuses updatesmanipulates

15 CSE 403, Spring 2007, Alverson MVP – Sequence diagram (UML)

16 CSE 403, Spring 2007, 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

17 CSE 403, Spring 2007, 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 Channel PCI-X RS Software Architecture

18 CSE 403, Spring 2007, Alverson AllocatorPBS mom Job Launch CompilerPerfToolTotalView Login Node Showmesh Linux Libraries User Space Boot Portals Portals DriverIP Portals Driver SupportRCA RCA daemon Parallel File Systems Support Services & daemons Common Operating System 3 rd Party Cray Sandia Open Source Open Source 3 rd Party Cray Integration 3 rd 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 10GigE Driver Dedicated Network & External RAID IO Specialized by Node Function Runs on all Service and IO Nodes RS: Service Nodes

19 CSE 403, Spring 2007, Alverson LWK on Compute Side SeaStar RS: Message Passing Application LWK Portals Module Firmware Lib Firmware Portals 3.2 MPI Library Portals State Application SSNAL Kernel Lib MPI Library or SML Library API SeaStar Firmware Driver State Portals State Messages over High Speed Network User Kernel HW Linux on Service Side

20 CSE 403, Spring 2007, Alverson Job Launch Login Node Linux User Application Login & Start App Red Storm User Compute Node Allocator Database Node Request CPU’s CPU Inventory Database CPU list Load Application catamount/QK Compute Node PCT User Application Fan out application Application Runs IO Node IO daemons IO Node IO daemons IO Node IO daemons IO Requests from Compute Nodes IO Nodes Implement Request Application Exit & Cleanup Return CPU’s RS: Job Launch

21 CSE 403, Spring 2007, 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 nodes 2. Service nodes verify Unix image is valid If not, first loads image from RAS and others, load from peer 3.Service nodes are up and running Compute Nodes 1. RAS broadcasts kernel to cage controllers 2. Cage controllers broadcast to other nodes 3. Compute nodes are up and running CCCC CC RR IIII LL Golden unix kernel Golden unix image Golden micro kernel RAS

22 CSE 403, Spring 2007, Alverson Let’s reflect … Did you find the multiple views of the RS system helpful in understanding its operation? Would one view have sufficed?

23 CSE 403, Spring 2007, Alverson Let’s discuss… What makes a software architecture different from software design? Is there a difference? o Web application o Red Storm OS o Mailman package o Database schema o Linked list o Factory pattern o Iterator Architecture – spans the system Design – spans a component of the system … shades of gray …

24 CSE 403, Spring 2007, 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?

25 CSE 403, Spring 2007, Alverson Coming soon to theatres near you UML o Unified Modeling Language or Union of all Modeling Languages Language to describe the architecture/design of a system We’ll look at a subset: o Class diagrams o Sequence diagrams


Download ppt "CSE 403, Spring 2007, Alverson Software Architecture “Good software architecture makes the rest of the project easy.” McConnell, Survival Guide."

Similar presentations


Ads by Google