0% found this document useful (0 votes)
20 views3 pages

1 Oose 1

Object-Oriented Software Engineering (OOSE) is a structured software development approach that utilizes object-oriented programming principles to create modular, reusable, and scalable software systems. Key concepts include objects, classes, encapsulation, inheritance, polymorphism, and abstraction, which collectively enhance software quality and manage complexity. UML (Unified Modeling Language) is a standardized graphical modeling language that helps visualize and document software systems, developed by Grady Booch, Ivar Jacobson, and James Rumbaugh in the mid-1990s.

Uploaded by

awaismahar1476
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views3 pages

1 Oose 1

Object-Oriented Software Engineering (OOSE) is a structured software development approach that utilizes object-oriented programming principles to create modular, reusable, and scalable software systems. Key concepts include objects, classes, encapsulation, inheritance, polymorphism, and abstraction, which collectively enhance software quality and manage complexity. UML (Unified Modeling Language) is a standardized graphical modeling language that helps visualize and document software systems, developed by Grady Booch, Ivar Jacobson, and James Rumbaugh in the mid-1990s.

Uploaded by

awaismahar1476
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

What is Object Oriented software engineering?

Explain key concepts of


OOSE.

Object-Oriented Software Engineering (OOSE) is a structured approach to software development


that uses the principles of object-oriented programming (OOP) to design and build software
systems. It focuses on the creation of software models that are modular, reusable, and scalable. It
organizes software design around objects, rather than actions, and data rather than logic.

Key Concepts

1. Objects:
o An object is a self-contained entity that consists of both data and methods.
Objects represent real-world entities and their interactions within the software.
o Objects have attributes (data) and behaviors (methods/functions).
2. Classes:
o A class is a blueprint for creating objects. It defines a set of attributes and
methods that the created objects (instances) will have.
o Classes encapsulate data for the object and methods to manipulate that data.
3. Encapsulation:
o Encapsulation is the concept of hiding the internal state of an object and requiring
all interaction to be performed through an object's methods.
o This principle helps in maintaining the integrity of the data by preventing outside
interference and misuse.
4. Inheritance:
o Inheritance is a mechanism where a new class inherits properties and behaviors
(attributes and methods) from an existing class.
o It promotes code reuse and establishes a hierarchical relationship between classes.
5. Polymorphism:
o Polymorphism allows objects of different classes to be treated as objects of a
common superclass. It is often implemented through method overriding, where a
subclass provides a specific implementation of a method that is already defined in
its superclass.
o This allows for flexibility and the ability to define one interface with multiple
implementations.
6. Abstraction:
o Abstraction involves simplifying complex reality by modeling classes appropriate
to the problem, focusing on essential qualities rather than specific characteristics.
o It helps in managing complexity by hiding unnecessary details from the user.
Benefits of OOSE

 Reduce Complexity: It is widely used in modern software engineering to manage


complexity and improve software quality.
 Modularity: Objects and classes can be developed and tested independently.
 Reusability: Once a class is written, it can be reused in other applications.
 Scalability: OOSE systems can be scaled more easily due to their modular nature.
 Maintainability: Encapsulation and modularity make it easier to modify and maintain
the system over time.
 Alignment with Real-World Concepts: OOSE naturally aligns with real-world entities
and concepts, making it easier to model complex systems.

What is UML?
UML (Unified Modeling Language) is a general-purpose, graphical
modeling language in the field of Software Engineering. UML is used to
specify, visualize, construct, and document the artifacts (major elements) of
the software system. It was initially developed by Grady Booch, Ivar
Jacobson, and James Rumbaugh in 1994-95 at Rational software, and its
further development was carried out through 1996. In 1997, it got adopted
as a standard by the Object Management Group.

To address the growing complexity of software systems and the need for a
standardized modeling language, three leading methodologists, Grady
Booch, Ivar Jacobson, and James Rumbaugh, joined forces at Rational
Software in 1994.
Their goal was to unify the best aspects of their respective methods (Booch
method, OMT- object-modeling technique, and OOSE) into a single,
comprehensive language. This collaboration led to the development of
UML, which was first publicly released in 1995.
In 1997, the Object Management Group (OMG) adopted UML as a
standard, ensuring its widespread adoption and continued evolution. Since
then, UML has undergone several revisions and enhancements to keep
pace with the evolving software development landscape.
Use Case Diagrams

A Use case diagram provides a visual representation of how users interact with a syste m.

For example, Figure depicts a use case diagram for a simple watch. The
WatchUser
actor may either consult the time on their watch (with the ReadTime use
case) or set the time (with the SetTime use case). However, only the
WatchRepairPerson actor can change the battery of the watch (with the
ChangeBattery use case).

You might also like