Object-Oriented Analysis and Design With Applications: Unit Iii Chapter 5: Notation
Object-Oriented Analysis and Design With Applications: Unit Iii Chapter 5: Notation
Object-Oriented Analysis and Design With Applications: Unit Iii Chapter 5: Notation
UNIT III
CHAPTER 5: NOTATION
1
Object-Oriented Analysis and Design with Applications
Figure : Use Case Diagram
2
Object-Oriented Analysis and Design with Applications
«extend» Relationships
ACTIVITY DIAGRAMS
Activity diagrams provide visual depictions of the flow of activities, whether in a
system, business, workflow, or other process. These diagrams focus on the activities that are
performed and who (or what) is responsible for the performance of those activities.
3
Object-Oriented Analysis and Design with Applications
The elements of an activity diagram are action nodes, control nodes, and object nodes.
There are three types of control nodes: initial and final (final nodes have two varieties,
activity final and flow final), decision and merge, and fork and join.
Essentials: Actions
Actions are the elemental unit of behaviour in an activity diagram. Activities can contain
many actions which are what activity diagrams depict.
Figure: The Notation for an Action
4
Object-Oriented Analysis and Design with Applications
Essentials: Partitions
The elements in an activity diagram can be grouped by using partitions. The purpose
of a partition is to indicate where the responsibility lies for performing specific activities.
5
Object-Oriented Analysis and Design with Applications
Contents:
Class diagrams commonly contain the following things:
Classes
Interfaces
Collaborations
Dependency, generalization, and association relationships.
Classes rarely stand alone; instead, they collaborate with other classes in a variety of
ways. The essential connections among classes include association, generalization,
aggregation, and composition.
The association icon connects two classes and denotes a semantic connection.
The generalization icon denotes a generalization/specialization relationship (the ―is a‖
relationship, and appears as an association with a closed arrow head. The arrowhead points to
the super class, and the opposite end of the association designates the subclass.
The aggregation icon denotes a whole/part hierarchy and also implies the ability to
navigate from the aggregate to its parts.
The composition icon denoting a containment relationship appears as an association with
a filled diamond at the end denoting the aggregate.
6
Object-Oriented Analysis and Design with Applications
Multiplicity:
■ 1 Exactly one
■ * Unlimited number (zero or more)
■ 0..* Zero or more
■ 1..* One or more
■ 0..1 Zero or one
■ 3..7 Specified range (from three through seven, inclusive)
SEQUENCE DIAGRAMS
A sequence diagram is used to trace the execution of a scenario in the same context as a
communication diagram.
Essentials: Objects and Interactions
The advantage of using a sequence diagram is that it is easier to read the passing of messages
in relative order.
7
Object-Oriented Analysis and Design with Applications
8
Object-Oriented Analysis and Design with Applications
The essential elements of a composite structure are its parts, ports, interfaces, and
connectors.
9
Object-Oriented Analysis and Design with Applications
10
Object-Oriented Analysis and Design with Applications
Timing Diagrams
Timing diagrams are a type of interaction diagram. Their purpose is to show how the
states of an element or elements change over time and how events change those states.
Essentials: Layout
Timing diagrams take the UML elements and present them to the user in a different
organization. The general layout of a timing diagram is reminiscent of a sequence diagram
laid on its side.
Essentials: Events
Events (or other stimuli such as messages) that cause state changes are shown in the
lifeline near the timeline of the object
Essentials: Constraints
Constraints can be used to specify conditions or limits that restrict the change of state
shown on a timing diagram.
OBJECT DIAGRAMS
An object diagram is used to show the existence of objects and their relationships in the
logical design of a system. In this sense, a single object diagram represents a view of the
object structure of a system.
The two essential elements of object diagrams are objects and their relationships.
Contents
Essentials: Objects
Figure shows the icon we use to represent an object in an object diagram. Similar to class
diagrams, a horizontal line partitions the text inside the icon into two regions, one denoting
the object’s name and the other providing an optional view of the object’s attributes and
their values.
11
Object-Oriented Analysis and Design with Applications
12
Object-Oriented Analysis and Design with Applications
13
Object-Oriented Analysis and Design with Applications
Successful projects are usually characterized by a strong architectural vision and a well-
managed iterative and incremental development life cyc1e.
Strong Architectural Vision
A strong architectural vision is something that is common to virtually all of the
successful object-oriented systems we have encountered. architecture as the ―fundamental
organization of a system embodied in its components, their relationships to each other, and to
the environment, and the principles guiding its design and evolution‖.ss
Good software architectures tend to have several attributes in common:
They are constructed in well-defined layers of abstraction, each layer representing
acoherent abstraction, provided through a well-defined and controlled interface, and
builtupon equally well-defined and controlled facilities at lower levels of abstraction.
There is a clear separation of concerns between the interface and implementation of
eachlayer, making it possible to change the implementation of a layer without
violating theassumptions made by its clients.
The architecture is simple: common behaviour is achieved through common
abstractionsand common mechanisms.
THE MICRO PROCESS: SDLC
The macro process is the overall software development lifecycle that serves as the
controlling framework for the micro process (which we’ll describe later in this chapter). It
represents the activities of the entire development team.
The macro software development process can be described in terms of two dimensions,
content and time. The content dimension includes roles, tasks, and work products and can
be described in terms of disciplines, or areas of concern, which logically group the content.
The time dimension shows the lifecycle aspects of the process and can be described in terms
of milestones, phases, and iterations.
1. Requirements: Establish and maintain agreement with the customers and other
stakeholders on what the system should do.
2. Analysis and design: Transform the requirements into a design of the system, which
serves as a specification of the implementation in the selected implementation
environment.
3. Implementation: Implement, unit test, and integrate the design, resulting in an
executable system.
14
Object-Oriented Analysis and Design with Applications
4. Test: Test the implementation to make sure that it fulfills the requirements (i.e., the
requirements have been implemented appropriately.
5. Deployment: Ensure that the software product (including the tested implementation)
is available for its end users.
15
Object-Oriented Analysis and Design with Applications
micro process) and produces design specifications (most notably, the architecture)
that are implemented, tested, and deployed in the macro process.
Just as we described the macro process in terms of two dimensions, time and content,
we will describe the micro process in terms of its two key dimensions— levels of
abstraction and content (activities and work products).
Levels of Abstraction
Analysis takes the system requirements and produces an initial solution, and design
takes the results of analysis and produces a specification that can be efficiently
implemented.
Figure 6–5 The Varying Focus of Analysis and Design, Depending on Perspective
16
Object-Oriented Analysis and Design with Applications
The micro process consists of the following set of activities, which are performed for a
specific scope and at a specific level of abstraction.
■ Identify the elements: Discover (or invent) the elements to work with. Define the object-
oriented decomposition.
■ Define the collaborations between the elements: Describe how the identified elements
collaborate to provide the system’s behavioral requirements.
■ Define the relationships between the elements: Define the relationships between the
elements that support the element collaborations.
■ Define the semantics of the elements: Establish the behavior and attributes of the
identified elements. Prepare the elements for the next level of abstraction.
The primary products of the micro process reflect the different analysis and design concerns.
The architecture description describes the system’s architecture, including
descriptions of common mechanisms. The description includes the architecturally
significant aspects of the analysis/design model.
The analysis/design model includes the analysis and design elements of the software
solution and their organization.
Steps of Macro Process
The first step in the macro process is conceptualization
The second step in the macro process is analysis.
The third step in the macro process is design
The fourth step in the macro process is evolution
The fifth step in the macro process is maintenance
17
Object-Oriented Analysis and Design with Applications
CHAPTER 7: PRAGMATICS
MANAGEMENT AND PLANNING
In the presence of an iterative and incremental life cycle, it is of paramount importance to
have strong project leadership that actively manages and directs a project's activities. Too
Many projects go astray because of a lack of focus, and the presence of a strong management
Team mitigates this problem.
Risk Management
Ultimately, the responsibility of the software development manager is to manage technical
as well as nontechnical risk. Technical risks in object-oriented systems include problems such
as the selection of an inheritance lattice that offers the best compromise between usability and
Flexibility.
Task Planning
In any modest- to large-sized project, it is reasonable to have weekly team meetings to
discuss work completed and activities for the coming week. Some minimal frequency of
meetings is necessary to foster communication among team members; too many meetings
destroy productivity, and in fact are a sign that the project has lost its way. Object-oriented
software development requires that individual developers have unscheduled critical masses of
time in which they can think, innovate, and develop, and meet informally with other team
members as necessary to discuss detailed technical issues. The management team must plan
for this unstructured time.
STAFFING
Staffing for object-oriented development is similar to that for traditional software
development. The differences tend to be associated with the timing of these resources within
the development cycle. For example, architects and designers play a critical role early in the
process due to its iterative and incremental nature.
Resource Allocation
the first object-oriented project undertaken by an organization will require slightly more
resources than for non-object-oriented methods, primarily because of the learning curve
inherent in adopting any new technology. The essential resource benefits of the object model
will not show themselves until the second or third project, at which time the development
team is more adept at class design and harvesting common abstractions and mechanisms, and
the management team is more comfortable with driving the iterative and incremental
development process.
18
Object-Oriented Analysis and Design with Applications
19
Object-Oriented Analysis and Design with Applications
REUSE
One of the most acclaimed benefits of object-oriented development is reuse.
Elements of Reuse
Any artifact of software development can be reused, including code, designs, scenarios,
and documentation.in object-oriented programming languages, classes serve as the primary
linguistic vehicle for reuse: classes may be subclassed to specialize or extend the base class.
we can reuse patterns of classes, objects, and designs form of idioms, mechanisms, and
frameworks.
Reuse must be institutionalized to be successful.
Institutionalizing Reuse
Reuse within a project or even an entire organization doesn't just happen, it must be
institutionalized. An effective reuse program is best achieved by making specific individuals
responsible for leading the reuse activity, while making everyone responsible for
participating.
QUALITY ASSURANCE AND METRICS
Software Quality
Software quality involves ―the fitness for use of the total software product. Software
quality doesn't just happen: it must be engineering into the system .
Software quality assurance involves "the systematic activities providing evidence of the
fitness for use of the total software product" . Quality assurance seeks to give us
quantifiable measures of goodness for the quality of a software system.
Software Quality
Development reviews and other kinds of inspections are important practices even in object-
oriented systems and provide insights into the software’s quality.
Object-Oriented Metrics
Metrics to assist us in this endeavor fall into one of two categories, process metrics or product
metrics. Process metrics, sometimes called project metrics.
We can also look at metrics more specific to object-oriented development, such as those
recommended by Lorenz and Kidd [16]:
■ Application size
– Number of scenario scripts (NSS)
– Number of key classes (NKC)
– Number of support classes (NSC)
20
Object-Oriented Analysis and Design with Applications
21
Object-Oriented Analysis and Design with Applications
22
Object-Oriented Analysis and Design with Applications
Benefits that flow from the following characteristics of the object model
Exploits the expressive power of all object-oriented programming languages
Encourages the reuse of software components
Leads to systems that are more resilient to change
Reduces development risk
Appeals to the working of human cognition
The Risks of Object-Oriented Development
A unique way to define architecture and data structure instances
Information hiding through abstraction and encapsulation
Inheritance to organize related elements
Polymorphism to perform operations that can automatically adapt to the type of
structure they operate on
Specialized analysis and design methods
Environments that facilitate the creation of object-oriented systems
Design by contract, a powerful technique to circumvent module boundary and
interface problems
Memory management that can automatically reclaim unused memory
Distributed objects to facilitate the creation of powerful distributed systems
Object databases to move beyond the data-type limitations of relational database
management systems
Other Risk
Personnel shortfalls
Unrealistic schedules, budgets, or processes
Shortfalls in commercial off-the-shelf products, external components, or legacy
software
Mismatches in requirements or user interface
Shortfalls in architecture, performance, or quality
On the darker side of object-oriented design, we find that two areas of risk must be
considered: performance and start-up costs.
A related performance risk derives from the encumbrance of classes: a class deep in an
inheritance lattice may have many superclasses, whose code must be included when linking
in the most specific class.
The start-up costs associated with object-oriented development may prove to be a very
real barrier to adopting the technology.
Written by: Abdijabar Awais Osman
23
Object-Oriented Analysis and Design with Applications
END
24