1 / 31

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. Requirements Wrap Up. Feature list. feature list : a list of user visible aspects of your product that reflect value-add

nan
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Requirements Wrap Up

  3. 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

  4. 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

  5. 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

  6. Words of Wisdom 5’ Agile Principle – Simplicity is Essential

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

  8. Outline • Part 1 – Basics of software architecture • Part 2 – Common architecture models • Part 3 – Real examples

  9. 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!

  10. The basic problem Requirements How do you bridge the gap between requirements and code? ????? Code

  11. One answer Requirements A miracle happens! Code

  12. A better answer Requirements Provide a high level framework to build and evolve the system Software Architecture Code

  13. 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 -- • Main components and their behaviors • Connections between the components -- using one or more views An architecture bridges the gap between requirements and code

  14. 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

  15. An architecture helps with … • System understanding • Reuse • Construction • Evolution • Management • Communication level of abstraction, vocabulary, constraints of components, identifies commonalities partial blueprint organization for change, separates “what” from “how” good milestone between stakeholders Garlan

  16. Back to “views” Aview 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

  17. Importance of views Multiple views are needed to understand the different dimensions of systems Packaging Requirements Functional Requirements Performance (execution) Requirements Installation Requirements Booch

  18. 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

  19. Web application (client-server) Booch

  20. Model View Controller User sees uses 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). View Controller updates manipulates Model Application

  21. MVP – Sequence diagram (UML)

  22. Pipe and filter Pipe – passes the data top | grep alverson | grep acrobat ,,, Filter - computes on the data Each stage of the pipeline acts independently of the others. Can you think of a system based on this architecture?

  23. RS Software Architecture PCI-X 10 GigE Network PCI-X Fiber Channel RAID Controllers 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) Compute Service & IO LWK Linux

  24. RS: Service Nodes Dedicated Server Functions Dedicated Network & External RAID IO Server Node Login Node IO Node TotalView Compiler PerfTool Accounting Job Launch Showmesh PBS srv DB IO & FS daemons Allocator PBS mom RCA daemon RCA IO & Network Nodes only 10GigE Driver FC Driver User’s Environment Specialized by Node Function User Space Support Services & daemons Linux Common Libraries Portals Operating System Boot Parallel File Systems Portals Driver IP Portals Driver Support RCA Sandia 3rd Party 3rd Party Cray Integration Cray Open Source Runs on all Service and IO Nodes

  25. RS: Message Passing Application Application User MPI Library MPI Library or SML Library Firmware Lib API Portals 3.2 Portals State Kernel Lib Kernel LWK Portals Module SSNAL SeaStar SeaStar Portals State Driver State HW Firmware Firmware Messages over High Speed Network Linux on Service Side LWK on Compute Side

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

  27. RS: System boot C C C C I I I I L C L C Requirement 5.11 The full system must be able to be booted in less than 15 minutes after a clean shutdown. R R 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 • 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 RAS Golden unix kernel Golden unix image Golden micro kernel

  28. Let’s reflect … • Did you find the multiple views of the RS system helpful in understanding its operation? • Would one view have sufficed?

  29. 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 system Design – spans a component of the system … shades of gray …

  30. 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?

  31. 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

More Related