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

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Software Architecture Design Instructor: Dr. Jerry Gao.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Unified Modeling (Part I) Overview of UML & Modeling
Design 15 February. Software Engineering: Elaborated Steps Concept (contract, intro on web site) Requirements (use cases, requirements) Architecture Design.
Figure 1.1 Interaction between applications and the operating system.
The new The new MONARC Simulation Framework Iosif Legrand  California Institute of Technology.
Logical Architecture and UML Package Diagrams
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Architectural Design.
Principles of Object Technology Module 1: Principles of Modeling.
CIS 321—IS Analysis & Design
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Rational Unified Process Fundamentals Module 4: Disciplines II.
Principles of Scalable HPC System Design March 6, 2012 Sue Kelly Sandia National Laboratories Abstract: Sandia National.
DISTRIBUTED DATABASES IN ADBMS Shilpa Seth
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
The Red Storm High Performance Computer March 19, 2008 Sue Kelly Sandia National Laboratories Abstract: Sandia National.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
April 2000Dr Milan Simic1 Network Operating Systems Windows NT.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Software Architectural Styles Andrew Midwinter, Mark Mullen, Kevin Wong, Matt Jones 1.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Chapter 6 Architectural Design.
Software Architecture “Good software architecture makes the rest of the project easy.” Steve McConnell, Survival Guide “There are two ways of constructing.
3 rd Party Software Gail Alverson August 5, 2005.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
PART II OPERATING SYSTEMS LECTURE 8 SO TAXONOMY Ştefan Stăncescu 1.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Processes Introduction to Operating Systems: Module 3.
Michael Schloh von Bennewitz 1. Oktober 2002 The Unified Modeling Language Overview of theory and practice of the OMG Unified Modeling.
ABone Architecture and Operation ABCd — ABone Control Daemon Server for remote EE management On-demand EE initiation and termination Automatic EE restart.
CSE 403, Spring 2008, Alverson Using UML to express Software Architecture.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
Mark E. Fuller Senior Principal Instructor Oracle University Oracle Corporation.
UML Diagrams for Caradon developers Daniel DG Moth Core Development Group, Research Student University of Brighton, MSc Object Oriented Software Technology.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Process Manager Specification Rusty Lusk 1/15/04.
CS223: Software Engineering Lecture 13: Software Architecture.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Towards a High Performance Extensible Grid Architecture Klaus Krauter Muthucumaru Maheswaran {krauter,
Introduction to Operating Systems Concepts
Computer System Structures
Computer System Structures
OO Methodology OO Architecture.
Part 3 Design What does design mean in different fields?
Introduction to Operating System (OS)
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2: System Structures
Lecture 09: Software Architecture (Part I)
Chapter 5 Architectural Design.
Presentation transcript:

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

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

CSE 403, Spring 2007, Alverson Readings o The architecture of Web applications, Grady Booch o Software Project Survival Guide, McConnell, p o [optional] Software Architecture, Garlan, 001/encyclopedia-dist.pdf These all get two thumbs up!!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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?

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 …

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?

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