Object-oriented software engineering

Object-oriented software engineering (commonly known by acronym OOSE) is an object-modeling language and methodology.
OOSE was developed by Ivar Jacobson in 1992 while at Objectory AB. It is the first object-oriented design methodology to employ use cases to drive software design. It also uses other design products similar to those used by object-modeling technique.
It was first documented in the 1992 book Object-Oriented Software Engineering: A Use Case Driven Approach,
The tool Objectory was created by the team at Objectory AB to implement the OOSE methodology. After success in the marketplace, other tool vendors also supported OOSE.
After Rational Software bought Objectory AB, the OOSE notation, methodology, and tools became superseded.
*As one of the primary sources of the Unified Modeling Language (UML), concepts and notation from OOSE have been incorporated into UML.
*The methodology part of OOSE has since evolved into the Rational Unified Process (RUP).
*The OOSE tools have been replaced by tools supporting UML and RUP.
OOSE has been largely replaced by the UML notation and by the RUP methodology.
The Basic OOSE Concepts
Object-oriented programming is characterized by 3 main concepts: encapsulation, inheritance, and polymorphism.
* Encapsulation.
Encapsulation relates to the creation of a new entity. Due to encapsulation the data is organized in classes that in their turns consist of objects. It keeps routines separate, thus helping them avoid conflicts with each other.it is also known as wrapping of object to its functions . example
car is a class and its parts are known as object so if we combine all the parts according to their function then it will become a complete car.
* Inheritance.
Inheritance represents part-of relationships between classes and objects. This feature helps transfer the structure and methods from one class to another. Thus, when adding a new class or step at the bottom of a hierarchy, only those methods and data need to be added that are unique for this step. Everything else will be inherited.
* Polymorphism.
It’s an ability to easily integrate new shapes of objects. Due to polymorphism, objects are handled differently according to their data type or class. Moreover, even when their exact type is unknown, the procedures can still be added.
Main issues
* Software products can get very complex.
* High-quality results are expected.
* The development team can be large and distributed.
* Most projects add functionality to an existing product.
* OOSE produced a high level language.
The main advantage of object-oriented software engineering is that it helps programmers avoid a lot of routine modifications. With OOSE, they can just add new object without additional efforts, as new objects will inherit the main features of the existing ones.
 
< Prev   Next >