0% found this document useful (0 votes)
5 views

Lecture4Classification notation process

Classification in object-oriented design is crucial for identifying commonalities among objects, leading to simpler architectures. It involves various approaches such as classical categorization, conceptual clustering, and prototype theory, each with its own methods for defining classes. Additionally, effective object-oriented methodologies encompass notation, processes, and tools to facilitate software development.

Uploaded by

mary jacintha
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Lecture4Classification notation process

Classification in object-oriented design is crucial for identifying commonalities among objects, leading to simpler architectures. It involves various approaches such as classical categorization, conceptual clustering, and prototype theory, each with its own methods for defining classes. Additionally, effective object-oriented methodologies encompass notation, processes, and tools to facilitate software development.

Uploaded by

mary jacintha
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Classification

Classification is the means whereby we order knowledge.

In object-oriented design, recognizing the sameness among things allows us to expose


the commonality within key abstractions and mechanisms, and eventually leads us to
smaller and simpler architectures.

There is no golden path to classification. …

There is no such thing as the “perfect” class structure, nor the “right” set of objects.

As in any engineering discipline, our design choices are a compromise shaped by


many competing factors.

G. Booch
Classification
• Classification is the hardest part of OO analysis and design
• Classification involves both discovery and invention
• Classification is fundamentally a problem of finding
sameness
• Intelligent classification is a part of all good science
Classification
• Classification helps us identify generalization,
specialization, and aggregation hierarchies among classes

• By recognizing the common patterns of interaction among


objects, we come to invent the mechanisms that are the
soul of our implementation
The Difficulty of Classification

• Incremental and iterative nature of classification

– We usually assert a certain class structure early in a design and


then revise this structure over time
– We may create new classes, split classes up, or combine classes
– There is no such thing as a perfect classification
Identifying Classes and Objects

• Three general approaches to classification


– Classical categorization
– Conceptual clustering
– Prototype theory
Identifying Classes and Objects
• Classical approach

– All the entities that have a given property or collection of properties in


common, form a category.
• Such properties are necessary and sufficient to define a category.
– Uses related properties as the criteria for sameness among
objects

– Divide objects into disjoint sets depending upon the


presence or absence of a particular property
Classical approach

Classical categorization was accepted as the one,


true method of categorization until it was discovered that
many of the categories we use every day do not satisfy
the strict constraints of sharing a common set of
properties.

– Not all birds fly,


– some chairs are purely ornamental and no one will ever sit in
such a chair.

Identifying Classes and Objects
• Conceptual clustering
– Modern variation of the classical approach

– Classes are generated by first formulating conceptual descriptions and then classifying the entities
according to the descriptions
• For example, we may state a concept such as “a sad song.” This is a concept more
than a property, for the “sad songness” of any song is not something that may be
measured empirically.
• However, if we decide that a certain song is more of a sad song than not, we
place it in this category. Thus, conceptual clustering represents more of a
probabilistic clustering of objects.

– Absolute judgements of classification based on “best fit”


• Conceptual clustering is closely related to
fuzzy (multivalue) set theory, in which
• objects may belong to one or more groups, in
varying degrees of fitness. Conceptual
• clustering makes absolute judgments of
classification by focusing on the
• “best fit.”
Identifying Classes and Objects
• Prototype Theory
– A class of objects is represented by a prototypical object, and an
object is considered a member of this class if and only if it
resembles this prototype in significant ways

– Example - we understand a beanbag chair, barber chair, and


contour chair as being chairs not because they share properties
but because they resemble a prototypical chair
Prototype Theory
The concept behind prototype theory is that a category can be
specified by some best examples of the category, and then
contains members related by some principle to the best
members.

For example, the best prototype of the category mother would


be a married woman with a child or children, no job outside the
home, who is the birth mother of the children, and is their
primary caregiver.
Elements of OO Methodology:

Following are three elements for every OO methodology:

• Notation
• Process / Method
• Tool
What is Notation?

Notation:

1. It is collection of graphical symbols for expressing model of the system.


2. The Unified Modeling Language [UML] provides a very robust set of notation
which grows from analysis to design.
3. This brings end of the method wars as far as notation is concerned with adoption
of the language [UML]
What is Process?
What is Process?

• It is an extensive set of guidelines that address the technical and organizational


aspects of software development focusing on requirements, analysis and design.

• Process basically encapsulates the activities leading to the orderly construction of


system model.

• OO model supports the iterative and incremental model for the process.
More about Process?
• Guidance as to the order of team’s activities

• It specifies what artifacts should be developed

• It directs the task of individual developers and team as a whole

• It offers criteria for monitoring and measuring project activities

• The selection of particular process will vary greatly depending upon things like
problem domain, implementation technology and skills of team

• Booch,OMT,OOSE and many other methods have well defined process and UML
supports almost all methods
Class diagrams versus entity-
relationship diagrams
• Database designers have for many years used a notation called
Entity Relationship Diagrams (ERDs).
• This notation has much in common with UML’s class diagrams; in
fact, the developers of OMT, a predecessor to UML, took many
ideas from ERDs.
• In ERDs, the ‘entities’ are similar to classes and the ‘relationships’
are similar to associations. Relationships are shown using a large
diamond symbol, which is one of the features that makes them
substantially more bulky than class diagrams.
• Also, standard ERDs do not show operations. Traditional ERDs did
not show inheritance either, but Extended ERDs (EERDs) do.
• ERDs are still widely used in the database community, although
many database designers prefer now to use UML class diagrams.
• Those who prefer to continue using ERDs do so because the
database community has developed many ERD tools and
considerable expertise at using both the notation and the tools.
Object Types
There are different types of Objects:
• Entity Objects: Represent the persistent information
tracked by the system (Application domain objects, also
called “Business objects”)

• Boundary Objects: Represent the interaction between


the user and the system

• Control Objects: Represent the control tasks performed


by the system
Object Types
• Three types of objects leads to models that are
more resilient to change
• The interface of a system changes more likely than
the control
• The way the system is controlled changes more
likely than the application domain
• Object types originated in Smalltalk:
– Model, View, Controller (MVC)
– Entity, Boundary, Control Objects

You might also like