View
226
Download
1
Category
Tags:
Preview:
Citation preview
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
SystemInitiation
RequirementsAnalysis
MockUp UserPrototype
Design
Where is DESIGN in the SDLC
Design
Build Database
Architecture
Build Interface
Architecture
Build Distributed
Architecture
Build TechnologyArchitecture
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
STUDENT ENROLL SECTIONS1..1 0..M 1..10..M
SSN 9 digits {0..9}
SName 20 char {A..Z, a..z}
Major 5 digits {0..9}
ReferenceNo 5 digits {0..9}
ClassID 7 char {A..Z, 0..9}
Bldg 5 char {A..Z, a..z}
SSN 9 digits {0..9}
ReferenceNo 5 digits {0..9}
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: Name:
Total Hours:
Reference No Class ID Hours
Build Distributed
Architecture
Input: Specification for inputs/outputs, Specification for Use CasesSpecification for Domain ClassesSpecification for Database
Process: Transform Specifications into Distributed Specifications
Output: Distributed Inputs/Outputs Distributed Use Cases Distributed Databases
Build Distributed
Architecture
System
CRUD requestCreate
Reference
Update
Delete
CRUD response
Build Distributed
Architecture
Web Browser Web Server
http request
http responseDB
db request
db response
File Server
Java
Servlet
JSP
Build Distributed
Architecture
Controller
http response
http request routed request
Use CaseServletClasses
EntityClasses
do CRUD(SQL request)
JavaBean
DBdb request
db responseupdate db resultset
JSP Request Dispatcher
putValue (JSP bean)
HttpSession
make a JSP Bean ( result set): instance
forward to JSP
Build TechnologyArchitecture
Inputs: Database Designs Input/Output Designs Distribution Design
Process: Transform Designs into Good Design using Analysis Patterns
Design Patterns, Refactoring, Component BuildingFramework Building
Design
Build Database
Architecture
Build Interface
Architecture
Build Distributed
Architecture
Build TechnologyArchitecture
Majority of course dedicated to Technology Architecture
Technology Design Approaches
1. Zachman
2. Open Distributed Processing (ODP)
3. Domain Analysis
4. 4+1 View Model
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 middlewareDCOM (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
Technology Design Approaches
Global Level
Enterprise Level
System Level
Application Level
Frameworks
MicroArchitectures
Objects/Classes
DESIGN LEVELS
Commercial marker - Internet
Across the Enterprise
0..N Applications
0..N Frameworks
0..N Components
0..N Objects/Classes
Refactoring, Design Patterns
Design Patterns
Definition:
Pattern: A representation of a proven solution.
Problem
Applicable Forces
Solution
ConsequencesBenefits
Design Patterns
Definition:
Anti-Pattern: A solution pair not a problem solution pair
Anti Pattern Solution
Contextual Causes
Refactored Solution
ConsequencesBenefits
Symptoms and Consequences
Recommended