Module 2 – Requirement Analysis and Modeling 1-1 Module Objectives The objective of this module is to introduce the object-oriented approach, which is the heart of this course. In particular, we will discuss: what is an object? what is the object-oriented approach? what tools are used in developing information systems using the object-oriented approach? the first step of system analysis—event identification At the end of this module, you will be able to: Describe the object-oriented approach Explain the concepts of object and class Describe tools that can be used for system development using the objectoriented approach Identify events, objects, and classes Assigned Readings Chapter 2 – Object-oriented Development and the Unified Process (p. 60-68) Chapter 5 – Use Class and Domain Classes Satzinger, Jackson, and Burd Object-oriented Analysis & Design Introduction In this module, you will familiarize yourself with general terminologies such as information systems, system boundaries, and components of information systems. You will be introduced to some fundamental concepts of the object-oriented approach (e.g., objects and classes) and the first step of system analysis and design—event identification – will be described. This will help you understand the role of system analysts in today’s business organizations and examine the approach which system analysts use. By the end of this module, you are expected to be able to describe the benefits of the object-oriented approach, delineate tools to support system-developing using the object-oriented approach, identify events, and discover objects and classes. Object-oriented approach Definition 1 Object Probably the most essential concept that needs to be discussed in the object-oriented approach is the term object. An object is “a thing in the computer system that is capable of responding to messages” (Satzinger, Jackson, and Burd, p. 60). The definition implies that an object is able to behave or take actions based on messages sent. The messages are defined as “communications between objects in which one object asks another object to invoke, or carry out, one of its methods” (Satzinger, Jackson, and Burd, p. 63). For example, a student information system could contain objects such as student, course, section, and instructor. Let’s use student object as an example. In responding to students’ requests, the student object is able to create/revise/delete a student, enrol course, cancel course enrolment, calculate grades, view grades, etc. The requests are messages sent by direct user students, and enrolling courses is the response of the student object to the request. Revise Student Enrol course Create Cancel course enrolment Delete Calculate grades View grades Objects could be user interface objects (e.g., a button or textbox) or problem-domain objects, which “are specific to a business application” (Satzinger, Jackson, and Burd, p. 63), and are the main focus of the course. An object has attributes or “characteristics that have values” (Satzinger, Jackson, and Burd, p. 62) and methods, such as “describe what an object can do” (Satzinger, Jackson, and Burd, p.62). The following table shows examples of objects, and attributes and methods for each object. We use things that we are familiar with to illustrate the concept object, attribute, and method. In the following table, we have three objects—student, laptop, and course. These three objects could be three domain objects for a Student Information System, which intends to track courses taken and laptops used by students. Obviously, the information related to each of these three objects is important. Attributes store the information about the object that is relevant to the information system. As shown in the following table, attributes for object Student include name, address, phone number, and student number; attributes for object Laptop include serial number, vendor, model, 2 model number, size, and price; and attributes for object Course include course name, course code, and course description. An object can take actions, or can behave in response to incoming messages. This is a very important notion of the object-oriented approach. Methods are used to capture the behaviours of an object. As you may have noticed, methods are closely related to attributes. Methods either create (set), change, add, delete, or search attributes. Objects Student Attributes Name, address, phone number, student number Laptop Serial number, vendor, model, model number, size, price Course Course name, course code, course description Methods Create name, search address, create phone number, search student number Search serial number, get price, set size, add model number, set vendor Set course name, change course name, set course code, create course description Table 2-1 Problem Domain Objects ASSIGNMENT 2-1: Identify attributes and methods for the object Instructor and Textbook. Complete the exercise by going back to Blackboard and selecting the exercise under Assignment. Class All similar objects belong to a class, which “defines what all objects of the class represent” (Satzinger, Jackson, and Burd, p. 63). An example of a class could be the object student, which has subclasses such as full-time students and part-time students. When an object (e.g., new student) is created for the class student, the class student is instantiated. Instance is a synonym for object, and often used interchangeably. The diagram below shows some examples of instances of classes. For example, Tom, Judy, and Wendy are instances of class Student. 3 Tom in st an tia tio n Instances of class Student Student i n st atio anti n ins Judy tan n tio tia Wendy Table 2-2 Classes and Instances of Classes The Object-oriented approach With the understanding of the term object, we can move on to discuss the objectoriented approach. The object-oriented approach views an information system as “a collection of interacting objects that work together to accomplish tasks” (Satzinger, Jackson, and Burd, p. 60). Information systems are developed to automate tasks and streamline business processes. The object-oriented approach achieves the automation and streamlining through interactive objects, while the traditional approach (also called structured approach) does it through processes. Let’s use the example of the student information system to illustrate the object-oriented approach. Some tasks such as Create a New Student could be accomplished by a single object student. Some other tasks such as Enrol a Course may need the interaction between the object student and the object course. A new student object is created first, and then a message is sent to the object course to enrol the student in the courses of his/her choice. The object-oriented approach can be further divided into object-oriented analysis (OOA), object-oriented design (OOD), and object-oriented programming (OOP). OOA defines 4 “all of the types of objects that the user need to work with and show that user interactions are required to complete tasks” (Satzinger, Jackson, and Burd, p. 60); OOB defines “all of the additional types of objects necessary to communicate with people and devices in the system, shows how the objects interact to complete tasks, and refines the definition of each type of objects so it can be implemented with a specific language or environment” (Satzinger, Jackson, and Burd, p. 60); OOP consists of “writing statements in a programming language to define what each type of object does” (Satzinger, Jackson, and Burd, p. 60). We will focus on OOA in this course. Benefits of the Object-oriented Approach The benefits of the object-oriented approach are derived from encapsulation and inheritance, the two characteristics of the approach. Encapsulation is defined as “combining attributes and methods into one unit and hiding its internal structure of objects” (Satzinger, Jackson, and Burd, p. 66). Also called information hiding, encapsulation helps protect the internal structure of an object, but also allows users to use an object without the need to know its internal structure. For example, you can create a Microsoft Word document without the need to know what programs are invoked. With encapsulation, the system development effort is greatly simplified. Another characteristic of the object-oriented approach is reuse, which means that “classes and objects can be invented once and used many times” (Satzinger, Jackson, and Burd, p. 61). Once a new class Student is invented, it can be extended to a new subclass Full-time Student by inheriting all that a student is and then adding the new characteristics. Encapsulation and reuse together help significantly reduce the system development effort. An article that appeared in Computerworld described how Electronic Data Systems (EDS) compared the object-oriented and the traditional approach. The company initiated two projects to develop the same system using two different programming languages. One project used a traditional 3GL, called PL/1, and the other used SmallTalk, an object-oriented based language. The results were impressive as indicated in the following table: PL/1 Smalltalk 19 calendar months 3.5 calendar months 152 person months 265,000 lines of code 10.4 person months 22,000 lines of code Tools for System Development A variety of software tools are available for developing information systems using the object-oriented approach. Popular choices include Microsoft Visio and Rational Rose, which are the tools that we use in this course. Figure 2-1 below was done using Visio, and Figure 2-2 was done using Rational Rose. 5 Figure 2-1 A screen shot of Visio 6 Figure 2-2 Different views of Rational Rose As you have noticed, both tools have GUI interfaces, and provide drawing templates that can be easily dragged to the drawing place to create different diagrams. Despite the similarity, Visio is a drawing tool to create system models, while Rational Rose is a CASE (Computer-aided Software Engineering) tool. A CASE tool usually contains a repository, a database that contains information about the system, including “models, descriptions, and references that link the various models” (Satzinger, Jackson, and Burd, p. 68). A CASE tool can check the models to ensure that they are complete, and check one model against another to ensure consistency. Event Identification Event An event is defined as “an occurrence at a specific time and place that can be described and is worth remembering” in the computer system (Satzinger, Jackson, and Burd, p. 167). There are three types of events: external events temporal events 7 state events External event An external event is an event that “occurs only outside the system, usually initiated by an external agent or actor” (Satzinger, Jackson, and Burd, p. 169). Examples of external events include customer wants to check out, student wants to register for a course, employee wants to check insurance policies, and patron wants to pay fines. One thing in common among all these events is that each event is invoked externally by a customer, a student, an employee, and a patron. Keep in mind that these events can become events of interest to business analysts only when they are worth remembering. Actions such as a patron wonders around, looks for books, and flips through magazines are irrelevant to a library’s book reservation system, thus not worth remembering by the system. By the same token, a student may browse a university’s web site, and check the information of different departments. These actions, however, are not worth remembering by the university’s course registration system. Temporal event A temporal event is an event that “occurs as a result of reaching a point in time” (Satzinger, Jackson, and Burd, p. 169). Different from external events, temporal events are triggered internally by time. Examples of temporal events include time to generate reports, time to check status, time to change time zone, and time to remind customer to return rented items. As implied in these examples, these events take place because a point of time is reached. State event Similar to the temporal event, a state event is an internally triggered event and occurs when “something happens inside the system that triggers the need for processing” (Satzinger, Jackson, and Burd, p. 170). Examples of temporal events include reorder point is reached, battery is low, the intensity of smoke reaches a dangerous level, and the size of emails almost reaches the maximum memory size. Some events are related to business processes while some others are related to system controls, which “checks out safety procedures put in place to protect the integrity of the system” (Satzinger, Jackson, and Burd, p.173). System control events include user wants to log on to the system, user wants to change the password, user wants to change preference settings, time to back up the database, and time to require the user to change the password. During the system analysis phase, we are concerned with the events related to business processes, and leave those related to system controls for the system design phase. Event identification There are different ways of identifying events. 8 One approach is to list all users and think through the reasons they use the system by focusing on one type of user at a time. Another approach is to identify functionalities requested by users. A third approach is to uncover goals that users want to achieve in using the system. An event should focus on elementary business processes (EBPs), which are “tasks performed by one person in one place, in response to a business event, that add measurable business value and leave the system and its data in a consistent state” (Satzinger, Jackson, and Burd, p. 167). Events such as customer creates new order and student registers for a course are good examples of elementary business processes. In conducting system analysis, business analysts focus on event decomposition, “a technique that first focuses on the events a system needs to respond to and then looks at how a system must respond” (Satzinger, Jackson, and Burd, p. 167). Use the event student wants to register for a course as an example. Course registration is the goal that the student wants to achieve. What happens in the system responding to the student’s request is treated as a black box first to help users understand what support the system can provide to users. As system analysis becomes more detailed (as we will see later in the course), the black box will be opened and detailed system responses will be delineated. Event Table Once events are identified, we present them in an event table (shown in Table 2-1 below). As indicated, an event table contains six columns, each of which represents a component of an event. The first column is the name of an event, which is one sentence stating the user and the objective that the user wants to achieve. The second column is the trigger, which is “a signal that tells the system that an event has occurred, either the arrival of data needing processing or a point in time.” The third column, source, is “an external agent that supplies data to the system” (Satzinger, Jackson, and Burd, p. 175), and is often required for external events. The fourth column, use case, represents what the system would do when the event occurs, and is used to define functional requirements. The fifth column denotes “an output, produced by the system, that goes to a destination” (Satzinger, Jackson, and Burd, p. 175). The final column, destination, is defined as “an external agent that receives data from the system” (Satzinger, Jackson, and Burd, p. 175). 9 Here is an example of an event table. Student Wants to Register a Course is the sample event. This single event contains the information that helps us understand what triggers a system activity, and what results from the activity. An event table helps provide the this information. By dissecting the event, we identify what the trigger is (student request), who initiates the trigger (source; student), what system activity is triggered (enrol student to a course), what is the response of the activity (confirmation), and to whom the response is sent (student). Event Trigger Source Student Student Student wants to request register a course Table 2-1 An example of an event table Use Case Enroll student to a course Response Destination Confirmation Student ASSIGNMENT 2-2: What type of event is the example listed above? ASSIGNMENT 2-3: How do you represent temporal and state events in an event table? Complete these exercises by going back to Blackboard and selecting the exercise under Assignment. Table 2-2 below shows an example of a temporal event. Note that since temporal events are internally driven, there is no source for temporal events, and the trigger is time. Event Trigger Source Use Case Time to End of Send book send book deadline overdue overdue notice notice Table 2-2 Event table for a temporal event Response Book Overdue notice Destination Student ASSIGNMENT 2-4: Present the event reorder point is reached in an event table. Complete the exercise by going back to Blackboard and selecting the exercise under Assignment. 10 In presenting events in an event table, some naming conventions need to be followed. For example, trigger, responses, sources, and destinations should be described in a noun or noun phrase. In contrast, use cases should be described in a verb phrase. ASSIGNMENT 2-5: Doctor Lam’s office has a Patient Appointment System that records new patients’ contact information (name, address, telephone number), and makes an appointment based on the patient’s request. Two days before the appointment time, the system makes an automatic phone call to the patient to remind him/her of the appointment time. For every missing appointment, the system automatically charges the patient $30 and puts a record in the patient’s file. Identify all events, and present them in an event table. You need to complete the exercise using Microsoft Word and upload your answer to Blackboard. Uncover objects and classes We have discussed objects and classes earlier in this module. One of the benefits of event identification is the identification of objects and classes from an event table. Three steps are involved. 1. Use the event table and information about each event; identify all nouns. 2. Add items or categories using other information from existing systems, current procedures, and current reports of forms. 3. Refine the list and record assumptions or issues to explore. The following table shows how a noun table is constructed—one column lists all the nouns identified from an event table, and the other column indicates reasons for including or excluding the noun, and whether the noun should be included as an attribute. In addition, the table also shows nouns which require more research to determine whether their information should be needed in a system. Identified nouns Student Student request Course Reminder Deadline Registration fee Confirmation Notes on including a noun as a thing to store Yes, we need to know information about students. An input resulting in triggering a use case enroll student to a course. No need to store. Yes, we need to know the information about each course. An output produced from other information. No need to store. The information needs to be stored to determine when to send reminder. May be an attribute for student. May be an attribute for student. An output produced from other information. No need to store. 11 Table 2-3 Classes and Instances of Classes ASSIGNMENT 2-6: Construct a noun table based on the event table you created in Assignment 2-5. Complete the exercise by going back to Blackboard and selecting the exercise under Assignment. Summary In this module, we touched on the core topic of the course—the object-oriented approach. This approach is popular among today’s organizations because it is intuitive and allows the reuse of existing objects which significantly reduces development effort. One of the key concepts of the object-oriented approach is an object, which is a thing in the computer system that can respond to messages. The object-oriented approach views an information system as a collection of interacting objects. That is, the goals that users want to achieve through an information system are fulfilled by the interactions among objects. Two commonly used tools for system development using the object-oriented approach include Microsoft Visio and Rational Rose. Both tools rely on GUI interfaces, and offer drawing templates to ease diagramming effort. In addition, Rational Rose is a CASE tool that can check diagrams for consistency and accuracy. Event identification is the first step in system analysis. An event is an occurrence that needs to be remembered by a computer system. We have discussed three types of events—external, temporal, and state. Events can be identified through goals that users intend to achieve through the system and new functionalities that users desire to have in a new computer system. Once uncovered, events are presented in an event table, based on which classes and objects are identified. Module Activities Your project Identify events, create an event table, and build a noun table for your project 12