Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components. Who Does Design Software designer, software programmer or software architect. Why is Design Difficult 1. Nascent Body of Knowledge – relatively new field. 2. Confusion and Gurus – good designers must lead 3. Professional Jealously – use humility 4. Management Trap 5. Software Crisis Where is DESIGN in the SDLC System Initiation Requirements MockUp User Analysis Prototype Design Where is DESIGN in the SDLC Design Build Database Architecture Build Interface Architecture Build Distributed Architecture Build Technology Architecture Build Database Architecture Input: Entity Relationship Diagram/Class Diagram Process: Transform ERD into Database Architecture Output: LAYOUT for Relational Database Tables OR IMS Database Segment OR Codasyl Database Pointers OR Object Oriented Database Entities OR Flat File Components Build Database Architecture 1..1 0..M STUDENT 0..M ENROLL 1..1 SECTIONS SSN 9 digits {0..9} ReferenceNo 5 digits {0..9} SSN 9 digits {0..9} ReferenceNo 5 digits {0..9} SName 20 char {A..Z, a..z} ClassID 7 char {A..Z, 0..9} Major 5 digits {0..9} Bldg 5 char {A..Z, a..z} Build Interface Architecture Input: Screen Definition, Output Definition Process: Transform Screen Definition into Screen Design with Navigation (Identifying reusable I/O components) Transform Output Definition into Reports and other outputs Outputs: Screen Prototype and Output Prototype Build Interface Architecture SRF = SSN + {class information} + total hours Class information = Class ID + ref# + hours SSN: Reference No Class ID Name: Hours Total Hours: Build Distributed Architecture Input: Specification for inputs/outputs, Specification for Use Cases Specification for Domain Classes Specification for Database Process: Transform Specifications into Distributed Specifications Output: Distributed Inputs/Outputs Distributed Use Cases Distributed Databases Build Distributed Architecture System CRUD request CRUD response Create Reference Update Delete Build Distributed Architecture Java http request http response Web Browser Servlet JSP Web Server db request DB db response File Server Build Distributed Architecture Controller http request Use Case Servlet Classes Entity Classes JavaBean JSP Request Dispatcher routed request do CRUD(SQL request) db request DB db response update db resultset make a JSP Bean ( result set): instance putValue (JSP bean) forward to JSP http response Http Session Build Technology Architecture Inputs: Database Designs Input/Output Designs Distribution Design Process: Transform Designs into Good Design using Analysis Patterns Design Patterns, Refactoring, Component Building Framework Building Majority of course dedicated to Technology Architecture Design Build Database Architecture Build Interface Architecture Build Distributed Architecture Build Technology Architecture Technology Design Approaches 1. Zachman 2. Open Distributed Processing (ODP) 3. Domain Analysis 4. 4+1 View Model Technology Design Approaches 1. Zachman (30 viewpoints of design) • IBM Approach (using structured techniques) • Who what when why where how for software • plan own build design for construction • DOD C4ISR –Command, control, computers, communications, intelligent surveillance and reconnaissance Technology Design Approaches 2. Open Distributed Processing (ODP) 5 viewpoints • Enterprise viewpoint – domain objects • Informational viewpoint- object models • Computational viewpoint – components • Engineering viewpoint – distributed middleware DCOM (MS distributed object model) CORBA (common object request broker architecture) EJB (sun enterprise java beans) • Technology Viewpoint - design patterns Technology Design Approaches 3. Domain Analysis Building systems in a particular domain which utilize reuse and commonalities in the domain. Frameworks in particular domains Technology Design Approaches 4. 4+1 View Model • Use Case View • Logical View • Process View • Implementation (component) View • Deployment View DESIGN LEVELS Objects/ Classes Refactoring, Design Patterns Micro Architectures Frameworks 0..N Objects/Classes 0..N Components 0..N Frameworks Application Level 0..N Applications System Level Across the Enterprise Enterprise Level Commercial marker Internet Global Level Design Patterns Definition: Pattern: A representation of a proven solution. Problem Applicable Forces Solution Benefits Consequences Design Patterns Definition: Anti-Pattern: A solution pair not a problem solution pair Contextual Causes Anti Pattern Solution Symptoms and Consequences Refactored Solution Benefits Consequences