What is Design Design is the process of transforming requirements specifications for software into...

Post on 19-Dec-2015

226 views 1 download

Tags:

Transcript of What is Design Design is the process of transforming requirements specifications for software into...

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