|
| |
 |
A significant trend in information systems development,
Object-Oriented Design
(OOD) aims to create a system based on protected, reusable, fully functioning components, or to be more
precise, “objects.” As indicated in the term Object-Oriented Design, the central focus is on creating and using objects,
which should be thought of as abstract programming structures. Accordingly, the key feature of the programming languages
C++, Java, and Visual Basic is that they facilitate programming with objects. All objects of a similar type are defined
in an object class. All three of these programming languages, as well as other object-oriented languages, allow the
programmer either to create object classes that will be unique to the information systems project at hand, to
design classes that will be reusable across a variety of information systems projects within the business, or to
access the many pre-defined object classes that provide a wide range of readily available functionality. This emphasis
on objects is a marked departure from older systems design methodologies, and because objects represent a different way
to think about designing an information system, an entirely unique set of information systems diagrams and development
strategies have been developed. These diagrams, analysis techniques, and systems design strategies are all captured under
the headings Object-Oriented Analysis and Object-Oriented Design. |
 |
 |
An object class defines attributes and behaviors for all objects of that type.
Specifically, these attributes and behaviors are termed object properties,
object methods, and object events.
For example, an information system that is involved with processing sales orders would have a sales order object class,
among other kinds of classes. This sales order object class would consist of properties, methods, and events. While an
individual sales order will have its own unique characteristics (such as order date, order id, etc.), all sales order
objects created from the sales order class would possess the same types of properties and would “behave” similarly,
as indicated in the diagram to the left. |
 |
Since reusability is a key feature of object-oriented programming, during
Object-Oriented Analysis and Design new object classes are frequently derived from or based on existing ones.
For example, to continue with the illustration above, our hypothetical information system might have three types
of sales order: over-the-counter, phone, and Internet. While each of these three types will possess unique properties,
methods, and events, they will also share attributes and behaviors. Thus, the over-the-counter sales object, the
phone sales object, and the Internet sales object can be thought of as a subtypes that are each defined in part by
the sales order object supertype class. This relationship demonstrates the concept of reusability
(also termed inheritance) and is depicted in the following diagram: |
 |
 |
In general, Object-Oriented Analysis and Design rely on a set of diagramming conventions known as
the Unified Modeling Language (UML). UML diagrams serve the same purpose as more traditional
data models
and process models explained previously – that is,
UML diagrams also provide a set of design “blueprints” for an information system, except from an object-oriented
perspective. For example, similar to the
context model, a UML Use Case Diagram (illustrated below) provides an
overall snapshot of how the system will be used and who will be using it. External agents are known as actors and are
depicted by the stick figures. The other symbols in the following Use Case Diagram should be self-explanatory: |
 |
 |
Similar to the diagram above, a Design Use Case is a text-based
description of key parts or functions of an information system. These types of use cases are
common in information systems analysis and design, object-oriented or not. The following Design
Use Case is for the Place New Order process: |
| Use Case Name: |
Place New Order (telephone) |
| Actors: |
Customer, Sales agent (system user) |
| Description: |
This use case details the process of a customer submitting an order by phone.
The order is taken by a sales agent and entered into the system. At the end of the process,
the system will generate a message indicating an order id. |
| Events: |
Actor Agent |
System Response |
| |
STEP 1: customer calls in to initiate the order process
STEP 2: sales agent chooses "Place New Order" option from the system main menu
STEP 4: sales agent enters the customer id. If this is
a first-time customer, see “Create New Customer” use case
STEP 6: sales agent asks whether customer information is accurate. If not,
see “Update Customer Data” use case; otherwise, proceed to step 7
STEP 7: sales agent mouse-clicks “Enter Sales Order” button
STEP 9: sales agent enters his/her EmpID and tabs to first PRODUCT_ID field of
Order Entry screen
STEP 11: sales agent enters customer’s first product id
STEP 13: sales agent fills in customer’s desired quantity in quantity field
STEP 14: if additional items are needed by the customer, sales agent tabs to new
row in Order Entry screen. Repeat process beginning with STEP 11
STEP 15: sales agent mouse-clicks “Complete order” button on Order Entry screen
to signify end of order
STEP 17: sales agent indicates subtotal, tax, and grand total amounts to customer.
Sales agent mouse-clicks “Commit Order” to proceed. Or “Cancel Order” button to end this use case
|
STEP 3: system displays a customer-lookup window that prompts the sales agent for the customer id
STEP 5: the system retrieves the customer information and displays it in the Customer Window, presenting
the Customer Name, Address, Phone, and current balance due (read-only field)
STEP 8: system responds by presenting Order Entry screen. CustID and Order Date fields show read-only data.
Employee ID field is blank
STEP 10: system verifies that EmpID is valid and if so, moves cursor to first Product ID field. If not,
system generates an error message indicating a valid EmpID must be entered
STEP 12: system verifies whether product id is valid. If not, prompt sales agent for valid prod. Id. If so,
the system auto-completes description field, unit price field, quantity-in-stock field, and moves cursor to quantity field
STEP 16: the system automatically calculates subtotal, sales tax, and grand total and displays these amounts in the
read-only SUBTOTAL, SALES_TAX, TOTAL fields of the Order Entry screen. The “Commit Order” button is enabled on the Order Entry screen
STEP 18: system reduces quantities in stock and sends packing order to warehouse
|
| Precondition: |
This use case is based on the precondition that the sales agent has logged on to the system with a valid user id, and that this
user id is authorized to place a new order. |
| Postcondition: |
Sales order is recorded in database. Packing order is sent to warehouse. Customer balance due amount is updated accordingly. |
|
Without this Design Use Case (above), it would be difficult to introduce the next point. In Object-Oriented Design, there are three types of objects: Interface Objects, Entity Objects, and
Controller Objects. The first type of object allows users to interact with the system. The second are similar to the entities
in a logical data model; they are a person, place, event, thing, or concept important to the business. The third
type of object handles system functionality that does not relate directly to the interface or the entities. An important part
of OOD is object discovery, which is the process of identifying objects that are important to the information system.
Typically, this object discovery process is aided by a careful review of Design Use Cases (see above). Analyzing the Place New
Order use case above will result in the discovery of the following objects: |
| Interface Objects |
Entity Objects |
Controller Objects |
| System Main Menu |
Customer |
Order Processor |
| Customer Lookup Window |
Sales Agent |
Packing Order generator |
| Customer Window |
Sales Order |
EmpID checker |
| Order Entry Screen |
Ordered Item |
|
| Invalid EmpID Window |
Packing Order |
|
|
The table above shows the three types of objects in Object-Oriented Analysis and Design. |
 |
|
|
|