Design Issues

Let's particularly talk about issues for OOPLs.

➣ Exclusivity of objects.

➣ Are subclasses subtypes?

➣ Implementation and interface inheritance.

➣ Type checking and polymorphism.

➣ Single and multiple inheritance.

➣ Allocation and de-allocation of objects.

Design Issues

Let's generalize the issues a bit now..

decomposability

composability

understandability

continuity

protection

Unified Approach

What is unified approach, really?

➣ Proposed in 1999 by Ali Bahrami.

➣ The idea is not to introduce yet another methodology.

➣ The main motivation here is to combine the best

     practices, processes, methodologies, and guidelines

     along with the UML notations & diagrams.

Fun fact: The heart of UA is Jacobson's use case diagram.

Unified Approach

The UA revolves around the following processes and concepts..

1. Object-Oriented Analysis:

The first step in producing high-performance software.

Analysis is central to the performance tuning process.

Unified Approach

The UA revolves around the following processes and concepts..

2. Object-Oriented Design:

Object-oriented design plays a major role in the performance process. The one critical component here is encapsulation.

Unified Approach

The UA revolves around the following processes and concepts..

3. Testing:

Unified Approach encourages integration testing from day 1 of the project usage scenarios can become test scenarios.  Therefore use cases will drive the usability testing.

Testing uncovers the design weaknesses or provides additional information.  Repeat the entire process, taking what you have learned and reworking you design more onto re-prototyping and retesting.

Unified Approach

The UA revolves around the following processes and concepts..

4. Developing and Prototyping:

Unified Approach uses the UML to describe and model the analysis and design phases of system development.

UML is becoming the universal language for modeling systems; it is intended to be used to express models of many different kinds and purposes.  UML has become the standard notation for object oriented modeling systems.

Partitioning the Analysis Model

How does one recognize appropriate clusters?

➣ Each subsystem should have a well-defined interface through

    which all communication with the rest of the system occurs.

➣ With the exception of a small number of communication
    classes, the classes within a subsystem should
collaborate
    only with other classes within the subsystem.

➣ The number of subsystems should be kept small.

➣ Subsytems can be partitioned internally to reduce comlexity.

➣ Communication between subsystems is either peer-to-peer
    or client-server.

Fun Fact Time

Converting OOA to OOD

Concurrency and Subsystem Allocation

➣ Dynamic aspects of object-behavior model provide the
     indication of concurrency among objects or subsystems.

➣ If objects or subsystems must act on events asynchronously
     and at the same time, they are viewed as concurrent.

➣ When concurrent, there are two options:

➣ Allocate to independent processors; or

➣ Allocate to the same processor and provide
    concurrency support through OS features.

Thank you!

Utkarsh Gupta

A2305217557

OOAD

By utkarsh2102

OOAD

This slide is made for the purpose of my OOAD class presentation.

  • 586