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