尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
SlideShare a Scribd company logo
CS8494 – Software Engineering
III Year / V Semester
UNIT III
SOFTWARE DESIGN
Design process – Design Concepts-Design
Model– Design Heuristic – Architectural
Design -Architectural styles, Architectural
Design, Architectural Mapping using Data
Flow- User Interface Design: Interface
analysis, Interface Design –Component level
Design: Designing Class based components,
traditional Components.
SOFTWARE DESIGN
 Software design is a model of software which
translates the requirements into finished software
product.
 Software design model consists of 4 designs:
 Data/class Design
Architectural Design
Interface Design
Component Design
SOFTWARE DESIGN
 Analysis model:
 Scenario based elements
 Class based elements
 Behavioral elements
 Flow oriented elements.
SOFTWARE DESIGN
 Translating Analysis -> Design
Software Design
 Data/class design - Created by transforming the
analysis model class-based elements into classes and
data structures required to implement the software
 Architectural design - defines the relationships among
the major structural elements of the software, it is
designed from the class-based elements and flow-
oriented elements of the analysis model.
Software Design
 Interface design - describes how the software
elements, hardware elements, and end-users
communicate with one another, - analysis
model scenario-based elements, flow-oriented
elements, and behavioral elements.
Software Design
 Why design is so important?
 It provides us with representation of software that can be
assessed for quality.
Only way that can accurately translate a customer’s
requirements into a finished software product.
It serves as foundation for all software engineering
activities.
Without design difficult to assess: Risk , Test, Quality
Design Process
 S/w design is an iterative process through
which requirements are translated into a
“blueprint” for constructing the s/w.
As design iteration occur, subsequent
refinement leads to design representation at
much lower levels of abstraction
Design Process
 Characteristics of Good Design:
 The good design should implement all the
requirements specified by the customer.
 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.
Design Process
 Characteristics of Good Design:
 The design should be simple enough so that the
software can be understood easily by the developers,
testers and customers.
 The design should provide a complete picture of the
software, addressing the data, functional, and
behavioral domains from an implementation
perspective.
Design Process
 Quality Guideline:
 The design architecture should be created using
following issues:
 The design should be created using architectural styles and
patterns.
 The implementation of design should be evolutionary, so
that testing can be performed at each phase of
implementation.
Design Process
 Quality Guideline:
 In the design the data, architecture, interfaces
and components should be clearly represented.
 The design should be modular.
 The data structure should be appropriately
chosen for the design of specific problem.
Design Process
 Quality Guideline:
 The components should be used in the design so
that functional independency can be achieved in
the design.
 The interfaces in the design should be such that
the complexity between the connected
components of the system gets reduced.
Design Process
 Quality Attributes (FURPS Model):
 Functionality – It can be checked by assessing
the set of features and capabilities of the
functions.
 Usability – It can be assessed by knowing the
usefulness of the system.
Design Process
 Quality Attributes (FURPS Model):
 Reliability – A measure of frequency and
severity of failure.
 Performance – The response of the system.
 Supportability – To adopt the enhancement or
changes made in the software.
Design Concepts
The software design concept provides a
framework for implementing the right
software.
Design Concepts
Abstraction:
 At the highest level of abstraction – a solution
is stated in broad terms
At lower level of abstraction – a more detailed
description of the solution is provided
Design Concepts
Abstraction – Types:
 Procedural Abstraction:
 Sequence of instructions in the specific function.
 Functionality of procedure is mentioned by its
implementation details are hidden.
 Ex: Search the record
Design Concepts
Abstraction – Types:
 Data Abstraction:
 collection of data that describes a data object.
 Search the record – record is the data
Design Concepts
Modularity:
 Software is divided into separately named and
addressable components, sometimes called
modules, which are integrated to satisfy problem
requirement.
 Modularity is the single attribute of software that
allows a program to be intellectually manageable.
Design Concepts
Modularity:
 It leads to a “divide and conquer” strategy. – it is easier
to solve a complex problem when you break into a
manageable pieces.
 Refer fig. that state that effort (cost) to develop an
individual software module does decrease if total
number of modules increase.
 However as the no. of modules grows, the effort (cost)
associated with integrating the modules also grows.
Design Concepts
Modularity:
Design Concepts
Modularity – Criteria:
 Modular decomposability: A design method
provides a systematic mechanism for
decomposing the problem into sub-problems.
 Modular Composability: It enables existing
design components to assembled into s new
system.
Design Concepts
Modularity – Criteria:
 Modular Understandability: A module can be
understood as a standalone unit.
 Modular Continuity: Changes to individual modules.
 Modular protection: Effects are constrained within the
module.
Design Concepts
Architecture:
 Software architecture suggest the overall
structure of the software and the ways in which
that structure provides conceptual integrity for
a system
Design Concepts
Architecture – Models:
 Structural Model- represent architecture as an organized
collection of components
 Framework model – shows the architectural framework and
corresponding applicability.
 Dynamic model – address behavior of the program
architecture and indicating how system or structure
configuration may change as a function.
Design Concepts
Architecture – Models:
 Process Model – focus on design of the business or
technical process that the system must accommodate.
 Functional models – used to represent the functional
hierarchy of a system.
Design Concepts
Refinement:
 Refinement is a process of elaboration
 The architecture of a program is developed by
successively refining levels of procedural detail.
 Refinement causes the designer to elaborate on the
original statement, providing more and more detail as
each successive refinement (elaboration) occurs.
Design Concepts
Pattern:
 It acts as a design solution for a particular problem
occurring in specific domain.
 Pattern can be usable
 Pattern can be used for current work
 Pattern can be used to solve similar kind of problem
with different functionality.
Design Concepts
Information Hiding:
 It is the important property of modular design.
 The modules are designed in such a way that
information contained in one module cannot be
accessible to the other module.
 Only limited amount of information can be passed to
other module
Design Concepts
Information Hiding:
 The intent of information hiding is to hide the details of
data structure and procedural processing behind a module
interface.
 It gives benefits when modifications are required during
testing and maintenance because data and procedure are
hiding from other parts of software, unintentional errors
introduced during modification are less
Design Concepts
Functional Independence:
 It can be achieved by developing the functional
modules with single-minded approach.
 Independent modules are easier to maintain with
reduced error propagation.
 Benefit: To achieve effective modularity
 Qualitative criteria – Cohesion and Coupling
Design Concepts
Functional Independence – Cohesion:
 The information hiding can be done.
 It performs only “one task” in software
procedure with little interaction with other
modules.
Design Concepts
Functional Independence – Cohesion:
 Coincidentally cohesive: The set of tasks are related
with each other modules loosely.
 Logically cohesive: A module that performs the tasks
that are logically related with each other.
 Temporal cohesive: The module in which the tasks
need to be executed in some specific time span.
Design Concepts
Functional Independence – Cohesion:
 Procedural cohesive: when processing elements
of a module are related with one another and must
be executed in some specific order.
 Communicational cohesion: when processing
elements of a module share the data.
Design Concepts
Functional Independence – Coupling:
 It represents how the modules can be “connected” with
other module or with the outside world.
 It is a measure of interconnection among modules in a
program structure.
 It depends on the interface complexity between modules.
 The goal is to strive for lowest possible coupling among
modules in software design.
Design Concepts
Functional Independence – Coupling:
Design Concepts
Functional Independence – Coupling:
 Data Coupling: It is possible by parameter passing or data
interaction.
 Control coupling: It shares related control data
 Common coupling: common data or a global data is shared
among the modules
 Content coupling: It occurs when on module makes use of
data or control information maintained in another module.
Design Concepts
Refactoring:
 For simplifying the design without changing the
function or behavior.
 “The process of changing a software system in
such a way that the external behavior of the
design do not get changed, however the internal
structure gets improved. ”
Design Concepts
Refactoring – Benefits:
 The redundancy can be achieved.
 Inefficient algorithms can be eliminated
 Inaccurate data structures can be removed or
replaced.
Design Concepts
 Design Classes:
 The classes that describe some elements of problem
domain, focus on various aspects of problem from user’s
point of view.
 To refine the analysis classes by providing the detail
design, so that further implementation can be done easily.
 To create new set of classes for implementing the
infrastructure of the software.
Design Concepts
Design Classes – Types:
 User interface class: A visual representation of
the HCI.
 Business Domain class: Identify the attributes
and service that are needed to implement some
elements of business domain.
Design Concepts
Design Classes – Types:
 Process Class: It implements lower level
business abstractions used by the business
domain.
 Persistent Class: represent the data store.
Design Concepts
Design Classes – Types:
 System Class: responsible for software
management and control functions that are
used for system operation.
 Characteristics: Complete and efficient, High
cohesion and low coupling.
Design Model
 Data design elements
 The data design element produced a model of data that
represent a high level of abstraction.
This model is then more refined into more implementation
specific representation which is processed by the computer
based system.
The structure of data is the most important part of the
software design.
Design Model
Architectural design elements
 The architecture design elements provides us overall
view of the system.
The architectural design element is generally
represented as a set of interconnected subsystem that
are derived from analysis packages in the requirement
model.
Design Model
Architectural design elements-Sources
 The information about the application domain to built
the software.
Requirement model elements like data flow diagram or
analysis classes, relationship and collaboration
between them.
The architectural style and pattern as per availability.
Design Model
Interface design elements:
 The interface design elements for software
represents the information flow within it and out of
the system.
They communicate between the components
defined as part of architecture.
Design Model
Interface design elements – Elements:
 The user interface - GUI
The external interface to the other systems, networks
etc.
The internal interface between various components –
Ex: Classes can communicate with each other by
operations or by passing messages
Design Model
 Component level diagram elements:
 The component level design for software is similar to the
set of detailed specification of each room in a house.
 It describes the internal details of the each software
component.
 The processing of data structure occurs in a component
and an interface which allows all the component
operations.
Design Model
Component level diagram elements:
 The UML diagram is used to represent the
processing logic.
Design Model
Deployment level design elements:
 It shows the software functionality and subsystem
that allocated in the physical computing
environment which support the software.
Design Model
Deployment level design elements:
Design Heuristic
Evaluate the first iteration of the program
structure to reduce the coupling and improve
cohesion:
 Exploding and imploding modules
Design Heuristic
Attempt to minimize the structures with high
fan-out and strive for fan-in as depth increases:
 Fan-out: number of immediate subordinates to the
module
 Fan-in: number of immediate relations the module
have.
Design Heuristic
Keep scope of the effect of a module within
the scope of control of that module:
 Module ‘A’ should not affect the module ‘b’
Design Heuristic
Evaluate the module interfaces to reduce
complexity and redundancy and improve
consistency.
 Define module whose function is predictable but
avoid modules that are too restrictive.
 Strive for controlled entry modules by avoiding
pathological connections.
Introduction to Architectural Design
 A design created to represent the data and
program components that are required to build the
computer based systems.
 It considers the system’s structure and properties
of the system components.
 The person who is responsible to design –
Software Architect.
Introduction to Architectural Design
 Software Architecture:
“A structure of systems which consists of various
components, externally visible properties of these
components and the inter-relationship among these
components”
Introduction to Architectural Design
 Software Architecture:
 To establish the overall structure of software
system.
 The link between design specification and actual
design process.
Introduction to Architectural Design
 Software Architecture – Structural Partitioning:
 Horizontal partitioning:
 It defines separate branches of the modular hierarchy
for each major program function.
 It defines three partitions—input, data transformation
(often called processing) and output.
Introduction to Architectural Design
Introduction to Architectural Design
 Software Architecture – Structural Partitioning:
 Horizontal partitioning – Benefits:
 software that is easier to test
software that is easier to maintain
propagation of fewer side effects
software that is easier to extend
Introduction to Architectural Design
 Software Architecture – Structural
Partitioning:
 Vertical partitioning: It suggests the control
and work should be distributed top-down in
program structure
Introduction to Architectural Design
 Software Architecture – Structural Partitioning:
 Vertical partitioning:
 Top-level modules should perform control functions
and do little actual processing work.
 Low-level modules in the structure should be the
workers, performing all input, computation, and output
tasks.
Data Design
 The model of the data that is represented at
the high level of abstraction.
Elements:
 Data Object: Use ER diagram or Data Dictionary
 Databases
 Data warehouses
Data Design
 Guideline for data design:
 Apply systematic analysis on data
 Identify the data structures and related operations
 Establish data dictionary
 Define the low level design decisions until late in
the design process
Data Design
 Guideline for data design:
 Use information hiding in the design of the data
structures
 Apply a library of useful data structures and
operations
 Use a software design and programming to support
data specification and abstraction
Architectural Style
It is a pattern for creating the system
architecture for given problem.
Components: It performs a function required
by a system. Ex: a database, computational
modules, clients and servers.
Architectural Style
Connectors: It enables “communication, co-
ordinations and cooperation” among components.
 Constraints that define how components can be
integrated to form the system.
 Semantic models that enable a designer to
understand the overall properties of a system.
Architectural Style
Data-centered architecture:
Architectural Style
Data-centered architecture:
 A data store (e.g., a file or database) resides at the
center of this architecture and is accessed frequently
by other components that update, add, delete, or
otherwise modify data within the store.
Client software accesses a central repository without
any change in data.
Architectural Style
Data-centered architecture:
 It posses the property of interchangeability.
 Any component from the architecture can be
replaced by a new component without affecting the
working of other components.
 The data can be passed among components.
Architectural Style
 Data Flow architecture – Pipe and Filter:
When input data are to be transformed through a series of
computational components into output data.
Architectural Style
 Data Flow architecture – Pipe and Filter:
A pipe and filter pattern has a set of components, called filters,
connected by pipes that transmit data from one component to the
next.
 Each filter works independently (i.e. upstream, downstream)
and is designed to expect data input of a certain form, and
produces data output (to the next filter) of a specified form.
The filter does not require knowledge of the working of its
neighboring filters.
Architectural Style
 Data Flow architecture – Batch Sequential:
 If the data flow degenerates into a single line of
transforms, it is termed batch sequential.
Architectural Style
 Call and return architecture:
Architectural Style
 Call and return architecture:
 Architecture style enables a software designer (system
architect) to achieve a program structure that is relatively
easy to modify and scale.
 Main/sub program architecture: Program structure
decomposes function into a control hierarchy where a
“main” program invokes a number of program components,
which in turn may invoke still other components
Architectural Style
Object-oriented architecture:
The object-oriented paradigm, like the abstract data type
paradigm from which it evolved, emphasizes the bundling of
data and methods to manipulate and access that data (Public
Interface).
Components of a system summarize data and the operations that
must be applied to manipulate the data.
Communication and coordination between components is
accomplished via message passing
Architectural Style
Layered Architecture:
Architectural Style
Layered Architecture:
 A number of different layers are defined, each
accomplishing operations that progressively become closer
to the machine instruction set.
At the outer layer, components examine user interface
operations.
Architectural Style
Layered Architecture:
 At the inner layer, components examine operating system
interfacing.
Intermediate layers provide utility services and application
software functions.
Architectural Patterns
 An approach for handling behavioural characteristics of
software systems.
 Domains:
 Concurrency: Handling multiple tasks in parallel.
 Persistence: The data used in earlier execution can be made
available further by storing it in files.
 Distribution: The system components communicate with each
other.
Architectural Design
 The design should define the external entities (other systems,
devices, people) that the software interacts with and the nature
of the interaction.
 This information can generally be acquired from the
requirements model and all other information gathered during
requirements engineering.
 The designer specifies the structure of the system by defining
and refining software components that implement each
archetype.
Architectural Design
 Representing the System in Context
 At the architectural design level, a software architect uses
an architectural context diagram (ACD) to model the
manner in which software interacts with entities external to
its boundaries.
Architectural Design
 Representing the System in Context
Architectural Design
 Representing the System in Context
 Super ordinate systems : systems that use the target system as
part of some higher-level processing scheme.
 Subordinate systems: Systems that are used by the target system
and provide data or processing that are necessary to complete
target system functionality.
 Peer-level systems:Systems that interact on a peer-to- peer basis.
 Actors: entities (people, devices) that interact with the target
system by producing or consuming information.
Architectural Design
 Defining Archetypes
 An archetype is a class or pattern that represents a core
abstraction that is critical to the design of an architecture
for the target system.
 A relatively small set of entities is required to design even
relatively complex systems.
 For example, an archetype for a car: wheels, doors, seats,
engine In software engineering
Architectural Design
 Defining Archetypes:
 Node : Represents a cohesive collection of input and
output elements.
 Detector : An abstraction that covers all sensing
equipment that feeds information into the target
system.
Architectural Design
 Defining Archetypes:
 Indicator: An abstraction that represents all
mechanisms (e.g., alarm siren, flashing lights, bell)
for indicating that an alarm condition is occurring.
 Controller. An abstraction that describes the
mechanism that allows the arming (Supporting) or
disarming of a node
Architectural Design
 Refining the Architecture into Components
 As the software architecture is refined into components.
 Analysis classes represent entities within the application
(business) domain that must be addressed within the
software architecture.
 In some cases (e.g., a graphical user interface), a
complete subsystem architecture with many components
must be designed.
Architectural Design
 Refining the Architecture into Components
 External communication management
 Control panel processing
 Detector management
 Alarm processing
Architectural Design
 Describing Instantiations of the System
The overall structure of the system is apparent, and the
major software components have been identified.
However, further refinement is still necessary.
 To accomplish this, an actual instantiation of the
architecture is developed. It means, again it simplify by
more details.
Architectural Mapping using Data
Flow
 Transform flow: A sequence of paths which forms
transition in which input data are transformed into
output data.
 Transaction flow: The information flow in which
single data item triggers the overall information flow
along the multiple paths.
Architectural Mapping using Data
Flow
 Transform flow – Automated Railway Reservation
System:
 Registers for the using the system
 Make the train enquiry
 Can view the status of reservation by entering PNR number.
 Can make the reservations
 Can cancel the reservations
Architectural Mapping using Data
Flow
 Transform flow:
A collection of design steps using which a DFD
containing transform flow characteristics is mapped
into specific architectural style.
Architectural Mapping using Data
Flow
 Transform flow:
 Step 1: Review fundamental system model to
identify information flow:
 Obtained from System Specification and SRS.
Architectural Mapping using Data
Flow
 Transform flow - Step 2: Review and refine the data
flow diagram for software:
Architectural Mapping using Data
Flow
 Transform flow - Step 2: Review and refine the data
flow diagram for software:
Architectural Mapping using Data
Flow
 Transform flow - Step 3: Determine if the DFD has
the transform or transaction flow characteristics:
 The information flow within the system is usually
represented as transform flow.
 If draw level 3 DFD for the process Make Reservation
then the transformation flow can be identified.
Architectural Mapping using Data
Flow – Step 3
Architectural Mapping using Data
Flow
 Transform flow - Step 4: Isolate the transform center
by specifying incoming and outgoing flow
boundaries:
 Separate out the incoming and outgoing flow boundaries
and the transform center can be identified.
Architectural Mapping using Data
Flow – Step 4
Architectural Mapping using Data
Flow
 Transform flow - Step 5: Perform first level factoring:
 It results in top down architecture.
 Top level – Perform decision making
 Low level – perform most input, computation and output.
 Middle level – perform some control and some amount
of work.
Architectural Mapping using Data
Flow
 Transform flow - Step 5: Perform first level
factoring:
Architectural Mapping using Data
Flow
 Transform flow
Step 6: Perform second level factoring:
 Individual bubble of DFD is mapped into appropriate
module within architecture
Architectural Mapping using Data
Flow
 Transform flow – Step 6: Perform second level
factoring:
Architectural Mapping using Data
Flow
 Transform flow
 Step 7: Refine the first iteration architecture using
design heuristics for improved software quality:
 Refined by applying the module independency
 It always follows “High Cohesion and Low Coupling”
Architectural Mapping using Data
Flow
 Transform flow - Step 7: Refine the first iteration
architecture using design heuristics for improved
software quality:
Architectural Mapping using Data
Flow
 Transaction flow :
 A single data item leads to one or more information flows.
 Each information flow specifies some distinct
functionality – Transaction center.
Architectural Mapping using Data
Flow
 Transaction flow – Design Steps:
 Review fundamental system model to identify information
flow.
 Review and refine the data flow diagram for software.
 Determine if the DFD has the transform or transaction
flow characteristics.
Architectural Mapping using Data
Flow
 Transaction flow – Design Steps:
 Identify the transaction center and flow
characteristics along each of the action paths.
 To identify the location of transaction centre.
 Ex: User selects Book Ticket, Ticket Enquiry options.
There can be multiple action paths fanning out from the
transaction center.
Architectural Mapping using Data
Flow
 Transaction flow – Design Steps - Identify the
transaction center and flow characteristics along each
of the action paths.
Architectural Mapping using Data
Flow
 Transaction flow – Design Steps:
 Map DFD into transaction processing structure:
 The identified transaction flow is mapped into an
architecture that contains an incoming branch and a
dispatcher branch.
 The corresponding bubbles on incoming path are mapped
into the appropriate modules.
Architectural Mapping using Data
Flow
 Transaction flow – Design Steps - Map DFD into
transaction processing structure:
Architectural Mapping using Data
Flow
 Transaction flow – Design Steps:
 Factor and refine the transaction structure and
structure of each action path:
 Action path related sub structure is developed.
Architectural Mapping using Data
Flow
 Transaction flow – Design Steps- Factor and refine
the transaction structure and structure of each action
path:
Architectural Mapping using Data
Flow
 Transaction flow – Design Steps:
Refine the first iteration architecture using design
heuristics for improved software quality :
 Refined by applying the module independency
 It always follows “High Cohesion and Low Coupling”
User Interface Design
 User interface design creates an effective
communication medium between a human and a
computer.
 Follows a set of interface design principles, design
identifies interface objects and actions and then
creates a screen layout that forms the basis for a user
interface prototype.
User Interface Design
 Advantages:
 The user interface systems provide fast and intuitive
interactions to the user. The new user can easily operate the
system.
 As in user interface design, menus are provided, it avoids typing
mistakes.
 The user interface helps in simple data entry.
 It provides the flexibility in switching from one task to another.
User Interface Design
 Golden Rules:
 Place the user in control
Reduce the user’s memory load
Make the interface consistent
User Interface Design
 Golden Rules - Place the user in control:
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
User Interface Design
 Golden Rules - Place the user in control:
 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.
 Allow user to customize the interaction
Users often find that they perform the same sequence of
interactions repeatedly.
User Interface Design
 Golden Rules - Place the user in control:
 Hide technical internals from the casual user
The interface should never require that the user interact at a level
that is “inside” the machine.
 The objects appearing on the screen should be interactive
with the user
User should be in position to adjust the object appearing on the
screen.
User Interface Design
 Golden Rules - 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 and results.
 Establish meaningful defaults
a “reset” option should be available, enabling the
redefinition of original default values.
User Interface Design
 Golden Rules - Reduce the User’s Memory Load:
Define shortcuts that are intuitive
Shortcuts are required in the user interface
 The visual layout of the interface should be realistic
It helps a causal user to handle the system with ease.
 Disclose the information gradually
 The interface should be organized hierarchically.
User Interface Design
 Golden Rules - Make the Interface Consistent:
 The interface should present and acquire information in a
consistent fashion.
 All visual information is organized according to a design standard that
is maintained throughout all screen displays.
 Input mechanisms are constrained to a limited set that are used
consistently throughout the application
 Navigating from task to task are consistently defined and implemented
User Interface Design
 Golden Rules - Make the Interface Consistent:
 Allow the user to put the current task into a meaningful
context.
A user interface with proper indicators
 Maintain consistency across a family of applications.
A set of applications (or products) should all implement the same
design rules so that consistency is maintained for all interaction.
User Interface Design
 Golden Rules - Make the Interface Consistent:
 If certain standards are maintained in previous model
of application do not change it until and unless it is
necessary.
 Once a particular interactive sequence has become a de
facto standard (e.g., the use of alt-S to save a file)
User Interface Design
 Models:
 User model — To understand the user who is using the
system.
 The profile of all end users of the system ( Considering
Age, Gender, Educational and cultural background)
 Users: Novice, Knowledgeable and intermittent and
Knowledgeable and frequent
User Interface Design
 Models:
 Design Model –Data, Architectural, Interface and
Procedural representation of the software.
 Requirement specification must be used properly to
set the system constraints.
User Interface Design
 Models:
 Mental Model – The representation of what user
thinks about the system?
 If the user is knowledgeable then more complete
description of the system can be obtained that of
novice user.
User Interface Design
 Models:
 Implementation Model – It generates the look and
feel of interface.
 User can feel comfortable with the developed system
User Interface Design – The Process
 Activities:
 Environment analysis and modeling
 Interface Design
 Implementation
 Interface validation
User Interface Design – The Process
 Activities - Environment analysis and modeling:
 Factors:
 User profile is analysed to understand the user and to elicit the
requirements.
 The tasks that are required to carry out desired functionality
are identified and analysed.
 Environment which involves the physical work environment.
User Interface Design – The Process
 Activities – Interface Design: All the interface
objects and corresponding actions of each task are
defined.
 Implementation: Creation of prototype using which
the interface scenarios can be evaluated.
 Validation: To validate the interface for its correct
performance.
User Interface Design
 Interface Analysis:
 Interface analysis means understanding
The people (end-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 environment in which these tasks will be conducted.
User Interface Design
 Interface Analysis:
User Analysis – what the user wants from the UI:
 User interviews: Representatives from software team
meet the end user to better understand the user needs,
motivations and many other issues.
 Meeting are conducted for this purpose.
User Interface Design
 Interface Analysis - User Analysis – what the user
wants from the UI:
 Sales input:
 Sales people interact with the users regularly and collect
the information
 Users are categorized in groups and thereby their
requirements are better understood.
User Interface Design
 Interface Analysis - User Analysis – what the user
wants from the UI:
 Marketing input:
 To understand the usage of software
User Interface Design
 Interface Analysis - User Analysis – what the user
wants from the UI:
 Support input:
 Support staff keeps a regular interaction with the user
interaction for knowing the certain things likings and
dislikes of the user.
User Interface Design
 User Analysis:
 Are users trained professionals, technician, clerical, or
manufacturing workers?
What level of formal education does the average user have?
Are the users capable of learning from written materials or have
they expressed a desire for classroom training?
Are users expert typists or use of keyboard?
What is the age range of the user community?
User Interface Design
 User Analysis:
 Will the users be represented predominately by one gender?
How are users compensated for the work they perform?
Do users work normal office hours or do they work until the job
is done?
Is the software to be an integral part of the work users do or will
it be used only occasionally?
What is the primary spoken language among users?
User Interface Design
 Task Analysis and modeling:
 What work will the user perform in specific circumstances?
What tasks and subtasks will be performed as the user does the
work?
What specific problem domain objects will the user manipulate
as work is performed?
What is the sequence of work tasks—the workflow?
What is the hierarchy of tasks?
User Interface Design
 Task Analysis and modeling – Techniques:
 Use cases: It describes interaction between user and
system.
It shows how the end user performs specific work
related task.
User Interface Design
 Task Analysis and modeling – Techniques:
 Task Elaboration – Stepwise refinement of the processing task
is done.
 Object Elaboration – Extract information about the physical
objects. These objects are further classified into classes.
 Workflow analysis defines how a work process is completed
when several people (and roles) are involved. Ex: Swimlane
Diagram.
User Interface Design
 Task Analysis and modeling – Techniques:
 Hierarchical representation – The task hierarchy for each
user type should be specified.
 Fill reservation Form:
 Personal Info: Specify name, Specify age, Desired source city,
Desired destination city, Date and time
 Reservation details: Age, Source City, Destination City, Seat
numbers, Type of reservation and Name of the train.
User Interface Design
 Analysis of Display Content:
 The display contents can be spreadsheets, pictures, a graph
and audio or video files.
 The format and nature of the display contents are
considered.
User Interface Design
 Analysis of Display Content:
 Are different types of data assigned to consistent
geographic locations on the screen.
 Can the user customize the screen location for content?
 Is proper on-screen identification assigned to all content?
 If a large report is to be presented, how should it be
partitioned for ease of understanding?
User Interface Design
 Analysis of Display Content:
 Will mechanisms be available for moving directly to summary
information for large collections of data.
 Will graphical output be scaled to fit within the bounds of the
display device that is used?
 How will color to be used to enhance understanding?
How will error messages and warning be presented to the user?
User Interface Design
 Analysis of work environment:
 There may be interactive presentation of the information,
proper lighting, good display height, easy keyboard access,
proper sitting arrangement.
User Interface Design
 Interface Design:
 Using information developed during interface analysis, define
interface objects and actions (operations).
Define events (user actions) that will cause the state of the user
interface to change. Model this behavior.
Depict each interface state as it will actually look to the end-user.
Indicate how the user interprets the state of the system from
information provided through the interface.
User Interface Design
 User interface Design Pattern:
Pattern Description
TopLevelNavigation It enables direct navigation to any of the system’s
major functions
Fill-in-the-Blanks Allow alphanumeric data to be entered in a “text box.”
SortableTable Display a long list of records that can be sorted by
selecting a toggle mechanism for any column label.
SimpleSearch ability to search a website
Wizard the completion of the task through a series of simple
window displays.
ShoppingCart Provides a list of items selected for purchase
ProgressIndicator Provides an indication of progress when an operation
takes longer than n seconds
User Interface Design
 Design Issues:
 System Response Time:
 It is measured from the point at which the user performs
some control action until the software responds with
desired output or action.
 Characteristics – Length: Amount of time taken by the
system to respond
 Variability: the deviation from average response time
User Interface Design
 Design Issues:
 Help facilities:
 User manuals
 Online help facilities that enable a user to get a question
answered or resolve a problem without leaving the interface
User Interface Design
 Design Issues -Error handling –Message Characteristics:
 The message should describe the problem in terminology that
the user can understand
 There should be some useful message along with error in order
to recover from the error.
 There should be some audible or visual cue along with the error
message.
 There should not be any negative impact of error on the user.
 The wording of the error should be carefully used
User Interface Design
 Design Issues:
 Menu and command labeling:
 The typed command was once the most common mode of
interaction between user and system software
 The use of window-oriented, point-and pick interfaces has
reduced reliance on typed commands
User Interface Design
 Design Issues:
 Application accessibility:
 Software engineers must develop a mechanism by which
the most frequently required applications must be availed
easily.
 Accessibility for users who may be physically challenged
is an imperative for ethical, legal, and business reasons.
User Interface Design
 Design Issues:
 Internationalization:
 “globalized” software - user interfaces should be designed to
accommodate a generic core of functionality that can be
delivered to all who use the software.
 Localization features enable the interface to be customized for a
specific market.
 The Unicode standard has been developed for characters and
symbols.
Component Level Design
 OMG UML Specification defines a component as
“a modular, deployable, and replaceable part of a
system that encapsulates implementation and exposes
a set of interfaces”
Component Level Design
 Designing Class based Components
 Component is represented as a part of architectural model. It
collects the information about the system as a part of analysis
model.
 OO View: a component contains a set of collaborating classes
 The detailed description of attributes, operations and interfaces
of these infrastructure classes is required during the system
building.
Component Level Design
 Design Principles:
 Open-Closed Principle: A module should be open for extension but
closed for modification.
 Liskov Substitution Principle: Subclasses should be substitutable
for their base classes.
 Dependency Inversion Principle: Depend on abstractions. Do not
depend on concrete component.
 Interface Segregation Principle: Many client-specific interfaces are
better than one general purpose interface
Component Level Design
 Design Guidelines:
 Components:
 Naming conventions should be established for components
that are specified as part of the architectural model and then
refined and elaborated as part of the component-level
model.
Component Level Design
 Design Guidelines:
 Interfaces - provide important information about
communication and collaboration.
 Dependencies and Inheritance:
 Dependencies from left to right - inheritance from
bottom(derived classes) to top(base classes)
Structured Programming
 Three constructs:
 Sequence: A linear processing of the statements
 Condition: To test the logical conditions
 Repetition: To denote the looping
 Advantages:
 reduces program complexity
 enhances readability, testability and maintainability
Structured Programming
 Graphical Design Notations – Flow Chart:
Structured Programming
 Graphical Design Notations –Box Diagram:
 Nassi-Shneiderman charts, N-S charts, or Chapin charts –
Characteristics:
 Functional domain (that is, the scope of repetition or if-then-else) is
well defined and clearly visible as a pictorial representation
 Arbitrary transfer of control is impossible
 The scope of local and/or global data can be easily determined
 Recursion is easy to represent
Structured Programming
 Graphical Design Notations –Box Diagram:
 Nassi-Shneiderman charts, N-S charts, or Chapin
charts:
Structured Programming
 Tabular Design Notations:
Decision tables provide a notation that translates actions and conditions
into a tabular form.
 Sections:
 The upper left-hand quadrant contains a list of all conditions.
 quadrant contains a list of all actions
 The right-hand quadrants form a matrix that indicates condition
combinations
 the corresponding actions that will occur for a specific combination
Structured Programming
 Tabular Design Notations:
Structured Programming
 Tabular Design Notations:
List all actions that can be associated with a specific procedure
(or module).
List all conditions (or decisions made) during execution of the
procedure.
Associate specific sets of conditions with specific actions,
eliminating impossible combinations
Define rules by indicating what action(s) occurs for a set of
conditions
Structured Programming
 Program Design Language:
 It is a pseudo code or structured English.
 to translate the design into the programming language.
Structured Programming
 Program Design Language:
 Easy to combine with source code
Can be represented in great detail
Machine readable, no need for graphics input
Graphics can be generated from PDL
Enables declaration of data as well as procedure
Easier to review and maintain

More Related Content

What's hot

Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
Cliftone Mullah
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
naina-rani
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
Simran Kaur
 
Software design
Software designSoftware design
Software design
Zulqarnaintayyab
 
Model Based Software Architectures
Model Based Software ArchitecturesModel Based Software Architectures
Model Based Software Architectures
Munazza-Mah-Jabeen
 
Real time and distributed design
Real time and distributed designReal time and distributed design
Real time and distributed design
priyapavi96
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
Preeti Mishra
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
Hassan A-j
 
Uml deployment diagram
Uml deployment diagramUml deployment diagram
Uml deployment diagram
Asraa Batool
 
software cost factor
software cost factorsoftware cost factor
software cost factor
Abinaya B
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
NancyBeaulah_R
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
srijavel
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
Oliver Cheng
 
CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2
SIMONTHOMAS S
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
Umaselvi_R
 
11 deployment diagrams
11 deployment diagrams11 deployment diagrams
11 deployment diagrams
Baskarkncet
 
Design notation
Design notationDesign notation
Design notation
ramya marichamy
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
arvind pandey
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
koolkampus
 
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
malathijanapati1
 

What's hot (20)

Chapter 4 software design
Chapter 4  software designChapter 4  software design
Chapter 4 software design
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
 
Software development life cycle (SDLC)
Software development life cycle (SDLC)Software development life cycle (SDLC)
Software development life cycle (SDLC)
 
Software design
Software designSoftware design
Software design
 
Model Based Software Architectures
Model Based Software ArchitecturesModel Based Software Architectures
Model Based Software Architectures
 
Real time and distributed design
Real time and distributed designReal time and distributed design
Real time and distributed design
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Uml deployment diagram
Uml deployment diagramUml deployment diagram
Uml deployment diagram
 
software cost factor
software cost factorsoftware cost factor
software cost factor
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2
 
Modules and modularization criteria
Modules and modularization criteriaModules and modularization criteria
Modules and modularization criteria
 
11 deployment diagrams
11 deployment diagrams11 deployment diagrams
11 deployment diagrams
 
Design notation
Design notationDesign notation
Design notation
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
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
 

Similar to CS8494 SOFTWARE ENGINEERING Unit-3

Software design
Software designSoftware design
Software design
Inocentshuja Ahmad
 
design-concept.ppt
design-concept.pptdesign-concept.ppt
design-concept.ppt
MangeshKetkar1
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
puttipavan23022023
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
Satyanandaram Nandigam
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
Priyanka Shetty
 
Software design
Software designSoftware design
Software design
Benazir Fathima
 
Design final
Design finalDesign final
Design final
Indu Sharma Bhardwaj
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
Nazir Ahmed
 
Design engineering
Design engineeringDesign engineering
Design engineering
Vikram Dahiya
 
Design engineering
Design engineeringDesign engineering
Design engineering
Vikram Dahiya
 
06 fse design
06 fse design06 fse design
06 fse design
Mohesh Chandran
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
nimmik4u
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
Varsha Ajith
 
A software design creates meaningful engineering representation
A software design creates meaningful engineering representationA software design creates meaningful engineering representation
A software design creates meaningful engineering representation
Ramandeep Singh
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
Preeti Mishra
 
Pressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptPressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.ppt
MotherTheresa2
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).ppt
esrabilgic2
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
Rupesh Vaishnav
 
Software engg unit 3
Software engg unit 3 Software engg unit 3
Software engg unit 3
Vivek Kumar Sinha
 

Similar to CS8494 SOFTWARE ENGINEERING Unit-3 (20)

Software design
Software designSoftware design
Software design
 
design-concept.ppt
design-concept.pptdesign-concept.ppt
design-concept.ppt
 
rEFUP.pdf
rEFUP.pdfrEFUP.pdf
rEFUP.pdf
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
software Design.ppt
software Design.pptsoftware Design.ppt
software Design.ppt
 
Slides chapter 9
Slides chapter 9Slides chapter 9
Slides chapter 9
 
Software design
Software designSoftware design
Software design
 
Design final
Design finalDesign final
Design final
 
Chapter 08
Chapter 08Chapter 08
Chapter 08
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
06 fse design
06 fse design06 fse design
06 fse design
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
A software design creates meaningful engineering representation
A software design creates meaningful engineering representationA software design creates meaningful engineering representation
A software design creates meaningful engineering representation
 
Unit 5 design engineering ssad
Unit 5 design engineering ssadUnit 5 design engineering ssad
Unit 5 design engineering ssad
 
Pressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.pptPressman_ch_9_design_engineering.ppt
Pressman_ch_9_design_engineering.ppt
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).ppt
 
Software design, software engineering
Software design, software engineeringSoftware design, software engineering
Software design, software engineering
 
Software engg unit 3
Software engg unit 3 Software engg unit 3
Software engg unit 3
 

More from SIMONTHOMAS S

Cs8092 computer graphics and multimedia unit 5
Cs8092 computer graphics and multimedia unit 5Cs8092 computer graphics and multimedia unit 5
Cs8092 computer graphics and multimedia unit 5
SIMONTHOMAS S
 
Cs8092 computer graphics and multimedia unit 4
Cs8092 computer graphics and multimedia unit 4Cs8092 computer graphics and multimedia unit 4
Cs8092 computer graphics and multimedia unit 4
SIMONTHOMAS S
 
Cs8092 computer graphics and multimedia unit 3
Cs8092 computer graphics and multimedia unit 3Cs8092 computer graphics and multimedia unit 3
Cs8092 computer graphics and multimedia unit 3
SIMONTHOMAS S
 
Cs8092 computer graphics and multimedia unit 2
Cs8092 computer graphics and multimedia unit 2Cs8092 computer graphics and multimedia unit 2
Cs8092 computer graphics and multimedia unit 2
SIMONTHOMAS S
 
Cs8092 computer graphics and multimedia unit 1
Cs8092 computer graphics and multimedia unit 1Cs8092 computer graphics and multimedia unit 1
Cs8092 computer graphics and multimedia unit 1
SIMONTHOMAS S
 
Mg6088 spm unit-5
Mg6088 spm unit-5Mg6088 spm unit-5
Mg6088 spm unit-5
SIMONTHOMAS S
 
Mg6088 spm unit-4
Mg6088 spm unit-4Mg6088 spm unit-4
Mg6088 spm unit-4
SIMONTHOMAS S
 
Mg6088 spm unit-3
Mg6088 spm unit-3Mg6088 spm unit-3
Mg6088 spm unit-3
SIMONTHOMAS S
 
Mg6088 spm unit-2
Mg6088 spm unit-2Mg6088 spm unit-2
Mg6088 spm unit-2
SIMONTHOMAS S
 
Mg6088 spm unit-1
Mg6088 spm unit-1Mg6088 spm unit-1
Mg6088 spm unit-1
SIMONTHOMAS S
 
IT6701-Information Management Unit 5
IT6701-Information Management Unit 5IT6701-Information Management Unit 5
IT6701-Information Management Unit 5
SIMONTHOMAS S
 
IT6701-Information Management Unit 4
IT6701-Information Management Unit 4IT6701-Information Management Unit 4
IT6701-Information Management Unit 4
SIMONTHOMAS S
 
IT6701-Information Management Unit 3
IT6701-Information Management Unit 3IT6701-Information Management Unit 3
IT6701-Information Management Unit 3
SIMONTHOMAS S
 
IT6701-Information Management Unit 2
IT6701-Information Management Unit 2IT6701-Information Management Unit 2
IT6701-Information Management Unit 2
SIMONTHOMAS S
 
IT6701-Information Management Unit 1
IT6701-Information Management Unit 1IT6701-Information Management Unit 1
IT6701-Information Management Unit 1
SIMONTHOMAS S
 
CS8391-Data Structures Unit 5
CS8391-Data Structures Unit 5CS8391-Data Structures Unit 5
CS8391-Data Structures Unit 5
SIMONTHOMAS S
 
CS8391-Data Structures Unit 4
CS8391-Data Structures Unit 4CS8391-Data Structures Unit 4
CS8391-Data Structures Unit 4
SIMONTHOMAS S
 
CS8391-Data Structures Unit 3
CS8391-Data Structures Unit 3CS8391-Data Structures Unit 3
CS8391-Data Structures Unit 3
SIMONTHOMAS S
 
CS8391-Data Structures Unit 2
CS8391-Data Structures Unit 2CS8391-Data Structures Unit 2
CS8391-Data Structures Unit 2
SIMONTHOMAS S
 
CS8391-Data Structures Unit 1
CS8391-Data Structures Unit 1CS8391-Data Structures Unit 1
CS8391-Data Structures Unit 1
SIMONTHOMAS S
 

More from SIMONTHOMAS S (20)

Cs8092 computer graphics and multimedia unit 5
Cs8092 computer graphics and multimedia unit 5Cs8092 computer graphics and multimedia unit 5
Cs8092 computer graphics and multimedia unit 5
 
Cs8092 computer graphics and multimedia unit 4
Cs8092 computer graphics and multimedia unit 4Cs8092 computer graphics and multimedia unit 4
Cs8092 computer graphics and multimedia unit 4
 
Cs8092 computer graphics and multimedia unit 3
Cs8092 computer graphics and multimedia unit 3Cs8092 computer graphics and multimedia unit 3
Cs8092 computer graphics and multimedia unit 3
 
Cs8092 computer graphics and multimedia unit 2
Cs8092 computer graphics and multimedia unit 2Cs8092 computer graphics and multimedia unit 2
Cs8092 computer graphics and multimedia unit 2
 
Cs8092 computer graphics and multimedia unit 1
Cs8092 computer graphics and multimedia unit 1Cs8092 computer graphics and multimedia unit 1
Cs8092 computer graphics and multimedia unit 1
 
Mg6088 spm unit-5
Mg6088 spm unit-5Mg6088 spm unit-5
Mg6088 spm unit-5
 
Mg6088 spm unit-4
Mg6088 spm unit-4Mg6088 spm unit-4
Mg6088 spm unit-4
 
Mg6088 spm unit-3
Mg6088 spm unit-3Mg6088 spm unit-3
Mg6088 spm unit-3
 
Mg6088 spm unit-2
Mg6088 spm unit-2Mg6088 spm unit-2
Mg6088 spm unit-2
 
Mg6088 spm unit-1
Mg6088 spm unit-1Mg6088 spm unit-1
Mg6088 spm unit-1
 
IT6701-Information Management Unit 5
IT6701-Information Management Unit 5IT6701-Information Management Unit 5
IT6701-Information Management Unit 5
 
IT6701-Information Management Unit 4
IT6701-Information Management Unit 4IT6701-Information Management Unit 4
IT6701-Information Management Unit 4
 
IT6701-Information Management Unit 3
IT6701-Information Management Unit 3IT6701-Information Management Unit 3
IT6701-Information Management Unit 3
 
IT6701-Information Management Unit 2
IT6701-Information Management Unit 2IT6701-Information Management Unit 2
IT6701-Information Management Unit 2
 
IT6701-Information Management Unit 1
IT6701-Information Management Unit 1IT6701-Information Management Unit 1
IT6701-Information Management Unit 1
 
CS8391-Data Structures Unit 5
CS8391-Data Structures Unit 5CS8391-Data Structures Unit 5
CS8391-Data Structures Unit 5
 
CS8391-Data Structures Unit 4
CS8391-Data Structures Unit 4CS8391-Data Structures Unit 4
CS8391-Data Structures Unit 4
 
CS8391-Data Structures Unit 3
CS8391-Data Structures Unit 3CS8391-Data Structures Unit 3
CS8391-Data Structures Unit 3
 
CS8391-Data Structures Unit 2
CS8391-Data Structures Unit 2CS8391-Data Structures Unit 2
CS8391-Data Structures Unit 2
 
CS8391-Data Structures Unit 1
CS8391-Data Structures Unit 1CS8391-Data Structures Unit 1
CS8391-Data Structures Unit 1
 

Recently uploaded

Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
simrangupta87541
 
Call Girls In Tiruppur 👯‍♀️ 7339748667 🔥 Free Home Delivery Within 30 Minutes
Call Girls In Tiruppur 👯‍♀️ 7339748667 🔥 Free Home Delivery Within 30 MinutesCall Girls In Tiruppur 👯‍♀️ 7339748667 🔥 Free Home Delivery Within 30 Minutes
Call Girls In Tiruppur 👯‍♀️ 7339748667 🔥 Free Home Delivery Within 30 Minutes
kamka4105
 
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdfSELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
Pallavi Sharma
 
Technological Innovation Management And Entrepreneurship-1.pdf
Technological Innovation Management And Entrepreneurship-1.pdfTechnological Innovation Management And Entrepreneurship-1.pdf
Technological Innovation Management And Entrepreneurship-1.pdf
tanujaharish2
 
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
nonods
 
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
shourabjaat424
 
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
DharmaBanothu
 
paper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdfpaper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdf
ShurooqTaib
 
CSP_Study - Notes (Paul McNeill) 2017.pdf
CSP_Study - Notes (Paul McNeill) 2017.pdfCSP_Study - Notes (Paul McNeill) 2017.pdf
CSP_Study - Notes (Paul McNeill) 2017.pdf
Ismail Sultan
 
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
sexytaniya455
 
Microsoft Azure AD architecture and features
Microsoft Azure AD architecture and featuresMicrosoft Azure AD architecture and features
Microsoft Azure AD architecture and features
ssuser381403
 
College Call Girls Kolkata 🔥 7014168258 🔥 Real Fun With Sexual Girl Available...
College Call Girls Kolkata 🔥 7014168258 🔥 Real Fun With Sexual Girl Available...College Call Girls Kolkata 🔥 7014168258 🔥 Real Fun With Sexual Girl Available...
College Call Girls Kolkata 🔥 7014168258 🔥 Real Fun With Sexual Girl Available...
Ak47
 
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptxMODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
NaveenNaveen726446
 
Basic principle and types Static Relays ppt
Basic principle and  types  Static Relays pptBasic principle and  types  Static Relays ppt
Basic principle and types Static Relays ppt
Sri Ramakrishna Institute of Technology
 
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASICINTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
GOKULKANNANMMECLECTC
 
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
sonamrawat5631
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
paraasingh12 #V08
 
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdfSri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
Balvir Singh
 
Online train ticket booking system project.pdf
Online train ticket booking system project.pdfOnline train ticket booking system project.pdf
Online train ticket booking system project.pdf
Kamal Acharya
 
Data Communication and Computer Networks Management System Project Report.pdf
Data Communication and Computer Networks Management System Project Report.pdfData Communication and Computer Networks Management System Project Report.pdf
Data Communication and Computer Networks Management System Project Report.pdf
Kamal Acharya
 

Recently uploaded (20)

Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
Mahipalpur Call Girls Delhi 🔥 9711199012 ❄- Pick Your Dream Call Girls with 1...
 
Call Girls In Tiruppur 👯‍♀️ 7339748667 🔥 Free Home Delivery Within 30 Minutes
Call Girls In Tiruppur 👯‍♀️ 7339748667 🔥 Free Home Delivery Within 30 MinutesCall Girls In Tiruppur 👯‍♀️ 7339748667 🔥 Free Home Delivery Within 30 Minutes
Call Girls In Tiruppur 👯‍♀️ 7339748667 🔥 Free Home Delivery Within 30 Minutes
 
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdfSELENIUM CONF -PALLAVI SHARMA - 2024.pdf
SELENIUM CONF -PALLAVI SHARMA - 2024.pdf
 
Technological Innovation Management And Entrepreneurship-1.pdf
Technological Innovation Management And Entrepreneurship-1.pdfTechnological Innovation Management And Entrepreneurship-1.pdf
Technological Innovation Management And Entrepreneurship-1.pdf
 
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
 
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
Call Girls Chandigarh 🔥 7014168258 🔥 Real Fun With Sexual Girl Available 24/7...
 
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
 
paper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdfpaper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdf
 
CSP_Study - Notes (Paul McNeill) 2017.pdf
CSP_Study - Notes (Paul McNeill) 2017.pdfCSP_Study - Notes (Paul McNeill) 2017.pdf
CSP_Study - Notes (Paul McNeill) 2017.pdf
 
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
 
Microsoft Azure AD architecture and features
Microsoft Azure AD architecture and featuresMicrosoft Azure AD architecture and features
Microsoft Azure AD architecture and features
 
College Call Girls Kolkata 🔥 7014168258 🔥 Real Fun With Sexual Girl Available...
College Call Girls Kolkata 🔥 7014168258 🔥 Real Fun With Sexual Girl Available...College Call Girls Kolkata 🔥 7014168258 🔥 Real Fun With Sexual Girl Available...
College Call Girls Kolkata 🔥 7014168258 🔥 Real Fun With Sexual Girl Available...
 
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptxMODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
MODULE 5 BIOLOGY FOR ENGINEERS TRENDS IN BIO ENGINEERING.pptx
 
Basic principle and types Static Relays ppt
Basic principle and  types  Static Relays pptBasic principle and  types  Static Relays ppt
Basic principle and types Static Relays ppt
 
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASICINTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
INTRODUCTION TO ARTIFICIAL INTELLIGENCE BASIC
 
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
🔥Young College Call Girls Chandigarh 💯Call Us 🔝 7737669865 🔝💃Independent Chan...
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
 
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdfSri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
 
Online train ticket booking system project.pdf
Online train ticket booking system project.pdfOnline train ticket booking system project.pdf
Online train ticket booking system project.pdf
 
Data Communication and Computer Networks Management System Project Report.pdf
Data Communication and Computer Networks Management System Project Report.pdfData Communication and Computer Networks Management System Project Report.pdf
Data Communication and Computer Networks Management System Project Report.pdf
 

CS8494 SOFTWARE ENGINEERING Unit-3

  • 1. CS8494 – Software Engineering III Year / V Semester
  • 2. UNIT III SOFTWARE DESIGN Design process – Design Concepts-Design Model– Design Heuristic – Architectural Design -Architectural styles, Architectural Design, Architectural Mapping using Data Flow- User Interface Design: Interface analysis, Interface Design –Component level Design: Designing Class based components, traditional Components.
  • 3. SOFTWARE DESIGN  Software design is a model of software which translates the requirements into finished software product.  Software design model consists of 4 designs:  Data/class Design Architectural Design Interface Design Component Design
  • 4. SOFTWARE DESIGN  Analysis model:  Scenario based elements  Class based elements  Behavioral elements  Flow oriented elements.
  • 5. SOFTWARE DESIGN  Translating Analysis -> Design
  • 6. Software Design  Data/class design - Created by transforming the analysis model class-based elements into classes and data structures required to implement the software  Architectural design - defines the relationships among the major structural elements of the software, it is designed from the class-based elements and flow- oriented elements of the analysis model.
  • 7. Software Design  Interface design - describes how the software elements, hardware elements, and end-users communicate with one another, - analysis model scenario-based elements, flow-oriented elements, and behavioral elements.
  • 8. Software Design  Why design is so important?  It provides us with representation of software that can be assessed for quality. Only way that can accurately translate a customer’s requirements into a finished software product. It serves as foundation for all software engineering activities. Without design difficult to assess: Risk , Test, Quality
  • 9. Design Process  S/w design is an iterative process through which requirements are translated into a “blueprint” for constructing the s/w. As design iteration occur, subsequent refinement leads to design representation at much lower levels of abstraction
  • 10. Design Process  Characteristics of Good Design:  The good design should implement all the requirements specified by the customer.  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.
  • 11. Design Process  Characteristics of Good Design:  The design should be simple enough so that the software can be understood easily by the developers, testers and customers.  The design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective.
  • 12. Design Process  Quality Guideline:  The design architecture should be created using following issues:  The design should be created using architectural styles and patterns.  The implementation of design should be evolutionary, so that testing can be performed at each phase of implementation.
  • 13. Design Process  Quality Guideline:  In the design the data, architecture, interfaces and components should be clearly represented.  The design should be modular.  The data structure should be appropriately chosen for the design of specific problem.
  • 14. Design Process  Quality Guideline:  The components should be used in the design so that functional independency can be achieved in the design.  The interfaces in the design should be such that the complexity between the connected components of the system gets reduced.
  • 15. Design Process  Quality Attributes (FURPS Model):  Functionality – It can be checked by assessing the set of features and capabilities of the functions.  Usability – It can be assessed by knowing the usefulness of the system.
  • 16. Design Process  Quality Attributes (FURPS Model):  Reliability – A measure of frequency and severity of failure.  Performance – The response of the system.  Supportability – To adopt the enhancement or changes made in the software.
  • 17. Design Concepts The software design concept provides a framework for implementing the right software.
  • 18. Design Concepts Abstraction:  At the highest level of abstraction – a solution is stated in broad terms At lower level of abstraction – a more detailed description of the solution is provided
  • 19. Design Concepts Abstraction – Types:  Procedural Abstraction:  Sequence of instructions in the specific function.  Functionality of procedure is mentioned by its implementation details are hidden.  Ex: Search the record
  • 20. Design Concepts Abstraction – Types:  Data Abstraction:  collection of data that describes a data object.  Search the record – record is the data
  • 21. Design Concepts Modularity:  Software is divided into separately named and addressable components, sometimes called modules, which are integrated to satisfy problem requirement.  Modularity is the single attribute of software that allows a program to be intellectually manageable.
  • 22. Design Concepts Modularity:  It leads to a “divide and conquer” strategy. – it is easier to solve a complex problem when you break into a manageable pieces.  Refer fig. that state that effort (cost) to develop an individual software module does decrease if total number of modules increase.  However as the no. of modules grows, the effort (cost) associated with integrating the modules also grows.
  • 24. Design Concepts Modularity – Criteria:  Modular decomposability: A design method provides a systematic mechanism for decomposing the problem into sub-problems.  Modular Composability: It enables existing design components to assembled into s new system.
  • 25. Design Concepts Modularity – Criteria:  Modular Understandability: A module can be understood as a standalone unit.  Modular Continuity: Changes to individual modules.  Modular protection: Effects are constrained within the module.
  • 26. Design Concepts Architecture:  Software architecture suggest the overall structure of the software and the ways in which that structure provides conceptual integrity for a system
  • 27. Design Concepts Architecture – Models:  Structural Model- represent architecture as an organized collection of components  Framework model – shows the architectural framework and corresponding applicability.  Dynamic model – address behavior of the program architecture and indicating how system or structure configuration may change as a function.
  • 28. Design Concepts Architecture – Models:  Process Model – focus on design of the business or technical process that the system must accommodate.  Functional models – used to represent the functional hierarchy of a system.
  • 29. Design Concepts Refinement:  Refinement is a process of elaboration  The architecture of a program is developed by successively refining levels of procedural detail.  Refinement causes the designer to elaborate on the original statement, providing more and more detail as each successive refinement (elaboration) occurs.
  • 30. Design Concepts Pattern:  It acts as a design solution for a particular problem occurring in specific domain.  Pattern can be usable  Pattern can be used for current work  Pattern can be used to solve similar kind of problem with different functionality.
  • 31. Design Concepts Information Hiding:  It is the important property of modular design.  The modules are designed in such a way that information contained in one module cannot be accessible to the other module.  Only limited amount of information can be passed to other module
  • 32. Design Concepts Information Hiding:  The intent of information hiding is to hide the details of data structure and procedural processing behind a module interface.  It gives benefits when modifications are required during testing and maintenance because data and procedure are hiding from other parts of software, unintentional errors introduced during modification are less
  • 33. Design Concepts Functional Independence:  It can be achieved by developing the functional modules with single-minded approach.  Independent modules are easier to maintain with reduced error propagation.  Benefit: To achieve effective modularity  Qualitative criteria – Cohesion and Coupling
  • 34. Design Concepts Functional Independence – Cohesion:  The information hiding can be done.  It performs only “one task” in software procedure with little interaction with other modules.
  • 35. Design Concepts Functional Independence – Cohesion:  Coincidentally cohesive: The set of tasks are related with each other modules loosely.  Logically cohesive: A module that performs the tasks that are logically related with each other.  Temporal cohesive: The module in which the tasks need to be executed in some specific time span.
  • 36. Design Concepts Functional Independence – Cohesion:  Procedural cohesive: when processing elements of a module are related with one another and must be executed in some specific order.  Communicational cohesion: when processing elements of a module share the data.
  • 37. Design Concepts Functional Independence – Coupling:  It represents how the modules can be “connected” with other module or with the outside world.  It is a measure of interconnection among modules in a program structure.  It depends on the interface complexity between modules.  The goal is to strive for lowest possible coupling among modules in software design.
  • 39. Design Concepts Functional Independence – Coupling:  Data Coupling: It is possible by parameter passing or data interaction.  Control coupling: It shares related control data  Common coupling: common data or a global data is shared among the modules  Content coupling: It occurs when on module makes use of data or control information maintained in another module.
  • 40. Design Concepts Refactoring:  For simplifying the design without changing the function or behavior.  “The process of changing a software system in such a way that the external behavior of the design do not get changed, however the internal structure gets improved. ”
  • 41. Design Concepts Refactoring – Benefits:  The redundancy can be achieved.  Inefficient algorithms can be eliminated  Inaccurate data structures can be removed or replaced.
  • 42. Design Concepts  Design Classes:  The classes that describe some elements of problem domain, focus on various aspects of problem from user’s point of view.  To refine the analysis classes by providing the detail design, so that further implementation can be done easily.  To create new set of classes for implementing the infrastructure of the software.
  • 43. Design Concepts Design Classes – Types:  User interface class: A visual representation of the HCI.  Business Domain class: Identify the attributes and service that are needed to implement some elements of business domain.
  • 44. Design Concepts Design Classes – Types:  Process Class: It implements lower level business abstractions used by the business domain.  Persistent Class: represent the data store.
  • 45. Design Concepts Design Classes – Types:  System Class: responsible for software management and control functions that are used for system operation.  Characteristics: Complete and efficient, High cohesion and low coupling.
  • 46. Design Model  Data design elements  The data design element produced a model of data that represent a high level of abstraction. This model is then more refined into more implementation specific representation which is processed by the computer based system. The structure of data is the most important part of the software design.
  • 47. Design Model Architectural design elements  The architecture design elements provides us overall view of the system. The architectural design element is generally represented as a set of interconnected subsystem that are derived from analysis packages in the requirement model.
  • 48. Design Model Architectural design elements-Sources  The information about the application domain to built the software. Requirement model elements like data flow diagram or analysis classes, relationship and collaboration between them. The architectural style and pattern as per availability.
  • 49. Design Model Interface design elements:  The interface design elements for software represents the information flow within it and out of the system. They communicate between the components defined as part of architecture.
  • 50. Design Model Interface design elements – Elements:  The user interface - GUI The external interface to the other systems, networks etc. The internal interface between various components – Ex: Classes can communicate with each other by operations or by passing messages
  • 51. Design Model  Component level diagram elements:  The component level design for software is similar to the set of detailed specification of each room in a house.  It describes the internal details of the each software component.  The processing of data structure occurs in a component and an interface which allows all the component operations.
  • 52. Design Model Component level diagram elements:  The UML diagram is used to represent the processing logic.
  • 53. Design Model Deployment level design elements:  It shows the software functionality and subsystem that allocated in the physical computing environment which support the software.
  • 55. Design Heuristic Evaluate the first iteration of the program structure to reduce the coupling and improve cohesion:  Exploding and imploding modules
  • 56. Design Heuristic Attempt to minimize the structures with high fan-out and strive for fan-in as depth increases:  Fan-out: number of immediate subordinates to the module  Fan-in: number of immediate relations the module have.
  • 57. Design Heuristic Keep scope of the effect of a module within the scope of control of that module:  Module ‘A’ should not affect the module ‘b’
  • 58. Design Heuristic Evaluate the module interfaces to reduce complexity and redundancy and improve consistency.  Define module whose function is predictable but avoid modules that are too restrictive.  Strive for controlled entry modules by avoiding pathological connections.
  • 59. Introduction to Architectural Design  A design created to represent the data and program components that are required to build the computer based systems.  It considers the system’s structure and properties of the system components.  The person who is responsible to design – Software Architect.
  • 60. Introduction to Architectural Design  Software Architecture: “A structure of systems which consists of various components, externally visible properties of these components and the inter-relationship among these components”
  • 61. Introduction to Architectural Design  Software Architecture:  To establish the overall structure of software system.  The link between design specification and actual design process.
  • 62. Introduction to Architectural Design  Software Architecture – Structural Partitioning:  Horizontal partitioning:  It defines separate branches of the modular hierarchy for each major program function.  It defines three partitions—input, data transformation (often called processing) and output.
  • 64. Introduction to Architectural Design  Software Architecture – Structural Partitioning:  Horizontal partitioning – Benefits:  software that is easier to test software that is easier to maintain propagation of fewer side effects software that is easier to extend
  • 65. Introduction to Architectural Design  Software Architecture – Structural Partitioning:  Vertical partitioning: It suggests the control and work should be distributed top-down in program structure
  • 66. Introduction to Architectural Design  Software Architecture – Structural Partitioning:  Vertical partitioning:  Top-level modules should perform control functions and do little actual processing work.  Low-level modules in the structure should be the workers, performing all input, computation, and output tasks.
  • 67. Data Design  The model of the data that is represented at the high level of abstraction. Elements:  Data Object: Use ER diagram or Data Dictionary  Databases  Data warehouses
  • 68. Data Design  Guideline for data design:  Apply systematic analysis on data  Identify the data structures and related operations  Establish data dictionary  Define the low level design decisions until late in the design process
  • 69. Data Design  Guideline for data design:  Use information hiding in the design of the data structures  Apply a library of useful data structures and operations  Use a software design and programming to support data specification and abstraction
  • 70. Architectural Style It is a pattern for creating the system architecture for given problem. Components: It performs a function required by a system. Ex: a database, computational modules, clients and servers.
  • 71. Architectural Style Connectors: It enables “communication, co- ordinations and cooperation” among components.  Constraints that define how components can be integrated to form the system.  Semantic models that enable a designer to understand the overall properties of a system.
  • 73. Architectural Style Data-centered architecture:  A data store (e.g., a file or database) resides at the center of this architecture and is accessed frequently by other components that update, add, delete, or otherwise modify data within the store. Client software accesses a central repository without any change in data.
  • 74. Architectural Style Data-centered architecture:  It posses the property of interchangeability.  Any component from the architecture can be replaced by a new component without affecting the working of other components.  The data can be passed among components.
  • 75. Architectural Style  Data Flow architecture – Pipe and Filter: When input data are to be transformed through a series of computational components into output data.
  • 76. Architectural Style  Data Flow architecture – Pipe and Filter: A pipe and filter pattern has a set of components, called filters, connected by pipes that transmit data from one component to the next.  Each filter works independently (i.e. upstream, downstream) and is designed to expect data input of a certain form, and produces data output (to the next filter) of a specified form. The filter does not require knowledge of the working of its neighboring filters.
  • 77. Architectural Style  Data Flow architecture – Batch Sequential:  If the data flow degenerates into a single line of transforms, it is termed batch sequential.
  • 78. Architectural Style  Call and return architecture:
  • 79. Architectural Style  Call and return architecture:  Architecture style enables a software designer (system architect) to achieve a program structure that is relatively easy to modify and scale.  Main/sub program architecture: Program structure decomposes function into a control hierarchy where a “main” program invokes a number of program components, which in turn may invoke still other components
  • 80. Architectural Style Object-oriented architecture: The object-oriented paradigm, like the abstract data type paradigm from which it evolved, emphasizes the bundling of data and methods to manipulate and access that data (Public Interface). Components of a system summarize data and the operations that must be applied to manipulate the data. Communication and coordination between components is accomplished via message passing
  • 82. Architectural Style Layered Architecture:  A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set. At the outer layer, components examine user interface operations.
  • 83. Architectural Style Layered Architecture:  At the inner layer, components examine operating system interfacing. Intermediate layers provide utility services and application software functions.
  • 84. Architectural Patterns  An approach for handling behavioural characteristics of software systems.  Domains:  Concurrency: Handling multiple tasks in parallel.  Persistence: The data used in earlier execution can be made available further by storing it in files.  Distribution: The system components communicate with each other.
  • 85. Architectural Design  The design should define the external entities (other systems, devices, people) that the software interacts with and the nature of the interaction.  This information can generally be acquired from the requirements model and all other information gathered during requirements engineering.  The designer specifies the structure of the system by defining and refining software components that implement each archetype.
  • 86. Architectural Design  Representing the System in Context  At the architectural design level, a software architect uses an architectural context diagram (ACD) to model the manner in which software interacts with entities external to its boundaries.
  • 87. Architectural Design  Representing the System in Context
  • 88. Architectural Design  Representing the System in Context  Super ordinate systems : systems that use the target system as part of some higher-level processing scheme.  Subordinate systems: Systems that are used by the target system and provide data or processing that are necessary to complete target system functionality.  Peer-level systems:Systems that interact on a peer-to- peer basis.  Actors: entities (people, devices) that interact with the target system by producing or consuming information.
  • 89. Architectural Design  Defining Archetypes  An archetype is a class or pattern that represents a core abstraction that is critical to the design of an architecture for the target system.  A relatively small set of entities is required to design even relatively complex systems.  For example, an archetype for a car: wheels, doors, seats, engine In software engineering
  • 90. Architectural Design  Defining Archetypes:  Node : Represents a cohesive collection of input and output elements.  Detector : An abstraction that covers all sensing equipment that feeds information into the target system.
  • 91. Architectural Design  Defining Archetypes:  Indicator: An abstraction that represents all mechanisms (e.g., alarm siren, flashing lights, bell) for indicating that an alarm condition is occurring.  Controller. An abstraction that describes the mechanism that allows the arming (Supporting) or disarming of a node
  • 92. Architectural Design  Refining the Architecture into Components  As the software architecture is refined into components.  Analysis classes represent entities within the application (business) domain that must be addressed within the software architecture.  In some cases (e.g., a graphical user interface), a complete subsystem architecture with many components must be designed.
  • 93. Architectural Design  Refining the Architecture into Components  External communication management  Control panel processing  Detector management  Alarm processing
  • 94. Architectural Design  Describing Instantiations of the System The overall structure of the system is apparent, and the major software components have been identified. However, further refinement is still necessary.  To accomplish this, an actual instantiation of the architecture is developed. It means, again it simplify by more details.
  • 95. Architectural Mapping using Data Flow  Transform flow: A sequence of paths which forms transition in which input data are transformed into output data.  Transaction flow: The information flow in which single data item triggers the overall information flow along the multiple paths.
  • 96. Architectural Mapping using Data Flow  Transform flow – Automated Railway Reservation System:  Registers for the using the system  Make the train enquiry  Can view the status of reservation by entering PNR number.  Can make the reservations  Can cancel the reservations
  • 97. Architectural Mapping using Data Flow  Transform flow: A collection of design steps using which a DFD containing transform flow characteristics is mapped into specific architectural style.
  • 98. Architectural Mapping using Data Flow  Transform flow:  Step 1: Review fundamental system model to identify information flow:  Obtained from System Specification and SRS.
  • 99. Architectural Mapping using Data Flow  Transform flow - Step 2: Review and refine the data flow diagram for software:
  • 100. Architectural Mapping using Data Flow  Transform flow - Step 2: Review and refine the data flow diagram for software:
  • 101. Architectural Mapping using Data Flow  Transform flow - Step 3: Determine if the DFD has the transform or transaction flow characteristics:  The information flow within the system is usually represented as transform flow.  If draw level 3 DFD for the process Make Reservation then the transformation flow can be identified.
  • 102. Architectural Mapping using Data Flow – Step 3
  • 103. Architectural Mapping using Data Flow  Transform flow - Step 4: Isolate the transform center by specifying incoming and outgoing flow boundaries:  Separate out the incoming and outgoing flow boundaries and the transform center can be identified.
  • 104. Architectural Mapping using Data Flow – Step 4
  • 105. Architectural Mapping using Data Flow  Transform flow - Step 5: Perform first level factoring:  It results in top down architecture.  Top level – Perform decision making  Low level – perform most input, computation and output.  Middle level – perform some control and some amount of work.
  • 106. Architectural Mapping using Data Flow  Transform flow - Step 5: Perform first level factoring:
  • 107. Architectural Mapping using Data Flow  Transform flow Step 6: Perform second level factoring:  Individual bubble of DFD is mapped into appropriate module within architecture
  • 108. Architectural Mapping using Data Flow  Transform flow – Step 6: Perform second level factoring:
  • 109. Architectural Mapping using Data Flow  Transform flow  Step 7: Refine the first iteration architecture using design heuristics for improved software quality:  Refined by applying the module independency  It always follows “High Cohesion and Low Coupling”
  • 110. Architectural Mapping using Data Flow  Transform flow - Step 7: Refine the first iteration architecture using design heuristics for improved software quality:
  • 111. Architectural Mapping using Data Flow  Transaction flow :  A single data item leads to one or more information flows.  Each information flow specifies some distinct functionality – Transaction center.
  • 112. Architectural Mapping using Data Flow  Transaction flow – Design Steps:  Review fundamental system model to identify information flow.  Review and refine the data flow diagram for software.  Determine if the DFD has the transform or transaction flow characteristics.
  • 113. Architectural Mapping using Data Flow  Transaction flow – Design Steps:  Identify the transaction center and flow characteristics along each of the action paths.  To identify the location of transaction centre.  Ex: User selects Book Ticket, Ticket Enquiry options. There can be multiple action paths fanning out from the transaction center.
  • 114. Architectural Mapping using Data Flow  Transaction flow – Design Steps - Identify the transaction center and flow characteristics along each of the action paths.
  • 115. Architectural Mapping using Data Flow  Transaction flow – Design Steps:  Map DFD into transaction processing structure:  The identified transaction flow is mapped into an architecture that contains an incoming branch and a dispatcher branch.  The corresponding bubbles on incoming path are mapped into the appropriate modules.
  • 116. Architectural Mapping using Data Flow  Transaction flow – Design Steps - Map DFD into transaction processing structure:
  • 117. Architectural Mapping using Data Flow  Transaction flow – Design Steps:  Factor and refine the transaction structure and structure of each action path:  Action path related sub structure is developed.
  • 118. Architectural Mapping using Data Flow  Transaction flow – Design Steps- Factor and refine the transaction structure and structure of each action path:
  • 119. Architectural Mapping using Data Flow  Transaction flow – Design Steps: Refine the first iteration architecture using design heuristics for improved software quality :  Refined by applying the module independency  It always follows “High Cohesion and Low Coupling”
  • 120. User Interface Design  User interface design creates an effective communication medium between a human and a computer.  Follows a set of interface design principles, design identifies interface objects and actions and then creates a screen layout that forms the basis for a user interface prototype.
  • 121. User Interface Design  Advantages:  The user interface systems provide fast and intuitive interactions to the user. The new user can easily operate the system.  As in user interface design, menus are provided, it avoids typing mistakes.  The user interface helps in simple data entry.  It provides the flexibility in switching from one task to another.
  • 122. User Interface Design  Golden Rules:  Place the user in control Reduce the user’s memory load Make the interface consistent
  • 123. User Interface Design  Golden Rules - Place the user in control: 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
  • 124. User Interface Design  Golden Rules - Place the user in control:  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.  Allow user to customize the interaction Users often find that they perform the same sequence of interactions repeatedly.
  • 125. User Interface Design  Golden Rules - Place the user in control:  Hide technical internals from the casual user The interface should never require that the user interact at a level that is “inside” the machine.  The objects appearing on the screen should be interactive with the user User should be in position to adjust the object appearing on the screen.
  • 126. User Interface Design  Golden Rules - 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 and results.  Establish meaningful defaults a “reset” option should be available, enabling the redefinition of original default values.
  • 127. User Interface Design  Golden Rules - Reduce the User’s Memory Load: Define shortcuts that are intuitive Shortcuts are required in the user interface  The visual layout of the interface should be realistic It helps a causal user to handle the system with ease.  Disclose the information gradually  The interface should be organized hierarchically.
  • 128. User Interface Design  Golden Rules - Make the Interface Consistent:  The interface should present and acquire information in a consistent fashion.  All visual information is organized according to a design standard that is maintained throughout all screen displays.  Input mechanisms are constrained to a limited set that are used consistently throughout the application  Navigating from task to task are consistently defined and implemented
  • 129. User Interface Design  Golden Rules - Make the Interface Consistent:  Allow the user to put the current task into a meaningful context. A user interface with proper indicators  Maintain consistency across a family of applications. A set of applications (or products) should all implement the same design rules so that consistency is maintained for all interaction.
  • 130. User Interface Design  Golden Rules - Make the Interface Consistent:  If certain standards are maintained in previous model of application do not change it until and unless it is necessary.  Once a particular interactive sequence has become a de facto standard (e.g., the use of alt-S to save a file)
  • 131. User Interface Design  Models:  User model — To understand the user who is using the system.  The profile of all end users of the system ( Considering Age, Gender, Educational and cultural background)  Users: Novice, Knowledgeable and intermittent and Knowledgeable and frequent
  • 132. User Interface Design  Models:  Design Model –Data, Architectural, Interface and Procedural representation of the software.  Requirement specification must be used properly to set the system constraints.
  • 133. User Interface Design  Models:  Mental Model – The representation of what user thinks about the system?  If the user is knowledgeable then more complete description of the system can be obtained that of novice user.
  • 134. User Interface Design  Models:  Implementation Model – It generates the look and feel of interface.  User can feel comfortable with the developed system
  • 135. User Interface Design – The Process  Activities:  Environment analysis and modeling  Interface Design  Implementation  Interface validation
  • 136. User Interface Design – The Process  Activities - Environment analysis and modeling:  Factors:  User profile is analysed to understand the user and to elicit the requirements.  The tasks that are required to carry out desired functionality are identified and analysed.  Environment which involves the physical work environment.
  • 137. User Interface Design – The Process  Activities – Interface Design: All the interface objects and corresponding actions of each task are defined.  Implementation: Creation of prototype using which the interface scenarios can be evaluated.  Validation: To validate the interface for its correct performance.
  • 138. User Interface Design  Interface Analysis:  Interface analysis means understanding The people (end-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 environment in which these tasks will be conducted.
  • 139. User Interface Design  Interface Analysis: User Analysis – what the user wants from the UI:  User interviews: Representatives from software team meet the end user to better understand the user needs, motivations and many other issues.  Meeting are conducted for this purpose.
  • 140. User Interface Design  Interface Analysis - User Analysis – what the user wants from the UI:  Sales input:  Sales people interact with the users regularly and collect the information  Users are categorized in groups and thereby their requirements are better understood.
  • 141. User Interface Design  Interface Analysis - User Analysis – what the user wants from the UI:  Marketing input:  To understand the usage of software
  • 142. User Interface Design  Interface Analysis - User Analysis – what the user wants from the UI:  Support input:  Support staff keeps a regular interaction with the user interaction for knowing the certain things likings and dislikes of the user.
  • 143. User Interface Design  User Analysis:  Are users trained professionals, technician, clerical, or manufacturing workers? What level of formal education does the average user have? Are the users capable of learning from written materials or have they expressed a desire for classroom training? Are users expert typists or use of keyboard? What is the age range of the user community?
  • 144. User Interface Design  User Analysis:  Will the users be represented predominately by one gender? How are users compensated for the work they perform? Do users work normal office hours or do they work until the job is done? Is the software to be an integral part of the work users do or will it be used only occasionally? What is the primary spoken language among users?
  • 145. User Interface Design  Task Analysis and modeling:  What work will the user perform in specific circumstances? What tasks and subtasks will be performed as the user does the work? What specific problem domain objects will the user manipulate as work is performed? What is the sequence of work tasks—the workflow? What is the hierarchy of tasks?
  • 146. User Interface Design  Task Analysis and modeling – Techniques:  Use cases: It describes interaction between user and system. It shows how the end user performs specific work related task.
  • 147. User Interface Design  Task Analysis and modeling – Techniques:  Task Elaboration – Stepwise refinement of the processing task is done.  Object Elaboration – Extract information about the physical objects. These objects are further classified into classes.  Workflow analysis defines how a work process is completed when several people (and roles) are involved. Ex: Swimlane Diagram.
  • 148. User Interface Design  Task Analysis and modeling – Techniques:  Hierarchical representation – The task hierarchy for each user type should be specified.  Fill reservation Form:  Personal Info: Specify name, Specify age, Desired source city, Desired destination city, Date and time  Reservation details: Age, Source City, Destination City, Seat numbers, Type of reservation and Name of the train.
  • 149. User Interface Design  Analysis of Display Content:  The display contents can be spreadsheets, pictures, a graph and audio or video files.  The format and nature of the display contents are considered.
  • 150. User Interface Design  Analysis of Display Content:  Are different types of data assigned to consistent geographic locations on the screen.  Can the user customize the screen location for content?  Is proper on-screen identification assigned to all content?  If a large report is to be presented, how should it be partitioned for ease of understanding?
  • 151. User Interface Design  Analysis of Display Content:  Will mechanisms be available for moving directly to summary information for large collections of data.  Will graphical output be scaled to fit within the bounds of the display device that is used?  How will color to be used to enhance understanding? How will error messages and warning be presented to the user?
  • 152. User Interface Design  Analysis of work environment:  There may be interactive presentation of the information, proper lighting, good display height, easy keyboard access, proper sitting arrangement.
  • 153. User Interface Design  Interface Design:  Using information developed during interface analysis, define interface objects and actions (operations). Define events (user actions) that will cause the state of the user interface to change. Model this behavior. Depict each interface state as it will actually look to the end-user. Indicate how the user interprets the state of the system from information provided through the interface.
  • 154. User Interface Design  User interface Design Pattern: Pattern Description TopLevelNavigation It enables direct navigation to any of the system’s major functions Fill-in-the-Blanks Allow alphanumeric data to be entered in a “text box.” SortableTable Display a long list of records that can be sorted by selecting a toggle mechanism for any column label. SimpleSearch ability to search a website Wizard the completion of the task through a series of simple window displays. ShoppingCart Provides a list of items selected for purchase ProgressIndicator Provides an indication of progress when an operation takes longer than n seconds
  • 155. User Interface Design  Design Issues:  System Response Time:  It is measured from the point at which the user performs some control action until the software responds with desired output or action.  Characteristics – Length: Amount of time taken by the system to respond  Variability: the deviation from average response time
  • 156. User Interface Design  Design Issues:  Help facilities:  User manuals  Online help facilities that enable a user to get a question answered or resolve a problem without leaving the interface
  • 157. User Interface Design  Design Issues -Error handling –Message Characteristics:  The message should describe the problem in terminology that the user can understand  There should be some useful message along with error in order to recover from the error.  There should be some audible or visual cue along with the error message.  There should not be any negative impact of error on the user.  The wording of the error should be carefully used
  • 158. User Interface Design  Design Issues:  Menu and command labeling:  The typed command was once the most common mode of interaction between user and system software  The use of window-oriented, point-and pick interfaces has reduced reliance on typed commands
  • 159. User Interface Design  Design Issues:  Application accessibility:  Software engineers must develop a mechanism by which the most frequently required applications must be availed easily.  Accessibility for users who may be physically challenged is an imperative for ethical, legal, and business reasons.
  • 160. User Interface Design  Design Issues:  Internationalization:  “globalized” software - user interfaces should be designed to accommodate a generic core of functionality that can be delivered to all who use the software.  Localization features enable the interface to be customized for a specific market.  The Unicode standard has been developed for characters and symbols.
  • 161. Component Level Design  OMG UML Specification defines a component as “a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces”
  • 162. Component Level Design  Designing Class based Components  Component is represented as a part of architectural model. It collects the information about the system as a part of analysis model.  OO View: a component contains a set of collaborating classes  The detailed description of attributes, operations and interfaces of these infrastructure classes is required during the system building.
  • 163. Component Level Design  Design Principles:  Open-Closed Principle: A module should be open for extension but closed for modification.  Liskov Substitution Principle: Subclasses should be substitutable for their base classes.  Dependency Inversion Principle: Depend on abstractions. Do not depend on concrete component.  Interface Segregation Principle: Many client-specific interfaces are better than one general purpose interface
  • 164. Component Level Design  Design Guidelines:  Components:  Naming conventions should be established for components that are specified as part of the architectural model and then refined and elaborated as part of the component-level model.
  • 165. Component Level Design  Design Guidelines:  Interfaces - provide important information about communication and collaboration.  Dependencies and Inheritance:  Dependencies from left to right - inheritance from bottom(derived classes) to top(base classes)
  • 166. Structured Programming  Three constructs:  Sequence: A linear processing of the statements  Condition: To test the logical conditions  Repetition: To denote the looping  Advantages:  reduces program complexity  enhances readability, testability and maintainability
  • 167. Structured Programming  Graphical Design Notations – Flow Chart:
  • 168. Structured Programming  Graphical Design Notations –Box Diagram:  Nassi-Shneiderman charts, N-S charts, or Chapin charts – Characteristics:  Functional domain (that is, the scope of repetition or if-then-else) is well defined and clearly visible as a pictorial representation  Arbitrary transfer of control is impossible  The scope of local and/or global data can be easily determined  Recursion is easy to represent
  • 169. Structured Programming  Graphical Design Notations –Box Diagram:  Nassi-Shneiderman charts, N-S charts, or Chapin charts:
  • 170. Structured Programming  Tabular Design Notations: Decision tables provide a notation that translates actions and conditions into a tabular form.  Sections:  The upper left-hand quadrant contains a list of all conditions.  quadrant contains a list of all actions  The right-hand quadrants form a matrix that indicates condition combinations  the corresponding actions that will occur for a specific combination
  • 172. Structured Programming  Tabular Design Notations: List all actions that can be associated with a specific procedure (or module). List all conditions (or decisions made) during execution of the procedure. Associate specific sets of conditions with specific actions, eliminating impossible combinations Define rules by indicating what action(s) occurs for a set of conditions
  • 173. Structured Programming  Program Design Language:  It is a pseudo code or structured English.  to translate the design into the programming language.
  • 174. Structured Programming  Program Design Language:  Easy to combine with source code Can be represented in great detail Machine readable, no need for graphics input Graphics can be generated from PDL Enables declaration of data as well as procedure Easier to review and maintain
  翻译: