SlideShare a Scribd company logo
1 of 38
Download to read offline
Tadele M.
Chapter 1: Introduction Software
Design
1
Architecture vs Design
What comes first design or architecture?
❑ Consider the architecture of an office building as
compared with its interior design:
❑ The architecture provides structures such as rooms, stair
cases and basic services such as water and heating,
ventilation and air conditioning.
❑ A plan for the structure of something
❑ Its scope is the whole building
❑ The interior design provides the interior materials,
decorations & art, flooring, furniture and additional
services such as coffee stations and kitchens.
❑ A plan to create something
❑ Design uses and aligns with architecture
❑ Its scope is parts of the building
2
Introduction
❑ Software Requirements:
❑ state ‘what’ the software should do, but not ‘how’
❑ can be functional and non functional
❑ Software Architecture:
❑ what, where and why but not the how
❑ High level view that documents the main software components
and their interaction with each other
❑ Is very abstract, deliberately hiding any details
❑ Software Design:
❑ It is the how of a software development process
❑ Design is about how to build a system (answers “HOW?”)-
Specifying different parts of the software, and how they will fit
together.
3
Introduction
❑ Software design is an iterative process through which requirements are
translated into a blueprint for constructing the software.
❑ Initially, the blueprint depicts a holistic view of software.
❑ During the design process the software specifications are transformed into design
models.
❑ Models describe the details of the data structures, system architecture,
interface, and components.
❑ Each design product is reviewed for quality before moving to the next phase of
software development.
❑ At the end of the design process a design model and specification document is
produced.
4
Cont.…
❑ IEEE defines software design as ‘both a process of defining the architecture,
components, interfaces, and other characteristics of a system or component
and the result of that process.’
❑ Software design is both a process and a model.
❑ Innovative skill, past experience, a sense of what makes "good" software and
an overall commitment to quality are examples of critical success factors
for a competent design.
❑ It begins by representing the totality of the thing that is to be built (e.g.,
a three-dimensional rendering of the house); slowly, the thing is refined
to provide guidance for constructing each detail.
5
Cont…
❑ From a project management point of view, software design can be conducted in two main
steps:
❑ Preliminary Design: Concerned with the transformation of requirements into data and
software architecture which serve as the basis for the final design.
❑ Detailed Design: Focuses on refining the architectural representation, and lead to
detailed data structure and algorithmic representations of software.
❑ From technical point of view, to develop a complete specification of design, four design models
are needed:
❑ Data design,
❑ Architectural design
❑ Procedural design and
❑ Interface design
6
Cont.…
❑ Data Design /Class Design: is the first design activity, which results in less
complex, modular and efficient program structure. Eg: Entity Relationship
diagrams, data dictionary, abstract data types and data structures.
❑ The information domain model developed during analysis phase is
transformed into data structures needed for implementing the software.
❑ Architectural/System Design: identify the overall structure of the system,
the principal components (sometimes called sub-systems or modules), their
relationships and how they are distributed.
❑ Procedural/Component Design: transforms structural components into a
procedural/component description of the software.
❑ It provides the detailed description of how structural elements of
software will actually be implemented using programming language or
intermediate design notation such as graphical (DFD, flowchart), tabular
(decision table).
❑ Interface design: depicts how the software communicates with the system
that interoperates with it and with the end-users
7
Cont…
8
Software Design Activities
Design phase is the most important phase in software engineering to develop an
application or any system. Phases in the Design Process includes:
❑ Architectural design-used to identify the sub systems from the main
system or software application.
❑ Abstract specification -Specify sub-systems
❑ Interface design -describe sub-system interfaces
❑ Component design -decompose sub-systems into components
❑ Data structure design -design data structures to hold problem data
❑ Algorithm design -design algorithms for problem functions
9
Cont.…
❑ Design activities and product
10
Stages of Design
Problem understanding–Look at the problem from different angles to
discover the design requirements.
Identify one or more solutions–Evaluate possible solutions and choose the
most appropriate depending on the designer's experience and available
resources.
Describe solution abstractions– Use graphical, formal or other descriptive
notations to describe the components of the design.
Repeat process for each identified abstraction until the design is expressed in
primitive terms.
11
Design strategies
❑ Functional Design: The system is designed from
a functional viewpoint.
❑ The system state is centralized and shared
between the functions operating on that state.
❑ Produces a hierarchy of tasks.
❑ Object-Oriented Design: The system is viewed as
a collection of interacting objects.
❑ The system state is decentralized and each
object manages its own state.
❑ Objects may be instances of a class and
communicate by exchanging messages.
❑ Produces a hierarchy of objects.
Vs
12
Objective of design
The design must implement all of the explicit requirements contained in the
analysis model, and it must accommodate all of the implicit requirements
desired by the customer.
It must be a readable, understandable guide for those who generate code
and for those who test and subsequently support the software.
The design should also provide a complete picture of the software,
addressing the data, functional, and behavioral domains from an
implementation perspective.
13
Cont.…
❑ Good design leads to software that is:
➢ Correct–does what it should.
➢ Robust– tolerant of misuse, e.g. faulty data,
➢ Flexible–adaptable to shifting requirements,
➢ Reusable–cut production costs for code,
➢ Efficient–good use of processor and memory,
➢ Reliable: relatively bug free,
➢ Usable : easy user interface
14
Software Design Approaches
❑ Here are two generic approaches for software designing:
❑ Top-down design
❑Takes the whole software system as one entity and then decomposes
it to achieve more than one sub-system or component
❑Each sub-system or component is then treated as a system and
decomposed further.
❑Keep on running until the lowest level of system is achieved.
❑ Bottom-up design
❑Make decisions about reusable low-level utilities.
❑Then decide how these will be put together to create high-level
constructs
15
Software Design Approaches…
❑ Hybrid Design: Both, top-down and bottom-up approaches are not practical individually.
Instead, a good combination of both is used.
❑Top-down design is almost always needed to give the system a good structure.
❑Bottom-up design is normally useful so that reusable components can be created.
bottom-up
top-down
16
Design Principles
❑ Design principles enable the software engineer to navigate the design
process, which have been adapted and extended in the following list:
❑ The design process should not suffer from "tunnel vision." A good
designer should consider alternative approaches, judging each based on
the requirements of the problem, the resources available to do the job.
❑ The design should be traceable to the analysis model. Because a single
element of the design model can often be traced back to multiple
requirements, it is necessary to have a means for tracking how
requirements have been satisfied by the design model.
❑ The design should not reinvent the wheel. Systems are constructed using
a set of design patterns, many of which have likely been encountered
before. These patterns should always be chosen as an alternative to
reinvention. Design time should be invested in representing truly new ideas
and integrating with already existing patterns.
17
Cont…
❑ The design should "minimize the intellectual distance" between the
software and the problem as it exists in the real world. That is, the
structure of the software design should, whenever possible, mimic the
structure of the problem domain.
❑ The design should exhibit uniformity and integration. A design is uniform if
it appears fully coherent. In order to achieve this outcome, rules of style and
format should be defined for a design team before design work begins.
❑ The design should be structured to accommodate change.
18
Cont….
❑ The design should be structured to degrade gently, even when aberrant
data, events, or operating conditions are encountered. Well- designed
software should never "bomb"; it should be designed to accommodate unusual
circumstances, and if it must terminate processing, it should do so in a
graceful manner.
❑ Design is not coding, coding is not design. Even when detailed procedural
designs are created for program components, the level of abstraction of the
design model is higher than the source code. The only design decisions made
at the coding level should address the small implementation details that
enable the procedural design to be coded.
19
Cont…
The design should be assessed for quality as it is being created, not after
the fact. A variety of design concepts and design measures are available to
assist the designer in assessing quality throughout the development process.
The design should be reviewed to minimize conceptual (semantic) errors.
There is sometimes a tendency to focus on minutiae when the design is
reviewed, missing the forest for the trees. A design team should ensure that
major conceptual elements of the design (omissions, ambiguity, in
consistency) have been addressed before worrying about the syntax of the
design model.
20
Design Considerations
There are many aspects to consider in the design of a piece of software. The
importance of each consideration should reflect the goals and expectations that
the software is being created to meet. Some of these aspects are:
❑ Compatibility - The software is able to operate with other products that are
designed for interoperability with another product. For example, a piece of
software may be backward compatible with an older version of itself.
❑ Extensibility - New capabilities can be added to the software without
major changes to the underlying architecture.
21
Cont….
❑ Modularity- the resulting software comprises a well defined, independent
component which leads to better maintainability. The components could be
then implemented and tested in isolation before being integrated to form a
desired software system. This allows division of work in a software
development project.
❑ Fault-tolerance- The software is resistant to and able to recover from
component failure.
❑ Maintainability- A measure of how easily bug fixes or functional
modifications can be accomplished. High maintainability can be the product
of modularity and extensibility.
❑ Reliability (Software durability)- The software is able to perform a required
function under stated conditions for a specified period of time.
22
Cont…
❑ Reusability- The ability to use some or all of the aspects of the preexisting
software in other projects with little to no modification.
❑ Robustness- The software is able to operate under stress or tolerate
unpredictable or invalid input.
❑ Security- The software is able to withstand and resist hostile acts and
influences.
❑ Usability- The software user interface must be usable for its target
user/audience. Default values for the parameters must be chosen so that they
are a good choice for the majority of the users.
23
Cont..
❑ Portability - The software should be usable across a number of different
conditions and environments.
❑ Scalability - The software adapts well to increasing data or number of users.
❑ Performance - The software performs its tasks within a time-frame that is
acceptable for the user, and does not require too much memory.
24
User Interface Design
❑ User interface is the first impression of a software system from the user’s point
of view. Therefore any software system must satisfy the requirement of user.
❑ Functions and Features of UI
❑ User Interface (UI) mainly performs two functions −
❑ Accepting the user’s input
❑ Displaying the output
25
Cont…
❑ User interface plays a crucial role in any software system. It is possibly the only visible
aspect of a software system as:
❑ Users will initially see the architecture of software system’s external user interface
without considering its internal architecture.
❑ A good user interface must attract the user to use the software system without
mistakes. It should help the user to understand the software system easily without
misleading information. A bad UI may cause market failure against the competition of
software system.
❑ UI has its syntax and semantics. The syntax comprises component types for look &
feel such as textual, icon, button etc. and usability summarizes the semantics of UI.
❑ There are basically two major kinds of user interface −
a) Text-based/command-line UI b) Graphical UI
❑ Software in different domains may require different style of its user interface
26
Graphical User Interface
❑ A graphical user interface is the most common type of user interface available today.
❑ It is a very user friendly because it makes use of pictures, graphics, and icons hence
why it is called 'graphical'.
❑ It is also known as a WIMP interface because it makes use of:
❑ Windows − A rectangular area on the screen where the
commonly used applications run.
❑ Icons − A picture or symbol which is used to represent a
software application or hardware device.
❑ Menus − A list of options from which the user can choose
what they require.
❑ Pointers − A symbol such as an arrow which moves
around the screen as user moves the mouse. It helps user
to select objects.
27
Elements of UI
❑ To perform user interface analysis, the practitioner
needs to study and understand four elements:
❑ The users who will interact with the system
through the interface
❑ The tasks that end users must perform to do their
work
❑ The content that is presented as part of the
interface
❑ The work environment in which these tasks will be
conducted
28
Levels of UI Design
❑ The design of a user interface is often divided into four different levels.
❑ The conceptual level − It describes the basic entities considering the user's
view of the system and the actions possible upon them.
❑ E.g. To use the text editor user needs to know about characters,
paragraphs, line heights, etc. and actions they can do with them such as
copy and paste.
❑ The semantic level − It describes the functions performed by the system
i.e. description of the functional requirements of the system, but does not
address how the user will invoke the functions.
❑ You define all semantic specification for each action identified in the
conceptual level including description of the function, its parameters,
feedback user gets and possible errors.
❑ E.g. Text editor copy and paste function has parameters which tells what characters to
copy and from where, which characters are copied and shows error.
29
Levels of UI Design…
❑ The syntactic level − It describes the sequences of inputs and outputs
required to invoke the functions described.
❑ Formally define the syntax using state diagrams.
❑ The lexical level − It determines how the inputs and outputs are actually
formed from primitive hardware operations.
❑ The lexical level design defines each of the actions identified in the
syntactic level (the "tokens") in terms of actual hardware or system
operations.
❑ E.g. In text editor user can select the text with a mouse and can click
a button which copies selected text on to clipboard.
30
Steps of UI Design
❑ User interface design is an iterative process, where all the iteration explains
and refines the information developed in the preceding steps.
❑ General steps for user interface design −
❑ Defines user interface objects and actions (operations).
❑ Defines events (user actions) that will cause the state of the user interface
to change.
❑ Indicates how the user interprets the state of the system from
information provided through the interface.
❑ Describe each interface state as it will actually look to the end user.
31
User Interface Development Process
32
❑The analysis and design process for UIs is iterative and can be
represented using a spiral model.
❑The user interface analysis and design process encompasses four distinct
framework activities:
Cont…
Interface Analysis: It concentrates or focuses on users, tasks, content, and
work environment who will interact with the system. It defines the human -
and computer-oriented tasks that are required to achieve system function.
Interface Design: It defines a set of interface objects, actions, and their
screen representations that enable a user to perform all defined tasks in a
manner that meets every usability objective defined for the system.
Interface Construction: It starts with a prototype that enables usage
scenarios to be evaluated and continues with development tools to complete
the construction.
33
Cont…
Interface Validation: It focuses on the ability of the interface to implement
every user task correctly, accommodate all task variations, to achieve all
general user requirements, and the degree to which the interface is easy to
use and easy to learn.
34
❑ Once the first prototype is built, the designer
can collect a variety of qualitative and
quantitative data that will assess in evaluating
the interface.
❑ Questions can be a simple Y/N response,
numeric response, scaled response, Likert scale
(strongly agree, etc.), percentage response, and
open-ended ones.
User Interface Models
Four different models come into play when a user interface is to be analyzed and
designed:
❑ User model: a profile of all end users of the system
Users can be categorized as:
• Novices: No syntactic and little semantic knowledge of the system.
• Knowledgeable, intermittent users: reasonable knowledge of the system.
• Knowledgeable, frequent users: good syntactic and semantic knowledge of
the system.
❑ Design model: a design realization of the user model that incorporates data,
architectural, interface, and procedural representations of the software.
❑ Mental model (system perception): the user’s mental image of what the
interface is. The user’s mental model shapes how the user perceives the
interface and whether the UI meets the user’s needs.
❑ Implementation model: the interface “look and feel of the interface” coupled
with all supporting information (documentation) that describes interface
syntax and semantics.
35
Design Considerations of User Interface
❑ User Centered: A user interface must be a user-centered product which
involves users throughout a product’s development lifecycle. The prototype of
a user interface should be available to users and feedback from users, should
be incorporated into the final product.
❑ Simple and Intuitive: UI provides simplicity and intuitiveness so that it can be
used quickly and effectively without instructions. GUI is better than textual
UI, as GUI consists of menus, windows, and buttons and is operated by simply
using mouse.
❑ Place Users in Control: Do not force users to complete predefined sequences.
❑ Give them options—to cancel or to save and return to where they left off.
❑ Provide users with some indication that an action has been performed,
either by showing them the results of the action, or acknowledging that the
action has taken place successfully.
36
Cont..
❑ Transparency: UI must be transparent that helps users to feel like they are
reaching right through computer and directly manipulating the objects they
are working with. The interface can be made transparent by giving users work
objects rather than system objects.
❑ Use Progressive Disclosure: Always provide easy access to common features
and frequently used actions. Hide less common features and actions and
allow users to navigate them. Do not try to put every piece of information in
one main window. Use secondary window for information that is not key
information.
❑ Consistency: UI maintains the consistency within and across product, keep
interaction results the same, UI commands and menus should have the same
format, command punctuations should be similar and parameters should be
passed to all commands in the same way.
37
Cont.…
❑ Integration: The software system should integrate smoothly with other
applications such as MS notepad and MS-Office. It can use Clipboard
commands directly to perform data interchange.
❑ Component Oriented: UI design must be modular and incorporate component
oriented architecture so that the design of UI will have the same requirements
as the design of the main body of the software system.
❑ Customizable: The architecture of whole software system incorporates plug-in
modules, which allow many different people independently extend the
software. It allows individual users to select from various available forms in
order to suit personal preferences and needs.
❑ Reduce Users’ Memory Load: Whenever possible, the system should
“remember” pertinent information and assist the user with an interaction
scenario that assists recall.
❑ Separation: UI must be separated from the logic of the system through its
implementation for increasing reusability and maintainability.
38

More Related Content

Similar to chapter 1.pdf

UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTmalathijanapati1
 
Software design and Software engineering.pptx
Software design and Software engineering.pptxSoftware design and Software engineering.pptx
Software design and Software engineering.pptxDrTThendralCompSci
 
Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Fadhil Ismail
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxHaifaMohd3
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssadPreeti Mishra
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSADEED AMEEN
 
Architecture Design
Architecture DesignArchitecture Design
Architecture DesignSaqib Raza
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxKarthigaiSelviS3
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptxtaxegap762
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 pptDr VISU P
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptitadmin33
 

Similar to chapter 1.pdf (20)

SMD.pptx
SMD.pptxSMD.pptx
SMD.pptx
 
Unit 3- Software Design.pptx
Unit 3- Software Design.pptxUnit 3- Software Design.pptx
Unit 3- Software Design.pptx
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
 
UNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPTUNIT-4design-concepts-se-pressman-ppt.PPT
UNIT-4design-concepts-se-pressman-ppt.PPT
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
rEFUP.pdf
 
Software design and Software engineering.pptx
Software design and Software engineering.pptxSoftware design and Software engineering.pptx
Software design and Software engineering.pptx
 
Software System Engineering - Chapter 15
Software System Engineering - Chapter 15Software System Engineering - Chapter 15
Software System Engineering - Chapter 15
 
Ch 9-design-engineering
Ch 9-design-engineeringCh 9-design-engineering
Ch 9-design-engineering
 
unit 3 Design 1
unit 3 Design 1unit 3 Design 1
unit 3 Design 1
 
Chapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptxChapter 1 - Software Design - Introduction.pptx
Chapter 1 - Software Design - Introduction.pptx
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Architecture Design
Architecture DesignArchitecture Design
Architecture Design
 
Design Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptxDesign Concepts in Software Engineering-1.pptx
Design Concepts in Software Engineering-1.pptx
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
Unit_4_Software_Design.pptx
Unit_4_Software_Design.pptxUnit_4_Software_Design.pptx
Unit_4_Software_Design.pptx
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.ppt
 

Recently uploaded

AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...aditipandeya
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663Call Girls Mumbai
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goahorny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goasexy call girls service in goa
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxellan12
 

Recently uploaded (20)

AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
VIP 7001035870 Find & Meet Hyderabad Call Girls Dilsukhnagar high-profile Cal...
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICECall Girls In South Ex 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
Call Girls In South Ex 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SERVICE
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goahorny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 

chapter 1.pdf

  • 1. Tadele M. Chapter 1: Introduction Software Design 1
  • 2. Architecture vs Design What comes first design or architecture? ❑ Consider the architecture of an office building as compared with its interior design: ❑ The architecture provides structures such as rooms, stair cases and basic services such as water and heating, ventilation and air conditioning. ❑ A plan for the structure of something ❑ Its scope is the whole building ❑ The interior design provides the interior materials, decorations & art, flooring, furniture and additional services such as coffee stations and kitchens. ❑ A plan to create something ❑ Design uses and aligns with architecture ❑ Its scope is parts of the building 2
  • 3. Introduction ❑ Software Requirements: ❑ state ‘what’ the software should do, but not ‘how’ ❑ can be functional and non functional ❑ Software Architecture: ❑ what, where and why but not the how ❑ High level view that documents the main software components and their interaction with each other ❑ Is very abstract, deliberately hiding any details ❑ Software Design: ❑ It is the how of a software development process ❑ Design is about how to build a system (answers “HOW?”)- Specifying different parts of the software, and how they will fit together. 3
  • 4. Introduction ❑ Software design is an iterative process through which requirements are translated into a blueprint for constructing the software. ❑ Initially, the blueprint depicts a holistic view of software. ❑ During the design process the software specifications are transformed into design models. ❑ Models describe the details of the data structures, system architecture, interface, and components. ❑ Each design product is reviewed for quality before moving to the next phase of software development. ❑ At the end of the design process a design model and specification document is produced. 4
  • 5. Cont.… ❑ IEEE defines software design as ‘both a process of defining the architecture, components, interfaces, and other characteristics of a system or component and the result of that process.’ ❑ Software design is both a process and a model. ❑ Innovative skill, past experience, a sense of what makes "good" software and an overall commitment to quality are examples of critical success factors for a competent design. ❑ It begins by representing the totality of the thing that is to be built (e.g., a three-dimensional rendering of the house); slowly, the thing is refined to provide guidance for constructing each detail. 5
  • 6. Cont… ❑ From a project management point of view, software design can be conducted in two main steps: ❑ Preliminary Design: Concerned with the transformation of requirements into data and software architecture which serve as the basis for the final design. ❑ Detailed Design: Focuses on refining the architectural representation, and lead to detailed data structure and algorithmic representations of software. ❑ From technical point of view, to develop a complete specification of design, four design models are needed: ❑ Data design, ❑ Architectural design ❑ Procedural design and ❑ Interface design 6
  • 7. Cont.… ❑ Data Design /Class Design: is the first design activity, which results in less complex, modular and efficient program structure. Eg: Entity Relationship diagrams, data dictionary, abstract data types and data structures. ❑ The information domain model developed during analysis phase is transformed into data structures needed for implementing the software. ❑ Architectural/System Design: identify the overall structure of the system, the principal components (sometimes called sub-systems or modules), their relationships and how they are distributed. ❑ Procedural/Component Design: transforms structural components into a procedural/component description of the software. ❑ It provides the detailed description of how structural elements of software will actually be implemented using programming language or intermediate design notation such as graphical (DFD, flowchart), tabular (decision table). ❑ Interface design: depicts how the software communicates with the system that interoperates with it and with the end-users 7
  • 9. Software Design Activities Design phase is the most important phase in software engineering to develop an application or any system. Phases in the Design Process includes: ❑ Architectural design-used to identify the sub systems from the main system or software application. ❑ Abstract specification -Specify sub-systems ❑ Interface design -describe sub-system interfaces ❑ Component design -decompose sub-systems into components ❑ Data structure design -design data structures to hold problem data ❑ Algorithm design -design algorithms for problem functions 9
  • 11. Stages of Design Problem understanding–Look at the problem from different angles to discover the design requirements. Identify one or more solutions–Evaluate possible solutions and choose the most appropriate depending on the designer's experience and available resources. Describe solution abstractions– Use graphical, formal or other descriptive notations to describe the components of the design. Repeat process for each identified abstraction until the design is expressed in primitive terms. 11
  • 12. Design strategies ❑ Functional Design: The system is designed from a functional viewpoint. ❑ The system state is centralized and shared between the functions operating on that state. ❑ Produces a hierarchy of tasks. ❑ Object-Oriented Design: The system is viewed as a collection of interacting objects. ❑ The system state is decentralized and each object manages its own state. ❑ Objects may be instances of a class and communicate by exchanging messages. ❑ Produces a hierarchy of objects. Vs 12
  • 13. Objective of design The design must implement all of the explicit requirements contained in the analysis model, and it must accommodate all of the implicit requirements desired by the customer. It must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software. The design should also provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective. 13
  • 14. Cont.… ❑ Good design leads to software that is: ➢ Correct–does what it should. ➢ Robust– tolerant of misuse, e.g. faulty data, ➢ Flexible–adaptable to shifting requirements, ➢ Reusable–cut production costs for code, ➢ Efficient–good use of processor and memory, ➢ Reliable: relatively bug free, ➢ Usable : easy user interface 14
  • 15. Software Design Approaches ❑ Here are two generic approaches for software designing: ❑ Top-down design ❑Takes the whole software system as one entity and then decomposes it to achieve more than one sub-system or component ❑Each sub-system or component is then treated as a system and decomposed further. ❑Keep on running until the lowest level of system is achieved. ❑ Bottom-up design ❑Make decisions about reusable low-level utilities. ❑Then decide how these will be put together to create high-level constructs 15
  • 16. Software Design Approaches… ❑ Hybrid Design: Both, top-down and bottom-up approaches are not practical individually. Instead, a good combination of both is used. ❑Top-down design is almost always needed to give the system a good structure. ❑Bottom-up design is normally useful so that reusable components can be created. bottom-up top-down 16
  • 17. Design Principles ❑ Design principles enable the software engineer to navigate the design process, which have been adapted and extended in the following list: ❑ The design process should not suffer from "tunnel vision." A good designer should consider alternative approaches, judging each based on the requirements of the problem, the resources available to do the job. ❑ The design should be traceable to the analysis model. Because a single element of the design model can often be traced back to multiple requirements, it is necessary to have a means for tracking how requirements have been satisfied by the design model. ❑ The design should not reinvent the wheel. Systems are constructed using a set of design patterns, many of which have likely been encountered before. These patterns should always be chosen as an alternative to reinvention. Design time should be invested in representing truly new ideas and integrating with already existing patterns. 17
  • 18. Cont… ❑ The design should "minimize the intellectual distance" between the software and the problem as it exists in the real world. That is, the structure of the software design should, whenever possible, mimic the structure of the problem domain. ❑ The design should exhibit uniformity and integration. A design is uniform if it appears fully coherent. In order to achieve this outcome, rules of style and format should be defined for a design team before design work begins. ❑ The design should be structured to accommodate change. 18
  • 19. Cont…. ❑ The design should be structured to degrade gently, even when aberrant data, events, or operating conditions are encountered. Well- designed software should never "bomb"; it should be designed to accommodate unusual circumstances, and if it must terminate processing, it should do so in a graceful manner. ❑ Design is not coding, coding is not design. Even when detailed procedural designs are created for program components, the level of abstraction of the design model is higher than the source code. The only design decisions made at the coding level should address the small implementation details that enable the procedural design to be coded. 19
  • 20. Cont… The design should be assessed for quality as it is being created, not after the fact. A variety of design concepts and design measures are available to assist the designer in assessing quality throughout the development process. The design should be reviewed to minimize conceptual (semantic) errors. There is sometimes a tendency to focus on minutiae when the design is reviewed, missing the forest for the trees. A design team should ensure that major conceptual elements of the design (omissions, ambiguity, in consistency) have been addressed before worrying about the syntax of the design model. 20
  • 21. Design Considerations There are many aspects to consider in the design of a piece of software. The importance of each consideration should reflect the goals and expectations that the software is being created to meet. Some of these aspects are: ❑ Compatibility - The software is able to operate with other products that are designed for interoperability with another product. For example, a piece of software may be backward compatible with an older version of itself. ❑ Extensibility - New capabilities can be added to the software without major changes to the underlying architecture. 21
  • 22. Cont…. ❑ Modularity- the resulting software comprises a well defined, independent component which leads to better maintainability. The components could be then implemented and tested in isolation before being integrated to form a desired software system. This allows division of work in a software development project. ❑ Fault-tolerance- The software is resistant to and able to recover from component failure. ❑ Maintainability- A measure of how easily bug fixes or functional modifications can be accomplished. High maintainability can be the product of modularity and extensibility. ❑ Reliability (Software durability)- The software is able to perform a required function under stated conditions for a specified period of time. 22
  • 23. Cont… ❑ Reusability- The ability to use some or all of the aspects of the preexisting software in other projects with little to no modification. ❑ Robustness- The software is able to operate under stress or tolerate unpredictable or invalid input. ❑ Security- The software is able to withstand and resist hostile acts and influences. ❑ Usability- The software user interface must be usable for its target user/audience. Default values for the parameters must be chosen so that they are a good choice for the majority of the users. 23
  • 24. Cont.. ❑ Portability - The software should be usable across a number of different conditions and environments. ❑ Scalability - The software adapts well to increasing data or number of users. ❑ Performance - The software performs its tasks within a time-frame that is acceptable for the user, and does not require too much memory. 24
  • 25. User Interface Design ❑ User interface is the first impression of a software system from the user’s point of view. Therefore any software system must satisfy the requirement of user. ❑ Functions and Features of UI ❑ User Interface (UI) mainly performs two functions − ❑ Accepting the user’s input ❑ Displaying the output 25
  • 26. Cont… ❑ User interface plays a crucial role in any software system. It is possibly the only visible aspect of a software system as: ❑ Users will initially see the architecture of software system’s external user interface without considering its internal architecture. ❑ A good user interface must attract the user to use the software system without mistakes. It should help the user to understand the software system easily without misleading information. A bad UI may cause market failure against the competition of software system. ❑ UI has its syntax and semantics. The syntax comprises component types for look & feel such as textual, icon, button etc. and usability summarizes the semantics of UI. ❑ There are basically two major kinds of user interface − a) Text-based/command-line UI b) Graphical UI ❑ Software in different domains may require different style of its user interface 26
  • 27. Graphical User Interface ❑ A graphical user interface is the most common type of user interface available today. ❑ It is a very user friendly because it makes use of pictures, graphics, and icons hence why it is called 'graphical'. ❑ It is also known as a WIMP interface because it makes use of: ❑ Windows − A rectangular area on the screen where the commonly used applications run. ❑ Icons − A picture or symbol which is used to represent a software application or hardware device. ❑ Menus − A list of options from which the user can choose what they require. ❑ Pointers − A symbol such as an arrow which moves around the screen as user moves the mouse. It helps user to select objects. 27
  • 28. Elements of UI ❑ To perform user interface analysis, the practitioner needs to study and understand four elements: ❑ The users who will interact with the system through the interface ❑ The tasks that end users must perform to do their work ❑ The content that is presented as part of the interface ❑ The work environment in which these tasks will be conducted 28
  • 29. Levels of UI Design ❑ The design of a user interface is often divided into four different levels. ❑ The conceptual level − It describes the basic entities considering the user's view of the system and the actions possible upon them. ❑ E.g. To use the text editor user needs to know about characters, paragraphs, line heights, etc. and actions they can do with them such as copy and paste. ❑ The semantic level − It describes the functions performed by the system i.e. description of the functional requirements of the system, but does not address how the user will invoke the functions. ❑ You define all semantic specification for each action identified in the conceptual level including description of the function, its parameters, feedback user gets and possible errors. ❑ E.g. Text editor copy and paste function has parameters which tells what characters to copy and from where, which characters are copied and shows error. 29
  • 30. Levels of UI Design… ❑ The syntactic level − It describes the sequences of inputs and outputs required to invoke the functions described. ❑ Formally define the syntax using state diagrams. ❑ The lexical level − It determines how the inputs and outputs are actually formed from primitive hardware operations. ❑ The lexical level design defines each of the actions identified in the syntactic level (the "tokens") in terms of actual hardware or system operations. ❑ E.g. In text editor user can select the text with a mouse and can click a button which copies selected text on to clipboard. 30
  • 31. Steps of UI Design ❑ User interface design is an iterative process, where all the iteration explains and refines the information developed in the preceding steps. ❑ General steps for user interface design − ❑ Defines user interface objects and actions (operations). ❑ Defines events (user actions) that will cause the state of the user interface to change. ❑ Indicates how the user interprets the state of the system from information provided through the interface. ❑ Describe each interface state as it will actually look to the end user. 31
  • 32. User Interface Development Process 32 ❑The analysis and design process for UIs is iterative and can be represented using a spiral model. ❑The user interface analysis and design process encompasses four distinct framework activities:
  • 33. Cont… Interface Analysis: It concentrates or focuses on users, tasks, content, and work environment who will interact with the system. It defines the human - and computer-oriented tasks that are required to achieve system function. Interface Design: It defines a set of interface objects, actions, and their screen representations that enable a user to perform all defined tasks in a manner that meets every usability objective defined for the system. Interface Construction: It starts with a prototype that enables usage scenarios to be evaluated and continues with development tools to complete the construction. 33
  • 34. Cont… Interface Validation: It focuses on the ability of the interface to implement every user task correctly, accommodate all task variations, to achieve all general user requirements, and the degree to which the interface is easy to use and easy to learn. 34 ❑ Once the first prototype is built, the designer can collect a variety of qualitative and quantitative data that will assess in evaluating the interface. ❑ Questions can be a simple Y/N response, numeric response, scaled response, Likert scale (strongly agree, etc.), percentage response, and open-ended ones.
  • 35. User Interface Models Four different models come into play when a user interface is to be analyzed and designed: ❑ User model: a profile of all end users of the system Users can be categorized as: • Novices: No syntactic and little semantic knowledge of the system. • Knowledgeable, intermittent users: reasonable knowledge of the system. • Knowledgeable, frequent users: good syntactic and semantic knowledge of the system. ❑ Design model: a design realization of the user model that incorporates data, architectural, interface, and procedural representations of the software. ❑ Mental model (system perception): the user’s mental image of what the interface is. The user’s mental model shapes how the user perceives the interface and whether the UI meets the user’s needs. ❑ Implementation model: the interface “look and feel of the interface” coupled with all supporting information (documentation) that describes interface syntax and semantics. 35
  • 36. Design Considerations of User Interface ❑ User Centered: A user interface must be a user-centered product which involves users throughout a product’s development lifecycle. The prototype of a user interface should be available to users and feedback from users, should be incorporated into the final product. ❑ Simple and Intuitive: UI provides simplicity and intuitiveness so that it can be used quickly and effectively without instructions. GUI is better than textual UI, as GUI consists of menus, windows, and buttons and is operated by simply using mouse. ❑ Place Users in Control: Do not force users to complete predefined sequences. ❑ Give them options—to cancel or to save and return to where they left off. ❑ Provide users with some indication that an action has been performed, either by showing them the results of the action, or acknowledging that the action has taken place successfully. 36
  • 37. Cont.. ❑ Transparency: UI must be transparent that helps users to feel like they are reaching right through computer and directly manipulating the objects they are working with. The interface can be made transparent by giving users work objects rather than system objects. ❑ Use Progressive Disclosure: Always provide easy access to common features and frequently used actions. Hide less common features and actions and allow users to navigate them. Do not try to put every piece of information in one main window. Use secondary window for information that is not key information. ❑ Consistency: UI maintains the consistency within and across product, keep interaction results the same, UI commands and menus should have the same format, command punctuations should be similar and parameters should be passed to all commands in the same way. 37
  • 38. Cont.… ❑ Integration: The software system should integrate smoothly with other applications such as MS notepad and MS-Office. It can use Clipboard commands directly to perform data interchange. ❑ Component Oriented: UI design must be modular and incorporate component oriented architecture so that the design of UI will have the same requirements as the design of the main body of the software system. ❑ Customizable: The architecture of whole software system incorporates plug-in modules, which allow many different people independently extend the software. It allows individual users to select from various available forms in order to suit personal preferences and needs. ❑ Reduce Users’ Memory Load: Whenever possible, the system should “remember” pertinent information and assist the user with an interaction scenario that assists recall. ❑ Separation: UI must be separated from the logic of the system through its implementation for increasing reusability and maintainability. 38