Object-Oriented Analysis and Design

Need help with assignments?

Our qualified writers can create original, plagiarism-free papers in any format you choose (APA, MLA, Harvard, Chicago, etc.)

Order from us for quality, customized work in due time of your choice.

Click Here To Order Now

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 wasnt 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 Suppliers 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 methodsincrement() 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 doesnt 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. OReilly, 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

Need help with assignments?

Our qualified writers can create original, plagiarism-free papers in any format you choose (APA, MLA, Harvard, Chicago, etc.)

Order from us for quality, customized work in due time of your choice.

Click Here To Order Now