Software Engineering 20.2.24
Software Engineering 20.2.24
2024
decision tree
A Decision Tree offers a graphic read of the processing logic concerned in a higher cognitive process and
therefore the corresponding actions are taken. The perimeters of a choice tree represent conditions and
therefore the leaf nodes represent the actions to be performed looking at the result of tes ting the condition.
For example, consider Library Membership Automation Software (LMS) where it ought to support the following
three options: New member, Renewal, and Cancel membership. These are explained as following below.
1. New Member Option:
Decision:
Once the ‘new member’ possibility is chosen, the software system asks for details concerning the member
just like the member’s name, address, number, etc.
Action:
If correct info is entered then a membership record for the member is made and a bil l is written for the
annual membership charge and the protection deposit collectible.
Renewal Option:
Decision:
If the ‘renewal’ possibility is chosen, the LMS asks for the member’s name and his membership range to
test whether or not he’s a sound member or not.
Action:
If the membership is valid then the membership ending date is updated and therefore the annual
membership bill is written, otherwise, a slip-up message is displayed.
Decision:
If the ‘cancel membership’ possibility is chosen, then the software system asks for a member’s name and
his membership range.
Action:
The membership is off, a cheque for the balance quantity because of the member is written and at last, the
membership record is deleted from the information.
The user interface is the front-end application view to which the user interacts to use the software. The
software becomes more popular if its user interface is:
1. Attractive
2. Simple to use
3. Responsive in a short time
4. Clear to understand
5. Consistent on all interface screens
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.
2. Interface Design
The goal of this phase is to define the set of interface objects and actions i.e., control mechanisms that enable
the user to perform desired tasks. Indicate how these control mechanisms affect the system. Specify the action
sequence of tasks and subtasks, also called a user scenario. Indicate the state of the system when the user
performs a particular task. Always follow the three golden rules stated by Theo Mandel. Design issues such as
response time, command and action structure, error handling, and help facilities are considered as the design
model is refined. This phase serves as the foundation for the implementation phase.
4. Interface Validation
This phase focuses on testing the interface. The interface should be in such a way that it should be able to
perform tasks correctly, and it should be able to handle a variety of tasks. It should achieve all the user’s
requirements. It should be easy to use and easy to learn. Users should accept the interface as a useful one in
their work.
1. Define the interaction modes in such a way that does not force the user into unnecessary or
undesired actions: The user should be able to easily enter and exit the mode with little or no effort.
2. Provide for flexible interaction: Different people will use different interaction mechanisms, some might
use keyboard commands, some might use mouse, some might use touch screen, etc., Hence all interaction
mechanisms should be provided.
3. Allow user interaction to be interruptible and undoable: When a user is doing a sequence of actions
the user must be able to interrupt the sequence to do some other work without losing the work that had
been done. The user should also be able to do undo operation.
4. Streamline interaction as skill level advances and allow the interaction to be customized: Advanced
or highly skilled user should be provided a chance to customize the interface as user wants which allows
different interaction mechanisms so that user doesn’t feel bored while using the same interaction
mechanism.
5. Hide technical internals from casual users: The user should not be aware of the internal technical
details of the system. He should interact with the interface just to do his work.
6. Design for direct interaction with objects that appear on-screen: The user should be able to use the
objects and manipulate the objects that are present on the screen to perform a necessary task. By this, the
user feels easy to control over the screen.
1. Reduce demand on short-term memory: When users are involved in some complex tasks the demand
on short-term memory is significant. So the interface should be designed in such a way to reduce the
remembering of previously done actions, given inputs and results.
2. Establish meaningful defaults: Always an initial set of defaults should be provided to the average user, if
a user needs to add some new features then he should be able to add the required features.
3. Define shortcuts that are intuitive: Mnemonics should be used by the user. Mnemonics means the
keyboard shortcuts to do some action on the screen.
4. The visual layout of the interface should be based on a real-world metaphor: Anything you represent
on a screen if it is a metaphor for a real-world entity then users would easily understand.
5. Disclose information in a progressive fashion: The interface should be organized hierarchically i.e., on
the main screen the information about the task, an object or some behavior should be presented first at a
high level of abstraction. More detail should be presented after the user indicates interest with a mouse
pick.
1. Allow the user to put the current task into a meaningful context: Many interfaces have dozens of
screens. So it is important to provide indicators consistently so that the user know about the doing work.
The user should also know from which page has navigated to the current page and from the current page
where it can navigate.
2. Maintain consistency across a family of applications: in The development of some set of applications
all should follow and implement the same design, rules so that consistency is maintained among
applications.
3. If past interactive models have created user expectations do not make changes unless there is a
compelling reason.
User interface design is a crucial aspect of software engineering, as it is the means by which users interact
with software applications. A well-designed user interface can improve the usability and user experience of an
application, making it easier to use and more effective.
1. User-centered design: User interface design should be focused on the needs and preferences of the
user. This involves understanding the user’s goals, tasks, and context of use, and designing interfaces that
meet their needs and expectations.
2. Consistency: Consistency is important in user interface design, as it helps users to understand and learn
how to use an application. Consistent design elements such as icons, color schemes, and navigation
menus should be used throughout the application.
3. Simplicity: User interfaces should be designed to be simple and easy to use, with clear and concise
language and intuitive navigation. Users should be able to accomplish their tasks without being
overwhelmed by unnecessary complexity.
4. Feedback: Feedback is significant in user interface design, as it helps users to understand the results of
their actions and confirms that they are making progress towards their goals. Feedback can take the form
of visual cues, messages, or sounds.
5. Accessibility: User interfaces should be designed to be accessible to all users, regardless of their
abilities. This involves considering factors such as color contrast, font size, and assistive technologies such
as screen readers.
6. Flexibility: User interfaces should be designed to be flexible and customizable, allowing users to tailor the
interface to their own preferences and needs.
Text-Based User Interface: This method relies primarily on the keyboard. A typical example of this is UNIX.
Advantages
Disadvantages
Graphical User Interface (GUI): GUI relies much more heavily on the mouse. A typical example of this type of
interface is any versions of the Windows operating systems.
GUI Characteristics
Characteristics Descriptions
Windows Multiple windows allow different information to be displayed simultaneously on the user's
screen.
Icons Icons different types of information. On some systems, icons represent files. On other icons
describes processes.
Menus Commands are selected from a menu rather than typed in a command language.
Pointing A pointing device such as a mouse is used for selecting choices from a menu or indicating
items of interests in a window.
Graphics Graphics elements can be mixed with text or the same display.
Advantages
o Easier to Navigate and can look through folders quickly in a guess and check manner.
o The user may switch quickly from one task to another and can interact with several different applications.
Disadvantages
o Usually less customizable. Not easy to use one button for tons of different variations.
UI Design Principles
Structure: Design should organize the user interface purposefully, in the meaningful and usual based on precise,
consistent models that are apparent and recognizable to users, putting related things together and separating
unrelated things, differentiating dissimilar things and making similar things resemble one another. The structure
principle is concerned with overall user interface architecture.
Simplicity: The design should make the simple, common task easy, communicating clearly and directly in the
user's language, and providing good shortcuts that are meaningfully related to longer procedures.
Visibility: The design should make all required options and materials for a given function visible without
distracting the user with extraneous or redundant data.
Feedback: The design should keep users informed of actions or interpretation, changes of state or condition, and
bugs or exceptions that are relevant and of interest to the user through clear, concise, and unambiguous
language familiar to users.
Tolerance: The design should be flexible and tolerant, decreasing the cost of errors and misuse by allowing
undoing and redoing while also preventing bugs wherever possible by tolerating varied inputs and sequences and
by interpreting all reasonable actions.