Object Oriented Analysis Material
Object Oriented Analysis Material
COMPLEXITY:
Systems: Systems are constructed by interconnecting components (Boundaries,
Environments, Characters, Emergent Properties), which may well be systems in
their own right.
Software Systems:
Software systems are not any different from other systems concerning these
characteristics. Thus, they are also embedded within some operational
environment, and perform operations that are clearly defined and distinguished
from the operations of other systems in this environment.
As examples of complex software-intensive systems, we may consider stock
and production control systems, aviation systems, rail systems, banking systems,
health care systems, and so on.
Complexity: Complexity depends on the number of the components embedded in
them as well as the relationships and the interactions between these components
which carry;
Impossible for humans to comprehend fully
Difficult to document and test
Potentially inconsistent or incomplete
Subject to change
No fundamental laws to explain phenomena and approaches
1
THE STRUCTURE OF COMPLEX SYSTEMS
Examples of Complex Systems: The structure of personal computers, plants and
animals, matter, and social institutions are some examples of complex systems.
2
can not be done by divisions which in turn contain branches which in turn
encompass local offices and so on.
3
DESIGNING COMPLEX SYSTEMS
Engineering as a Science and an Art:
Every engineering discipline involves elements of both science and art. The
programming challenge is a large scale exercise in applied abstraction and thus
requires the abilities of the formal mathematician blended with the attribute of the
competent engineer. The role of the engineer as artist is particularly challenging
when the task is to design an entirely new system.
The meaning of Design:
In every engineering discipline, design encompasses the discipline approach
we use to invent a solution for some problem, thus providing a path from
requirements to implementation. The purpose of design is to construct a system
that.
1. Satisfies a given (perhaps) informal functional specification
2. Conforms to limitations of the target medium
3. Meets implicit or explicit requirements on performance and resource usage.
4. Satisfies implicit or explicit design criteria on the form of the artifact.
5 Satisfies restrictions on the design process itself, such as its length or cost, or the
availability for doing the design.
4
ent4
exposed.
The models of Object Oriented Development:
The models of object-oriented analysis and design reflect the importance of
explicitly capturing both the class and object hierarchies of the system under
design.
These models also over the spectrum of the important design decisions that we
must consider in developing a complex system and so encourage us to craft
implementations that embody the five attributes of well-formed complex systems.
Figure: Models of object oriented development
5
identifies the relationships between those.
Again for this physical model a static perspective is defined that considers
the structure of module and process architecture and a dynamic perspective
identifies process and object activation strategies and inter-process
communication.
FOUNDATION OF OBJECT MODEL
In structured design methods, complex systems use algorithms as their
fundamental building block. An object-oriented programming language, class, and
object as basic building blocks.
The following events have contributed to the evolution of object-oriented concepts:
Advances in computer architecture, including capability systems and
hardware support for operating systems concepts
Advances in programming languages, as demonstrated in Simula,
Smalltalk, CLU, and Ada.
Advances in programming methodology, including modularization and
information hiding. We would add to this list three more contributions to the
foundation of the object model:
Advances in database models
Research in artificial intelligence
Advances in philosophy and cognitive science
OOA (Object Oriented analysis)
During the software requirement phase, requirement analysis and object
analysis, it is a method of analysis that examines requirements from the perspective
of classes and objects as related to the problem domain.
OOD (Object-oriented design)
Object-oriented design is a method of design encompassing the process of
object-oriented decomposition and a notation for depicting both logical and
physical as well as static and dynamic models of the system under design.
OOP (Object-oriented programming)
6
During the system implementation phase, t is a method of implementation in which
programs are organized as a cooperative collection of objects, each of which
represents an instance of some class and whose classes are all members of a
hierarchy of classes united in inheritance relationships. Object-oriented
programming satisfies the following requirements:
- It supports objects that are data abstractions with an interface of named
operations and a hidden local state.
- Objects have associated type (class).
- Classes may inherit attributes from supertype to subtype.
They have not been exposed to alternate ways of thinking about a problem.
Programming style is a way of organizing programs based on some
conceptual model of programming and an appropriate language to make
programs written in the style clear.
There are five main kinds of programming styles:
1. Procedure-oriented – Algorithms for the design of computation
2. Object-oriented – classes and objects
3. Logic-oriented – Goals, often expressed in a predicate calculus
4. Rules oriented – If then rules for the design of the knowledge base
5. Constraint orient – Invariant relationships.
There are four major elements of the object model. They are:
1. Abstraction
2. Encapsulation
3. Modularity
4. Hierarchy
7
Three minor elements are useful but not essential parts of the object model.
Minor elements of the object model are:
1. Typing
2. Concurrency
3. Persistence
Abstraction
- Entity abstraction: An object that represents a useful model of a problem
domain or solution domain entity.
- Action abstraction: An object that provides a generalized set of operations
all of which program the same kind of function.
- Virtual machine abstractions: An object that groups together operations that
are used by some superior level of control, or operations that all use some junior set
of operations.
- Coincidental abstraction: An object that packages a set of operations that
have no relation to each other.
Abstraction:
Temperature
Sensor
Important
Characteristics
:
temperature
location
Figure: Abstraction of a Temperature Sensor
Encapsulation
The act of grouping data and operations into a single
Private Public
object.
Public Interface
Private 8
Representation
Class
Information
and operations
Encapsulation
Abstraction:
Header
Important
Characteristics
:
location
Status
Figure: The Rose Class, Which Inherits from Multiple Superclasses (Multiple
Inheritance)
Figure: The Repeated Inheritance
Repeated inheritance occurs when two or more peer superclasses share a common
10
superclass.
Hierarchy: Aggregation
Whereas these “is a” hierarchies denote generalization/specialization
relationships, “ part of” hierarchies describe aggregation relationships. For
example, consider the abstraction of a garden. We can contend that a garden
consists of a collection of plants together with a growing plan. In other words,
plants are “part of” the garden, and the growing plan is “part of” the
garden. This “part of” relationship is known as aggregation.
Typing
E.g. multiplying temp by a unit of force does not make serve but
multiplying mass by force does. So this is strong typing. Example of strong
and weak typing: In strong type, type conformance is strictly enforced.
Operations cannot be called upon an object unless the exact signature of that
operation is defined in the object's class or super classes.
Persistence
Persistence is the property of an object through which its existence transcends
time and or space i.e. objects continues to exist after its creator ceases to exist
and/or the object's location moves from the address space in which it was created.
An object in software takes up some amount of space and exists for a particular
amount of time. Object persistence encompasses the followings.
Transient results in expression evaluation
Local variables in procedure activations
Global variables where exists is different from their scope
Data that exists between executions of a program
Data that exists between various versions of the program
Data that outlines the Program.
12
us.
Some software systems are complex:
The applications that exhibit a very rich set of behaviors, as, for example, in
reactive systems that drive or are driven by events in the physical world, and
for which time and space are scarce resources; applications that maintain the
integrity of hundreds of thousands of records of information while allowing
concurrent updates and queries; and systems for the command and control
of real-world entities, such as the routing of air or railway traffic.
Software systems such as world of industrial strength software tend to have
a long life span, and over time, many users come to depend upon their
proper functioning.
13
applications.
This adds extra overhead to the process since the developers have to
communicate with each other about the intermediate artifacts they produce and
make them interoperable with each other.
This complexity often gets even more difficult to handle if the teams do not
work in one location but are geographically dispersed. In such situations, the
management of these processes becomes an important subtask on its own and they
need to be kept as simple as possible.
No person can understand a system whose size is measured in hundreds
of thousands, or even millions of lines of code. Even if we decompose our
implementation in meaningful ways, we still end up with hundreds and
sometimes even thousands modules.
The amount of work demands that we use a team of developers and there
are always significant challenges associated with team development more
developers means more complex communication and hence more difficult
coordination.
3. The flexibility possible through software
Software is flexible and expressive and thus encourages highly demanding
requirements, which in turn lead to complex implementations that are difficult
to assess The third reason is the danger of flexibility. Flexibility leads to an
attitude where developers develop system components themselves rather than
14
purchasing them from somewhere else.
15
system with Discrete states. Discrete systems by their very nature have a finite
number of possible states.
16
UNIT II: UML AND USE CASE MODELING
Introduction - UML Views - Classification of UML Diagrams - Use Case
Diagrams: Modeling Requirements - Components - Use Case Identification and
Description - Use-Case Relationships.
17