Your SlideShare is downloading. ×
  • Like
  • Save
Sw Software Design
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Sw Software Design

  • 2,391 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
2,391
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
2
Likes
6

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

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