Software Engineering Unit 3
Software Engineering Unit 3
DESIGN ENGINEERING
Design Engineering
Introduction to Design process
Design quality
Design concepts
The design model
1.INTRODUCTION TO DESIGN
PROCESS
There are two major phases to any design process: diversification
and convergence. Diversification is the acquisition of a repertoire
of alternatives, the raw material of design: components,
component solutions, and knowledge contained in catalogs,
textbooks, and the mind.
During convergence, the designer chooses and combines
appropriate elements from this repertoire to meet the design
objectives, as stated in the requirements document and as agreed
to by the customer.
The second phase is the gradual elimination of all but one
particular configuration of components, and thus the creation of
the final product.
Purpose of Design
Design is where customer requirements, business needs, and
technical considerations all come together in the formulation of a
product or system
The design model provides detail about the software data
structures, architecture, interfaces, and components
The design model can be assessed for quality and be improved
before code is generated and tests are conducted
Does the design contain errors, inconsistencies, or omissions?
Interface Design
Architectural Design
Data/Class Design
• Functionality is assessed by evaluating the feature set and capabilities of the program,
the generality of the functions that are delivered, and the security of the overall system.
High
Abstraction Dimension
Analysis model
Design model
Deployment-level design
The design model was represented as a pyramid. The symbolism
of this shape is important. A pyramid is an extremely stable
object with a wide base and a low center of gravity.
Like the pyramid, we want to create a software design that is
stable. Component-level Design
Interface Design
Architectural Design
Data/Class Design
Design Elements
Data/class design
Creates a model of data and objects that is represented at a
high level of abstraction
Architectural design
Depicts the overall layout of the software
Interface design
Tells how information flows into and out of the system and how
it is communicated among the components defined as part of
the architecture
Includes the user interface, external interfaces, and internal
interfaces
Component-level design elements
Describes the internal detail of each software
component by way of data structure definitions,
algorithms, and interface specifications
Deployment-level design elements
Indicates how software functionality and subsystems
will be allocated within the physical computing
environment that will support the software
Creating an Architectural Design
Software Architecture
Data design
Definitions
The software architecture of a program or computing
system is the structure or structures of the system which
comprise
The software components
of the software.
3.Consider architectural alternatives.
Why is Architecture important?
Define archetypes
"A doctor can bury his mistakes, but an architect can only advise
his client to plant vines." Frank Lloyd Wright
ARCHITECTURAL DESIGN PROCESS
The software to be developed must be put
into context.i.e it should define the external
entities like other systems, devices and people
that the software interacts and the nature of
the interaction.
This can be acquired from analysis model and
requirements engineering information.
Representing the System in Context
"Super"ordinate systems
Used by
I/F I/F I/F
Uses
Target system
Produces or
Produces or consumes Peers
Actors consumes I/F I/F
Depends on
"Sub"ordinate systems
Use an architectural context diagram (ACD) that
shows
The identification and flow of all information
into and out of a system
The specification of all interfaces
Any relevant support processing from/by other
systems
An ACD models the manner in which software
interacts with entities external to its boundaries
An ACD identifies systems that interoperate with the target system
Super-ordinate systems
Background
Interface design focuses on the following
The design of interfaces between software
components
The design of interfaces between the software
and other nonhuman producers and consumers
of information
The design of the interface between a human
and the computer
Graphical user interfaces (GUIs) have
helped to eliminate many of the most
horrific interface problems
However, some are still difficult to learn,
hard to use, confusing, counterintuitive,
unforgiving, and frustrating
User interface analysis and design has to
do with the study of people and how they
relate to technology
A Spiral Process
Define interaction modes in a way that does not force a user into
unnecessary or undesired actions
The user shall be able to enter and exit a mode with little or
no effort (e.g., spell check edit text spell check)
Provide for flexible interaction
The user shall be able to perform the same action via
keyboard commands, mouse movement, or voice recognition
Allow user interaction to be interruptible and "undoable
The user shall be able to easily interrupt a sequence of
actions to do something else (without losing the work that has
been done so far)
The user shall be able to "undo" any action
Streamline interaction as skill levels advance and
allow the interaction to be customized
The user shall be able to use a macro mechanism to perform a
sequence of repeated interactions and to customize the interface
Hide technical internals from the casual user
The user shall not be required to directly use operating system, file
management, networking. etc., commands to perform any actions.
Instead, these operations shall be hidden from the user and
performed "behind the scenes" in the form of a real-world
abstraction
Design for direct interaction with objects that appear
on the screen
The user shall be able to manipulate objects on the screen in a
manner similar to what would occur if the object were a physical
thing (e.g., stretch a rectangle, press a button, move a slider)
Reduce the User's Memory Load
Reduce demand on short-term memory
The interface shall reduce the user's requirement to remember
past actions and results by providing visual cues of such actions
Establish meaningful defaults
The system shall provide the user with default values that make
sense to the average user but allow the user to change these
defaults
The user shall be able to easily reset any value to its original
default value
The visual layout of the interface should be based on a real world
metaphor
The screen layout of the user interface shall contain well-
understood visual cues that the user can relate to real-world
actions
Disclose information in a progressive fashion
When interacting with a task, an object or some behavior, the
interface shall be organized hierarchically by moving the user
progressively in a step-wise fashion from an abstract concept
to a concrete action.
Make the Interface Consistent
The interface should present and acquire information in a consistent
fashion
All visual information shall be organized according to a design
standard that is maintained throughout all screen displays
Input mechanisms shall be constrained to a limited set that is used
consistently throughout the application
Mechanisms for navigating from task to task shall be consistently
defined and implemented
Allow the user to put the current task into a meaningful context
The interface shall provide indicators (e.g., window titles,
consistent color coding) that enable the user to know the
context of the work at hand
The user shall be able to determine where he has come from
and what alternatives exist for a transition to a new task
Reconciling Four Different Models
Four different models come into play when a user interface is
analyzed and designed
User profile model – Established by a human engineer or
software engineer
Design model – Created by a software engineer
Consists of the look and feel of the interface combined with all
supporting information (books, videos, help files) that describe
system syntax and semantics
Strives to agree with the user's mental model; users then feel
comfortable with the software and use it effectively
Serves as a translation of the design model by providing a
realization of the information contained in the user profile model
and the user’s mental model
User's Mental Model
Often called the user's system perception
Consists of the image of the system that users carry in their
heads
Accuracy of the description depends upon the user’s profile
and overall familiarity with the software in the application
domain
USER INTERFACE ANALYSIS AND DESIGN