Object-Oriented Analysis and Design

OOA/D has a history of many branches; knowledge of an object-oriented language does not guarantee you the ability to create object systems. The introduction of OOA/D was a milestone in assisting the programmers who were used to traditional programming methods. This in effect led to rapid development and growth in the software development field. OOA/D was informal through the 1960s to 1970s, and it wasn’t until 1982 that OOD emerged as a topic in its own right. The concept of object, classes, and their notation through UML (Unified modeling language) and the use of cases for the requirement is one of the building blocks of object-oriented analysis and design. For us to fully appreciate objected oriented analysis and design we need to define and understand the following terms: object-oriented systems, object-oriented analysis, object-oriented design, objects, classes, attributes, instances, methods, operation, and UML.

Object-oriented Systems

This is a system composed of collaborating objects. This collaboration defines the behavior of the system. The collaboration is brought about by the objects sending messages to each other. The implementation of the message send differs depending on the architecture of the system, the location of the objects, and the function that has received the message.

Object-oriented Analysis

The main task here is examining the problem with the aim of coming up with a conceptual model of all the information existing on the area of the problem being analyzed. Object analysis is undertaken before object design and hence it overlooks the implementation constraints that might prop up e.g. concurrency, distribution, and persistence. A system with multiple domains representing different technological, business, or other areas of concern may have each of the domains being analyzed separately. The end result will be a conceptual model giving a description of system functionality presented as use cases, one or more UML diagrams, interaction diagrams, and some kind of user interface mock-up.

Object-oriented Design

This maps the concept of the analysis model onto implementation classes and interfaces resulting in a detailed description of how the system is to be built. It factors all constraints imposed by the non-functional technological environment and a chosen architecture e.g. response time, run-time platform, development environment, and a chosen programming language.

UML (Unified Modeling Language)

The UML, a notation for object-oriented analysis and design started as an effort by Rumbaugh and Booch in 1994. They both combined their two OMT and the Booch methods to create a common notation. Thus, the first draft of the UML was presented as the Unified Method. Ivar Jacobson the creator of the objective method joined them at Rational Corporation, and as a group, they came to be known as the three amigos. The three then decided to narrow the scope of effort and focused on a common diagramming notation the UML. This was after a lot of convincing by various tool vendors demanding a common standard.

The starting point of UML is object modeling as its central technique. It gives you the ability to focus on class structure, inheritance, etc. As a language-independent notation it allows the specification of classes, their attributes (private) or data and methods (public), inheritance, and other general relationships between classes. The figure below shows a summary of UML object modeling notation.

Summary of UML object modeling notation.
Figure 1. Summary of UML object modeling notation.

To understand UML notation, let us have a look at a sales inventory system to be developed for a store. In this model, we are going to focus on the subsystem which deals with stock inventory. In the development of this model, we will handle the system architecture design, database design, and implementation, and finally interface design and implementation.,

System Architecture Design

Consideration of alternative software architecture and justification of your choice.

The following object model shows a simple stock inventory subsystem containing classes for Order, supplier, Orderitem, Stockitem, Tilloperator,Tillsession,Transaction, Qty:Number, Till, Return, and Sale.

Examining this object model in more detail, we can see the following information about our class structure:

An Order class (containing “OrderDate” and “OrderStatus” fields, otherwise known as attributes). Zero to many orders “belongs-to” one to many Suppliers. On the other hand one too many orders “contain” one to many OrderItems. An Order has a method (also known as operations or member functions) “additem()” defined. This method when invoked will add items to the Order depending on the argument supplied.

Similarly, a Supplier class (which contains “CompanyName”, “Address” and “Phone” attributes) “holds” zero to many Orders. On the other hand, a Supplier “holds” one to many StockItem. A Supplier has methods “updateAddress()” which when invoked it updates the address of the supplier depending on the value of parameters passed and “updatePhone()” which when invoked updates the Supplier’s phone number.

An OrderItem class (contains “Quantity” attribute). One to many order items is “contained-in” one order. On the other hand zero to many order items “is-held-in” one StockItem list.

A StockItem class (contains “BarcodeNo”, “ItemName” and “CurrentStockLevel”, “ReorderThreshold”, “RetailPrice” and “MeasurementUnit” attributes). One to many stock items “belongs” to a Supplier. StockItem class has methods”increment()” for increasing the quantity of the stock item, “decrement()” for reducing the quantity of the stock item, “setRetilPrice()” for setting the cost of the stock item, and “setCurrentStockLevel” for adjusting the level of a stock item.

A TillOperator class (contains “Name” and “PIN” attributes). A till operator “handles” one to many till sessions. The methods found in this class are “startSession()” which when invoked starts a session, “endSession()” when invoked terminate a session and “checkPIN()” when invoked checks or verifies the PIN of the till operator.

A TillSession class (contains “SessionDate”, “StartTime”, “FinishTime” and “TillBalance” attributes). One to many till sessions is “handled-by” one operator. On the other hand zero to many transactions “belongs-to” a till session. This class has methods “sell()” when invoked adds the item amount to a sale, “return()” when invoked removes item from sale and “blalanceTill()” when invoked calculates the balance after the sale.

A Transaction class (contains “TransDate” and “TransTime” attributes). Zero to many transactions “has” one to many stock items. On the other hand zero to many transactions is “is- held- in” a till session. This class has a member “addItem()” which when invoked adds a stock item to the transaction. For any operation to occur between the Transaction class and the StockItem class quantity and the price of the StockItem must be present.

A Sale class contains “PayMethod” attribute. The sale class is a member class of the Transaction class. Return class contains “SalesRef” attribute. Return class is a member class of the Transaction Class. A Till class contains “TillNo” and “Location” attributes. A till “handles” one to many till sessions.

Database Design and Implementation

Database Design and Implementation
Figure 2. Database Design and Implementation

Object-oriented analysis and design have made it possible for software engineers to produce robust systems within a short duration. This has been enhanced by it being language an independent technique. We have seen the UML emerge as the de facto and de jure standard diagramming notation for object-oriented modeling. Even if the UML allows the possibility to put in rather clear visual form a whole heap of elements to describe our system, you should be known that it cannot be used to model everything we need. For example, it doesn’t describe the user interface or the user interface flowchart, just naming two of them.

References

  1. Dan Pilone.2006.UML 2.0 Pocket Reference (Pocket Reference): pocket reference. O’Reilly, 2003
  2. Ivar J., Grady B., Rumbagh J. 2005.The Unified Modeling Language Reference Manual. University of Michigan, Addison-Wesley
  3. Martin F. 2003. Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition.208. New York. Addison Wesley Professional

Cite this paper

Select style

Reference

StudyCorgi. (2021, October 20). Object-Oriented Analysis and Design. https://studycorgi.com/object-oriented-analysis-and-design/

Work Cited

"Object-Oriented Analysis and Design." StudyCorgi, 20 Oct. 2021, studycorgi.com/object-oriented-analysis-and-design/.

* Hyperlink the URL after pasting it to your document

References

StudyCorgi. (2021) 'Object-Oriented Analysis and Design'. 20 October.

1. StudyCorgi. "Object-Oriented Analysis and Design." October 20, 2021. https://studycorgi.com/object-oriented-analysis-and-design/.


Bibliography


StudyCorgi. "Object-Oriented Analysis and Design." October 20, 2021. https://studycorgi.com/object-oriented-analysis-and-design/.

References

StudyCorgi. 2021. "Object-Oriented Analysis and Design." October 20, 2021. https://studycorgi.com/object-oriented-analysis-and-design/.

This paper, “Object-Oriented Analysis and Design”, was written and voluntary submitted to our free essay database by a straight-A student. Please ensure you properly reference the paper if you're using it to write your assignment.

Before publication, the StudyCorgi editorial team proofread and checked the paper to make sure it meets the highest standards in terms of grammar, punctuation, style, fact accuracy, copyright issues, and inclusive language. Last updated: .

If you are the author of this paper and no longer wish to have it published on StudyCorgi, request the removal. Please use the “Donate your paper” form to submit an essay.