Professional Documents
Culture Documents
UNIT-III
School of CSA
DESIGN CONCEPTS
DESIGN CONCEPTS :
3
Objectives of software design
Software Design Principles
• Software design principles are concerned with providing means to handle the
complexity of the design process effectively.
• Effectively managing the complexity will not only reduce the effort needed for
design ,
• But can also reduce the scope of introducing errors during design.
Problem Partitioning
For small problem, we can handle the entire problem at once ,but for the significant problem,
divide the problems and conquer the problem.
• It means to divide the problem into smaller pieces so that each piece can be captured separately.
• For software design, the goal is to divide the problem into manageable pieces.
Benefits of Problem Partitioning
1. Scenario based
2. Class based
3. Flow oriented behavioral elements
4. Behavioral elements
REQUIREMENTS MODELLING
Benefits of Problem Partitioning
1. In order to evaluate the quality of a design representation, you and other members
of the software team must establish technical criteria for good design.
Consider the following guidelines:
2. A design should exhibit an architecture that has been created using recognizable
architectural styles or patterns, 2)It is composed of components that exhibit good
design characteristics ,3) implemented in an evolutionary fashion,to thereby
facilitating implementation and testing.
2. A design should be modular; that is, the software should be logically partitioned
into elements or subsystems..
3. A design should contain distinct representations of data, architecture, interfaces, and
components.
4.A design should lead to data structures that are appropriate for the classes to be
implemented and are drawn from recognizable data patterns.
5. A design should lead to components that exhibit independent functional
characteristics.
6. A design should lead to interfaces that reduce the complexity of connections
between components and with the external environment.
7. A design should be derived using a repeatable method that is driven by information
obtained during software requirements analysis.
8. A design should be represented using a notation that effectively communicates its
meaning.
QUALITY ATTRIBUTES
1. Hewlett-Packard developed a set of software quality attributes that has been given
the acronym
2. FURPS—functionality, usability, reliability, performance, and supportability.
The FURPS quality attributes represent a target for all software 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.
1. Usability is assessed by considering (human factors )overall aesthetics,
consistency, and documentation.
2. Reliability is evaluated by measuring the frequency and severity of failure, the
accuracy of output results, the mean-time-to-failure (MTTF), the ability to recover
from failure, and the predictability of the program.
3. Performance is measured by considering processing speed, response time, resource
consumption, throughput, and efficiency.
4. Supportability combines the ability to extend the program (extensibility),
adaptability, serviceability—these three attributes represent a more common term,
maintainability—and in addition, testability, compatibility, configurability
User Interface Design Patterns
User interface is the front-end application view to which user interacts in order to use the software.
The software becomes more popular if its user interface is:
• Attractive
• Simple to use
• Responsive in short time
• Clear to understand
• Consistent on all interface screen
User Interface Design- The Golden Rules
Define interaction modes in a way that does not force a user into
unnecessary or undesired actions.- An interaction mode is the current state of the
interface.
• Provide for flexible interaction,Because different users have different interaction
preferences, choices should be provided.
• Allow user interaction to be interruptible and undoable. Even when involved in a
sequence of actions, the user should be able to interrupt the sequence to do something else
(without losing the work that had been done).
2.)REDUCE THE USER’S MEMORY LOAD
• Reduce demand on short-term memory. The interface should be designed to
reduce the requirement to remember past actions, inputs, and results.
• Establish meaningful defaults. The initial set of defaults should make sense
for the average user, but a user should be able to specify individual
preferences.
• Define shortcuts that are intuitive. When mnemonics are used to accomplish
a system function (e.g., alt-P to invoke the print function), the mnemonic
should be tied to the action in a way that is easy to remember (e.g., first letter
of the task to be invoked)
3.) MAKE THE INTERFACE CONSISTENT
The interface should present and acquire information in a consistent fashion. This implies that
1. All visual information is organized according to design rules that are maintained
throughout all screen displays,
2. Input mechanisms are constrained to a limited set that is used consistently throughout the
application, and
3. Mechanisms for navigating from task to task are consistently defined and implemented.
Allow the user to put the current task into a meaningful context. Many interfaces
implement complex layers of interactions with dozens of screen images.
It is important to provide indicators (e.g., window titles, graphical icons, consistent color
coding) that enable the user to know the context of the work at hand. In
addition, the user should be able to determine where he has come from and what
alternatives exist for a transition to a new task
Interface Design
1. Easy to learn ?
2. Easy to use ?
3. Easy to understand ?
-------------------------------------
Typical Design Errors
4. Lack of Consistency
5. Too Much Memorization
6. No proper guidance /help
7. Poor Response
8. Arcane /unfriendly
USER INTERFACE DESIGN
MODELS
1. This diagram is used to model the activities which are nothing but business
requirements.
2. The diagram has more impact on business understanding rather than on
implementation details.
Activity diagram can be used for −
• Modeling work flow by using activities.
• Modeling business requirements.
• High level understanding of the system's functionalities.
• Investigating business requirements at a later stage.
NOTATION OF ACITIVITY DIAGRAM
Forks
2. Forks and join nodes generate the concurrent flow inside the activity.
3. A fork node consists of one inward edge and several outward edges.
4. It is the same as that of various decision parameters.
5. Whenever a data is received at an inward edge, it gets copied and split crossways various
outward edges.
6. It split a single inward flow into multiple parallel flows.
INTERACTION DIAGRAM
1. Used in UML to establish communication between objects.
2. It does not manipulate the data associated with the particular communication path.
3. Interaction diagrams mostly focus on message passing and how these messages
make up one functionality of a system.
4. Interaction diagrams are designed to display how the objects will realize the
particular requirements of a system.
5. The critical component in an interaction diagram is lifeline and messages.
6. Interaction can be shown using several notations such as sequence diagram, timing
diagram, communication/collaboration diagram. Interaction diagrams capture the
dynamic behavior of any system.
TYPES OF INTERACTION
DIAGRAMS DEFINED IN UML
SEQUENCE DIAGRAM
COLLABORTATION DIAGRAM
TIMING DIAGRAM
SEQUENCE DIAGRAM
1. The messages depict the interaction between the objects and are represented by
arrows.
2. They are in the sequential order on the lifeline. The core of the sequence diagram
is formed by messages and lifelines.
Tyes of messages enlisted below:
• Call Message: It defines a particular communication between the lifelines of an
interaction, which represents that the target lifeline has invoked an operation.
1. Return Message: It defines a particular communication between the lifelines of
interaction that represent the flow of information from the receiver of the
corresponding caller message
1. Self Message: It describes a communication, particularly between the lifelines of
an interaction that represents a message of the same lifeline, has been I
2. Recursive Message: A self message sent for recursive purpose is called a
recursive message.
3. In other words, it can be said that the recursive message is a special case of the self
message as it represents the recursive calls invoked.
4. Create Message: It describes a communication, particularly between the lifelines
of an interaction describing that the target (lifeline) has been instantiated.
1. Destroy Message: It describes a communication, particularly between the lifelines
of an interaction that depicts a request to destroy the lifecycle of the target.
2. Duration Message: It describes a communication particularly between the
lifelines of an interaction, which portrays the time passage of the message while
modeling a system.
1. sequence diagram contains lifeline notations and notation of various messages used
in a sequence diagram such as a create, reply, asynchronous message, etc.
1. following sequence diagram example represents McDonald's ordering system:
ORDERED SEQUENCE OF EVENTS
1. Place an order.
2. Pay money to the cash counter.
3. Order Confirmation.
4. Order preparation.
5. Order serving.
6. If one changes the order of the operations, then it may result in crashing the
program.
7. It can also lead to generating incorrect or buggy results. Each sequence in the
above-given sequence diagram is denoted using a different type of message.
BENEFITS OF A SEQUENCE
DIAGRAM
1. For example, the SafeHome security function makes use of a control panel that allows a homeowner to control
certain aspects of the security function.
2. In an advanced version of the system, control panel functions may be implemented via a wireless PDA or
mobile phone.
3. The ControlPanel class provides the behavior associated with a keypad, and therefore, it must implement the
operations
4. readKeyStroke () and decodeKey ().
5. If these operations are to be provided to other classes, it is useful to define an interface as shown in the figure.
6. The interface, named KeyPad, is shown as an <> stereotype or as a small, labeled circle connected to the class
with a line.
7. The interface is defined with no attributes and the set of operations that are necessary to achieve the behavior of
a keypad.
8. The dashed line with an open triangle at its end indicates that the ControlPanel class provides KeyPad
operations as part of its behavior., this
DESIGN
SAMPLES
USER ANALYSIS
1. Spend some time understanding the user before worrying about technical matters
2. In addition, the user’s mental image may be vastly different from the software
engineer’s design model.
3. The only way that you can get the mental image and the design model to converge
is to work to understand the users themselves as well as how these people will use
the system.
1. User Interviews. The most direct approach, members of the software team meet with
end users to better understand their needs, motivations, work culture, and a issues
2. Sales input: Sales people meet with users on a regular basis and can gather information
that will help the software team to categorize users and better understand their
requirements.
3. Marketing input: Market analysis can be invaluable in the definition of market
segments
4. Understanding of how each segment might use the software in subtly different ways.
5. Support input: Support staff talks with users on a daily basis.
6. They are the most likely source of information on what works and what doesn’t,
7. what users like and what they dislike, what features generate questions and what
features are easy to use.
WHAT IS ARCHITECTURE?
1. When you consider the architecture of a building, many different attributes come
to mind.
2. At the most simple level, you think about the overall shape of the physical
structure.
3. But in reality, architecture is much more. It is the manner in which the various
components of the building are integrated to form a cohesive whole.
4. It is the degree to which the building meets its stated purpose and satisfies the
needs of its owner.
5. It is the aesthetic feel of the structure—the visual impact of the building—and the
way textures, colors, and materials are combined to create the external facade and
the internal “living environment.”
IS IT SOFTWARE???
70
Interface Design Workflow for WebApps
• Information contained within the requirements model forms the basis for ,
• creation of a screen layout that depicts graphical design and placement of icons, definition of
descriptive screen text, specification and titling for windows, and specification of major and minor
menu items.
Tools are used to prototype and ultimately implement the interface design model.
1. Navigation design begins with a consideration of the user hierarchy and related use
cases developed for each category of user (actor).
2. Each actor may use the WebApp somewhat differently and therefore have different
navigation requirements.
3. In addition, the use cases developed for each actor will define a set of classes that
encompass one or more content objects or WebApp functions.
NAVIGATION SYNTAX