L1 9-9-2024
L1 9-9-2024
Batch-25
Semester 5
Fall 2024
Lecture1 9-9-2024
Introduction to the course
This course is taught as CS core course as part of Software Engineering foundation
courses.
It focuses on the fundamental concepts of Object Orientation and UML as part of the
Software Development Life Cycle. The course looks into core activities and artifacts of
Object Orientation and UML to be used with various software development methodologies.
Course learning outcomes :
-To learn aspects of Object-oriented analysis and design.
Abstraction: Abstraction involves representing only the essential aspects of a system while hiding
irrelevant details.
• Abstraction is defined as a simplified description or specification of a system that emphasizes some of
the system details or properties while suppressing others. A good abstraction is one that emphasizes
details that are significant to the reader or user and suppress details that are, not so significant,
immaterial. An abstraction denotes the essential characteristics of an object that distinguishes it from
all other kinds of objects and thus provides crisply defined conceptual boundaries on the perspective
of the viewer. An abstraction focuses on the outside view of an object, Abstraction focuses up on the
essential characteristics of some object, relative to the perspective of the viewer. From the most to the
least useful, these kinds of abstraction include following.- 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.
• Encapsulation: Encapsulation involves bundling data and methods into a single unit (class) and
restricting access to the internal state of objects. It promotes information hiding, data integrity, and
modular design.
• are specialized subclasses.
• Inheritance: Inheritance allows classes to inherit attributes and behaviors from
parent classes, enabling code reuse and promoting hierarchy and specialization.
• Examples of Hierarchy: Single Inheritance defines a relationship among classes.
Where one classes shares structure or behaviors defined in one (single in
heritance) or more class (multiple inheritance) & thus represents a hierarchy of
abstractions in which a subclass inherits from one or more super classes.
Consider the different kinds of growing plans we might use in the Hydroponics
Gardening System. FruitGrowingPlan Growing planIn this case, FruitGrowingPlan
is more specialized, and GrowingPlant is more general. The same could be said
for GrainGrowingPlan or VegetableGrowingPlan, that is,GrainGrowingPlant “is a”
kind of Growing Plant, and VegetableGrowingPlant “is a” kind of GrowingPlant.
Here, GrowingPlant is the more general superclass, and the others
• Polymorphism: Polymorphism enables objects to exhibit different
behaviors based on their context or inputs. It allows for flexibility and
extensibility by enabling the same method to behave differently in
different contexts.
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 cover important design decisions that we must
consider in developing a complex system.
• Five attributes of well formed complex systems are given in figure