logo

Software Design Concepts in Software Engineering

Dec, 13 2020, 12:01 pm [IST]
Software Design Concepts in Software Engineering

Software Design

A software design is an essential engineering description of some software product that is to be established. A design can be determined to the customer's requirements and can be assessed for quality against predefined patterns.

Design specification models

Data design - designed by transforming the analysis data model (data dictionary and ERD) into data structures needed to execute the software.

Architectural design - describes the relationships among the significant structural elements of the software, it is obtained from the system specification, the analysis model, and the subsystem interactions defined in the analysis model (DFD)

Interface design - it defines how the software elements interact with each other, with other systems, and with human users, the data flow and control flow diagrams give much the essential data.

Component level design - generated by transforming the structural elements represented by the software architecture interprocedural descriptions of software components using data obtained from the PSPEC, CSPEC, and STD.

The design process and design quality

Three features that serve as a guide for the evaluation of a good design (goal of a design process)

  • The design must achieve all of the explicit requirements contained in the analysis pattern, and it must include all of the implicit specifications wanted by the customer.
  • The design must be a simple, readable guide for those who create code and for those test and subsequently supported software.
  • The design should present a complete picture of the software, addressing the data, and behavioral domains from an implementation aspect.

Quality guidelines

Characteristics of a good design

  • A design should present an architectural structure that,
  •     a. It has been designed using recognizable Design patterns,
  •     b. It is formed of components that present good design characteristics and
  •     c. It can be executed in a revolutionary fashion, thereby facilitating implementation and testing.
  • An object should be modular, i.e., the software should be reasonably divided into elements that offer particular functions and subfunctions.
  • A design should contain a distinct representation of data, Architecture, interfaces, and components.
  • A design should guide to data structures that are suitable for the objects to be executed and are formed from recognizable Data models.
  • A design should lead to components that exhibit independent functional characteristics.
  • A design should lead to interfaces that decrease the complexity of links between modules and external conditions.
  • A should be derived using a repeatable method that is driven by information obtained during software requirements analysis.
  • A design should be represented using a quotation that effectively communicates its meaning.

design concept Fundamentals

  • Abstraction - data, procedure, control.
  • Architecture - the overall construction of the software.
  • Patterns - It carries the essence of proven design solutions.
  • Modularity - compartmentalization of data and function.
  • Hiding - It controls interfaces.
  • Functional independence - single-minded function and low coupling.
  • Refinement - Refinement is an elaboration of detail for the abstractions.
  • Refactoring - It a reorganization technique that simplifies the design.

Abstraction

Resolving a problem without being concerned about each element of lower-level specifications. At the most important level of consideration, a solution is stated in broad using the language of the problem conditions. At a lower level of thinking, a more procedural orientation is taken.

There are three different abstractions:

Procedural abstraction - named sequence of events, (e.g open for a door. Open implies a long sequence of procedural steps, like walk to the door, reach out, turn the knob and pull door, step away from moving door, etc.,)

Data abstraction - It named set of data objects (e,g., door contains a set of attributes that specify door, like door type, swing direction, opening tool, weight, dimensions)

Control abstraction - implies a program control mechanism without specifying internal details.

Modularity

Software Architecture and design patterns include modularity, that is, the software is broken into separately named and addressable components, sometimes called modules, that are combined to meet problem requirements

Modular design method evaluation criteria

Modular decomposability - provides a systematic means for breaking the problem into subproblems.

Modular composability - encourages reuse of existing modules in new methods

Modular understandability - module can be assumed as a standalone Organization.

Modular continuity - side effects due to module changes minimized

modular protection - side effects due to processing errors minimized


Share this: FACEBOOK TWITTER WHATSAPP


YOU MAY LIKE

MOST VIEWED

Details About Software Quality Assurance

Dec, 16 2020, 12:02 pm [IST]
Details About Software Quality Assurance

SOFTWARE ENGINEERING

Software quality assurance Software quality is described as conformance to explicitly state functional and performance requirements, explicitly documented standards and implicit features that are anticipated of all professionally developer software ... Read More


Details About Tunnelling and Encapsulation in Mobile IP

Dec, 10 2020, 02:19 pm [IST]
Details About Tunnelling and Encapsulation in Mobile IP

MOBILE COMMUNICATIONS

A tunnel establishes a virtual pipe for data packets between a tunnel entry and a tunnel endpoint. Packets entering a tunnel are forwarded inside the tunnel leave the tunnel unchanged. Tunneling, that is, sending a packet through a tunnel, is achieved by using encapsulation ... Read More


Details About Software Architecture

Dec, 06 2020, 12:17 pm [IST]
Details About Software Architecture

SOFTWARE ENGINEERING

The overall structure of the software components and how the success provides a conceptual integrated file system. In other words, architecture is the hierarchical structure of program components, how these components interact, and the structure of data that are used by the components ... Read More


Details About Real-Time And Distributed System Design

Dec, 04 2020, 01:28 pm [IST]
Details About Real-Time And Distributed System Design

SOFTWARE ENGINEERING

Real-time and distributed system design The real-time system is a software system the correct functioning of the system depends on the results produced by the system the time at which these results are produced ... Read More


Explanation About Software Project Lifecycle Model

Dec, 02 2020, 12:39 pm [IST]
Explanation About Software Project Lifecycle Model

SOFTWARE ENGINEERING

Waterfall Model The waterfall model also called classic life cycle requirements is well defined and stable. It suggests a systematic, sequential approach to software development. It begins with customer specification of requirements and processes through planning, modeling, instruction, and deployment ... Read More


Software Design Concepts in Software Engineering

Dec, 13 2020, 12:01 pm [IST]
Software Design Concepts in Software Engineering

SOFTWARE ENGINEERING

Software Design A software design is an essential engineering description of some software product that is to be established. A design can be determined to the customer's requirements and can be assessed for quality against predefined patterns ... Read More


Go to Top

FOLLOW US: FACEBOOK

About Us | Contact Us | Disclaimer | Privacy Policy | Sitemap | Terms and Conditions

Copyright © 2021 TeluguAsami. All rights reserved.