Design and Implementation Phase Flashcards

1
Q

Design and Implementation:

Basic Description

A

The phase at which an executable software system is developed

Consists of several interleaved activities.

Includes Architectural Design and Modeling of system components.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Design and Implementation:

Process Stages/Activities

A
  • Define the System Context and Use Cases
    • From SRS
  • Architectural Design
  • Identify principle system objects
  • Componente Design
    • Develop Design Models
  • Interface Design
    • Specify Object Interfaces
  • Database Design
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Defining System Context:

Basics

A
  • Create a Context Diagram
  • Understand the relationship between the software and it’s external environment/dependencies
  • Define/Diagram Use Cases
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Architectural Design Step

A
  • Once System Context is understood, use this information to design the System Architecture
  • Identify major Components and their Interactions
  • Organize components into a well defined Architectural Pattern
    • MVC, Layered, Client-Server, etc
  • The system may be composed of independent subsystems with varying architecture
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Object Class Identification step

A

Using the architecture, identify the different object classes that will be needed.

  • This can be a difficult process
  • It should be approached iteratively, as you are unlikely to get it right immediately
  • Use a “grammatical approach”, based on natural language description
  • Base identification on tangible things, like hardware
  • There is no “magic” formula, depends on:
    • skill
    • experience
    • domain knowledge of system designs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Developing Design Models

A
  • Design Models show the objects, object classes and relationships between entities
  • Two Categories:
    • Static Models
    • Dynamic Models
  • Specific Models
    • Sequence Models
    • State Machine Models
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Design Models:

Two Categories

A

Static Models

Describe the static structure of the system in terms of object classes and relationships

Dynamic Models

Describe dynamic interactions between objects

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Design Models:

Sequence Model

A

Shows the Sequence of object interactions

  • Objects are arranged horizontally across top
  • Time is represented vertically (top to bottom)
  • Interactions indicated with stylized arrows
    • Calls are solid
    • Callbacks/Responses are dashed
  • Each object has a Lifeline represented by a vertical dashed line
  • The Controlling Object is represented by a thin rectangle along the object’s lifeline while it is in control
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Design Models:

State Diagram

A

Used to show how objects respond to different inputs, service requests, etc,

as well as the State Transitions triggered by these requests.

  • Useful, high-level models of a system or object’s runtime behavior
  • Not usually required for all objects in a system
    • Diagramming simple objects adds unnecessary detail to design
  • States are represented with Ovals, Transitions with labeled arrows, black circle indicates starting state
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Interface Specification step

A

Specifies the interfaces for all the important objects.

  • Necessary so that objects and other components can be designed in parallel
    • Need to know HOW an object will be used, even before it is implemented
  • Objects may have several interfaces:
    • Each represents different viewpoints on the methods provided
  • The interface defines method names, parameters and return types
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Definition:

Software Design

A

A Software Design is a description of the:

  • Structure of the software to be implemented
  • Data Models and Structures used by the system
  • Interfaces between system components
  • Algorithms used (sometimes)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Three Types of

Design Input

A

Platform Information

Requirements Specification

Data Description

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Four Design Outputs

A

System Architecture

Database Specification

Interface Specification

Component Specification

How well did you know this?
1
Not at all
2
3
4
5
Perfectly