Object-Oriented Systems Development
Object-Oriented Systems Development (OOSD) is a methodology for creating software systems that fundamentally utilizes objects as the primary components of development. An object represents a data item that includes both information about itself and procedures for processing that information, such as printing or comparing. Central to this approach are object models, which are structured around four key principles: abstraction, encapsulation, modularity, and hierarchy. These principles help define how objects interact and are organized within a system.
Proponents of OOSD argue that it offers advantages over traditional software development methods, such as enhanced data modeling, increased productivity, and improved system quality. However, challenges remain, including complexity, a lack of established standards, and the need for retraining developers. Despite its potential benefits, OOSD is not yet the predominant method in software development, with many organizations still hesitant to fully embrace it due to perceived costs and risks. As businesses continue to evolve in the Information Age, the search for efficient data management strategies emphasizes the relevance of OOSD, particularly in environments that require robust database management capabilities.
Object-Oriented Systems Development
Object-oriented systems development is the process of developing a new software system that uses objects as the basic building blocks for the development of the systems. An object is typically stored in an object-oriented database and contains information about itself as well as a set of procedures of processing items of that type (e.g., printing, comparing). Individual objects are treated as instances of a class within a hierarchy of classes. Object models are the conceptual framework of object-oriented systems development. The four major elements of the model are abstraction, encapsulation, modularity, and hierarchy. Many experts claim that object-oriented systems development is superior to more conventional methods. However, many of these same experts say that the object-oriented approach is not without its disadvantages and question whether or not it will ever be the dominant approach to the development of software systems. At this point, the majority of systems development work does not employ the object-oriented approach.
Business Information Systems
Keywords: Action; Class; Data; Data Item; Data Modeling; Database; Database Management System (DBMS); Information System; Information Technology; Object; Object-Oriented; Processing; Relational Database; Systems Development
Overview
As the Information Age continues unabated, fewer and fewer businesses are untouched by information technology and the need to connect quickly and accurately both within and outside the organization. Even the mom-and-pop convenience store on the corner is more likely than not to rely on the collection, storage, processing, retrieval, and exchange of information in the form of inventory databases, automatic reordering of stock items, and processing of credit cards and checks. For the chain bookstore down the street, this need is even more apparent. Not only are these types of capabilities needed, but a store must also be able to communicate with other stores in the chain as well as with corporate headquarters, access multiple vendor databases to determine the availability of various items, and coordinate marketing campaigns between the stores. Manufacturers of the products used by both these types of stores also need to maintain information about their customers, process the automatic orders from their customers, and deal with the various other members of their supply chain including their vendors and suppliers, transportation companies, and warehouses. Further, an increasing number of businesses in the United States deal are service providers rather than producers of tangible products. Even more than the manufacturing or retailing organizations, such businesses rely on the collection, storage, processing, retrieval, and exchange of information in order to survive.
There is no reason to believe that this trend will reverse in the foreseeable future. As a result, therefore, there is a continuing search for new and better ways to handle the data needed to do these tasks and provide these services. New and better hardware alone are insufficient to give organizations a competitive edge; new and better ways to process the data are also needed.
Systems Development
Systems development is the process of developing a new business system. The steps in this process include performing a needs analysis, designing a solution to meet the needs, acquiring the resources necessary to support development efforts, and developing and implementing the solution. Object-oriented systems development is an approach to the development of software systems that uses objects as the basic building blocks for the development of software systems. An object contains information about itself as well as a set of procedures of processing items of that type (e.g., printing, comparing).
Object-Oriented Systems Design
The underlying principle of object-oriented systems design is that software systems should be modeled as collections of cooperating objects. In this approach, individual objects are treated as instances of a class within a hierarchy of classes. Object models are the conceptual framework of object-oriented systems development. The four major elements of the model are: Abstraction, encapsulation, modularity, and hierarchy.
* Abstraction refers to the conceptualization of the essential characteristics of an object that distinguish it from all other kinds of objects. This provides sharp boundaries to the object. One of the central issues in object-oriented systems development is determining the correct set of abstractions for a given domain. Abstractions can vary depending on the perspective of the viewer. For example, a computer user may look at a desktop computer in terms of what it can do (e.g., as a tool to do word processing, create graphics, or calculate spreadsheets). A computer maintenance technician, on the other hand, would be more likely to look at a computer in terms of its various systems and components (e.g., processor and coprocessors, graphics card, power supply).
* Encapsulation, the second element of the object model, refers to the process of compartmentalizing the elements of an abstraction. This separates the contractual interface and its application. So, for example, although the computer is made up of physical systems, these systems allow it to perform recognizable tasks.
* The third element -- modularity -- refers to a set of cohesive and loosely related modules. For example, a computer system can have a modular design. If the mother board goes bad, the entire board (i.e., module) can be replaced. Similarly, if the monitor fails to work, the entire unit can be replaced (often more cost effectively than repairing the failed unit itself).
* The final element of object models is that they are hierarchical. This means that there is a rank-ordering of abstractions. For example, a computer is made up of components, which in turn are made up of boards, which in turn are made parts, which are made up of atoms.
Advantages of the Object-Oriented Approach
Many experts claim that object-oriented systems development is superior to more conventional methods. However, many of these same experts say that the object-oriented approach is not without its disadvantages and question whether or not it will ever be the dominant approach to the development of software systems. Some of the advantages claimed for object-oriented systems development include:
* Easier data modeling than that in more conventional systems development. Increased productivity gains.
* Increased resilience to change.
* Greater ability to reuse code and models.
* Superior quality of the resulting system.
* Fewer maintenance problems.
Some experts also believe that the object-oriented approach can potentially alleviate some of the problems of conventional structured approaches, but that object-oriented systems development should not be viewed as a panacea. In addition, the literature also contains caveats about the complexity and immaturity of the object-oriented approach. Very little research has been done to compare the two approaches and what has been done tends to be subjective rather than empirical.
At this point, the majority of systems development work does not employ the object-oriented approach. Although a recent survey of information systems managers stating that 39 percent of the organizations surveyed use some form of object-oriented systems development, overall, it is used in only five percent of information systems projects (Sircar, Nerur, & Mahapatra, 2001). Part of the reason that the object-oriented approach has received such mixed reviews is that it is a work in progress with no standards and widely individualized approaches. In addition, for an organization to change its systems development approach requires not only an investment in new tools and technologies, but also in retraining its developers. This can be a costly proposition. To date, the majority of organizations performing software systems development do not appear to believe that there is a sufficient return on investment to justify the costs.
Applications
Given the increasing amount of data that need to be processed and used in 21st century businesses, the improvement of database management systems is of particular interest. The use of information technology in today's organizations allows them to do these things and more in ways that were not previously possible when data needed to be tracked manually. Through the use of computers and communications networks in the creation, storage, and dispersal of data and information, the flow of information and data between people or departments can be facilitated well than ever before. Arguably, it is databases -- collections of data items used for multiple purposes and which are stored on a computer -- that give information systems their power. Databases can be used in a wide variety of business situations ranging from personal productivity to enterprise-wide applications that are used by multiple users and maintained by information technology professionals. The data and information in databases is managed by software programs called database management systems that are designed to increase the accessibility of data and the productivity of the user.
Database Management Systems
There are purposes for database management systems.
* First, because data are often stored across multiple data bases, database management systems need to be designed to integrate databases so that users can seamlessly get the answers they need to their questions. To process a query or create a report, data from the disparate sources must first be merged.
* In addition, database management systems are also designed to reduce redundancy in the database.
* Database management systems also facilitate the sharing of information among multiple users at various locations. These software systems allow information to be stored once and retrieved and processed many times. This capability means that storage capacity and concomitant maintenance costs are reduced, and helps ensure that data are consistent across the system.
Relational Databases
One of the most frequently used types of database management systems is used in the relational database. In this approach, for example, one table in a university's database may contain contact and demographic information for students while another table may contain information about the students' grades. To generate report cards for students, home addresses would be pulled from one table and current grades from another. The data for the student might be linked through a unique student identification number that was in both tables. Using a unique identifier also eliminates the unfortunate possibility of sending the wrong grades to students who have the same names. The unique identifier is what allows a relational database management system to relate data and information in one table to data and information in another table. Use of the identifier to connect data tables also reduces the possibility of errors resulting from redundancy. For example, if a student's address changed, the address fields in both tables would have to be updated. This not only increases the possibility of errors, but also increases the cost of maintaining the database.
The Alternative: The Object-Oriented Approach
However, relational databases are not without their drawbacks. A more recent approach to database management is the object-oriented database. Objects are data items of a particular type that contain information about themselves as well as a set of procedures of processing items of that type (e.g., printing, comparing). Objects are combined with database capabilities to develop object-oriented databases. For example, as shown in Figure 1, the concepts of customers and orders in an object-oriented database would be considered object classes. Objects -- individual instances in an object class -- of the customer object might include "Mary Jones" and "John Smith." In an object-oriented database, information and data can be stored about the objects. In addition, as opposed to relational databases, actions (also called methods) can also be stored. These are instructions that tell the database how to process the object in order to produce specific information. Unlike relational databases, object-oriented databases also store actions (or methods) as part. Actions are short programs (sets of instructions) that tell the database how to process the data in order to produce the information needed by the user. For example, the customer object shown in Figure 1 could be used to determine whether or not the customer was a good credit risk. Similarly, an employee database might be used to calculate a pay raise for an employee.
The Shearson Lehman Brothers' Object-Oriented Database
An example of a real world object-oriented database can be found at Shearson Lehman Brothers, the brokerage and investment firm. The objects included in this database include account objects with information about the customer, contract objects that include management agreements with firms that have contracted for their services, and security objects that describe details of stocks, bonds, and stock options. Each object contains not only the data logically connected with the object (e.g., the customer object contains the customer name, address, and so forth), but also information about when and how to purchase investment instruments. So, an individual account (the object) can buy a security without the intervention of a human broker.
Object-oriented Databases within Boeing Aircraft Company & British Aerospace
In addition, object-oriented databases are able to store more sophisticated levels of data and information that can be done by relational databases, including three dimensional diagrams, animated video clips, and photographs which are difficult to store in the row-and-column format of relational databases. Both Boeing Aircraft Company and British Aerospace make use of this characteristic of object-oriented databases to store data about aircraft design including detailed schematic drawings not only of external features of the interiors and exteriors of their aircraft, but even about the extensive wiring and cable systems. These databases also house information about manufacturing and cost.
Previously, this information needed to be stored in separate databases. This system, however, made it difficult for engineers and designers to understand the situations. For example, in order to determine the impact of a change in the cost of a component, without an object-oriented database, one would first have to search the component database to determine where the component was being used and what quantity was necessary for each location. Once this information was in hand, the order database would have to be searched to determine if the component was being used in a specific aircraft configuration. After this information was obtained, the manufacturing database would need to be searched to determine the assembly and construction details related to the component. With an object-oriented database, however, drawings, cost, information, manufacturing specifications, and assembly details are all housed in one database. This significantly reduces the probability of errors, increases the speed with which the data can be accessed, and decreases the cost of managing the data and information.
Object-Oriented Databases & the Chubb Corporation
Another organization that uses object-oriented databases is Chubb Corporation. Chubb is one of the top ten publicly traded insurance organizations in the United States with more than 13,000 employees in over 130 offices across more than 30 countries. In addition, Chubb also works with 8,000 independent insurance agents and brokers across the globe. One of the keys to Chubb's success is its ability to create custom insurance products quickly and cost-effectively. This inherently complex task is further complicated by the fact that insurance laws differ widely not only from country to country, but from state to state.
To manage the creation of custom insurance products, Chubb has created a system based on an object-oriented database that serves as the central resource for packaging the various data necessary into custom-designed policies for homeowner, vehicle, excess liability, and valuable article coverage. The system uses object-oriented databases to store reusable objects that contain data about themselves and how they are to be processed. For example, instead of storing different product rules for each state or location, Chubb's system stores the various rate and rule information into business objects that contain data about themselves and about how they are to be processed. The Chubb system contains more than 1,000 classes with approximately 18 methods for each class. For example, the system will include classes such as precious stones, gold, and silver for writing an insurance policy for jewelry. Within the precious stones class are methods including valuation, risk of loss, allowable coverage, and premium calculation. To create a new policy, a Chubb agent enters the information about the customer's needs (e.g., type of insurance, amount of coverage desired) into the system. The system then retrieves the objects relevant to the situation and prepares a premium quote for the customer using stored methods describing state regulatory constraints. The business objects in the system can be reused (e.g., if multiple states have the same regulations concerning homeowners insurance, the same object can be used to prepare policies in all these states). This results in a more flexible and responsive system than would otherwise have been possible.
Conclusion
Object-oriented systems development is the process of developing software systems that use objects as the basic building blocks for the development of software systems. Although many experts claim that object-oriented systems development is superior to more conventional methods, many of these same experts say that the object-oriented approach is not without its disadvantages. The object-oriented approach to systems development is still evolving and is currently without standards. At this time, many question whether or not it will ever be the dominant approach to the development of software systems.
Terms & Concepts
Action: Instructions that tell an object-oriented database how to process an object in order to produce specific information. Actions are sometimes referred to as methods.
Class: A set of objects in an object-oriented database that share a common structure and a common behavior.
Data: Raw facts, figures, and details that are unprocessed. Data typically are stored in a database and processed in various ways to provide organizations with the information that they need to do business (Sing. datum).
Data Item: A specific detail of an individual entity in a database. For example, the data element "year in school" may contain the items freshman, sophomore, junior, or senior.
Data Modeling: The process of developing an abstract model to describe how data are represented and used. Data are modeled by structuring and organizing them. These structures are then typically used in a database management system.
Database: A collection of data items used for multiple purposes; stored on a computer.
Database Management System (DBMS): A software program that allows users to manage the data in a database. Database management systems are designed to increase the accessibility of data and the productivity of the user.
Information System: A system that facilitates the flow of information and data between people or departments.
Information Technology: The use of computers, communications networks, and knowledge in the creation, storage, and dispersal of data and information. Information technology comprises a wide range of items and abilities for use in the creation, storage, and distribution of information.
Object: A data item of a particular type in an object-oriented database. An object contains information about itself as well as a set of procedures of processing items of that type (e.g., printing, comparing). Objects are the basic building blocks of object-oriented programming.
Object-Oriented: Modifier used to describe various concepts that use and support objects (e.g., object-oriented graphics, object-oriented databases).
Processing: The activity of converting, analyzing, computing, and synthesizing data or information stored in a computer so that it is in a useful form.
Relational Database: A database that stores data in two-dimensional tables. A relational database management system works with two data tables at the same time and relates the data through links (e.g., a common column or field).
Systems Development: The process of developing a new business system including performing a needs analysis, designing a solution to meet the needs, acquiring the resources necessary to support development efforts, and developing and implementing the solution.
Bibliography
Booch, G. (1994). Object-oriented analysis and design with applications (2nd ed.). Reading, MA: Addison-Wesley.
Johnson, R. A. (2000). The ups and downs of object-oriented systems development. Communications of the ACM, 43, 68-73. Retrieved October 8, 2007, from EBSCO Online Database Business Source Complete. http://search.ebscohost.com/ login.aspx?direct=true&db=bth&AN=11950414&site=bsi-live
Senn, J. A. (2004). Information technology: Principles, practices, opportunities (3rd ed.). Upper Saddle River, NJ: Pearson/Prentice Hall.
Sircar, S., Nerur, S. P., & Mahapatra, R. (2001). Revolution or evolution? A comparison of object-oriented and structured systems development methods. MIS Quarterly, 25, 457-471. Retrieved October 8, 2007, from EBSCO Online Database Business Source Complete. http://search.ebscohost.com/ login.aspx?direct=true&db=bth&AN=6406420&site=bsi-live
Suggested Reading
Bahrami, A. (1998). Object oriented systems development. Boston: McGraw-Hill/Irwin.
Carte, T. A., Jasperson, J., & Cornelius, M. E. (2006). Integrating ERD and UML concepts when teaching data modeling. Journal of Information Systems Education, 17, 55-63. Retrieved October 8, 2007, from EBSCO Online Database Business Source Complete. http:// search.ebscohost.com/login.aspx?direct=true&db=bth&AN=21275636&site=bsi-live
de Champeaux, D., Lea, D., & Faure, P. (1993). Object oriented system development. Reading, MA: Addison Wesley. Retrieved October 5, 2007, from State University of New York at Oswego Website http://g.oswego.edu/dl/oosd/