Thursday, July 6, 2017

Design Model | Dimensions of the Design Model | Data Design Elements | Architectural Design Elements | Interface Design Elements | Component-Level Design Elements | Deployment-Level Design Elements

Introduction of Design Model

  • The design model can be viewed in two different dimensions.
    • (Horizontally) The process dimension
      • It indicates the evolution of the parts of the design model as each design task is executed.
    • (Vertically) The abstraction dimension 
      • It  represents the level of detail as each element of the analysis model is transformed into the design model and then iteratively refined. 
  • The elements of the design model use many of the same UML diagrams that were used in the analysis model.
  • The difference is that these diagrams are
    • Refined and elaborated as part of design; 
    • More implementation-specific detail is provided, 
    • Architectural structure and style, components that reside within the architecture, 
    • Interfaces between the components and with the outside world are all emphasized.

Design Model Introduction


Design Model Introduction

Dimensions of the Design Model

Dimensions of the Design Model

Data Design Elements

  • Customer’s/ User’s View:
    • Data Architecting (Creates a model of data that is represented at a high level of abstraction). (Build Architecture of Data) 
  • Program Component Level: The design of Data structure & algorithms. 
  • Application Level: Translate Data Model into a database. 
  • Business Level: Data warehouse(Reporting & Analysis of DB) & Data mining(Analysis). 
  • At last it means creation of Data Dictionary.

Architectural Design Elements

  • Provides an overall view of the software product(Similar like Floor Plan of house) 
  • The architectural model [Sha96] is derived from three sources:
    • (1) Information about the application domain for the software to be built; 
    • (2) Specific requirements model elements such as data flow diagrams or analysis classes, their relationships and collaborations for the problem at hand; 
    • (3) The availability of architectural styles (Chapter 9) and patterns
  • Difference: An architectural style is a conceptual way of how the system will be created / will work. 
  • An architectural pattern describes a solution for implementing a style at the level of subsystems or modules and their relationships.

Interface Design Elements

  • The interface design elements for software represent information flows into and out of the system and how it is communicated among the components defined as part of the architecture. 
  • For example : A set of detailed drawings (and specifications) for the doors, windows, and external utilities of a house. These drawings describe the size and shape of doors and windows, the manner in which they operate, the way in which utility connections (e.g., water, electrical, gas, telephone) come into the house and are distributed among the rooms depicted in the floor plan.
  • There are three important elements of interface design: 
    • (1) The user interface (UI); 
    • (2) External interfaces to other systems, devices, networks, or other producers or consumers of information; 
    • (3) Internal interfaces between various design components. 
  • UI design (increasingly called usability design) is a major software engineering action
  • Usability design incorporates 
    • Visual elements (e.g., layout, color, graphics, interaction mechanisms), 
    • Ergonomic elements (e.g., information layout and placement, metaphors, UI navigation), 
    • Technical elements (e.g., UI patterns, reusable components). 
    • In general, the UI is a unique subsystem within the overall application architecture.
Interface Design Elements



  • The design of external interfaces requires perfect information about the entity to which information is sent or received. 
  • The design of external interfaces should incorporate error checking and (when necessary) appropriate security features 
  • For example, the SafeHome security function makes use of a control panel that allows a homeowner to control certain aspects of the security function. 
  • In an advanced version of the system, control panel functions may be implemented via a wireless PDA or mobile phone. 
  • The ControlPanel class (in Figure ) provides the behavior associated with a keypad, and therefore, it must implement the operations readKeyStroke () and decodeKey (). 
  • If these operations are to be provided to other classes (in this case, WirelessPDA and MobilePhone), it is useful to define an interface as shown in the figure. 
  • The interface, named KeyPad, is shown as an <<interface>> stereotype or as a small, labeled circle connected to the class with a line. The interface is defined with no attributes and the set of operations that are necessary to achieve the behavior of a keypad.

Component-Level Design Elements

  • The component-level design for software fully describes the internal detail of each software component. 
  • Component elements (detailed drawing of each room, wiring, place of switches…) 
    • Internal details of each software component
      • Data structures, 
      • algorithmic details, 
      • interface to access component operation (behavior).

Deployment-Level Design Elements



  • Deployment-level design elements indicate how software functionality and subsystems will be allocated within the physical computing environment that will support the software. 
  • For example, the elements of the SafeHome product are configured to operate within three primary computing environments
    • A home-based PC, 
    • The SafeHome control panel, 
    • Server housed at CPI Corp. (providing Internet-based access to the system).
Deployment-Level Design Elements
  • The diagram shown in Figure is in descriptor form. 
  • This means that the deployment diagram shows the computing environment but does not explicitly indicate configuration details. 
  • For example, the “personal computer” is not further identified. It could be a Mac or a Windows-based PC, a Sun workstation, or a Linux-box.
  • These details are provided when the deployment diagram is revisited in instance form during . 
  • Each instance of the deployment (a specific, named hardware configuration) is identified…

1 comment:

  1. I like your post there is a lot of information about software testing, which i would like to learn, thank you for the great guide. Very useful post and I think it is rather easy to see from the other comments as well that this post is well written and useful. I bookmarked this blog a while ago because of the useful content and I am never being disappointed. Keep up the good work.. Read more about QA Services

    ReplyDelete