Download Introduction to Design

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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
Related documents