MODUL 3 Design Engineering
MODUL 3 Design Engineering
Abstraction
An abstraction is a tool that enables a designer to consider a component at an abstract
level without bothering about the internal details of the implementation. Abstraction
can be used for existing element as well as the component being designed.
Functional Abstraction
i. A module is specified by the method it performs.
ii. The details of the algorithm to accomplish the functions are not visible to the
user of the function.
Functional abstraction forms the basis for Function oriented design approaches.
Data Abstraction
Details of the data elements are not visible to the users of data. Data Abstraction forms
the basis for Object Oriented design approaches.
Information hiding:
The fundamental of Information hiding suggests that modules can be characterized
by the design decisions that protect from the others, i.e., In other words, modules
should be specified that data include within a module is inaccessible to other modules
that do not need for such information.
The use of information hiding as design criteria for modular system provides the most
significant benefits when modifications are required during testing's and later during
software maintenance. This is because as most data and procedures are hidden from
other parts of the software, inadvertent errors introduced during modifications are less
likely to propagate to different locations within the software.
Functional Independence:
Functional independence is achieved by developing functions that perform only one
kind of task and do not excessively interact with other modules. Independence is
important because it makes implementation more accessible and faster. The
independent modules are easier to maintain, test, and reduce error propagation and
(Z魔王)
7. Degrade gently –
The software should be designed in such a way that it degrades
gracefully which means it should work properly even if an error occurs
during the execution.
8. Assessed or quality –
The design should be assessed or evaluated for the quality meaning that
during the evaluation, the quality of the design needs to be checked and
focused on.
9. Review to discover errors –
The design should be reviewed which means that the overall evaluation
should be done to check if there is any error present or if it can be
minimized.
10.Design is not coding and coding is not design –
Design means describing the logic of the program to solve any problem
and coding is a type of language that is used for the implementation of a
design.
4.Architectural Design:
Architectural design is a critical component of software engineering project
management (SEPM). It involves making decisions about the overall structure
and organization of a software system, including the different components and
how they interact with each other. There are several key concepts and
techniques involved in architectural design, including design decisions, views,
patterns, and application architectures.
Architectural Patterns/styles:
• Common archi. Styles-
1. Data-centered architectures
2. Data-flow architectures
3. Call and return architectures
4. Layered system architectures
5. Object-oriented architectures
(Z魔王)
1.Data-centered architectures
• A data store -center of this architecture & is accessed frequently by
other components that update, add, delete, or otherwise modify data
within the store.
• Client software accesses a central repository.
Advantages-
• Data repository not dependant on clients.
• Clients work independently.
• Adding new clients-easy.
• Modification-easy.
2.Data-flow architectures
– accepts some input & transforms it into some output by applying a sequence
of transformations.
Pipe & Filter pattern-
Each component filter Transforms data & sends to next filter for
additional processing through a connector-pipe(channel).
Batch sequential-
This pattern accepts a batch of data and then applies a series of sequential
components (filters) to transform it.
(Z魔王)
Adv-
• Supports maintainability, reusability, modifiability.
• Concurrent execution supported.
Architectural views:
Used to describe system from viewpoints of diff. stakeholders like end users,
developers, sys. Engineer & project manager.
4 +1 view model-
1. Logical View- functionality of sys. Provided to users.
UML diagrams used to describe this view- Class dia., state diagram.
2. Process View- describes sys. Processes & how they communicate &
focuses on runtime behavior of sys.
e.g. activity diagram
(Z魔王)
Golden Rules:
The are 3 golden rules stated by Theo Mandel that must be followed during the
design of the interface.
1. Place the user in control
2. Reduce the user’s memory load
3. Make the interface consistent
The analysis and design process of a user interface is iterative and can be
represented by a spiral model. The analysis and design process of user
interface consists of four framework activities.
1. User, task, environmental analysis, and modeling: Initially, the focus is
based on the profile of users who will interact with the system, i.e.
understanding, skill and knowledge, type of user, etc, based on the user’s
profile users are made into categories. From each category requirements
are gathered. Based on the requirements developer understand how to
develop the interface. Once all the requirements are gathered a detailed
analysis is conducted. In the analysis part, the tasks that the user
performs to establish the goals of the system are identified, described
and elaborated. The analysis of the user environment focuses on the
physical work environment. Among the questions to be asked are:
• Where will the interface be located physically?
• Will the user be sitting, standing, or performing other tasks
unrelated to the interface?
(Z魔王)
• GUI Req. Gathering- Functions as well as nonfun. Req. are gathered from
user & their existing s/w solution.
• User Analysis- study regarding who actually wl use s/w is done. If user
techsavy - advanced & complex gui can be designed. New user- more
informative GUI.
• Task analysis- can be done in hierarchical manner.
The flow of GUI contents is decided by flow of info. Among sub-tasks.
• GUI Design & implementation- After getting complete info. Regarding
tasks & user environment, designers design GUI & imple design &
integrate it with software in background.
• GUI Testing- Imp. Aspects are verified in testing are- usability,
compatibility, user acceptance etc.