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

23
What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    226
  • download

    1

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

Page 1: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

What is Design

Design is the process of transforming requirements specifications for software into an architectural structure of software components.

Page 2: 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.

Page 3: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

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

Page 4: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

Where is DESIGN in the SDLC

SystemInitiation

RequirementsAnalysis

MockUp UserPrototype

Design

Page 5: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

Where is DESIGN in the SDLC

Design

Build Database

Architecture

Build Interface

Architecture

Build Distributed

Architecture

Build TechnologyArchitecture

Page 6: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

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

Page 7: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software 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}

Page 8: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

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

Page 9: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

Build Interface

Architecture

SRF = SSN + {class information} + total hours

Class information = Class ID + ref# + hours

SSN: Name:

Total Hours:

Reference No Class ID Hours

Page 10: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

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

Page 11: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

Build Distributed

Architecture

System

CRUD requestCreate

Reference

Update

Delete

CRUD response

Page 12: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

Build Distributed

Architecture

Web Browser Web Server

http request

http responseDB

db request

db response

File Server

Java

Servlet

JSP

Page 13: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

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

                        

Page 14: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

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

Page 15: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

Design

Build Database

Architecture

Build Interface

Architecture

Build Distributed

Architecture

Build TechnologyArchitecture

Majority of course dedicated to Technology Architecture

Page 16: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

Technology Design Approaches

1. Zachman

2. Open Distributed Processing (ODP)

3. Domain Analysis

4. 4+1 View Model

Page 17: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

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

Page 18: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

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

Page 19: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

3. Domain Analysis

Building systems in a particular domain which utilize reuse and commonalities in the domain.

Frameworks in particular domains

Technology Design Approaches

Page 20: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

4. 4+1 View Model

• Use Case View

• Logical View

• Process View

• Implementation (component) View

• Deployment View

Technology Design Approaches

Page 21: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

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

Page 22: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

Design Patterns

Definition:

Pattern: A representation of a proven solution.

Problem

Applicable Forces

Solution

ConsequencesBenefits

Page 23: What is Design Design is the process of transforming requirements specifications for software into an architectural structure of software components.

Design Patterns

Definition:

Anti-Pattern: A solution pair not a problem solution pair

Anti Pattern Solution

Contextual Causes

Refactored Solution

ConsequencesBenefits

Symptoms and Consequences