CITM305 Module 2-edited

advertisement
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
Download