Sw Software Design

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Sw Software Design - Presentation Transcript

    1. SW Software Design SW
    2. Design
      • Architecture
        • High Level Design
        • Module Decomposition
          • Functional/OO
        • Design Document/IEEE Std.1016 SDD
      • Detailed Design
      • Formal Methods
      • UML
        • Overview
        • Graphical Diagrams
    3. Architectural Design
      • Establishing basing structural framework of an application - decomposition ( subsystems, modules ), interface specification and communication .
        • subsystems - independent components/modules of an application
        • modules - provide one or more services to other modules
      • Output - Design Document/SDD
    4. Architecture Design Choice
      • Affects: performance, robustness, distributabilty and maintainability and development costs .
      • Application Constraints:
        • Performance
          • localize critical operations
        • Security
          • access control, layered structure
        • Safety
          • costly validation, single component for safety-related operations
        • Availability
          • include redundant components
        • Maintainability
          • self-contained components
    5. Structure Design
      • Repository Design
      • Client-Server Design
      • Layered Design
      • Control Models
        • Centralized control
          • Hierarchic Design
          • Centralized Design
        • Event Driven
          • Broadcast
          • Interrupt driven
    6. Repository Design Registrar Staff Professor Client Admin Client Student Database Professor Database Schedule Class Database Adv : - share large database - integrate tools w/ same data model Drbk : - performance - evolution difficult - forces the same policy on subsystems - difficult to distribute Student Client
    7. Client/Server Design Registrar Staff Student Database Professor Database Schedule Class Database Payroll HR Adv : - distributed - scalable Drbks : -naming/registry -diff to anticipate prbls w/ add a srvr -independent data mgmt/recovery Student Client Professor Client
    8. Layered Design Kernel Memory Mgmt I/O - Dev.Drv File Server - GUI Adv : - incremental dev. - portability
    9. Hierarchic Control Design Adv : - call/return - only for sequential tasks
    10. Centralized Design Adv : - parallel tasks - RTS System Controller Input Sensor Program Program/Data
    11. Broadcast Design network Client A Client B Client C Client D
    12. Interrupt Design IH 2 Proc IH 3 Proc IH 5 Proc IH 4 Proc IH 1 Proc Adv : - fast Drbks : -complex to implement/test/validate
    13. Design Entities
      • Procedural design
        • Procedures
      • Modular design
        • Modules
      • Object-oriented design
        • Classes
      • Multithreded, multiprocessors, multitasking
        • Threads, tasks, processes
    14. Compiler: Functional view Lexical analysis Syntax analysis Semantic analysis Build symbol table Code generation input program program symbols symbolic program syntax tree symbol table analyzed program Object code
    15. Compiler: Object oriented view Source program Syntax tree Symbol table Analyzed program Object code
    16. Software Design Process Requirements Specification Architectural Design Functional Specification Architecture Chart UI Design Module/Algorithm Design UI Specification Database Design Module/Algorithm Specification Database Specification Design Activities API, algorithms database
    17. Design Methods
      • Informal ad hoc
        • Formal requirements
        • Formal specifications
      • Structured
        • Models supported
          • data-flow model - data transfers
          • entity-relation model - basic entities and relations
          • structural model - components and interactions
          • object-oriented model - objects, relationships and interactions, classes/methods
    18. C++/Java C++ Classes, variables, functions class myclass { int myclassvariable; public: int myclass (int); ~myclass(); void function(int i) } Java Classes, variables, methods public class myclass { int myclassvariable; myclass (int){}; void function(int i){}; }
    19. Architecture Chart HTML GUI WML GUI SQL Database Server WAP Terminal Web Terminal JDBC HTML WML Template files ASCII
    20. Design Document Outline
      • Software program overview
        • broad terms overview, high level discussion of the design alternatives.
        • goals for the architecture, problem addressed.
      • Subprograms and organization chart
        • major clusters of functionality, communication and dependencies.
      • Change scenarios
        • most likely changes in the program and how each change will be addresses.
      • Reuse analysis and buy vs build decisions
        • arguments for what will be build, bought or reused.
    21. Approach to Standard Functional Areas
      • External software interfaces ( APIs )
      • User interface - prototype
      • Database organization - content, type of database
      • Data storage - non database data, file formats, major data structures
      • Key algorithms
      • Memory management
      • String storage - stiles, error messages
      • Concurrency/threads
      • Security - how the design will be affected
      • Localization
      • Networking - multi-user
      • Portability
      • Programming language
      • Error handling
    22. IEEE Design Description Overview Std. 1016
      • SDD: Standard Design Description
        • Introduction
        • Decomposition Description
        • Dependency Description
        • Interface Description
        • Detailed Design Description
    23. SDD Modular Design Methodology
      • Introduction
        • Purpose
        • Scope
        • Definitions and acronyms
        • References
        • Overview
      • Decomposition Description
        • Module Decomposition
          • Module 1 Description
          • Module 2 Description
        • Task Decomposition
          • Task 1 Description
          • Task 2 Description
    24. SDD Modular Design Methodology
      • 3. Dependency Description
        • Module dependency Description
        • Task Dependency Description
      • 4. Interface Description
        • Module Interface Description
          • Module 1 Interface Description
          • Module 2 Interface Description
        • Task Interface Description
          • Task 1 Interface Description
          • Task 2 Interface Description
    25. SDD Modular Design Methodology
      • 5. Detailed Design Description
        • Module Detailed Description
          • Module 1 Detailed Description
          • Module 2 Detailed Description
        • Task Detailed Description
          • Task 1 Detailed Description
          • Task 2 Detailed Description
    26. SDD Object Design Methodology
      • Introduction
        • Purpose
        • Scope
        • Definitions and acronyms
        • References
        • Overview
      • Decomposition Description
        • Class 1 Description
        • Class 2 Description
    27. SDD Object Design Methodology
      • 3. Dependency Description
        • Object Interaction Description
        • Aggregation Description
        • Inheritance Description
      • 4. Interface Description
        • Class 1 Interface Description
        • Class 2 Interface Description
      • 5. Detailed Design Description
        • Class 1 Detailed Description
        • Class 2 Detailed Description
    28. Detailed Design Formal Design Approach Formal Design Approach Very Formal Design Approach Informal Design Approach
      • for a subprogram/module/object
      • done by the developer
      Project difficulty Programmer experience HIGH LOW HIGH LOW
    29. Formal Methods
      • (theory, logic, algebra). Large % of the software developed use formal methods.
        • Formal specifications
          • Way of discovering specification errors and presenting the application specification in a unambiguous way -fewer errors.
        • Specification analysis and proof
        • Application verification/validation
    30. Critical Software Applications Development
      • Costs of failure are high -
        • Properties: safety, reliability, security .
        • Have high validation costs.
      • Examples:
          • Air traffic control system ( Hall 1996 )
          • Railway signaling systems ( Dehbonei and Mejia, 1995 )
          • Spacecraft systems ( Easterbrook 1998 )
          • Medical control systems ( Jackey 1997 )
          • Software tool specification ( Neil 1998 )
          • IBM’s CICS system ( Wordsworth 1991 )
    31. UML Overview
      • UML
        • Modeling language for specifying, visualizing, constructing and documenting software programs.
          • Model elements, Notation and Guidelines
      • Motivation
        • communication among project teams
        • tools for automation of software design/validation/production (same as component technology, visual programming)
      • SW Program
        • A set of nearly independent set of graphical diagrams
    32. UML Graphical Diagrams
      • Use Case Diagram
      • Static Structure Diagrams
        • Class/Object Diagram
      • Behavior Diagrams
        • Interaction Diagrams
          • Sequence diagram
        • Statechart Diagrams
        • Activity Diagrams
      • Implementation Diagrams
        • Component Diagram
        • Deployment Diagram
    33. Use Case Diagram
      • Display the user interaction with the application
      • Provide an external view of the application
      • Basis for testing
      • Use Case Relationships
        • Include - to avoid repetition of use cases
        • Generalization - describe a variation casually
        • Extend - declare extension points in the base case
    34. Use Case Diagram Check Grade Register Classes Database Query Authorize Student Input Grades Student Professor Registrar Staff Max Credits <<include>> <<include>> <<include>> <<include>> Include Generalization Use Case
    35. Class Diagram
      • Describes the type of objects and the static relationships ( associations and subtypes )
      • Class
        • attributes, multiplicity, generalization, role, constraints, operations
      • Associations
        • relations between instances of classes, with multiplicity (*, x, x..y | x, y  N)
        • navigability (unidirectional/bi-directional)
    36. Class Diagram Catalog Entry exam date : Date grade : String passed():Boolean Class subject : String professor : String gradedPNP():String 1 * * 1 If CatalogEntry.Student.isCurrent is “n” then Catalog.Entry.grade must be “N” Multiplicity: mandatory Association Generalization Class Constraint Job 0..1 Multiplicity: optional Attribute Operation Multiplicity: Many-valued Navigability Student name : String address : String ID : Long Integer isCurrent():String Graduate department: String isCurrent():String Undergraduate major: String isCurrent():String
    37. Object/Class Diagrams
      • Object diagram
        • objects allocated at a certain point in time
      • Classification -relation of an object to a type
        • Single classification - single type, subtypes
        • Multiple classification - several types
        • Static classification - separation between types/states
        • Dynamic classification - change type within the subtyping structure
    38. Object/Class Diagrams Employee name Male Female Developer QA/Test Design Job <<dynamic>> Sex {complete} Discriminator Manager Software: MGMT name = “Name” MGMT * 1 Software PM: MGMT name = “Name” QA Manager: MGMT name = “Name” Software PM: MGMT name = “Name” Engineer: Developer name = “Name” Engineer: Design name = “Name” Engineer: QA/Test name = “Name” Engineer: Developer name = “Name” Object Diagram showing instances of the above class diagram Class Diagram with Multiple and Dynamic Classification Sex: M/F Sex: M/F Sex: M/F Sex: M/F Sex: M/F Sex: M/F Sex: M/F Sex: M/F
    39. Statechart Diagram
      • All possible states that a particular object can get into
      • How the object state changes as a result of events that reach the object
      • Enhancements
        • Superstates
        • Concurrent Statechart Diagrams
    40. Statechart Diagram State C State B State A State D -describes the behavior of a model element such as an object or interaction Trigger condition A to B Trigger condition B to D Trigger condition C to A Trigger condition C to B Trigger condition B to C start self-transition transition state
    41. Sequence Diagram
      • Shows a number of example objects and the messages that are passed between these objects within the use case
      • Time on the vertical dimension and different objects on the horizontal dimension
      • Also valuable for concurrent processes
    42. Sequence Diagram Initiate request Init servlet new Gdocument(); Connect to the database servlet.setDomaine(); servletgetConnection(); HTTP request on the server TCP/IP port 80 Database call prepareStatement() executeQuerry() Response to the SQL request Database call return Read data getString(); Generate HTML output doc.p(); HTML return return(); Display WEB page Web Client Web Server Database
    43. Activity Diagram
      • A state machine of the procedure itself, the states represent the performance of actions or subactivities and the transitions are triggered by the completion of the actions or subactivities
        • Branch - conditional behavior, a single incoming transition and multiple outgoing transitions
        • Merge - multiple input transitions and one single output
        • Fork - parallel activities, one incoming transition and several outgoing transitions
        • Join - multiple input transitions and one single output
        • (*) Dynamic concurrency
        • Swimlanes - for clarity
      • Recommended for:
        • analyzing a use case, understanding workflow, describing a complicated sequential algorithm, dealing with multithreaded applications
    44. Activity Diagram Present lecture Prepare slides Turn on the projector Tune the projector [found projector] [no projector] Use blackboard Begin lecture Start Fork Join End
    45. Component Diagram
      • Structure of the code
      • Shows various components of the application and their dependencies
      • Component
        • a physical module of the code
      • Dependencies
        • how changes to one component may cause other components to change
    46. Component Diagram WML Interface Search Engine Database query
    47. Deployment Diagram
      • Structure of the run time program
      • Physical relationships among software and hardware components
      • Node - a computational unit - in most cases a hardware device
      • Connection - communication path over which nodes interact
    48. Deployment Diagram WAP Terminal WML Interface Server Search Engine Database query Component Communication Interface Application Connection Contained object(s) Node

    + jonathan077070jonathan077070, 2 years ago

    custom

    977 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 977
      • 977 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Tags