WINSEM2024-25 ISWE207L TH VL2024250503636 2024-12-16 Reference-Material-I
WINSEM2024-25 ISWE207L TH VL2024250503636 2024-12-16 Reference-Material-I
UNIT -I
1. INTRODUCTION
1
1.6 OVERVIEW OF THE UNIFIED APPROACH: 8m
The unified approach (UA) is methodology for software development that is proposed
by the author, UA based on methodologies by Booch, Rumbaugh, Jacobson to combine the
best practice, process and guidelines along with object.
UML: (Unified Modeling Language)
The heart of unified approach is Jacobson‘s use case. The use case represents a
typical interaction between a user and a computer system to capture the user’s goals
and needs.
2
2.2 AN OBJECT ORIENTED PHILOSOPHY:
A fundamental characteristic of object oriented program is that it allows the base
concepts of the language to be extended to include ideas and terms closer to those of
its application.
The fundamental difference between object oriented system and their traditional
counter parts is the way in which you approach problems.
Traditional development methods are either Algorithm centric or Data centric.
1. Algorithm-Centric Methodology:
Think of an algorithm that can accomplish the task, and then build data structure
for that algorithm to use.
2. Data -centric Methodology:
Think how to structure the data, and then build the algorithm around the data.
In the object-oriented system, however the algorithm and data structures are
packed together as an object.
The attributes and methods are equal and inseparable parts of the object.
2.3 OBJECTS:
The term Object means a combination of data and logic represents some real world
entity.
For ex, Saab automobile
A Class is a set of object s that shares a common structure and common behavior.
A single object is simply an instance of a class.
In an object –oriented system a method or behavior of an object is defined by its class.
Each object is an instance of a class.
Each employee object is responsible for its own data such as number, address, salary,
etc,
3
Employee Class
Sue
Objects Bill
of class Ali
Employee Hal
David
FIGURE 2.1 Sue, Bill, Ali are instances or Objects of class Employee
2.5 ATTRIBUTES: OBJECT STATE AND PROPERTIES:
Properties represent the state of an object.
MESSAGES:
It’s essentially a nonspecific function calls.
A message is a different from of subroutine call, since different object
can respond to the same message in different ways.
4
For example, car , motorcycle, bicycle all are respond to stop message,
but actual operations performed are object specific.
5 object *7
Employee Computepayroll
object
5
2.9 CLASS HIERARCHY:
Object oriented system organizes classes in to subclass-super class hierarchy.
Motor Vehicle
Car
Ford
2.9.1 INHERITANCE
Inheritance is a relationship between different classes which share common characteristics.
“If class B inherits class A, then both the operations and information structure in class A
will become part of class B”
Major benefits are simpler, clearer classes, at higher levels of abstraction
Employee, Managing, Director, Truck, Driver
6
"is an", "inherits from"
Generalization means extracting common properties from a collection of classes and
placing them higher in the inheritance hierarchy, in a ‘super class’.
Much care has to be taken when generalizing (as in the real world) that the property makes
sense for every single subclass of the super class. If this is not the case the property must
not be generalized.
Inheritance:
It allows objects to be built from other objects. (Objects of one class acquire the
properties of object of another class).
Inheritance is a relationship between classes where one class is the parent class or
super class or base class. Another one is the derived class.
Inheritance allows classes to share and reuse behaviors and attributes.
It allows reusability. For ex, The car class defines the general behavior of the car.
The ford class inherits the general behavior and adds specific behaviors.
Vehicle
Car
However the stop method is not defined in the Mustang class, it’s invoked from ford
Class.
But, Thunder bird has its own antilock breaking system. This class would redefine the
stop method so, the stop method of the ford class never be invoked.
7
Types of Inheritance:
1. Dynamic Inheritance.
2. Multiple Inheritance.
It permits a class to inherit its state and behaviors from more than one super class.
This kind of inheritance is referred to as multiple inheritance.
For example, a utility vehicle inherits attributes from both the car and Truck
classes.
Motor Vehicle
Utility Vehicle
Fig: 2.7 Utility vehicles inherit attributes from both the car and truck classes.
2.10 POLYMORPHISM: 4m
Poly means “many”. Morph means “Form”. In the OO- System, it means objects that
can take on or assume many different forms.
It means that the same operation may behave differently on different classes.
For ex, The driving is a behavior perform with all cars, the specific behavior can
be different, depending on the kind of car we are driving.
8
Polymorphism allows writing generic, reusable code more easily, because can specify
general instructions and delegate the implementation details to the object involved.
For ex, In a payroll system, Manager, production worker, office worker objects
all will respond to compute payroll message, but the actual operation performed
are object specific.
9
Example: Car
Fig: 2.10 A car is an aggregation of other objects such as engine, seat and wheel objects.
Each object is entirely responsible for itself. For ex., Employee object is responsible
for things like, computing payroll, printing paychecks, storing data.
First task in the Object Oriented –analysis to find the class of objects.
To identify the attributes of objects.
To identify the behavior.
10
Employee
Name
Address
Salary
It is a special feature.
Every object it’s own unique identity.
This identity is never confused with another object.
This identity name never change even if all the properties of the object change
Object identity is implemented through some kind of object identifier (OID)
or Unique identifier(UID)
OID’s never reused.
Fig 2.12 The owner property of a car contains a reference to the person instance named Raj.
11
In the object system, the relationship between the car and Raj can be implemented
and maintained by references. A reference is similar to the Pointer in other
programming languages.
Object references directly denote the object to which they refer.
Owner is the property of car Instance, referred to the person instance.
Owns is the property of person instance, referred to a car instance.
Shape
Draw ()
12
3.1 INTRODUCTION:
Software development process consists of analysis, design, implementation, testing
and refinement is to transform user needs in to software solution.
The emphasis is intended to promote the building of high quality software.
3.2 SOFTWARE DEVELOPMENT PROCESS:
System development can be viewed as a process.
The development itself, is a process of change, refinement, transformation or addition
to the existing product.
With in the process, it’s possible to replace one sub process with in a new one.
With this method of change, it’s possible to adapt a new process. The process can
be divide in to small,
Interacting phases called Sub process.
The sub process must be clear and defined.
Sub process must have the following:
A description in term of how it works.
Specification of the input required for the process.
Specification of the output to be produced.
The software development process also can be divided in to smaller, interacting sub
process.
The software development process can be viewed as a series of transformation.
The output of the transformation becomes the input of the subsequent transformation.
Transformation 2
Design
System
Implementation
Software
Detail
Transformation 3 Product
TRANSFORMATION 1(ANALYSIS):
It translates the user needs into system requirements and responsibilities.
They use the system can provide insight into user’s requirements.
TRANSFORMATION 2(DESIGN):
Begins with a problem statement and ends with a detailed design.
This transformation includes bulk of the software development activity ,how to build
the software, It’s development and its testing.
Also include design description, program, testing materials.
TRANSFORMATION 3(IMPLEMENTATION):
13
It refines the detailed design into the system development that will satisfy the user’s
needs.
This takes in to account the equipment, procedure and people.
For ex, the new compensation method is programmed, new forms are put to use and
new reports can be printed.
An example of the Software development process is the Water fall approach.
What
How
Do It
Test
Use
14
3.3 BUILDING HIGH QUALITY SOFTWARE:
The software process transforms the user needs via application domain to a software
solution that satisfies those needs.
Once the system exists, we must test it’s a free of bugs.
High quality products must meet users and expectations.
The ultimate goal of building high quality software is user satisfaction.
To achieve high quality in software we need to answer the following.
Correctness
Correspondence
CORRESPONDENCE:
Measure how well the delivered system matches the needs of the operational environment
as described in original requirement statement.
VALIDATION:
It is the task of predicting correspondence. It begins as soon as project starts.
CORRECTNESS:
Measures the consistency of the product requirements with respect to the design
specifications.
15
VERIFICATION:
It is the exercise of determining the correctness.
Verification & Validation answer to the following questions:
Verification: Am I building the product right?
Build a Use-Case
Model
Object
Analysis Validate
Analysis /Test
Analysis
Ana
Using Tools CASE User Satisfaction Design Classes, Build Object Build User
&/ OO Programming Usability & QA Define Attributes & Dynamic Interface
Languages Test & Methods Model &
Prototype
16
JACOBSON LIFE CYCLE MODEL:
Use Case
Model
OOA: Identify Actors OOA: Use Case Model OOA: Course of Action
Object Interaction
Design
Diagram, etc .
Classes
UI
Dynamic Model OOA: Object Model OOD: Dynamic Model Testing: Usage Scenarios
In the lifecycle model of Jacobson , one can produce design that are traceable across
requirements, Analysis , design, and implementation and testing.
The main advantage is that , all design decisions can be traced back directly to user
requirements.
Usage scenarios can be come test scenarios.
In the Object Oriented System development includes these activities.
1. Object Oriented Analysis- Use Case Driven
2. Object Oriented Design
3. Prototyping.
17
In the Software development life cycle a process, in which use cases are used and
establish desired behavior of the system, for verify, validate the system architecture for
testing and for communicating among the stakeholders of the project.
The goal is to design the classes identified during the analysis phase and the user
interface.
During this phase, we identify and define additional objects and classes that support
the implementation of the requirements.
Eg: During the design phase, need to add objects for the user interface (E.G data
entry windows & Browse windows).
Object Oriented Design & Object Oriented Analysis is distinct disciplines. But they
can intertwine.
Activities are also intertwined.
In the Object Oriented Development
1. You start with Object Oriented Analysis.
2. Model it.
3. CreateSupervisor
an Object Oriented Design.
4. Then do some more of each.
18
5. Refining? & completing the models of the system.
First build the object model based on objects, then iterate and refine the model.
3.4.3 PROTOTYPING: 8m
It is a version of the software product development in early stage of the product life
cycle.
It provides the developer to test and refine the user interface.
Increases the usability of the system.
1. Horizontal Prototyping:
Prototyping provides the developer a means to test and refine the user
interface and increase the usability of the system.
It is a simulation of the interface.
Contains no functionality.
Very quick to implement.
2. vertical Prototype:
It is a subset of system features with complete functionality.
Advantage: Implemented function can be tested in great depth.
3. Analysis Prototype:
It is an aid for exploring the problem domain.
It is used to inform the user and demonstrate the proof of a concept.
4. Domain Prototype:
3.4.4 IMPLEMENTATION:
19
Component Based Development:
The s/w components are built and tested, using a wide range of
techniques.
For Eg: Computer Aided Software Engineering (CASE) tools allow
their users to rapidly develop the information system goal of CASE.
CASE : Develop the system development life cycle using a set of
interrelated s/w tools (such as modeling ,methodology, automatic code
generation)
CASE tools give the skeleton of applications.
New generations of CASE tools support Component Based
Development (CBD)
CBD:
It is an industrial approach to the s/w development process.
Application development moves from custom development to assembly
of prebuilt, pretested reusable s/w components that operate with each
other.
Open Connectivity
Component Wrapper
Component Wrapper
20
Fig : 3.6 Reusing legacy system via component wrapping technology.
Software Components:
It is a set of tools and technology that can be used to build an application faster than
traditional methods.
It is often used in conjunction with software prototyping.
RAD ->quick delivery. But quality is good.
RAD -> does not replace the system development life cycle, but complements it.
Task of RAD:
Main objectives:
The developer would turn over applications to a quality assurance (QA) group
3.5 REUSABILITY: 8m
1. Increased Reliability.
21
2. Reduce Time.
3. Reduce cost for development.
4. Improved Consistency.
You must effectively evaluate existing software components for reuse by ask questions,
1. Information Hiding
--------------------------------------------------------------------------------------------------------------
22
(OBJECT ORIENTED ANALYSIS AND DESIGN)
UNIT-II
Withdraw
Confirmation
User keyboard
entry Verify password
Select account
User screen
selection
Account
Update account
ATM DFD
System architect
Comment
OMT data flow User
Car Color
Manufacture cost
Super class
cost
Inherits
Ford
Inherits
ortEscoEeE
Mustang Taurus E
Escort
2. Analysis and development of the model.
Class diagrams are used to describe the roles and responsibilities the objects are to carry
out in performing the desired behavior of the system . Then , you use the object diagram is
used to describe the behavior of the system in terms of scenarios or, alternatively, use the
Sound Alarm
Silence d Soundin
Silence Alarm g
Enable Disable
Disabled
Alarm Fixed
Doing research
Purchasing supplies
Supplier
Express in Testing in
NOTOK
Domain Object Model Analysis Model Design Model Implementation Model Testing Model
Test Model
It constitutes the test plans, specification and reports.
A Process is created when first development project starts and is stopped when the developed
system is taken out of service.
OBJECT ORIENTED BUSINESS ENGINEERING (OOBE)
It is the object modeling at enterprise level.
Use cases are the central vehicle for modeling, providing traceability throughout software
engineering Processes.
Analysis Phase
It defines the system to be built in terms of problem domain object model, requirement
and analysis model.
It reduces complexity and promotes maintainability over the life of the system.
It forms a base for requirements model. This process is iterative.
Jacobson suggests that prototyping with a tool might be useful during this phase to help
specify user interfaces.
Design and Implementation Phase
The implementation environment must be identified for the design model
o DBMS, Distribution of process, Constraints due to programming language.
o Component libraries and Incorporating GUI tools.
It may be possible to identify implementation can be concurrently identified with analysis.
The analysis objects are translated in to design objects for current implementation environments.
Testing Phase
Finally Jacobson describes several testing levels and techniques.
The level include
Unit testing, Integration testing and System testing.
PATTERNS
Any science or engineering discipline must have a vocabulary for expressing its concepts and a
language for relating them to each other.
The concepts of patterns serve for this purpose.
Design patterns was first introduced by a building architect called Christopher Alexander.
The main idea of using patterns is to provide documentation.
Definition
A pattern is instructive information that captures the essential structure and insight of a
successful family of proven solutions to a recurring problem that arises within a certain
context and system of forces.
A good pattern will do the following:
o It solves a problem. Pattern captures solution, not just abstract principles or strategies.
o It is a proven concept. Patterns capture solutions with a track record, not theories or
speculation.
o The solution is not obvious. The best patterns generate a solution to a problem
indirectly -a necessary approach for the most difficult problem of design.
o It describes a relationship. Patterns do not just describe modules, but describe deeper
system structures and mechanisms.
o The pattern has a significant human component. All software serves human comfort
or quality of life; the best patterns explicitly appeal to aesthetics and utility.
Mostly patterns focus on design problems.
Recent patterns encompass all aspects of software engineering including:
Development organization,
Software development process,
Project planning,
Requirements engineering and
Software management
GENERATIVE AND NON GENERATIVE PATTERNS
Generative patterns describe a recurring problem, tell how to generate something and can be
observed in the resulting system architecture they helped shape.
Non generative patterns are static and passive, they describe the recurring phenomena without
saying how to reproduce them.
PATTERN TEMPLATE
Every pattern is expressed as a rule (template) which establishes a relationship between a
context, a System of forces which arises in that context and a configuration which allows
forces to resolve themselves in the context.
Many pattern templates have been defined that represents a pattern.
ANTI PATTERNS
A pattern represents a “best practice” but anti pattern represents “worst practice”.
Anti patterns come in two varieties:
o Those describing a bad solution to a problem that resulted in a bad situation.
o Those describing how to get out of a bad solution and how to proceed from there
to a good solution.
CAPTURING PATTERNS
The process of looking for patterns to document is called pattern mining. (Reverse architecting).
Some guidelines for capturing patterns are
o Focus on practicability.
o Aggressive disregard of originality.
o Non anonymous Review.
o Writes workshop instead of presentations.
o Careful editing.
FRAMEWORKS
Frameworks are a way of delivering application patterns to support best practice.
An experienced programmer almost never codes a program from scratch.
A seasoned business consultant who has worked on many consulting projects performing
data modeling almost never builds a new model from scratch.
A framework is a way of presenting a generic solution to a problem that can be applied to all
levels in a development.
A framework is viewed as the implementation of a system of design patterns.
Difference between framework and design pattern.
FRAMEWORK
o Framework is executable software.
o Frameworks are of physical nature.
o They are physical realization of one or more software pattern solution.
o They are not abstract.
o It contains several design patterns
o They are highly specialized.
PATTERN
Patterns represent knowledge and experience about software
Patterns are of logical nature.
Patterns are the instructions for how to implement those solution
Design patterns are more abstract than frameworks.
Design pattern are smaller architectural elements than framework.
Design patterns are less specialized.
O-O Analysis
Construction Repository
Component Based Layered
Of use-case
Development Design, UI and Approach
Continuous testing past experiences
patter ns,
User satisfaction documentation UML Based
usability tests, quality and traceability Modeling
Assurance test
O-O Design
Design Classes Design User
their Attributes Apply design view satisfaction
Methods Axiom And usability
Association access
Build UML class diagram tests based
Structure layer and
prototype on use case
s
Continuous testing
The methods and technology used include
Analysis is the process of extracting the needs of a system. The goal is to understand problem
domain and system responsibilities.
So we construct several models which concentrate on describing what the system does rather than how
it does it.
Unified approach utilizes Jacobson et al’s analysis and interaction diagrams, Booch object diagrams
and Rum Baugh’s domain models.
Designing classes, their attributes, methods, associations, structure and protocols, apply,
design, axioms.
Design the access layer.
Design and prototype UI.
User satisfaction and usability tests based on the Usage/Use Case.
Iterate and refine the design.
We must iterate and reiterate till we are satisfied with the system.
UML was developed by joint efforts of leading object technologists Grady Booch, Ivar
UML uses the best of notations used by Booch, Jacobson and Rumbaugh.
UML has become standard notation for object oriented modeling systems.
The UA utilizes UML to describe and model the analysis and design phase of system
development.
In modern business best practice sharing is a way to ensure that solutions to the process and
organization problems.
The advantages of repository we can select from a repository –data element, diagram,
System developed with today CASE tools or client- server application development tends to follow
“two layered Architecture”: interface and data.
In a two layered system, user interface screens are tied to data through routines that sit directly behind
the screens.
Data
Work Station
With every interface , we re create the business logic needed to run the screen.
This approach results in objects that are very specialized and cannot be reused in other projects.
Another approach is one that isolates the functions of the interfaces from the functions of the business.
Data
Work Station
We have the three layered approach, where we create objects that represent elements of business and
completely independent of how they are represented to the user (through interface) or how there are
physically stored in a database.
OOD and
Prototyping Access Layer
View Layer
OOA,OOD &
Prototyping
Three Layered Approach
THE BUSINESS LAYER
The Business layer contains all the objects represent the business.
Model the objects of business and how they interact to accomplish the business Processes.
When creating the business layer, however, it is important to keep in mind a couple of things.
Display details.
Display data access details.
Displaying Details
Business object should have no special knowledge of how they are being displayed and by whom.
The details of how to display an object should exist in the interface layer of the object displaying it.
Business object also should have no special knowledge of” where they come from”.
We don’t bother whether the data are stored and retrieved via SQL or file I/O.
The business objects need to know only whom to talk about being stored or retrieved.
This layer consists of objects with which the user interacts as well as the objects needed to
manage or control the interface. The UI layer also is called the view layer.
The requirement for a UI or how a user will use the system is the responsibility of object-oriented
analysis.
Use cases can provide a very useful tool for understanding UI requirements.
It contains objects that know how to communicate with the place where the data actually
reside,
Whether it be a relational database, mainframe, internet or file)
The responsibilities of access layer are:
TRANSLATE REQUEST
The access layer must be able to translate any data- related requests from business layer in to
the appropriate protocol for data access.
(Eg. If customer needs 55552 to be retrieved, the access layer must be able to create the correct
SQL statement and execute it)
TRANSLATE RESULTS
The access layer also must be able to translate the data retrieved back into the appropriate
business objects and pass those objects back up in to the business layer.
Access objects are identified during object- oriented design.
STATIC MODEL
A static model is a snapshot of systems parameters at rest or at a specific point in time.
They represent the structural or static aspect of a system.
DYNAMIC MODEL
Dynamic model is a collection of procedures or behaviors that reflect the behavior of a system
over time.
Why Modeling?
Good models are essential for communication among project teams. A modeling language must
include.
Model element- Fundamental Modeling concepts and semantics.
Notation- Visual rendering of model elements.
Guidelines –Expression of usage within trade.
The benefits of models are
Clarity –errors are picked easily due to visual examination
Familiarity- used by the people currently works in problem domain.
Maintenance-Visual notation can improve the maintainability of system.
Simplification-It is simple and easily understandable.
Advantages of Modeling are
1. Models are easier to express complex ideas.
2. Easy to understand.
3. Enhance learning and training.
4. Low cost.
5. Manipulation is easier than real time system.
INTRODUCTION TO UML
UML is a graphical language with a set of rules and semantics.
It is a language for specifying, constructing, visualizing and documenting the software
system and its components.
The rules and semantics of a model are expressed in English, in a form known as object
constraint
language (OCL).
The Unified Modeling Language (UML) is a modeling language for specifying,
visualizing, constructing , and documenting the artifacts of a system-intensive process.
The design goals of UML are,
1. Provides user a ready to use so that they can develop and exchange meaningful models.
2. Provide extensibility and specialization.
3. Independent of programming language.
4. Formal basis for understanding modeling language.
5. Encourage the growth of the OO tools markets.
6. Support higher level development concepts.
7. Integrate best practices and methodologies.
UML DIAGRAMS
Every complex system is given by a set of independent views of a model.
Every model may be expressed at different levels.
The UML defines nine graphical diagrams.
Use-Case Diagrams
Class and Object Diagrams
Behavior Diagrams
State chart Diagrams
Activity Diagrams
Interaction Diagrams
Sequence Diagram
Collaboration Diagram
Implementation Diagrams
Component Diagram
Deployment Diagram
Works For
Company Person
employer employee
UML uses association navigation or navigability to specify a role affiliated with each end of an
association relationship.
Here association is navigate in only one direction, from Bank Account to person but not reverse.
Multiplicity is the range of allowable associated classes .It is given by a range of integers of
the format.
OR Association
An OR Association indicates a situation in which one of the several potential association
{or}
Car
Company
Association class
An association having class properties is an association class. It is known by a class symbol attached
by a dashed line to an associate path.
Company Person
Works for
Salary
N –ARY ASSOCIATION
Person
It is an association among more than two classes. It is shown as a large diamond with a path
Year
Semester *
Grade Book
Grade
Exam
lab
Aggregation is a form of association. A hollow diamond is attached to one of end of the path
to denote aggregation.
1 consists of
Team Player
class
GENERALIZATION
It is the relationship between more general class and more specific class. It is displayed as a
directed line with a closed, hollow arrow head at the super class end.
Bus Car
Truck
CLASS DIAGRAM:
USE CASE DIAGRAM
The Use case concept was introduced by Ivar Jacobson in object oriented software
engineering (OOSE).
Use case represent specific flow of events in the system.
Usecase define the outside (actor) and inside (usecase) of the system’s behavior.
A use case diagram is a graph of actors, a set of usecases enclosed by a system
boundary, communication (participation) association between the actors and the
use case, and generalization among the use case.
system. A client makes a call that is taken by an operator, who determine s the nature
of the problem. Some calls can be answered immediately; other calls require research
A use case is shown as an ellipse containing use case name. Use case nme can be
An actor is shown as class rectangle with the level <<actor>> or the label and a stick
figure or just the stick figure with the name of the actor below the figure.
The three representations of an actor are equivalent.
2. Uses. A uses relationship between use case is shown by a generalization arrow from
the use case.
3. Extends. The extends relationship is used when you have one use case that is similar
to.
.
Interaction diagrams are models that describe how groups of objects collaborate to get the
job done.
Interaction diagrams capture the behavior of a single use case, showing the pattern of
interaction among objects.
The diagram shows a number of example objects and the messages passed between
those objects within the use case.
o Sequence Diagrams.
o Collaboration Diagrams.
Sequence diagrams are easy and intuitive way of describing the behavior of a system by
viewing the interaction between the system and its environment.
The vertical line is called the object’s life line. The life line represents the object’s
existence during the interaction.
Each message is represented by an arrow between the life lines of two objects.
The order in which these messages occur is shown top to bottom of the page.
A sequence diagram is an alternative way to understand the overall flow of the control
of a program
things occur.
Collaboration diagram uses the layout to indicate how objects are statically connected.
UML STATECHART DIAGRAM
A state chart diagram(also called a state diagram) shows the sequence of states that an
object goes through during its life in response to outside stimuli and massages.
The state is the set of values that describes an object at a specific point in time and is
represented by state symbols and the transitions are represented by arrows connecting the
state symbols.
A state chart diagram may contain sub diagrams. A state diagram represents the state of
the method execution and the activities in the diagram represent the activities of the object
An activity diagram is a variation or special case of a state machine, in which the states
are
activities representing the performance of operations and the transitions are triggered by the
completion of the operations.
Activity diagram are useful in connection with workflow and in describing behavior that
has a
lot parallel processing.
Activity diagram describes sequencing of activities, with support for conditional and parallel
behavior.
Activity diagram is a variant of state diagram in which states are activity states.
Purposes:
Organize Source Code
Purposes:
Packages Contain Multiple Classes and are Associated and Linked to One Another
Means that Changes in Destination (Dependee - Arrow Head) Can Possible Force
Changes in the Source (Dependent – Arrow Tail)\
Example Package
UNIT-III
CHAPTER 6:
OBJECT ORIENTED ANALYSIS: Identifying Use Cases
OBJECTIVES :
• Identify actors
1
Introduction to Object-Oriented Analysis
• Analysis involves a great deal of interaction with the people who will
be affected by the system
2
• Analyst has 4 major tools for extracting information about a system :
o Examination of existing system documentation
o Interviews
o Questionnaire
o Observation
• Why analysis is a difficult activity ?
3
• To understand users’ requirements :
Find out how they “use” the system, by developing use
cases.
system
Requirements Difficulties
1. Incomplete requirements.
2. Fuzzy descriptions.
3. Unneeded features
4
Incomplete requirements
• This could include the users forgetting to identify them high cost, politics
system developer
Unneeded features
application
• OOA phase of the unified approach uses actors and use cases to
describe the system from users’ perspective.
• OOA process in the unified approach : refer figure 1.
5
Figure 1 : OOA process in the unifed approach
Build prototype
Identify classes,
Identify relationships,
actors attributes, &
methods
6
4. prepare interaction diagrams
a. determine the sequence
b. develop collavboration diagrams
5. classification – develop a static UML class diagram :
a. identify classes
b. identify relationships
c. identify attributes
d. identify methods
6. iterate and refine : if needed, repeat the preceding steps
7
yes yes Go to
yes Go to counter and
counter and check out
return the books
books
Return
book?
yes yes
Interlibrary
loan
borrow no
book?
no Search for
book
yes Do
Do search research on
topics
no
8
– Role played by the user with respect to the system
– Single actor may perform many use cases
– Can be external system
– Can be one get value from the system, or just participate in the use
case
Use-Case Model
• major concepts in Use-Case modeling :
Use-case
Actor
9
To identify :
• who will interact with the system and what the system
should do
• what interfaces the system should have
to verify :
• all requirements are captured
• that the developers have understood the requirements
Identifying Actors
• Actors are not part of the system, they represent roles a user of the
system can play (user may play more than one role )
• Actor may actively interchange information with the system
• Actor may be a passive recipient of information
• Actor can represent a human, machine or another system
• The difference between users and actors :
Salmi employee
Order books
Jamila
volunteer Check IDs
10
Uses and extends association
• Uses
– common sub flows are extracted and separate use case is created
– Relationship bw usecase and extracted one is called uses relationships
• Extends
– Used when use case is similar to other, but do bit more or more
speciliazed
Get an uses
interlibrary loan
uses
Return books
member
Circulation clerk
Do research
Purchase supplies
supplier
11
• Abstract use case
– No initiating actor
following questions :
12
• Actors and system boundaries
ATM system
ATM
maintenance
System boundary
Identifying Use-Cases
13
For each actor, find the tasks and functions that the actor
should be able to perform or that the system needs the actor to
perform. The use case should represent a course of events that
leads to a clear goal
14
• Use-Case diagram is drawn to illustrate that use-cases and actors
interact by sending stimuli to one another
Run reports
ATM Maintenance
15
represents the inclusion of the functionality of one use-case
within another
the arrow is drawn from the base use-case to the used use-case
• Extends association :
Used when you have one use-case that is similar to another use-
case BUT does a bit more, or is more specialized (like a
subclass)
Put the base or normal behavior in one use-case and the unusual
behaviors somewhere else
Represents the extension of the use-case to include optional
behavior
The arrow is drawn from the extension use-case to the base use-
case
• Generalization association :
Represents a specialized use-case to a more generalized one
More general use-case being higher than the lower use-cases
The arrow is drawn from the specialized use-case to the base
use-case
16
• A brief description
o The purpose of the use-case in a few lines
• Detailed flow of events
o Description of the primary and alternate flow of
events that occur when the use-case is initiated
• Documentation should read like a dialogue between the
actor and the use-case
Describe only the events that belong to the use-case, and not
what happens in other use-cases
Avoid terminology such as “for example”, “etc.”, and “
information”
17
• Any alternate flow of events
How detailed must a use case be? When to stop decomposing it and when
to continue
• Draw package
decisions definite
• When the lowest use case level is arrived, which can’t be broken further,
18
Who reads Use-Case
documentation ?
customers
users
system developers
reviewers
system analysts / system
designer
system tester
project leader
technical writer
19
Guidelines for developing effective documentation:
According to Bell and Evans:
• Common cover
• 80-20 rule
• Familiar vocabulary
• Make the document as short as possible
• Organize the document
1.Common Cover
• All documents should share a common cover sheet that identifies the
document, the current version, and the individual responsible for the
content.
2)80–20 Rule
• 80 percent of the work can be done with 20 percent of the documentation.
• The trick is to make sure that the 20 percent is easily accessible and the rest
(80 percent) is available to those (few) who need to know.
3)Familiar Vocabulary
• Use a vocabulary (word, language, expression) that your readers understand
and are comfortable with.
• The main objective here is to communicate with readers and not impress
them with buzz words.
4)Make the Document as Short as Possible
• Eliminate all repetition;
• Present summaries, reviews, organization chapters in less than three pages;
20
• Make chapter headings task (mission) oriented so that the table of
contents also could serve as an index (catalogue, guide,key).
•
5)Organize the Document
Use the rules of good organization (such as the organization's standards,
college handbooks, Strunk and White's Elements of Style, or the University
of Chicago Manual of Style) within each section.
SUMMARY
Analysis is the process of extracting the needs of a system and what
the system must do to satisfy the users’ requirements.OOA phase of the
unified approach uses actors and use cases to describe the system from
users’ perspective.A use-case model is a model of the system’s intended
functions (use cases) and its surroundings (actors).A use case models a
dialogue between actors and the system.
KEY TERMS
Use case
Actor
Use case model
KEY TERM QUIZ
1. A use-case model is a model of the system’s intended functions (use cases) and
its surroundings (actors).
2. Use cases are scenarios that describe how actors use the system.
3. An actor represents anything that interacts with the system
MULTIPLE CHOICE
1. A use-case model is a model of the system’s intended functions (use cases) and
its surroundings (actors).
(a) Use case model (b) use cases
2. Use cases are scenarios that describe how actors use the system.
(a) Use case model (b) use cases
3. An actor represents anything that interacts with the system
(a) use case model (b) usecases (c) actor
21
REVIEW QUESTIONS
1. What is a use case model?
2. Describe the basic activities in OO analysis?
3. Who are actors?
4. Why are uses and extends associations useful in use case modeling?
5. How do you identify actors?
6. What is 80-20 rule?
References :
Bahrami, A.(1999). Object Oriented Systems Development,
Software Corporation
22
CHAPTER 5:
OBJECT ANALYSIS – CLASSIFICATION
OBJECTIVES :
23
INTRODUCTION:
24
Approaches for identifying classes
Classes,
Noun Responsibilities,
phrase and
Collaborators
Commo (CRC)
n class
patterns
Use-case
driven,
sequence /
collaboration
modeling
Wiener
25
Considered to
be
Nouns in
textual Classes
description
Considered to
Verbs in be
Methods of
textual
the classes
description
Changed to
plurals singular
Relevant fuzzy
classes classes
Irrelevant
classes
Scrap this classes,
which either have
no purpose or will
be unnecessary
26
Look for nouns and noun phrases in the use-cases
Refer figure 1.
Review redundant
classes
Review irrelevant
Review adjectives
classes
Review attributes
27
Figure 1 : the process of eliminating the redundant classes and
refining the remaining classes is not sequential. You can move
back and forth among these steps as often as you like
28
Removing irrelevant classes
• Account
• Account balance
• Amount
• Approval process
• Atm card
• Atm machine
• Bank
• Bank client
• Card
• Cash
• Check
• Checking
• Checking account
• Client
• Client’s account
• Currency
• Dollar
• Envelope
• Four digits
• Fund
• Invalid pin
• Message
• Money
• Password
• PIN
• Pin code
• Record
• Savings
• Savings account
• Step
• System
• Transaction
• transaction history
29
Removing redundant classes and building common vocabulary
Account Client
Account balance Client’s account
Amount Currency
Approval process Dollar Record
Atm card Envelope Savings
Atm machine Four digits Savings account
Bank Fund Step
Bank client Invalid pin System
Card Message Transaction
Cash Money transaction history
Check Password
Checking PIN
Checking account Pin code
30
Reviewing possible attributes
Account Client
Account balance Client’s account
Amount Currency
Record
Approval process Dollar
Savings
Atm card Envelope
Savings account
Atm machine Four digits
Step
Bank Fund
System
Bank client Invalid pin
Transaction
Card Message
transaction
Cash Money
history
Check Password
Checking PIN
Checking account Pin code
31
• Saving account class
• Transaction class
32
• What role does a person play in the system ?
• Ex : employee, student, lecturer
Places class :
• Physical locations that the system must keep information
about
• Ex : buildings, stores, offices
Then it must
collaborate with those
objects to fulfill its
responsibility
33
• By identifying an object’s responsibilities and collaborators, you can
identify its attributes and methods
Responsibilities
Identify classes
&
responsibility
Identify Assign
collaboration responsibility
34
• classes are identified & grouped by common attributes, which also
provides candidate for superclasses
• the card also notes sub-and superclasses to show the class structure
• next, the responsibilities are distributed should be general as
possible and placed as high as possible in the inheritance hierarchy
• idea in locating collaborators is to identify how classes interact
35
What is use
case analysis ?
• Purpose
identify the classes which perform a use case’s flow of events
distribute the use case behavior to those classes, using a use-
case realizations
identify the responsibilities, attributes, and associations of the
classes
36
• Use-Case Realization :
37
• For each use case realization :
Find classes from use-case behavior
Distribute use-case behavior to classes
<<boundary>>
<<control>>
System
boundary Use-case
behavior
coordination
<<entity>>
System
information
38
Identification of classes means just that : they should be
identified, named, and described briefly in a few sentences
Boundary Class :
Course
Student Register for courses Catalog
System
RegisterForCoursesForm CourseCatalogSystem
Entity Class :
39
• Represent stores of information in the system
• Used to represent the key concepts that the system
manages
• Entity objects (instances of entity classes) are used to
hold and update information about some phenomenon,
such as an event, a person, or some real-life object
• Main responsibilities of entity classes are to store and
manage information in the system
• Entity objects are identified by applying the nouns
approach
• Example : candidate entity classes : Register for Courses
(Create Schedule )
CourseOfferring Schedule
Student
Control Class :
40
• They represent the dynamics of the system, handling the
main tasks and control flows
• One control class per use case
Course
Student Register for courses Catalog
System
RegistrationController
• Naming Classes
A class name should be a singular noun
Class names start with an upper case letter
Underscores are not used
• Names composed of multiple words are pushed together
and the first letter of each additional word is capitalized
41
Example : Student, BillingSystem, CourseRoaster
Name : Course
Working Definition : A class offered by the University
Name : Professor
Working Definition : A person teaching classes at the
university
42
Use case Use-Case
Realization
Sequence Collaboration
diagrams diagrams
• Interaction Diagrams :
A graphical representation of interactions between objects
2 kinds of interaction diagrams : Sequence diagrams(time
ordered) and Collaboration diagrams (data flow)
• Sequence Diagram
Shows object interactions arranged in time sequence
The diagram shows
• The objects participating in the interaction
• The sequence of messages exchanged
Basic elements :
43
• Actors : someone/something outside the system that
interacts with the system, either by giving or receiving
information, or both
Class name
Object name
Object name and
Class name
44
• Messages: communication between two objects that
triggers an event
//maintain profile()
Message
• Collaboration Diagram
45
Alternate way to represent the messages exchanged by a set of
objects
The diagram shows object interactions organized around the
objects and their links to each other
Basic elements :
• Actors
• Objects
• Links : a pathway for communication between objects on
a collaboration diagram
• Messages
2:validate id
3:enter current
1:enter id semester
4:create new
Ali:Student schedule :RegistrationForm
5:display
6:get courses
:AvailableClasses
:ScheduleForm
46
◊ One general rule for naming classes is that you should use names with
which the users or clients are comfortable.
◊ The name of a class should reflect its intrinsic nature.
◊ Use readable name. Capitalize class names.
SUMMARY:
Identification of classes is the hardest part of part of
OOAnalysis.Classification is the categorization of input data (things) into
identifiable classes through the extraction of significant features of attributes of the
data from a background of irrelevant detail. The guidelines for naming classes-
The class name should be singular, One general rule for naming classes is that you
should use names with which the users or clients are comfortable, the name of a
class should reflect its intrinsic nature., Use readable name, Capitalize class names.
KEYTERMS
Classes ,Responsibilities, and Collaborators (CRC)
Classification
Concept class
Places class
Organization class
Person class (or) people class
Tangible things and devices class
47
7. Classes ,Responsibilities, and Collaborators (CRC) is a technique used
for identifying classes’ responsibilities and therefore their attributes and
methods
8. Classification is the categorization of input data (things) into identifiable
classes through the extraction of significant features of attributes of the data
from a background of irrelevant detail.
MULTIPLE CHOICE
REVIEW QUESTIONS
48
1. What are the approaches to identify classes?
2. Describe the noun phrase strategy for identifying tentative classes in the
problem
domain?
3. Describe relevant, fuzzy, irrelevant classes.
4. How do you select candidate classes from the list of relevant and fuzzy classes?
5. Why is identifying classes an incremental process?
6. Why is developing a sequence / collaboration diagram a useful activity in
identifying classes?
7. Mention the uses of CRC
8. Why is identifying class hierarchy important in OO analysis?
49
CHAPTER-8
Identify Objects, Relationships, Attributes, Methods
OBJECTIVES:
At the end of this chapter, students should be able to define and understand:
INTRODUCTION
50
Relationships
• All objects stand in relationship to others on whom they rely for
services and control
• The relationship among objects is based on the assumptions each
makes about the other objects, including what operations can be
performed and what behavior results
• 3 types of relationships among objects :
Association
Super-Sub structure (also known as generalization hierarchy)
Aggregation and a-part-of structure
• ASSOCIATION:
Represents a physical or conceptual connection between two or
more objects
The most general relationship and indicate communication only
Ex : if an object has the responsibility for telling another object
that a credit card number is valid or invalid, the two classes
have an association
Identifying associations begins by analyzing the interactions
between classes
Any dependency relationship between two or more classes is an
association
Examine the responsibilities to determine dependencies
51
The following questions can assists in identifying associations
[Wirfs-Brock, Wilkerson, &Wiener ]:
Association Specifiers
• association names a label that clarifies the meaning of
the association
o usually verbs or verb phrase
o use either an association or a role name, NOT
both
o used during analysis, before sufficient information
exists to use role names
52
• multiplicity the number of instances a class relates to
an instance of another class
o defined at both ends of the association line
o multiplicity Indicators :
Many *
Exactly one 1
Example :
1) Give lecture
Person Course
1 1..*
53
2)
Lecturer
Person Course
1 1..*
StaffMember
StaffName
StaffNo
CalculateBonus
Chachange
GradegetGrade
AdminStaff
CreativeStaff
54
Represents the situation where a class consists of several
component classes
Example : Aggregation
CAR
ENGINE RADIO
CARBURETOR
55
• Antisymmetry : the property where, if A is part of B, then
B is not part of A.
o Ex : An engine is aprt of car, BUT car is not part
of an engine
Identifying Attributes
• attributes are things an object must remember
• an attribute is a data definition held by instances of a class (object)
• attributes do not have behavior they are NOT objects
• attribute are simple nouns or noun phrases
names must be unique within a class
• each attribute should have a clear, concise definition
• Example :
56
• Example : object of the “LECTURER “ class : Attributes
Name
StaffId
Pn.Norhayana Subject Taught
A0224
Software Requirement
Dr.Mohd.Azim
A0123
Software Quality
• Many attributes are discovered in the flow of events for the use cases
57
• Look for nouns that were not considered good candidate
classes
• Others are discovered when the class definition is created
Identifying Methods/operation
• Objects not only describe abstract data but also must provide some
services
58
• Operation should be name to indicate their outcome NOT the steps
behind the operation
Example :
calculateBalance ( ) poorly named
It indicates the balance must be calculated this is an
implementation decision
: RegistrationForm : RegistrationManager
2. Add course
RegistrationManager
59
AddCourse( )
Class Diagram
• A class diagram shows a set of classes, interfaces, and their
relationships
• Model the static view of the system, which supports the functional
requirements of the system
• Made up of the following basic elements :
Classes
Relationships
• Associations
• Aggregations
• Generalizations
• Example :
<<entity>>
<<boundary>> Course
ScheduleForm 0..4
1 1
Adds student to
1 1 1
<<entity>>
<<control>> 1
CourseCatalog
RegistrationManager 1
<<entity>>
accesses StudentRecord
60
SUMMARY
The three types of relationships among objects are Association, Super-Sub
structure (also known as generalization hierarchy), Aggregation and a-part-of
structure. Association represents a physical or conceptual connection between two
or more objects. Binary associations are shown as lines connecting two class
symbols. Ternary and higher-order associations are shown as diamonds connecting
to a class symbol by lines, and the association name is written above or below the
line. We need to identify the system’s responsibilities because responsibilities
identify problems that are to be solved. A responsibility serves as a handle for
discussing potential solutions. Once the system’s responsibilities are understood,
we can start identifying the attributes of the system’s classes. A-part-of
relationship, also called aggregation, represents the situation where a class consists
of several component classes. A class that is composed of other classes does not
behave like its parts; actually, it behaves very differently.
KEY TERMS
Aggregation
Antisymmetry
A part of relationship
Association
Transitivity
61
3. Transitivity is the property where, if A is part of B and part B is part of C,
then A is part of C.
4. Antisymmetry is the property where, if A is part of B, then B is not part of
A.
MULTIPLE CHOICE
REVIEW QUESTIONS
1. What is association?
2. What is generalization?
3. How would you identify a super- subclass structure?
4. What is an a-part-of structure? Write their properties.
5. What guidelines would you use to identify a-part-of structure?
6. Is association different from an a-part-of relation?
7. What are unnecessary associations? How would you know?
8. How do you identify attributes?
9. How do you identify methods?
10. What are the unnecessary attributes?
11. Why do we need to justify classes with one attribute?
12. State why documentation is important part of analysis.
62
13. What are the similarities between classes and Use Cases?
14. State the difference between the classes and Use Cases.
References :
Bahrami, A.(1999). Object Oriented Systems Development,
using the unified modeling language, McGraw-Hill
Object Oriented Analysis and Design using UML, by Rational
Software Corporation (2002)
63
UNIT-IV
CHAPTER 9
OBJECTIVES:
OO design process
Activities of OOD Process
(4) Iterate and refine the whole design. Reapply the design axioms and if needed ,
repeat the preceding steps.
Types of Axioms
• AXIOM-1 (Independence axiom): deals with relationships between system
components such as classes, requirements, software components.
Axioms of OOD
• The axiom 1 of object-oriented design deals with relationships between
system components (such as classes, requirements and software
components) and axiom 2 deals with the complexity of design.
• Axiom 1. The independence axiom. Maintain the independence of
components. According to axiom 1, each component must satisfy its
requirements without affecting other requirements. Eg. Let us design a
refrigerator door which can provide access to food and the energy lost
should be minimized when the door is opened and closed. Opening the door
should be independent of losing energy.
• Axiom 2. The information axiom. Minimize the information content of the
design. It is concerned with simplicity. In object-oriented system, to
minimize complexity use inheritance and the system’s built in classes and
add as little as possible to what already is there.
Origin of corollaries.
Types of corollaries
The design rules or corollaries derived from
design axioms are stated below.
Corollary 5: Standardization
• To reuse classes, we must have a good understanding of the classes.
• Most object-oriented systems come with several built-in class libraries.
• But these class libraries are not always well documented.
• Sometimes they are documented, but not updated.
• They must be easily searched, based on users’ criteria.
Lisence
CommercialVehicle PrivateVehicle
Lisencee
Restuarant
CommercialVehiclee PrivateVehiclee
FoodTruck
Lisencee
CommercialVehiclee PrivateVehiclee
FoodTruck
Restuarant
Design Patterns
• A design pattern provides a scheme for refining the subsystem or
components of a software system or the relationships among them.
• They allow systems to share knowledge about their design, by describing
commonly recurring structures of communicating components that solve a
general design problem within a particular context
SUMMARY
The basic goal of the axiomatic approach is to formalize the design process
and assist in establishing a scientific foundation for the object-oriented design
process, so as to provide a fundamental basis for the creation of systems. Without
scientific principles, the design field never will be systematized and so will be
difficult to comprehend, codify, teach and practice. The main activities in design
process are
◊ Testing user satisfaction and usability, based on the usage and use cases.
Corollary 5: Standardization.
KEY TERMS
Axioms
Cohesion
Corollary
Coupling
Design pattern
Theorem
REVIEW QUESTIONS
Designing Classes
OBJECTIVES :
Designing classes
Designing methods
Develop packages
INTRODUCTION
Visibility
• A class might have a set of methods that it uses only internally, messages to
itself. This private protocol of the class, includes messages that normally
should not be sent from other objects. Here only the class itself can use the
methods.
• The public protocol defines the stated behavior of the class as a citizen in a
population and is important information for users as well as future
descendants, so it is accessible to all classes. If the methods or attributes can
be used by the class itself (or its subclasses) a protected protocol can be
used. Here subclasses can used the method in addition to the class itself.
• The lack of well-designed protocol can manifest itself as encapsulation
leakage. It happens when details about a class’s internal implementation are
disclosed through the interface.
Encapsulation leakage
• Encapsulation leakage is lack of a well-designed protocol
• The problem of encapsulation leakage occurs when details about a class’s
internal implementation are disclosed through the interface.
• As more internal details become visible, the flexibility to make changes in
the future decreases.
Visibility types
Attribute representations :
• During design, OCL ( Object Constraint Language) can be used to define the
class attributes
OCL
• The rules and semantics of the UML are expressed in English, in a form
known as object constraint language.
• Object constraint language (OCL) is a specification language that uses
simple logic for specifying the properties of a system.
Attributes
• Attributes represent the state of an object.
• When the state of the object changes, these changes are reflected in the value
of attributes.
• Single value attribute has only one value or state. (Eg). Name, address,
salary
• Multiplicity or multivalue attribute can have a collection of many values at
any time.
• (Eg) If we want to keep tact of the names of people who have called a
customer support line for help.
Design goals
• To maximize cohesiveness (interconnection) among objects and software
components to improve coupling (combination, pairing), because only a
minimal amount of essential information should be passed between
components.
• Abstraction leads to simplicity and straight- forwardness and, at the same
time, increases class versatility (flexibility, resourcefulness, usefulness).
SUMMARY
Private protocol of the class includes messages that normally should not be
sent from other objects. The messages are accessible only to operations of that
class. Only the class itself can use the method.
◊ The public protocol defines the stated behavior of the class so that it is
accessible to all classes.
◊ Conversion method: The method that converts a value from one unit f
measure to another.
◊ Copy method: The method that copies the contents of one instance to
another instance.
◊ Attribute set: The method that sets the values of one or more attributes.
◊ Attribute get: The method that returns the values of one or more
attributes.
device.
KEY TERMS:
Private protocol
Protected protocol
Public protocol
1. Private protocol of the class, includes messages that normally should not be
sent from other objects
2. Public protocol defines the stated behavior of the class as a citizen in a
population and is important information for users as well as future
descendants
3. Protected protocol is nothing but Methods or attributes can be used by the
class itself or its subclasses
4. Use the Object Constraint Language- a specification language, provided
by UML to specify the properties of a system
MULTIPLE CHOICE
1. Private protocol of the class, includes messages that normally should not be
sent from other objects
a) Object constraint language (OCL)
b) Private protocol
c) Protected protocol
d) Public protocol
2. Public protocol defines the stated behavior of the class as a citizen in a
population and is important information for users as well as future
descendants
a) Object constraint language (OCL)
b) Private protocol
c) Protected protocol
d) Public protocol
3. Protected protocol is nothing but Methods or attributes can be used by the
class itself or its subclasses
a) Object constraint language (OCL)
b) Private protocol
c) Protected protocol
d) Public protocol
4. Use the Object Constraint Language- a specification language, provided
by UML to specify the properties of a system
a) Object constraint language (OCL)
b) Private protocol
c) Protected protocol
d) Public protocol
REVIEW QUESTIONS
1. What are public and private protocols? What is the significance of separating
these two protocols? (Pg 220)
2. What are some characteristics of a bad design? (Pg 226)
3. How do design axioms help avoid design pitfalls? (Pg 226)
4. List out the type of attributes. Explain them (Pg 222)
5. How is an attribute represented in the UML? (Pg 222)
6. How is an operation represented in the UML? (Pg 227)
7. Define Encapsulation Leakage (Pg 220)
8. What is OCL? (Pg 218)
9. What is the use of protected protocol? (Pg 220)
References :
Bahrami, A.(1999). Object Oriented Systems Development,
using the unified modeling language, McGraw-Hill
Object Oriented Analysis and Design using UML, by Rational
Software Corporation (2002)
Leszek A. Maciaszek (2001). Requirements Analysis and System
Design, Developing Information Systems with UML, Addison-
Wesley.
CHAPTER-11
Access Layer - Object Storage – Object Interoperability
OBJECTIVES:
Persistent stores
• Most object-oriented languages do not support serialization or object
persistence, which is the process of writing or reading an object to and from
a persistence storage medium, such as disk file.
• Unlike object oriented DBMS systems, the persistent object stores do not
support query or interactive user interface facilities.
• Controlling concurrent access by users, providing ad-hoc query capability
and allowing independent control over the physical location of data are not
possible with persistent objects.
Each item of data will have a different lifetime. These lifetimes are categories
into six, namely
Relational Model
• It is simple and widespread. Here the relation can be thought of as a
table.
• The columns of each table are attributes that define the data or value
domain for entries in that column.
• The rows of each table are tuples representing individual data objects
being stored.
• A relational table should have only one primary key.
• A primary key is a combination of one or more attributes whose value
unambiguously (clearly) locates each row in the table.
• A foreign key is a primary key of one table that is embedded in another
table to link the tables.
Database Interface
DML
• Query processes have sophisticated “engines” that determine the best
way to approach the database and execute the query over it. The may
use the information in the database or knowledge of the whereabouts of
particular data in the network to optimize the retrieval of a query.
• DML are either procedural or nonprocedural. A Procedural DML
requires users to specify what data are desired and how to get the data.
• A non-procedural DML requires users to specify what data are needed
but not how to get the data. Object-oriented query and data
manipulation languages, such as Object SQL, provide object
management capabilities to the data manipulation language.
• In a relational DBMS, the DML is independent of the host
programming language.
• A host language such as C or COBOL would be used to write the body
of the application. SQL statements then are embedded in C or COBOL
applications to manipulate data.
• Once SQL is used to request and retrieve database data, the results of
the SQL retrieval must be transformed into the data structures of the
programming language.
• The drawback here is that the programmers code here in two
languages, SQL and the host language.
Transactions
• Transaction is a unit of change in which many individual modifications
are aggregated into a single modification that occurs in its entirety or
not at all. Thus either all changes to objects within a given transaction
are applied to the database or none of the changes. A transaction is said
to commit if all changes can be made successfully to the database and to
abort if canceled because all change to the database cannot be made
successfully. This ability of transactions ensures atomicity of change
that maintains the database in a consistent state.
• Many transaction systems are designed for short transactions (lasting
for minutes). They are less suitable for long transactions, lasting hours.
Object databases are designed to support both short and long
transactions. A concurrent control policy dictates what happens when
conflicts arise between transactions that attempt to access to the same
object and how these conflicts are to be resolved.
Concurrency Policy
• When several users attempt to read and write the same object
simultaneously, they create a contention (conflict) for object. Then
concurrency control mechanism is established to mediate such conflicts
by making policies that dictate how they will be handled.
• To provide consistent view, the transactions must occur in serial order.
A user must see the database as it exists before a given transaction
occurs or after the transaction.
Concurrency issues
• The conservative way of enforcing serialization is to allow a user to lock
all objects or records when they are accessed and to release the locks
only after a transaction commits. This is called conservative or
pessimistic policy. It provides exclusive access to the object, despite
what is done to it. The policy is conservative because no other user can
view the data until the object is released.
• By distinguishing between querying (reading) the object and writing to
it, greater concurrency can be achieved. This policy allows many
readers of an object but only one writer.
• Under an optimistic policy, two conflicting transactions are compared in
their entirety and then their serial ordering is determined.
• A process can be allowed to obtain a read lock on an object already
write locked if its entire transaction can be serialized as if it occurred
either entirely before or entirely after the conflicting transaction.
• The reverse also is true. A process may be allowed to obtain a write
lock on an object that has a read lock if its entire transaction can be
serialized as if it occurred after the conflicting transaction. Now the
optimistic policy allows more processes to operate concurrently than the
conservative policy.]
Client Program:
• It sends a message to the server requesting a service (task done by
server).
• Manages User Interface portion of the application.
• Performs validation of data input by the user.
• Performs business logic execution (in case of 2 tier).
• Manages local resources.
• Mostly client programs are GUI.
Server Program:
• Fulfills the task requested by the client.
• Executes database retrieval and updation as requested by the client.
• Manages data integrity and dispatches results to the client.
• Some cases a server performs file sharing as well as application services.
• Uses power full processors and huge storage devices.
Transaction Servers
• With transaction servers, clients invoke remote procedures that reside
on servers, which also contain an SQL database engine. The server has
procedural statements to execute a group of SQL statements
(transactions), which either all succeed or fail as a unit.
• Applications based on transaction servers, handled by on-line
transaction processing (OLTP), tend to be mission-critical applications
that always require a 1-3 second response time and tight control over
the security and integrity of the database. The communication
overhead in this approach is kept to a minimum, since the exchange
consists of a single request and reply (as opposed to multiple SQL
statements in database servers).
N-tier architecutre
Microsoft’s ActiveX/DCOM
• Microsoft’s Component Object Model (COM) and its successor, the
distributed component object model (DCOM) are alternative to COR
BA. DCOM was bundled with Windows NT 4.0. DCOM is an Internet
and component strategy where ActiveX (formerly known as object
linking and embedding or OLE) plays the role of DCOM object.
DCOM is backed by web browser (Internet Explorer).
DISTRIBUTED DATABASES
Many modern databases are distributed databases, which implies that portions of
the database reside on different nodes (computers) and disk drives in the network.
Usually, each portion of the database is managed by a server, a process responsible
for controlling access and retrieval of data from the database portion.
Client-server computing extends this theory a step further by recognizing that all
those modules need not be executed within the same memory space or even on the
same machine. With this architecture, the calling module becomes the “client”
(that which requests a service) and the called module becomes the “server” (that
which provides the service)
Another important component of client-server computing is connectivity, which
allows applications to communicate transparently with other programs or
processes, regardless of their locations. The key element of connectivity is the
network operating system (NOS), also known as middleware . The NOS provides
services such as routing, distribution, messages, filing and printing, and network
management.
Client Process
The client is a process (program) that sends a message to a server process
(program) requesting that the server perform a task (service).
Client programs usually manage the user interface portion of the application,
validate data entered by the user, dispatch requests to server programs, and
sometimes execute business logic.
The business layer contains all the objects that represent the business (real objects)
such as Order, Customer, Inventory. The client-based processes is the front-end of
the application, which the user sees and interacts with. The client process contains
solution-specific logic and provides the interface between the user and the rest of
the application system.
With transaction servers, clients invoke remote procedures that reside on servers,
which also contain an SQL database engine. The server has procedural statements
to execute a group of SQL statements (transactions), which either all succeed or
fail as a unit.The server has procedural statements to execute a group of SQL
statements (transactions), which either all succeed or fail as a unit.
The application based on transaction servers, handled by on-line transaction
processing (OLTP), tend to be mission-critical applications that always require a 1-
3 seconds response time and tight control over the security and the integrity of the
database.
Distributed objects are reusable software components that can be distributed and
accessed by users across the network. These objects can be assembled into
distributed applications. Distributed object computing introduces a higher level of
abstraction into the world of distributed applications. Applications no longer
consists of clients and servers but users, objects and methods. The user no longer
needs to know which server process performs a given function. All information
about the function is hidden inside the encapsulated object. A message requesting
an operation is sent to the object, and the appropriate method is invoked.
Distributed object computing resulted form the need to integrated mission-critical
applications and data residing on systems that are geographically remote,
sometimes from users and often from each other, and running on many different
hardware platforms. The business have had to integrate applications and data by
writing custom interfaces between systems, forcing develops to spend their time
building and maintaining an infrastructure rather than adding new business
functionality.
Object-relational systems
The object-oriented development creates a fundamental mismatch between the
programming model (objects) and the way in which existing data are stored
(relational tables).
To resolve the mismatch, a mapping tool between the application objects and the
relational data must be established. Creating an object model from an existing
relational database layout (schema) often is referred to as reverse engineering.
Conversely, creating a relational schema from an existing object model often is
referred to as forward engineering.
Tools that can be used to establish the object-relational mapping processes have
begun to emerge. The main process in relational and object integration is
defining the relationships between the table structures (represented as schemata)
in the relational database with classes (representing classes) in the object model.
Example Sun Java Blend allows the developer access to relational data as java
objects, thus avoiding the mismatch between the relational and object data
model.
Object- Relation Mapping
In a relational database, the schema is made up of tables, consisting of rows and
columns, where each column has a name and a simple data type. In an object
model, a table is a class, which has a set of attributes (properties or data
members). Object classes describe behavior with methods.
A tuple (row) of a table contains data for a single entity that correlates to an
object (instance of a class) in an object –oriented system. In addition, a stored
procedure in a relation database may correlate to a method in an object-oriented
architecture. A stored procedure is a module of precompiled SQL code
maintained within the database that executes on the server to enforce rules the
business has set about the data.
Therefore, the mapping essential to object and relational integration are between
a table and a class, between columns and attributes, between a row and an
object, and between a stored procedure and a method.
The relational data maps to and from application objects, it must have at least
the following mapping capabilities.
Table-class mapping
Table-multiple classes mapping
Table-inherited classes mapping
Tables- inherited classes mapping.
The tool must describe both how the foreign key can be used to navigate among
classes and instances in the mapped object model and how referential integrity is
maintained. Referential integrity means making sure that a dependent table’s
foreign key contains a value that refers to an existing valid tuple in another
relation.
Table-Class Mapping
Table-Class mapping is a simple one-to-one mapping of a table to a class and the
mapping of columns in a table to properties in a class. In this mapping, a single
table is mapped to a single class.
OODBMS
• It is marriage of object oriented programming and database technology.
The defined operations apply universally and are not dependent on the
particular database application running at the moment.
• The data types can be extended to support complex data such as multimedia
by defining new object classes that have operations to support new kinds of
information.
• The system must support complex objects. System must provide simple
atomic types of objects (integers, characters, etc) from which complex
objects can be built by applying constructors to atomic objects.
• Object identity must be supported: A data object must have an identity and
existence independent of its values.
• System must support types or classes: The system must support either the
type concept or class concept
• System must avoid premature binding: This is also known as late binding or
dynamic binding. It shows that the same method name can be used in
different classes. The system must resolve conflicts in operation names at
run time.
• System must be extensible: The user of the system should be able to create
new types that have equal status to the system’s predefined types.
The OODBMs like DBMSs must allow for sharing; secure, concurrent
multiuser access; and efficient, reliable system performance.
Object oriented databases also differ from the traditional relational databases
in that they allow representation and storage of data in the form of objects.
(each object has its own identity or object-ID
Object Identity
Object oriented databases allow representation and storage of data in the form
of objects.
Each object has its own identity or object-ID (as opposed to the purely value-
oriented approach of traditional databases).
• The MDBS translates the global queries and updates for dispatch to the
appropriate local database system for actual processing, merges the
results from them and generates the final result for the user.
• The application interacts with the ODBC driver manager, which sends
the application calls (such as SQL statements) to the database.
• The driver manager loads and unloads drivers, perform status checks
and manages multiple connections between applications and data
sources.
• The main idea behind creating an access layer is to create a set of classes
that know how to communicate with the place(s) where the data
actually reside. Regardless of where the data reside, whether it be a file,
relational database, mainframe, Internet, DCOM or via ORB, the access
classes must be able to translate any data-related requests from the
business layer into the appropriate protocol for data access.
• These classes also must be able to translate the data retrieved back into
the appropriate business objects.
• Translate the request: The access layer must be able to translate any
data related requests from the business layer into the appropriate
protocol for data access.
• Translate the results: The access layer also must be able to translate the
data retrieved back into the appropriate business objects and pass those
objects back into the business layer.
(1) For every business class identified ,mirror the business class package.: For
every business class identified and created, create one access class in the
access layer package.
Eg , if there are 3 business classes (class1, class2 and class3), create 3
access layer classes (class1DB, class2DB and class3DB)
(2) Identify access layer class relationships (or) define the relationships.
In this process, the access layer classes are assumed to store not only the
attributes but also the methods.This can be done by utilizing an OODBMS
OR Relational data base
Design the access layer process (approach-2)
• (1) For every business class identified determine if class has persistent
data.An attribute can be either transient or persistent (non transient )
(2) For every business class identified ,mirror the business class package.: For
every business class identified and created, create one access class in the
access layer package.
(3) Identify access layer class relationships (or) define the relationships.
◊ Stability.
Allows a user to lock all objects or records when they are accessed
and to release the locks only after a transaction commits.
◊ Optimistic policy
Hierarchical model
Network model
Relational model
KEY TERMS
ODBC
Homogenization
Cooperative processing
MULTIPLE CHOICE
(c) homogenization
REVIEW QUESTIONS
References :
Object Oriented Analysis and Design using UML, by Rational
CHAPTER 12
OBJECTIVES :
INTRODUCTION
this class
objects.
The separation of the view layer from the business and access layers is that,
when you design of UI objects, you have to think more explicitly about
distinctions between objects that are useful to users.
View layer classes or interface objects are objects that represent the set of
operations in the business that users must perform to complete their tasks, ideally
in a way they find natural, easy to remember, and useful.
Any objects that have direct contact with the outside world are visible in
interface objects.
The view layer objects are responsible for two major aspects of applications:
1. The macro level UI design process – identifying view layer objects. The
main objective of the macro process is to identify classes that interact with
human actors by analyzing the use cases developed in the analysis phase.
The each use case involves actors and the task they want the system to
do. These use cases should capture a complete, unambiguous, and consistent
picture of the interface requirements of the system.
In this phase, it is also need to address the issue of how the interface
must be implemented.
Sequence or collaboration diagrams can help by allowing us to zoom
in on the actor-system interaction and extrapolate interface classes that
interact with human actors; thus assisting us in identifying and gathering the
requirements for the view layer objects and designing them.
2.2 Prototyping the view layer interface. After defining a design model,
prepare a prototype of some of the basic aspects of the design. Prototyping
is particularly useful early in the design process.
3. Testing usability and user satisfaction. "We must test the application to
make sure it meets the audience requirements. To ensure user satisfaction,
measure user satisfaction and its usability along the way as the UI design
takes form. Usability experts agree that usability evaluation should be part of
the development process rather than a post-mortem or forensic activity.
Once the interface objects have been identified, we must identify the basic
components or objects used in the user tasks and the behavior and the
characteristics that differentiate each kind of object, including the relationships of
interface objects to each other and to the user.
The interface object handles all communication with the user but does not
process any business rules; that will do by the business objects.
Effective interface design is more than just following a set of rules. It also
involves early planning of the interface and continued work through the software
development process. The process of designing the user interface involves
clarifying the specific needs of the application, identifying the use cases and
interface object and then devising a design that best meets users' needs.
Relationship among view objects,
business objects, access objects
View objects
Business objects
Access objects
Micro-Level Process
The design of the view layer objects must be user driven or user centered.
A user-centered interface replicates the user‟s view of doing thins by
providing the outcomes users expect for any action.
The following is the process of designing view (interface) objects:
1. For every interface object identified in the macro UI design process, apply
micro-level UI design rules and corollaries to develop the UI.
2. Iterate and refine.
Micro level design process
Next interface
objects refine
and iterate
Done
A goal of user interface design is to make the user interaction with the
computer as simple and natural as possible.
The second implication is that users, because of their widely varying skills
and preferences, must be able to customize aspects of the interface. The software
should reflect user settings for different system properties such as color, fonts or
other options.
A mode is a state that limits the user to specific interactions. There are
situations in which modes are useful; for example, selecting a file name before
opening it. The main idea here is to avoid creating a single UI class for several
business objects, since it makes the UI less flexible and forces the user to perform
tasks in a massive way.
Even within the best designed interface, users can make mistakes. These
mistakes can be both physical (accidentally pointing to the wrong command or
data) and mental (making a wrong decision about which command or data to
select).
An effective design avoids situations that are likely to result in errors.
Users feel more comfortable with a system when their mistakes do not cause
serious or irreversible results.
Make the interface Visual. Deign the interface so users can see, rather than recall,
how to proceed.
Provide Immediate Feedback. Users should never press a key or select an action
without receiving immediate visual or audible feedback or both.
For example, the color, emphasis, and selection indicators show users they can
select that choice.
Avoid Modes. Modes force users to focus on the way an application works,
instead of on the task they want to complete. Modes, therefore, interfere with
user‟s ability to use their conceptual model of how the application should work. It
is not always possible to design a modeless application.
The method for ending the mode should be easy to learn and remember.
There are some of the modes that can be used in the user interface:
Tool-driven modes: If you are in a drawing application, you may be able to choose
a tool, such as a pencil or a paintbrush for drawing. After you select the tool, the
mouse pointer shape changes to match the selected tool.
Make the Interface Consistent Consistency is one way to develop and reinforce
the user‟s conceptual model of applications and give the user the feeling that he or
she is in control, since the user can predict the behavior of the system. User
interface should be consistent throughout the applications.
What kind of information will users work with and why? For example, a user
might want to change inventory information, enter orders, or maintain prices for
stock items.
Do users need access to all the information in a table or just some information? –
use a query that selects the rows and columns users want.
In what order do users want rows to appear? For example, users might want to
change inventory information stored alphabetically, chronologically or by
inventory number.
If the dialog box is for an error message, use the following guidelines:
Your error message should be positive. For example instead of displaying “you
have typed an illegal data format” display the message “Enter date format
mm/dd/yy”.
A typical application window consists of a frame (or border) that defines its
extent and a title bar that identifies what is being viewed in the window. If the
viewable content of the window exceeds the current size of the window, scroll bars
are used. The windows also can include other components like menu bars, toolbars
and status bars. An application window usually contains common drop-down
menus.
The File menu: It provides an interface for the primary operations that apply a file
such as open, Save, Save As… and Print.
The Edit Menu : Include general purpose editing commands on the Edit menu.
These commands include the Cut, Copy and Paste commands and also includes
Undo, Find, Delete command.
The View Menu and other command Menus: Commands on the View menu should
change the user‟s view of data in the Window. For example Zoom or Outline,
Show Ruler.
The Window Menu: use the window menu in multiple document, interface style
applications for managing the windows within the main workspace.
The Help menu: It contains commands that provide access to Help information.
Such as Help Topic command – Contents, Index and Find Topic.
Toolbars and Status Bars : It is special interface constructs for managing sets of
controls. A toolbar is a panel that contains a set of controls.
A status bar is a special area within a window, typically at the bottom, that displays
information such as current state such as keyboard state.
For all objects on a window, use colors to add visual appeal to the form. Text
must be readable at all times: black is the standard color. Associate meanings to the
colors of your interface. For example, use blue for all the uneditable fields, green
to indicate fields that will update dynamically, and red to indicate error conditions.
Ensure color consistency from screen to screen and make sure the users know what
these various colors indicate.
AccountTransactionUI
UI (USER INTERFACE)
Graphical user interface (GUI)
REVIEW QUESTIONS:
INTRODUCTION
Debugging is the process of finding out where something went wrong in the
application, what we develop and correcting the code to eliminate the errors or
particular clues of interests, then describe how these clues should be tested.
user does, not what the product does. This means capturing use cases and the tasks
users perform, then performing them and their variants as tests. They often are
Debugging is the process of finding out where something went wrong and
correcting the code to eliminate the errors.
Kind of Errors
Language Error / Syntax error: Due to incorrectly constructed code, such as
incorrectly typed keyword or some necessary punctuation omitted.
Run-time errors occur and are detected as the program is running, when a
statement attempts an operation that is impossible to carry out. Ex: nonexistent
object, a file.
Logic errors occur when code might be syntactically valid and run without
performing any invalid operations and yet produce incorrect results. Logic errors
also can produce run-time errors.
Quality assurance testing can be divided into two major categories: error-based
testing and scenario-based testing
Second, users can see, at an early stage, how the final application will look and
feel. This approach also is useful for scenario-based testing.
Top-down testing is useful to test subsystem and system integration.
Bottom-Up testing
Bottom-up testing starts with the details of the system and proceeds to higher
levels by a progressive aggregation of details until they collectively fit the
requirements for the system.
This approach is more appropriate for testing the individual objects in a system.
This strategy makes sense because you are checking the behavior of a piece of
code before it is used by another.
Bottom-up testing leads to integration testing, which leads to systems testing.
Reusability of Tests
If base ::redefined() and two different methods with different protocols and
implementations, each needs a different set of test requirements derived from the
use cases, analysis, design or implementation.
You need to write new tests only for those derived::redefined requirements not
satisfied by the base::redefined tests.
The models developed for analysis and design should be used for testing as well.
For example, the class diagram describes relationships between objects; that is an
object of one class may user or contain an object of another class, which is useful
information for testing.
Furthermore, the use-case diagram and the highest level class diagrams can benefit
the scenario-based testing.
Since a class diagram shows the inheritance structure, which is important
information for error-based testing.
TEST PLAN
A test plan is developed to detect and identify potential problems before delivering
the software to its users.
A test plan offers a road map for testing activities, whether usability, user
satisfaction, or quality assurance tests. It should state the test objectives and how to
meet them.
1. Objectives of the test: create the objectives and describe how to achieve
them and if the objective is usability of the system.
2. Development of a test case: develop test data, both input and excepted
output, based on the domain of the data and the excepted behaviors that must
be tested
3. Test analysis involves the examination of the test output and the
documentation of
the test results. If bugs are detected, then this is reported and the activity
centers on debugging. After debugging, steps 1 through 3 must be repeated
until no bugs can be detected.
All passed tests should be repeated with the revised program, called regression
testing, which can discover errors introduced during the debugging process. When
sufficient
testing is believed to have been conducted, this fact should be reported, and testing
for this specific product is complete.
Most software companies also use beta testing, a popular in expensive, and
effective way to test software on a select group of the actual users of the system.
This is in contrast to alpha testing, where testing is done by inhouse testers, such as
programmers, software engineers, and internal users.
CONTINUOUS TESTING
A common practice among developers is to turn over applications to a quality
assurance (QA) group for testing only after development is completed. Testing the
whole system and detecting bugs is more difficult than testing smaller pieces of the
application as it is being developed. Testing must take place on a continuous basis,
and this refining cycle must continue throughout the development process until
satisfied with the results.
Debugging is the process of finding out where something went wrong in the
application, what we develop and correcting the code to eliminate the errors or
bugs that cause unexpected results. Error-based testing: This technique search a
given class‟s method for particular clues of interests, then describe how these clues
should be tested. Scenario-based testing/usage-based testing: It concentrates on
what the user does, not what the product does. This means capturing use cases and
the tasks users perform, then performing them and their variants as tests. They
often are more complex and realistic than error-based tests. Scenario-based tests
tend to exercise multiple subsystems in a single test, because that is what users do.
Testing becomes successful when the steps below are followed;
◊ Understand and communicate the business case for improved testing.
◊ Develop an internal infrastructure to support continuous testing.
◊ Look for leaders who will commit to and own the process.
◊ Measure and document your findings in a defect recording system.
◊ Publicize improvements as they are made and let people know what
they are doing better.
KEY TERMS
Black box testing
White- Box testing
Top- down Testing
Statement testing coverage
Branch testing coverage
White box testing
Path testing
Bottom - up Testing
MULTIPLE CHOICE
1. In a Black box testing, the test item is treated as “black,” since its logic is
unknown; all that is known is what goes in and what comes out or input and
output. It may be used for Scenario- based testing.
(a)Black box testing (b) White- Box testing (c) Top- down Testing
2. White- Box testing assumes that the specific logic is important and must be
tested to guarantee the system‟s proper functioning. It is used mainly in the
error based testing.
(a)Black box testing (b) White- Box testing (c) Top- down Testing
3. Top- down Testing assumes that the main logic or object interactions and
systems messages of the application need more testing than an individual
object‟s methods or supporting logic. It can detect the serious design flaws
early in the implementation.
(a)Black box testing (b) White- Box testing (c) Top- down Testing
5. The main idea behind branch testing coverage is to perform enough tests to
ensure that every branch alternative has been executed at least once under
some test.
(a)Statement testing coverage (b) Branch testing coverage(c) White box
Testing
7. Two types of Path testing are Statement testing coverage and Branch testing
coverage
(a) Path testing (b) Bottom - up Testing
8. Bottom - up Testing starts with the details of the system and proceeds to
higher levels by a progressive aggregation of details until they collectively
fit the requirements for the system.
REVIEW QUESTIONS
1. Describe the different testing strategies (Pg 328)
2. What is black box testing? (Pg 328)
3. When is white box testing used? (Pg 329)
4. If you do not know what is inside the box, how would you test it?
a. (Pg 328)
5. What is the importance of developing a test case? (Pg 332)
6. What is white box testing? (Pg 329)
7. What is path testing? (Pg 329)
8. What is statement testing coverage? (Pg 329)
9. What is branch testing coverage? (Pg 329)
10. Describe top-down and bottom-up strategies. Which do you prefer and why?
(Pg 329-330)
11. What is regression testing? (Pg 334)
12. What is a test plan? What steps are followed in developing a test plan? (Pg
333)
13. Define continuous testing (Pg 335)
14. State Myers‟s debugging principles (Pg 337)
a. (Bug locating principles and Debugging principles)
15. What are QA tests? (Pg 326)
16. What is an error? Name and explain the types of errors (Pg 327)
17. Differentiate between error-based and scenario-based testing
a. (Pg 327-328)
CHAPTER-14
INTRODUCTION:
Usability
ISO defines Usability as the effectiveness, efficiency, and satisfaction with
which a specified set of users can achieve a specified set of tasks in particular
environments. It requires,
◊ Defining tasks.
◊ Defining users
◊ A means for measuring effectiveness, efficiency, and satisfaction.
Usability testing
It measures the ease of use as well as the degree of comfort and satisfaction
users have with the software.
Usability testing
• ISO defines usability as
– Effectiveness
– Efficiency
– Satisfaction
With which a specified set of users can achieve a set of tasks in
particular environments
• ISO requires
– Defining tasks
– Defining users
– A mean for measuring effectiveness, efficiency, satisfaction
Usability testing
• Definition
– Measures the ease of use as well as the degree of comfort and
satisfaction users have with the software
– Testing begins in the early stages of product development
Quality User
Usability
assurance satisfaction
test cases
test cases test cases
10 9 8 7 6 5 4 3 2 1
Intuitive UI Very Intuitive Very Hard to Follow
10 9 8 7 6 5 4 3 2 1
Reliability Very Reliable Not Reliable
Comments
SUMMARY
Usability
ISO defines Usability as the effectiveness, efficiency, and satisfaction with
which a specified set of users can achieve a specified set of tasks in particular
environments. It requires,
◊ Defining tasks.
◊ Defining users
◊ A means for measuring effectiveness, efficiency, and satisfaction.
KEY TERMS
Usability
Usability testing
User satisfaction testing
MULTIPLE CHOICE
1. ISO defines Usability as the effectiveness, efficiency, and satisfaction with
which a specified set of users can achieve a specified set of tasks in
particular environments.
(a)Usability (b)Usability testing(c)User satisfaction testing
2. Usability testing measures the ease of use as well as the degree of comfort
and satisfaction users have with the software.
(a)Usability (b)Usability testing(c)User satisfaction testing
3. User satisfaction testing is the process of quantifying the usability test with
some measurable attributes of the test, such as functionality, cost, or ease of
use.
(a)Usability (b)Usability testing(c)User satisfaction testing
REVIEW QUESTIONS