You are on page 1of 8

Introduction to Design Modeling

Design modeling in software engineering is a critical phase


where abstract concepts and requirements are translated
into concrete representations that serve as blueprints for
developing software systems. It involves creating visual
and conceptual models that depict the structure, behavior,
and interactions within a software system. These models
serve as a means of communication among stakeholders,
aid in understanding system complexities, and guide
developers in implementing the software effectively.
Key Concepts:
1. Abstraction: Design modeling involves abstracting away
unnecessary details while capturing essential aspects of the
software system. This allows stakeholders to focus on high-level
design decisions without getting bogged down in minutiae.
2. Representation: Models serve as representations of various
aspects of the software system, including its architecture,
components, interactions, and data flow. Different modeling
techniques are employed to capture different facets of the system.
3. Communication: Design models act as a common language
that facilitates communication among stakeholders, including
developers, designers, testers, and clients. They help ensure that
everyone involved in the project has a shared understanding of
the system's design and functionality.
4. Analysis and Validation: Design models are not only used
for communication but also for analysis and validation purposes.
They enable stakeholders to analyze the system's architecture,
identify potential design flaws or inconsistencies, and validate
whether the design meets the specified requirements.
5. Evolution: Design models evolve over the course of the
software development lifecycle. They are refined and updated as
requirements change, new insights are gained, and the system
architecture is further elaborated.
Common Design Modeling
Techniques:
1. UML (Unified Modeling Language): UML is a
standardized modeling language used in software engineering to
visually represent software systems. It includes various diagram
types such as class diagrams, sequence diagrams, activity
diagrams, and state diagrams.
2. Architectural Modeling: Architectural modeling focuses on
capturing the high-level structure of the software system,
including its components, relationships, and interactions.
Architectural diagrams like deployment diagrams, component
diagrams, and system context diagrams are commonly used for
this purpose.
3. Behavioral Modeling: Behavioral modeling involves
capturing the dynamic behavior of the software system, including
how it responds to external stimuli and how different components
interact with each other. Techniques such as sequence diagrams,
activity diagrams, and state diagrams are used to model behavior.
4. Data Modeling: Data modeling is concerned with designing
the data structures and relationships within the software system.
Techniques such as entity-relationship diagrams (ERDs) and class
diagrams are commonly used to model data entities and their
associations.
Principles of Design Modeling

Design model provides a variety of different views of the


system just like architecture's plan for a house.
Different methods like data driven, pattern driven or object
oriented methods are used for constructing the design model.
- And all these methods use a set of design principles (described
below) for designing a model. They are as below:

1. Designs must be traceable with its analysis model:


Analysis model represents the information, functions and
behaviour of the system. Design model translates all these
things into architecture: a set of sub systems that implement
major functions set of component level designs that are the
realization of analysis classes. This implies that design model
must be traceable to the analysis model.

2. Design the system architecture:


Software architecture is the base of the proposed system. It
depicts the interfaces, data structures, program control flow,
data flow and object behaviour of the system.
3. Designs focus on the data:
Data designs help in simplifying the program flow, data flow and makes
overall processing more efficient.

4. Both external and internal Interfaces are designed:


A well designed interface makes integration easier and also
easies the validation of the interfaces (components).

5. User interface should consider the user first:


The user interface is the main thing of any software. No matter
how good its internal functions are or how well designed its
architecture is but if the user interface is poor and end users
don't feel ease to handle the software then it leads to the
opinion that the software is 'bad'.
6. Component level design should exhibit functional
independence:
It means that the functions delivered by a component should
be cohesive i.e. it should focus on one and only one function or
sub function.

7. Components should be loosely coupled:


Coupling (Union or Combination) of different components into
one is usually done through a component interface or by
messaging.
These principles ensure that models are clear,
understandable, and relevant to stakeholders, while
also being accurate, complete, and consistent in
their representation of the real-world system or
process. Additionally, flexibility allows models to
adapt to changes, while verification and validation
ensure their correctness and usefulness.

By following these principles and continuously


refining and improving models through an iterative
process, designers can create models that provide
valuable insights, support decision-making, and
facilitate communication in various domains.
Ultimately, design modeling plays a crucial role in
advancing knowledge, solving problems, and driving
innovation across diverse fields.
Conclusion:
Design modeling is a critical aspect of various fields, including
engineering, business, and science, as it enables the
representation, analysis, and understanding of complex
systems, processes, and concepts. Through the principles of
clarity, simplicity, relevance, consistency, accuracy,
completeness, flexibility, verification and validation,
documentation, and iterative improvement, designers can
create effective and reliable models.

You might also like