Documente Academic
Documente Profesional
Documente Cultură
Contents
CHAPTER
Oracle Method
Contents i
ii Contents
Oracle Method
Contents iii
iv Contents
Prototyping................................................................................................ 6-1
Related CDM Tasks................................................................................... 6-2
Approach to Prototyping.......................................................................... 6-3
General Guidelines ............................................................................. 6-3
Goals of Prototyping During Requirements Modeling ................... 6-3
Risks of Prototyping ........................................................................... 6-4
Conducting Prototype Sessions......................................................... 6-5
Prototyping Using Oracle Designer ......................................................... 6-7
Managing Design Objects .................................................................. 6-7
Oracle Method
Contents v
If you find any errors or have any other suggestions for improvement,
please indicate the chapter, section, and page number (if available). You
can send comments to us in the following ways:
iDevelopment Center of Excellence
Oracle Corporation
Rijnzathe 6
3454 PV De Meern
The Netherlands
email: cdminfo.us@us.oracle.com
Oracle Method
Preface
T
Oracle Method
Preface ix
Positioning
The SGL manuals are positioned between the CDM Classic and CDM
Fast Track Process and Task References and the product-oriented Oracle
tools manuals. The SGL manuals continue in more detail where the
CDM Process and Task Reference ends, and through references they form
an entry into the Oracle tools manuals. This section describes the
relationship of this manual to the following:
This manual (Volume 1) has a strong relationship with Volume 2 Design and Generation of Multi-Tier Web Applications. Both manuals focus
on modeling, designing, and generating multi-tier web applications
using Oracle Designer. The concept of modeling business rules that is
introduced in this manual is used and carried forward during design
and generation.
Volume 3 - Building Systems using Oracle8 Programming Tools covers the
other Oracle8 programming tools, such as, SQL, PL/SQL, and SQL*Plus
that can be used together with Oracle Designer and Oracle Developer.
Volume 4 - CDM Standards includes a list of detailed and numbered
standards and guidelines per deliverable of CDM Classic and CDM Fast
Track.
x Preface
Oracle Method
Preface xi
Audience
This manual is written for business and system analysts, system
designers and developers, managers, and service groups that are
involved within the life-cycle of system development and
implementation. This includes project managers and support staff of
Oracle Corporation, business partners, and customers.
xii Preface
Oracle Method
Preface xiii
select
*
from
(select * from dept) a -- subquery
,
emp b
where
a.deptno = b.deptno
xiv Preface
Suggestions
We provide you with helpful suggestions throughout the handbook to
help you get the most out of the method. We highlight these
suggestions with an illuminated light bulb. Here is an example of a
suggestion:
Suggestion: Verify your backup and recovery plan with your
hardware and software vendors.
Attention
We sometimes highlight especially important information or
considerations to save you time or simplify the task at hand. We mark
such information with an attention graphic, as follows:
Attention: Since project team training occurs simultaneously
with this task, some recommendations (or decisions) from
training may be implemented in the mapping environment.
In this case, these training inputs become predecessors to this
task.
Warning
Considerations that can have a serious impact on your project are
highlighted by a warning graphic. Read each warning message and
determine if it applies to your project. Here is an example:
Warning: Any time you insert data directly into Oracle
Application tables, you run the risk of corrupting the
database. Oracle strongly discourages inserting data directly
into Oracle tables that are not designed as an Open Interface.
For More Information
Throughout the handbook we alert you to additional information you
may want to review. This may be a task section, appendix, or reference
manual. We highlight these references with an easy-to-notice graphic.
Here is an example:
Reference: For more information about content for the
design presentation, review the Critical Success Factors, page
3-7.
Oracle Method
Preface xv
Web Site
Information available on the World Wide Web is indicated by a Web
symbol and an appropriate Web address. Here is an example:
Web Site: Pure Atria Corporations Home Page on the
World Wide Web is http://www.pure.com/
Tool Version Differences
When there are differences between versions of tools, for example,
version 6 and 7 of the Oracle Server, we highlight these references with
an easy-to-notice graphic. Here is an example:
Difference: The optimizer of the Oracle7 Server under the
cost-based approach will consider the location of data when
estimating the cost of accessing it.
Tools
When there are specific Oracle tools that can be used to automate the
systems design and generation process, we highlight these references
with an easy-to-notice graphic. Here is an example:
Data
Schema
xvi Preface
Related Publications
Books in the CDM suite include:
CDM Classic
Oracle Method
Preface xvii
CHAPTER
Introduction to
Requirements
Modeling
T
Oracle Method
Types of Modeling
Oracles Custom Development Method (CDM), be it the classic or the
fast track approach, carries forward the above principle by identifying
two levels of requirements modeling:
business modeling
system modeling
Business Modeling
Business models describe the informational and functional requirements
necessary to meet the defined business objectives. The scope of
investigation is a business area, focus is on what the business has to do
to meet its objectives. There is no distinction between manual functions
and functions that need to be supported by the computer system.
Current procedures and mechanisms should only be described within
supporting documentation (CDMs existing system deliverables).
System Modeling
System models focus on functionality that must be implemented or
supported by the computer system and identify the nature of that
Oracle Method
Process Modeling
Function Modeling
Prototyping
Dataflow Diagramming
Process Modeling
Process models provide a horizontal view of the organization, showing
additional information on how the organization accomplishes specific
repetitive tasks.
This simple but powerful technique is widely known and one of the
main pillars for Business Process Reengineering (BPR). With the
introduction of Oracles CDM, process modeling has become one of the
three main contributors to requirements modeling and definition.
In custom development, the primary purpose of process modeling is to
scope and define business requirements for system development. But
the real power of this technique lies in its contribution to the following
key areas of the custom development life-cycle:
Oracle Method
Function Modeling
Function modeling provides a model of what a business does
(functions) and how those functions can be grouped.
The functions within a business are grouped into a hierarchy. The
starting point and highest function of the hierarchy is the mission
statement or goal of the business. The finishing point is an elementary
business function such as sending out an invoice. The purpose of
function modeling is to show how that mission statement is fulfilled by
the functions performed within the business. This is a very powerful
technique and can lead to some very fundamental questions about how
an organization operates.
Function modeling is covered in Chapter 5 of this manual.
Prototyping
Prototyping is a powerful technique which can support you in verifying
the correctness and completeness of your requirement models.
Prototyping enables the user to see your interpretation of what is
required in the system, and to provide feedback. Because it is tangible,
the prototype also helps the client feel like they are getting something
for their money.
Prototyping is covered in Chapter 6 of this manual.
Dataflow Diagramming
With the introduction of process modeling, the need for dataflow
diagramming is strongly reduced. Dataflow diagrams depict processes
within the business using lines to illustrate the information being passed
(dataflows) and the subset of information available to a process
(datastores). As such, a dataflow diagram can be regarded as a specific
instance of a process flow diagram that only shows data dependencies.
Audience
As the audience for business and system models includes the future
users, you should use natural language in all free text objects, avoiding
technical jargon. As much as possible, use entity, attribute and
relationship names within the descriptions. If the resulting phrases are
incomprehensible, your naming of entities, attributes and relationships
is probably wrong!
Oracle Method
Authorization Rules
ID
Deliverable
Task Name
RD.060
RD.080
RD.070
RD.090
Authorization Rules
TA.090
Oracle Method
Oracle Method
Oracle Method
Entity
Relation
2. Define Attributes
Reference: For more information, refer to Chapter 4, Entity
Relationship Modeling.
Entity
Relation
attribute rules
Entity
Relation
Function
Hierarchy
Entity
Relation
Oracle Method
Function
Hierarchy
Function
Hierarchy
Function
Hierarchy
Oracle Method
CHAPTER
Process Modeling
T
Oracle Method
Process Modeling 2 - 1
2 - 2 Process Modeling
Oracle Method
Process Modeling 2 - 3
Downstream Benefits
In the development of user documentation and training, process models
have proven to be an effective tool. Because the process model shows
which user roles are responsible for performing which process steps,
training and user documentation can be designed for specific user roles
performing specific process steps. This greatly increases the ease and
efficiency of training material and documentation development.
2 - 4 Process Modeling
The process model can also be used as a basis for developing testing
scenarios. Module tests can be constructed around individual process
steps; module integration tests correspond one to one with processes;
and system and systems integration tests can be developed for closelyrelated sequences of processes. Because the process model presents the
user view of the system, users can effectively participate in the design of
scenarios and test cases.
The project team develops the Business Process Model during Business
Requirements Definition. It is a complete process model representation
of the business area. It includes the following:
Oracle Method
Process Modeling 2 - 5
Business Processes
A business process, in general, is the combination of operational steps and
management controls that, taken together, produce a product or deliver
a service. The central idea in this definition is that a business process
produces a result or output of some kind. The product or service may
be something that is received by an external customer, such as fulfilling
a customer order. Other business processes produce outputs that are
not visible to the external customer, but are still essential to the
effectiveness of the organization. Taking inventory or hiring an
employee are good examples.
Business processes occur as preplanned responses to business events.
An event is an occurrence inside or outside of the business environment
that causes an event response to execute. Event responses follow an
established, repeatable set of steps that make up the complete response
to the business event. The combination of an event and its event
responses form a process. A planned response system is comprised of the
entire set of processes in the business area. The Business Process Model
is the representation of the business areas planned response systems.
Processes may be modeled at different levels, depending upon the
breadth of the process steps that are defined. When performing
business process reengineering, an analyst usually works with highlevel processes, analyzing these processes at a macro level. Custom
development and application implementation, on the other hand, must
ultimately work with business processes at the elementary level.
2 - 6 Process Modeling
address the technical requirements that must be met to satisfy the business
requirements. This is the function of the System Process Model. The
System Process Model has three objectives:
Oracle Method
Process Modeling 2 - 7
2 - 8 Process Modeling
REPOSITORY
NAVIGATOR
BOBJ
Define and
Validate Business
Objectives
A20.090
PROCESS
CPM2
ID Primary
Processes
A20.090
ORGS
ID Business Units
(Agents)
CPM3
Create Context
Process Diagram
A10.030
A20.090
BPM
Complete
Business Process
Model
A20.090
SPM
Construct System
Process Model
B30.110
CPM1
ID External
Interfaces
A20.120
FUNCTION
DIAGRAMMER
BFM
Construct
Business Function
Model
A20.100
ENTITY
DIAGRAMMER
BIM
Construct
Business Data
Model
A20.110
DATAFLOW DIAGRAMMER
SFM
Construct System
Function Model
B30.100
SIM
Construct System
Data Model
A30.090
CIM
Construct
Context Data Flow
Model
(Optional)
Figure 2-1
Oracle Method
Process Modeling 2 - 9
2 - 10 Process Modeling
B u siness L ayer
Context
Scope
Process
C o ntext
M od el
(C M )
P roc ess
M od eller
Function
T op Laye r
B usin ess
F un ctio ns
(B F M )
P roc ess
M od eller
P roc ess
M od eller
H ig hleve l
B usin ess
F un ctio n
M od el
(B F M )
F un ctio n
H ie rarch y
C reate H ig h-level /
C o m po site B usin ess
F un ction M od el
(R D .030/R D .031)
z d o cu m e n t sc o pe o f
BA
z o rg a n ize a pp lica tio n
into F A s
z re-p a re n t/o rg a n ize
E B Fs u nd e r FA s
z rec o rd d e ta ile d E B F
d e sc rip tion s
z d o cu m e n t refere nc e
e n tity fun ctio ns
z review sc o pe o f E B Fs
E ntity
R e latio n
F un c D ef.
F un ctio n
H ie rarch y
F un ctio n
H ie rarch y
Data
Initia l
B usin ess
D a ta
M od el
(B D M )
E ntity
R e latio n
Figure 2-2
Oracle Method
C reate (H ig h -L evel)
B u siness P ro cess
M o d el (R D .010/R D .011)
z illu strate fun ctio n
a re a c o ntext
z sh o w h ig h-le ve l
interfa ce s
z d o cu m e n t b u sin e ss
e ve n ts
z d o cu m e n t w ork
flo w s
z d e velop p roc e ss a n d
p ro ce ss s te p s (E B F s)
Process Modeling 2 - 11
Business Area
When the need for a new system is determined, our first task is to
define the business area that the new system will automate. To do this,
we need to understand the clients business objectives and primary
business processes. We also need some way of understanding the size
and complexity of the business area. We can accomplish this by
answering the following questions:
2 - 12 Process Modeling
Oracle Method
Process Modeling 2 - 13
primary processes
organizational units (also referred to as agents)
external systems
process flows
business events
decision and conditional flows
material or information flows
material or data stores
Hollywood has identified the business problems and objectives for the
Stock Procurement business area shown in the following table.
PROBLEMS
OBJECTIVES
2 - 14 Process Modeling
PROBLEMS
OBJECTIVES
Oracle Method
Process Modeling 2 - 15
EVALVENDOR
Evaluate and
Track Vendor
Performance
HEAD OFFICE
NOTIFY
Notify Stores
of Product
Availability
ACCOUNTS PAYABLE
FORECAST
Forecast Cash
E001 Requirements
INVOICE
Process
Invoices
PURCHASING
RENTAL STORE
CONTRACT
Award
Contracts
PURCHASE
Purchase
Products
ORDER
Order Items
RECEIVE
Receive
Goods
E002
INVENTORY
Unspecified
Triggering Events:
E001: End of Month
E002: Stock Low
Figure 2-3
Automated
Accounting
System (AAS)
This context diagram captures the scope of the business area and also
conveys a general flow of the primary business processes. We have also
documented primary business processes, their responsible agents, and
all external interfaces all on a single diagram.
Notice that all the diagram elements are high level. The purpose of the
context process diagram is not to capture detail, but to capture the scope
of the business area through high level processes and flows. You may
also notice that the FORECAST process is not connected by any flows. At
the context level it is possible that we have several independent primary
processes in our business. We may also define the external interfaces to
our business by adding the external systems to our diagram as we have
with the Automated Accounting System shown in the Unspecified
agent channel. Now, how do we create these diagram elements in
Oracle Designer?
2 - 16 Process Modeling
Create New
Diagram
Button
Create New
Diagram
Element Button
Create New
Diagram
Element Button
Figure 2-4
Oracle Method
Process Modeling 2 - 17
To further specify the agent, double click on the one you wish to edit.
The Edit Dialog Box appears and allows you to add or edit information
about the diagram element. This Edit Dialog Box behavior is standard
for all diagram elements in Oracle Designer.
Organizational Units (Agents)
RENTAL
STORE
The agents that perform the process steps are shown to the left of the
process rectangle. The rows running horizontally across the diagram
serve to separate process steps performed by one unit from those
performed by another. Agent names should be singular nouns.
The horizontal strip associated with an agent is called a swim lane, or
agent channel. In Oracle Designers Process Modeler, an agent is
defined using an organizational unit.
An agent refers to the party responsible for a process step. An agent
may be an organization, a functional unit such as a department or
division, an employee role, or a party external to the organization, such
as a customer or supplier. In our example, RENTAL STORE and HEAD
OFFICE represent functional units in the organization while ACCOUNTS
PAYABLE and PURCHASING represent departments within the HEAD
OFFICE.
Process
Modeller
Process
Modeller
2 - 18 Process Modeling
the context diagram the higher level responsible agent should be used.
For example, use RENTAL STORE instead of STORE MANAGER and STORE
CLERK.
Process
Modeller
Process Steps
AP 4.3.1
Pay Supplier
All process steps must have a name that begins with a verb. Names
should be shown centered within the process step symbol. Include a
label as a text annotation to make the label visible on the diagram.
Place the label above the top left hand corner of the process step.
Process
Modeller
Flows
A flow represents the sequential order of process steps. Primarily
used to show the order in which steps are performed, a flow may also
represent the movement of information or materials between
individual process steps or between process steps and stores.
The process flows should be drawn between the defined Process Steps.
These should be classified as either a Data Flow, a Temporary Flow or a
Material Flow. Flows can be drawn between the process steps in Oracle
Designer and can be classified as one of the three above, or just as a
Flow only. Only use this option if you do not yet know what kind of
flow it is. Normally you would also include the Temporary Flows at
this level (for example, Year end processing).
Oracle Method
Process Modeling 2 - 19
Figure 2-5
Events
E0123
Each process flow diagram may show one or more events. A context
diagram can indicate one or more high-level events if they aid in
understanding the business area. Primary process diagrams, which
are described in the next section, should always have at least one
trigger event and one outcome event.
An event is shown as an open arrow, indicating the first process step
2 - 20 Process Modeling
in the response to that event. Include only the event label in the
arrow, since the event name is most likely too long to fit neatly inside.
Also indicate the full names of the supported events in a legend on
the diagram. Legends can be added to a process diagram by using
the OLE 2 features of the diagrammer. Choose the menu selection
Edit>Insert New Object... to insert onto the diagram. Add the
appropriate legend text in the object. The included object is saved
with the process diagram.
A complete context process model includes external events. This could
for instance be a customer calling to order a specific product. The
events should be drawn as a trigger or an outcome in the Process
Modeler. From version 2 of Oracle Designer, you can classify the event
as an External event by choosing external as the Type of the event. Note
that this classification can only be performed in the RON and not in the
Process Modeler itself.
If you need to use the same external event as you used in the higher
level of the Process Model, then you need to open the event in the
Repository Object Navigator. Add the process step that the event
triggers under Triggering Functions, and the process steps that triggers
the outcome events under Triggered by Functions. When this has been
done, then you can include the events in the process model, by using
Edit->Include->Trigger, or Edit->Include->Outcome.
Stores
INVOICE FILES
Oracle Method
Process Modeling 2 - 21
External Interfaces
You can represent flows to or from other systems in two ways. The first
approach uses the Unspecified Organization Unit to cover the external
area to the development. You then depict each external system as a
function/process step in the organization unit Unspecified. Use this
method when you need to represent, at most, a single flow to or from an
external system on the diagram. You can then show a process flow to
or from the system and any other process step.
If you must show multiple flows to or from a single system, make the
system its own agent. Depict process steps in the swim lanes that
correspond with functions executed by the other system. You can show
much more detail about the processing of the external system and the
flows to or from the business process steps in this way.
If you use this approach, then you can make the model more readable if
you color the external agents differently to the internal ones. In addition
you might find it useful to add an entry to the external unit to explicit
indicate that the Agent is external. The Externals are defined as an
external source or recipient of a specific flow. You can do this by
opening the external Business Unit in the Repository Object Navigator,
and then add the entry under the Represented by Externals node.
Process
Modeller
white
dark gray
2 - 22 Process Modeling
Process
Modeller
Oracle Method
Process Modeling 2 - 23
2 - 24 Process Modeling
Oracle Method
Process Modeling 2 - 25
Example
MEMBER
E001
RENT 3.1[E]
Present returned
copy
RENT 3.4[E]
Pay excess
STORE CLERK
RENT 3.9[E]
RENT 3.5[E]
Record excess
excess payment
payment
Place copy on
reservations shelf
Yes
RENT 3.2[E]
Log copy return
Excess
charges?
No
Is this title
reserved?
Yes
E002
RENT 3.7[E]
Reserve a copy of a
pre-booked title when
it becomes available
No
RENT 3.8[E]
INVENTORY
E003
STORE MANAGER
RENT 3.10[E]
Notify member that
a copy of a prebooked product is
in stock
E004
Unspecified
Events:
E001
E002
E003
E004
Figure 2-6
Return of Copy
Copy Reserved
Copy Available for Rent
Member Notified
Notice that the process step, Record Excess Payment, is at such a low
level that you would not break it down into smaller steps. This process
step corresponds to an elementary business function. All business
processes should at least be decomposed to the level where every nonexternal process step corresponds to a single elementary business
function. External process steps may, if necessary, be left at a higher
level, if knowing the details of these functions is not important.
What is an elementary business function (EBF)? An EBF (EBF) is a
function that, once started, must either complete successfully, or, if it
cannot complete successfully, must undo any effects that it has had up
to the point of failure. It is helpful to look at an EBF as a single
2 - 26 Process Modeling
Agents (Revisited)
Agents represent who is performing the work of a process. From the
perspective of systems development, agents identify job functions that
will be automated. The combination of the process step and the
responsible unit provides a jumping-off point for designing user
interactions with a computer system in performing a specific job role.
Note that in the Return Rental example, each of the agents (Member,
Store Clerk, Store Manager) represent specific roles.
As noted previously, agents can represent any level in an organization,
from a business unit down to a specific job description. Using our
Hollywood Videos example again, agents that might be involved in the
process of purchasing videos for the company could be:
CONTRACT MANAGEMENT
HEAD OFFICE
VENDOR
STORE MANAGER
PURCHASING DEPARTMENT
ADMINISTRATIVE ASSISTANT
STORE CLERK
Oracle Method
Process Modeling 2 - 27
Trigger Events
E0123
2 - 28 Process Modeling
There are three basic types of triggering events. Events can be viewed
as being external to the organization, internal to the organization, or
temporal in nature.
The triggering event Copy Returned occurs outside the business area,
so it is an external event. In this business area, an event such as Blank
Tape Inventory Falls Below Restock Point would be an example of an
internal event, since it falls within the boundaries of the business area.
The triggering event Close of Business Occurs is a temporal event that
may trigger many processes, for instance, Secure Premises or
Reconcile Daily Receipts.
REC 6
Record Received
Goods
List Overdue
Videos
Besides defining your process steps as either data entry or report, you
also want to indicate which process steps correspond to elementary
Oracle Method
Process Modeling 2 - 29
Figure 2-8
It is obvious from this picture that the event only triggers one
elementary process step/function. This information is important when
the event should be implemented for the module(s) representing the
business function.
Also, if you choose to model external process steps, it is recommended
to prefix the Label with EXT, so that it is immediately visible that it is an
external function, for example EXT00001. It may also be useful to use
another color on the process diagram.
Attention: Manual processes are indicated by grayed-in
process step boxes. This designation is generally done in the
System Process Model, but some analysts prefer to signify
manual process steps earlier in the business model.
2 - 30 Process Modeling
Example
Oracle Method
Process Modeling 2 - 31
INV5.2[E]
STORE CLERK
Add a new
copy to the
inventory
REC1[E]
E003
Check
Shipment to
Packing List
INV12
Test Video
Video Shipment
Existing Title?
Yes
INV5.3
Yes
No
Define New
Title
No
REC11[E]
REC6[E]
Record
Received
Goods
INV5.1
Notify Head
Office
E005
Notify Other
Stores of New E006
Title
HEAD OFFICE
INVOICE
FILES
REC9
STORE MANAGER
Call Vendor
with
Problems
REC8
E004
Review
Invoice
AP4.3.1
REC10
Match
Invoice
Pay Supplier
Invoice
OK
Unspecified
Triggers
Outcomes
E003: Shipment Arrives E005: Receive Results
E004: Invoice Arrives E006: New Title Notice
INVOICE
FILES
(LOCAL)
Figure 2-9
2 - 32 Process Modeling
Invoice
Description
Temporal flow
Data flow
Material flow
Showing Decisions
Decision points are represented in the diagram as a diamond symbol.
Decision points show places in the process sequence where the result
of a decision determines which one of several paths will be executed.
No:25%
Test
Successful?
Yes:75%
Oracle Method
Process Modeling 2 - 33
conditions which determine the route. Show a flow from the decision
point for each possible outcome. Each outcome of a decision is mutually
exclusive, in other words, only one path is executed for a given
condition.
Label each flow with the name of the outcome and optionally, the
percentage frequency of the outcome (for example: Yes: 75%/No: 25%,
Excellent: 10%/Good: 40%/Fair: 45%/Poor: 5%, Residential:
99%/Commercial: 1%). For example, a process might include a
decision point that tests whether the cost of a particular operation is
greater than a certain amount. The decision point could then have two
flows attached, one with a rule labeled "Cost >= 5000" and one with a
rule labeled "Cost < 5000". Different process paths are constructed to
illustrate what happens in either case.
Outcome Events
The previous example Return Rental shows three outcome events: Copy
Reserved, Copy Available for Rent, and Member Notified.
Indicating Stores
INVOICE FILES
2 - 34 Process Modeling
You may want to distinguish between certain types of stores. You may
specify a store subtype as either a data store or a material store. If you
use subtypes for flows and stores, these should be consistent. For
example, a material store should have a material flow going into it, not
a data flow.
INVOICE
FILES
VENDOR
WAREHOUSE
Oracle Method
Process Modeling 2 - 35
2 - 36 Process Modeling
Drill Down
Option in right
mouse click menu
Open Up
Option in right
mouse click menu
Oracle Method
Process Modeling 2 - 37
Oracle Designer has three viewing modes available under the View
Menu. They are: Symbol, Enhanced Symbol, and Iconic. In the Symbol
mode, no visual distinction is made between subtypes on the diagram.
All process steps will appear as rectangles. In the Enhanced Symbol
mode, different shapes are used for process step subtypes and store
subtypes only. Event subtypes always appear as an open arrow and
flow subtypes as a line arrow. If you want to make a visual distinction,
use the Preferences options to do so.
2 - 38 Process Modeling
Oracle Method
Process Modeling 2 - 39
Designer brings in the entire hierarchy when you include an agent in the
diagram.
2 - 40 Process Modeling
The Repository Object Navigator is a good place to enter the label into
the Text field. You can see whether the function is elementary or not
and then simply cut and paste the label appending the label as required.
The labels can be toggled on and off by selecting the Annotation option
under the View Menu.
Oracle Method
Process Modeling 2 - 41
2 - 42 Process Modeling
If the process step you wish to include is a child process step to the
current process, you would use the Include Process Step Option. This
option would be used, if say, you cut a process step from the diagram
(not deleted it from the repository!) and you wanted to return it back to
the diagram. If, however, the process step appears anywhere else in
the hierarchy, you must use the Include Global Process Step option. See
the topic, Eliminating Common Functions in the next section. The
following figure illustrates the point.
GLOBAL
GLOBAL
Current
Process Step
INCLUDE
INCLUDE
INCLUDE
GLOBAL
GLOBAL
GLOBAL
GLOBAL
GLOBAL
GLOBAL
GLOBAL
GLOBAL
GLOBAL
Drawing Flows
Flows are created by first selecting the Create Flow button on the Tool
Bar, selecting the originating process step, and then selecting the
destination process step. In the edit dialog box which pops up, you can
optionally name and select the type of flow. More detailed information
on the flow can be added by editing the flow. You should not name
temporal flows. You should name data or material flows to explicitly
show the flows content on the diagram.
Oracle Method
Process Modeling 2 - 43
2 - 44 Process Modeling
Oracle Method
cancel a reservation
Process Modeling 2 - 45
Event
Customer Places Order
Position Opens
Hire Employee
Prepare Proposal
Year Ends
2 - 46 Process Modeling
process inputs
process outputs
The information you gather and the amount of detail you include
should, to some extent, be driven by the business problem and
objectives. If current systems are an issue, then document the current
system. If cost competitiveness is an issue or if activity-based costing is
of interest, you may want to record cost.
Many of the process steps you identify in this way are elementary
business functions. Since these EBFs have been identified
independently of the function hierarchy, you can build the function
model from the bottom up, either by finding or creating the appropriate
functions under which to group them. This can be a much faster way of
building the function hierarchy than following a strictly top-down
decomposition approach.
Some of the process steps discovered through event-response analysis
may not be at the elementary business function level. You should break
these steps down until you can create a process flow diagram for each
process that consists of a sequence of elementary business functions.
Oracle Method
Process Modeling 2 - 47
The event Customer Requests Service is really the most general case of
these different types of events.
Event mechanisms identify the various ways in which an event is
recognized. For example, the arrival of a timesheet may be via
electronic mail, surface mail, or fax. A customer order may be placed
by phone or through the mail. The ultimate deliverable the fulfilled
order, is the same, regardless of which mechanism is used; but details of
the process execution may be very different. If the customer places an
order by phone, a clerk may enter the order in the system while the
caller is on the phone. When an order is received by mail the process
steps may be:
1. Stamp the order with the date received.
2. Check the order for errors.
3. Enter the order into the system if there are
no errors.
4. Return the order to the customer with a
request to fix the problem if there is an
error.
Steps 1, 2 and 4 are not performed when the order is received by phone.
If there is more than one mechanism by which an event can be
recognized, and the event response is significantly different depending
on the mechanism, you should model the differences. The best way to
do this is by considering each event-mechanism combination as a
different event and producing a process flow diagram for each. Using
the above example, we would have two different events:
1. Customer Phones in Order
2. Customer Mails in Order
You would then develop a process flow diagram for each event.
If the responses to an event recognized through more than one
mechanism are similar, you can use one diagram, but show each
mechanism on the diagram as a separate event.
2 - 48 Process Modeling
Oracle Method
Process Modeling 2 - 49
BPM3
BPM1
Specify Primary
Processes
Perform Event
Response Analysis
Specify Remaining
Triggers & Outcomes
on Process Diagrams
BPM6
BPM2
Refine Agents to
Role Level
FUNCTION HIERARCHY
DIAGRAMMER
BPM4
Refine Processes to
Elementary Process
Step Level
QA PROC
Quality Check
Diagrams for
Accuracy and
Standards
MULTIMEDIA
Add Multimedia to
Process Diagrams
BPM5
ID Support and
Maintenance
Processes
REPOSITORY OBJECT
NAVIGATOR
BPM7
ID Current System
Support for
Processes
Unspecified
2 - 50 Process Modeling
Oracle Method
Process Modeling 2 - 51
Single-Step Processes
Although most processes are both multi-step and cross-functional, it is
possible that the planned response to an event is a process that can be
executed in a single process step. These responses are called simply
single-step processes and do not have to have separate process diagrams.
Single-step processes are typically captured only as functions in the
function hierarchy. Examples of single-step processes might be: Change
Customer Address or Add Customer Type.
Many of these single-step processes are referred to in system analysis as
data entry or reporting processes. These processes involve recording a
change of some factual information in the stored memory of the
organization or providing a report on stored information. Without
knowing more about the business, it is not safe for the analyst to assume
that these are simple processes, but experience may suggest that they
are.
2 - 52 Process Modeling
Oracle Method
Process Modeling 2 - 53
2 - 54 Process Modeling
Oracle Method
Process Modeling 2 - 55
F2: Operations
F3: Accounting
F11
F21
F31
F12
F22
F32
F13
F23
P02.2
P02:Take Custom
Order
P31: Assemble
Product
P02.1
P31.1
P02.2
P31.2
P02.3
Process
Hierarchy
P02.3
P31.3
P31.2
P31.3
2 - 56 Process Modeling
Oracle Method
Process Modeling 2 - 57
Return Rentals
Pay
excess
Change
Status
Record
payment
reserved
?
No
Pay Excess
No
Record Payment
Put on
Rental
shelf
reserved?
Put on Rental Shelf
Yes
Notify
member
Put on
Reseved
shelf
Notify Member
Put on Reserved Shelf
"Common"
process steps
Add Copy to Inventory
Receive
from
shipping
Change Status
Change
status to
Available
Assign
inventory
code
Change status to
Available
Put on
Rental
Shelf
2 - 58 Process Modeling
Rent Videos
Manage Inventory
Return Rentals
Record Payment
Add Copy to
Inventory
Add Inventory Code
Change status to
Available
Reparenting Functions
We would like to our Application Hierarchy to represent the full scope
of our business application and will refine it to scope our automation
boundary during systems analysis. Therefore, we only reparent the
significant functions over to the Application Hierarchy. When we
define our business processes, the process steps we define can be
decision points, manual steps, external steps, or even trivial steps. By
leaving these steps behind and not including them in the Application
Hierarchy, we are effectively pruning the tree and defining scope and
boundaries of our application.
If the application is a large one, the Application Hierarchy will be large
as well. To aid in the cataloging of functions, you may want to add
some intermediate functions to the hierarchy to further categorize your
EBFs and allow you to find them easier. These intermediate functions
can be lower level functional areas or sometimes they may correspond
to processes you have already created. In this case, simply reparent the
entire subtree from the Process Hierarchy over to the Application
Hierarchy.
As your Application Hierarchy grows, you will notice that your
function labels do not necessarily convey a functional decomposition.
After all, they were created by decomposing processes not functions. As
the hierarchy takes shape, you may want to go back and relabel the
functions to reflect the functional decomposition. At this point you may
also want to add the labels to the process diagrams using the text
annotation feature as previously discussed and then consolidating your
process diagrams to show the new labels.
Oracle Method
Process Modeling 2 - 59
Common Functions
During analysis, functions are discovered that are used by more than
one process diagram. You can include an existing function on a process
diagram by using the Include Global Process Step option in the Process
Modeler. The shared function need only be defined once and then
included on subsequent diagrams.
Duplicate functions are identified and consolidated in the repository.
Sometimes, as an intermediate step, the duplicates are flagged as
common functions so they may be consolidated or eliminated in the
repository. Common functions are marked by editing the function in
the Function Hierarchy Diagrammer. The common tab of the properties
window allows you to set the master item to the function you want to
duplicate. The duplicate is then represented by two vertical bars in the
Function Hierarchy Diagrammer.
B2
Change Status to
Available
Change Status
A6
2 - 60 Process Modeling
Oracle Method
Process Modeling 2 - 61
2 - 62 Process Modeling
Oracle Method
Process Modeling 2 - 63
RENT4.1[M]
Rent Video to
Customer
No:20%
Video Overdue?
RENT4.2.1[E]
Yes:80%
2 - 64 Process Modeling
RESEARCHANDEDUCATION
DIRECTOR
E0084
Request ResearchStudy
ProgressReport
352*
352*
ReviewProgressReport
352*
Record"NoAction"
UpdateStatus
D003
D002
Yes:50%
ReworkNeeded?
No:20%
No:50%
StatusChanged?
352*
Review
Recommendations
352*
NotifyPrimary
Investigarorof
Recommendations
Yes:80%
PRIMARYINVESTIGATOR
E0085
STEERINGCOMMITTEE
352*
PrepareProgressRepor
t
352*
ReworkReport
352*
Implement
Recommendations
352*
ReviewProgressReport
No:90%
D001
352*
Draft Recommendations
Recommend? Yes:10%
Unspecified
Oracle Method
Process Modeling 2 - 65
3 52
52*
*
3 52
52*
*
3 52
52*
*
Record "No
Action"
D003
E-mail Request
3 52
52*
*
No:50%
Update Status
Rework Needed?
No:20%
Status Changed?
Yes:50%
D002
Yes:80%
3 52
52*
*
Review
Recommendations
3 52
52*
*
Notify Primary
Investigaror of
Recommendations
Server Generated
3 52
52*
*
PRIMARY INVESTIGATOR
E0085
E-mai
l
Implement
Recommendations
3 52
52*
*
3 52
52*
*
Rework Report
D001
Online Report
3 52
52*
*
STEERING COMMITTEE
3 52
52*
*
No:90%
Draft Recommendations
Recommend?
Yes:10%
Unspecified
2 - 66 Process Modeling
Oracle Method
Process Modeling 2 - 67
2 - 68 Process Modeling
Oracle Method
Are the process steps consistent with the EBF levels in the
application hierarchy?
Process Modeling 2 - 69
2 - 70 Process Modeling
CHAPTER
Business Rule
Modeling
T
Oracle Method
Oracle Method
constraint rules
static
dynamic
authorization rules
The following table addresses these five classes, their subclasses, types
of rules and how to record them in Designer.
Class
Subclass
Rule
Recording
Access
Static Data
Constraint Rules
Attribute Rules
Simple Attribute
Different Attribute
Properties
ERD
Domain
Domain object
ERD
Other Attribute
Function
Description
FHD
Tuple
Function
Description
FHD
Unique Identifier
Unique Identifier
ERD
Other Entity
Function
Description
FHD
Relationship
Entity Relationship
ERD
Restricted
Relations
Function
Description
FHD
Other InterEntity
Function
Description
FHD
Tuple Rules
Entity Rules
Inter-Entity
Rules
Dynamic Data
Create Rules
Create Rule
Function
Description
FHD
Constraint Rules
Update
Attribute
Transition
Function
Description
FHD
Transferable
Relationship
Transferable
Property
ERD
Other Update
Function
Description
FHD
Oracle Method
Class
Subclass
Rule
Recording
Access
Modify
Modify Rules
Function
Description
FHD
Delete
Relationship
Relationship Notes
ERD
Other Delete
Function
Description
FHD
Default Value
Rules
Default Property/
Function
Description
ERD/
FHD
Other Change
Event Rule
Function
Description
FHD
Change Event
Rules without
DML
Change Event
without DML
Function
Description
FHD
Authorization
Rules
Function Access
MD
Vertical Data
MD
Horizontal Data
Model as Entity
ERD
Change Event
Rules with DML
The following sections cover in detail every class of business rule. They
provide definitions, examples and guidelines for recording each class in
Designer. The examples that are given are derived from the following
datamodel:
BUSINESS RELATION
DEPARTMENT
# ID
* NAME
SUPPLIER
CUSTOMER
is managed by
employs
works for
pays for
manages
EMPLOYEE
executed for
PROJECT
*
*
*
*
o
ID
DESCRIPTION
START DATE
END DATE
BUDGET
has
#
*
o
o
o
o
o
o
o
o
o
o
o
o
EMPLOYEE NUMBER
NAME
STREET
CITY
ZIP CODE
BANK ACCOUNT NUMBE
CIVIL STATE
HIRE DATE
EXIT DATE
JOB
SALARY
COMMISSION
TOTAL INCOME
STANDARD RATE
belongs to
of
is subject of
PROJECT ASSIGNMENT
# START DATE
* END DATE
* RATE
Figure 3-1
Oracle Method
attribute rules
tuple rules
entity rules
inter-entity rules
Attribute Rules
An attribute rule defines which values are allowed for an attribute. The
following subclassification of attribute rules can be made:
domain rules
Examples
format
maximum length
decimal places
required
uppercase
Oracle Method
Recording
Simple attribute rules are recorded using the format, maximum length,
decimal places, and optional? properties of the attribute. Use the
derivation property and record the word UPPERCASE to indicate that an
attribute must be in uppercase.
Figure 3-2
Attribute
Format
Column Data
Type
Col Display
Data Type
Col Data
Type Server
Generator
CHAR
VARCHAR2
Text
VARCHAR2
DATE
DATE
Text
DATE
IMAGE
IMAGE
N/A
LONG RAW
INTEGER
INTEGER
Text
NUMBER
MONEY
NUMBER
Text
NUMBER
NUMBER
NUMBER
Text
NUMBER
PHOTOGRAPH
LONG RAW
N/A
LONG RAW
Attribute
Format
Column Data
Type
Col Display
Data Type
Col Data
Type Server
Generator
SOUND
SOUND
N/A
LONG RAW
TEXT
LONG
N/A
LONG
TIME
DATE
Text
DATE
TIMESTAMP
DATE
Text
DATE
VARCHAR2
VARCHAR2
Text
VARCHAR2
VIDEO
LONG RAW
N/A
LONG RAW
Oracle Method
Domain Rules
A domain rule defines attribute allowable values which always apply,
regardless of the value of any other attribute, constant, or previous
value of the attribute. A domain either enumerates all allowable values
(enumerated domain), or restricts the allowable values by specifying
ranges of lowest and highest value allowed (range domain).
Examples
(range)
Recording
Structured support is offered for domain rules. You can either record
these rules directly against the attribute or by using the domain object in
Oracle Designer. By associating an Oracle Designer domain with an
attribute, the attribute inherits the properties of the domain.
Attention: If you change properties of a domain after you
have associated this domain with one or more attributes, you
must run the Update Attributes in a Domain utility to
cascade the changes to these attributes of the domain.
Design Considerations
The Oracle Forms generator offers flexibility in the GUI presentation
style (LOV, T-list, pop list, combo box) of columns with enumerated
domains associated. Properties allow you to set which domain
properties (value, abbreviation, or meaning) are actually displayed in
the GUI presentation item. The display sequence of each value
determines the ordering within the GUI item.
This implies that your choice of how the value is actually recorded in
the database (short code/abbreviation or full description) is no longer
dependent on the way you will present the allowable values on the
screen. This choice is based on disk space considerations only: a short
code or abbreviation takes less space than a full description, especially if
the column is to be indexed.
Recording
Use the Business (Rule) Function to record this rule. Refer to a later
section of this chapter for more information.
Recording
Use the Business (Rule) Function object to record an entity rule. Refer
to a later section of this chapter for more information.
Most tuple rules are implemented as restrictions that will lead to an
error message when violated. Compliance with tuple rules can
sometimes be enforced (partially) automatically.
Lets take for example the following tuple rule. In this situation suppose
that all of the three attributes are changeable by the user.
Example
Oracle Method
You can decompose this rule into the following two rules:
When Salary and or Commission are inserted, changed or nullified or
when the Total income is nullified the Total Income will be
automatically derived.
When Total Income is inserted or changed and the rule is violated
a message will be raised.
If you know this is the case record the rule as a tuple or entity
rule. Recording such a rule as an inter-entity rule has the
consequence that the perceived complexity of the system is
higher than it actually is.
Do not record rules as a tuple rule if you need to select a
value of the other entity. Record the following rule as interentity rule.
Example:
Entity Rules
Entity rules define allowable values for attributes and combination of
attributes which depend on the values of attributes of other occurrences
of the same entity.
Recording
The Oracle Designer repository provides a separate element for
structured recording of unique identifier entries. An entity can have
multiple unique identifiers, each consisting of one or more unique
identifier entries: an attribute or relationship.
Design Considerations
The Database Design Transformer translates the first unique identifier
into the primary key of the corresponding table. The other unique
identifiers are transformed into unique keys. When assigning unique
identifiers, keep in mind the following:
Oracle Method
Recording
Use the Business (Rule) Function object to record an entity rule. Refer
to a later section of this chapter for more information.
Attention: When using self referencing entities be aware that
if you use the relationship in your rule this will result in an
inter-entity rule not an entity rule. See also next attention box.
SALES.
Design Considerations
No specific considerations apply to this type of rule.
Inter-Entity Rules
Inter-entity rules define attribute allowable values which depend on the
values of attributes in one or more occurrences of another entity. They
also define the relationships between entities, and their conditions.
Relationship Rules
An entity relationship rule defines how an entity relates to another
entity. Three main types of relationships are recognized:
Each relationship end can be set to optional (by drawing a dotted line)
or mandatory (by drawing a continuous line).
Oracle Method
Example
Each employee can work for one and only one department. (optional)
Each employee must work for one and only one department.
(mandatory)
Figure 3-3
Oracle Method
Recording
Use the Business (Rule) Function to record this type of rule. Refer to a
later section of this chapter for more information.
Design Considerations
No specific considerations apply to this type of rule.
Recording
Use the Business (Rule) Function to record this type of rule. Refer to a
later section of this chapter for more information.
Design Considerations
No specific considerations apply to this type of rule.
Additional Remarks
Optional attributes
If a business rule (not only static but also dynamic rules) applies to an
optional attribute you have to be aware what it means if this attribute
has no value. Take the case where the salary is mandatory and the
commission is optional and you have the following business rule:
Salary plus Commission must be smaller than 10,000
Then if the commission has no value what does this mean? The best
way to handle this is to be very specific and have the following rules
instead:
Salary must be smaller than 10,000 and if commission has a value
Salary plus Commission must be smaller 10,000.
You have to be aware of this for every optional attribute and optional
relationship.
Oracle Method
Recording
Use the Business (Rule) Function object to record this type of rule.
Design Considerations
No specific considerations apply to this type of rule.
Update Rules
An update rule defines conditions for the update of an attribute, entity,
or relationship.
Recording
Use the Business (Rule) Function object to record this type of rule. Refer
to a later section of this chapter for more information.
Design Considerations
If the transition rules are likely to change over time, or the number of
allowed state transitions is fairly large, you should consider creating a
separate system table with each row representing an allowed state
transition. This prevents the allowed state transitions from being hard
coded in the application code and allows you to change the transition
rule without modifying the application code. If you, as system analyst,
already know such a table is going to be used, you should add a
corresponding system entity to the system data model.
Oracle Method
You may not transfer on order item from one order to another.
Recording
Use the transferable property of a relationship to record the
transferability rule. The default in Oracle Designer is Yes (checked).
When you indicate that the relationship is not transferable this will be
indicated in the diagram by a diamond.
Design Considerations
The Database Design Transformer ensures that the foreign key
constraint inherits the transferable property of the corresponding
relationship. The Oracle Forms Generator subsequently uses this
information to generate code for setting the foreign key column to nonupdateable, if the relationship is not transferable.
You may not update the standard rate of an employee if the exit
date is in the past.
Recording
Use the Business (Rule) Function object to record this type of rule. Refer
to a later section of this chapter for more information.
Design Considerations
No specific considerations apply to this type of rule.
Recording
Use the Business (Rule) Function object to record this type of rule. Refer
to a later section of this chapter for more information.
Design Considerations
No specific considerations apply to this type of rule.
Delete Rules
A delete rule defines conditions for the deletion of an entity or
relationship.
In most cases you will use the restricted relationship delete rule because
cascade is rather rigorous. Nullifying is almost never used because it
cannot be implemented for mandatory relationships.
Recording
For the relationship delete rule the default is restricted and nothing
needs to be recorded. If a cascade delete is desired write the word
CASCADE in the relationship notes to indicate the cascade
implementation of this rule.
Design Considerations
For the relationship delete rule the database design transformer does
not transform the CASCADE word in the notes. This means that you
have to indicate this yourself at design level.
Oracle Method
You may not delete a file when the end date of that file is not in
the past.
You may not delete customer when the related projects are not
finished (end date in past). (in addition to a cascade delete rule.
Recording
Use the function object to record this type of rule.
Design Considerations
No specific considerations apply to this type of rule.
Oracle Method
Recording
Record the simple default rule in the default property of the attribute.
Record the complex default rule as a function.
Design Considerations
For simple default rules, the Database Design Transformer uses the
default property of the attribute to populate the default property of the
column. The server generator uses that property to specify the
declarative default in the table and also implements the rule in the Table
API, when server derived is set to yes.
For complex defaults, you will have to record a derivation expression or
function in the derivation expression and derivation expression type
properties of the column. The Database Design Transformer does not
automatically populate these properties.
Recording
Use the Business (Rule) Function to record this type of rule. Refer to a
later section of this chapter for more information.
For change events that involve journaling note the following. In some
types of application systems, it can be very important to specify which
entities have to be journaled. In those cases, explicitly model journal
entities as part of the system data model. Another alternative is to
create a specific function that lists all entities that need to include
change history columns (date created, date modified, user created, user
modified) or need to be full journaled (a table that holds all previous
actions of an occurrence).
Design Considerations
No specific considerations apply to this type of rule except for
journaling.
Reference: For more information about data auditing, refer
to the Oracle Method CDM Standards and Guidelines
Library, Volume 2 - Design and Generation of Multi-Tier Web
Applications.
Oracle Method
Recording
Use the function object to record this type of rule.
Design Considerations
In Design and Build you implement these rules at the end of a
transaction.
regional manager
administrative assistant
project accounting
project leader
Oracle Method
Recording
You can record business units in the Process Modeler or the Repository
Object Navigator (RON) of Oracle Designer. The relationship between
the business unit and the functions it performs can be recorded in the
Matrix Diagrammer or the RON.
Attention: The meaning of this matrix is interpreted
differently in system requirements modeling than it is in
business requirements modeling. During business
requirements modeling, this matrix refers to the party who is
responsible for a process step/function, which does not
necessarily mean that there are no other agents who are also
authorized to perform the process step/function. During
system requirements modeling, you use it as a means of
recording this function access rule.
Design Considerations
The Application Design Transformer uses business units to take into
account access rights during the process of creating candidate modules.
Headstart offers utilities that create roles from the lowest
level business unit and module access for these roles based on
the business function/business unit and business
function/module associations
Recording
Use the Matrix Diagrammer to populate the Business Unit - Entity
matrix. In general, you only need to record this rule if the application is
to be implemented in a distributed environment, to get insight into the
distribution requirements.
Oracle Designer does not check for implied usages. If you entered a
usage by business unit B of function F and also a usage by function F of
entity E, then, by implication, business unit B must be able to use entity
E. This usage must be entered manually.
Attention: The meaning of this matrix is interpreted
differently in system requirements modeling than it is in
business requirements modeling. During business
requirements modeling, this matrix represents business unit
responsibility for data; whereas during system requirements
modeling, this matrix represents business unit access to data.
During business requirements modeling, you will populate
this matrix to get another view on the business, allowing you
to cross-check whether different views are consistent. During
system requirements modeling, you use it as a means of
recording business unit data access.
Design Considerations
No specific considerations apply to this rule. Neither the Database
Design Transformer nor the Application Design Transformer takes this
information into account.
Headstart offers utilities that create roles from the lowest
level business units and object privileges for roles based on
the business function entity usage and the business
function/business unit association.
Oracle Method
Recording
This type of authorization rule can only be implemented if the entity
relationship model allows you to describe the rule. In the last example
above, you have to include a relationship between the project and the
department and need a username in the employee entity to be able to
match the current user with the username of the manager of that
specific department.
Horizontal data access rules can be implemented as Dynamic Data
Constraint rules.
Design Considerations
No specific considerations apply to this rule.
Oracle Method
You can use the event object to explicitly describe the event(s)
that trigger(s) the rule. See the next section for more
information on event modeling.
Organizing Rules
It is important to realize that the Oracle Designer repository now
contains two kinds of business functions:
presentation/batch functions
2.
3.
4.
Rule Decomposition
In most cases decomposition of inter-entity rules is necessary to
describe the behavior of the system in detail. Lets take, for example,
the following inter-entity rule:
The Project Assignment end date must be on or before the end
date of the Project.
Oracle Method
This rule is phrased as a Static Data Constraint rule. However, you can
also choose to implement this rule as a Change Event rule, thereby
automating enforcement of the rule. In order to implement it as a
Change Event rule, the rule must be decomposed into the following
three rules. (Notice that two of these rules are Change Event rules
while the third is still a Static Data Constraint rule.)
Business Rules
BR_HR
BR_EMP
BR_EMP001_ATT
BR_EMP002_ATT
BR_EMP003_ATT
BR_EMP004_TRS
BR
Business Rules
BR_EMP005_TPL
BR_EMP006_TPL
BR_EMP007_TPL
BR_EMP008_TPL
BR_EMP009_UPD
BR_EMP010_IER
BR_EMP011_IER
BR_EMP012_RER
BR_EMP013_CEV
BR_DEP_HR
BR_DEP001_ENT
BR_DEP002_ATT
BR_PA
BR_PAT
BR_PAT001_ENT
BR_PAT002_CEW
BR_PAT002_CEV
master of
BR_PRJ002A_CEV
BR_PAT003_IER
master of
BR_PRJ002C_IER
BR_PAT004_MOD
BR_PRJ
BR_PRJ001_IER
BR_PRJ002_IER
BR_PRJ002A_CEV
Oracle Method
BR
Business Rules
BR_PRJ002B_CEV
BR_PRJ002C_IER
BR_PRJ003_CRE
BR_CA
BR_BRN_CA
BR_BRN001_DEL
BR_BRN002_IER
BR_BRN003_DFT
Rule-Triggering Events
An event is simply an occurrence that causes a response to execute. In
Chapter 2, Process Modeling Guidelines, we split events into the
following three categories:
Oracle Method
Below you can find an example of how to record an event that triggers a
business rule.
Figure 3-4
modify rules
For the other categories of business rules, the triggering events are more
or less trivial and can be omitted.
What to Record
Events and Business Rule Function Entity/Attribute usage
Separate from the event that triggers a rule there is also the actual entity
and attribute usage of the rule itself. Recording these have the
following advantages
When you have decided not to record entity usages or attribute usage
for real business functions, there is no point in recording them for
business rules.
Oracle Method
B u sine ss F un ctio n
E ve nt
B u sine ss F un ctio n
E ve nt
E xplicitly b y u sin g th e
fun ctio n trig g ers fu n ctio n
a sso ciation th at a u to m a tic ally cre ate s a du m m y
e ve n t: e n d of b u sine ss
fun ctio n
Figure 3-5
2.
E ven t
E ven t
E ven t
Figure 3-6
Oracle Method
3.
B usiness Function
E vent
E vent
B usiness Function
E vent
Im plicitly by
com paring the
business function
entity/attribute usage
with events 'usages'
Figure 3-7
We recommend that you take the third approach because event analysis
is important and presenting the business function in conjunction with
the business rule function is possible without doing a lot of error prone
work. This approach also supports independent business function and
business rule analysis.
Oracle Method
prototype. This means that next to new entities or attributes new rules
need to be added.
When you make your function model, you will probably identify change
event rules and rules that seem to belong to only the function at hand.
Even if this is the case, you should classify it and record this rule
separately.
3. Analyze Triggering Events of Business Rules
For the more complex rules (entity, inter-entity and change events
rules), you should carefully investigate the triggering events of the
business rule. Most of the time, it is quite easy. For each entity
mentioned in the rule, ask the user if the rule needs to be enforced on
creation, update and/or delete of a tuple in the entity. For each
attribute mentioned in the rule, ask the user if the rule needs to be
enforced on insert, update and/or nullification of the attribute. Once
you have identified the events, you can determine if the rule is a static
rule or dynamic rule. A static rule is always true and can be verified at
any time. A dynamic rule is valid only at the moment the DML is
performed and cannot be verified after the operation has taken place. A
good rule of thumb is: if the rule mentions a type of DML operation
being performed, the user, the system date, or the old value for an
attribute, the rule is dynamic.
4. Set up a Hierarchy for Business Rules
Since the Business (Rule) Function object in Oracle Designer is used to
record business rules, you can set up a hierarchy that groups business
rules belonging to the same business area, same entity and or same class
of rule. You can also do this after you have recorded the rules, but
starting with a high-level hierarchy is quite handy to group the rules
right away.
5. Record Business Rules and Triggering Events
After you have identified and classified the rules, determined the
triggering events, and set up the hierarchy, you can record the rules in
Designer. This can be done by taking your notes of the workshop or
interviews and putting them in Designer. If you follow a Fast Track
approach, a scribe may record the rules and events directly into
Designer during the workshop. The classification scheme and the
description of the rules in the previous sections clearly state how to
record each rule.
Oracle Method
Oracle Method
CHAPTER
Entity Relationship
Modeling
T
Oracle Method
Entities
Attributes
Relationships
ER Diagrams
Oracle Method
Do not try to make these structures part of the Business Data Model, as
they are part of the particular projected implementation of the system.
Not all entities are clearly technical or not. An entity like ALLOWED
STATE TRANSITION is in the border area but still acceptable in the
Business Data Model.
Attention: A System Data Model is often no longer
technically portable. If there is a decision to alter the tool set
for the project, then the technical entities have to be reinvestigated before system design is begun.
It is a good idea to involve a database designer in the review process,
when nearing the end of system data modeling, to confirm that the ERM
is a good basis for system design.
Client Involvement
Due to the simplicity of the rules for the production of ERMs, they can
be developed interactively with the client. This method reduces
misunderstandings, gives the client a feeling of ownership of the model,
and puts the client in a frame of mind which is more open to the
changes that occur during any systems development.
Given the different audiences and purposes of ERMs, one must ensure
that the models are understandable to the audience. The naming of
entities and relationships is covered later in this chapter, but you must
keep in mind who will read the model. For example, entities related to
the technical implementation (technical entities) would not be
understandable to the client, and a model which showed only the subset
of the actual model used to discuss specific details with the client would
be of no use for moving to system design. There may be a requirement
for more than one model to be used: one could be a high level model
for the client managers, one could be more detailed for the clients staff,
and one could be sufficiently detailed to act as the basis for system
design. Care must be taken when using multiple models to make sure
that inconsistencies do not evolve between them.
Oracle Method
Entities
The decision of whether or not something should be recorded as an
entity is subjective, and cannot be made based on any form of
algorithm. The analyst has basic criteria an entity must be uniquely
identifiable by either having information associated with it, or by having
a relationship to another entity but not everything that fulfills this
criteria should be recorded. It is up to the analyst to investigate which
information is both significant to the business and within the scope of
the requirements modeling.
Examples
Objects:
PERSON
PRODUCT
BOOK
Happenings:
BIRTH
RESERVATION
MEETING
Associations:
MARRIAGE (husband - wife)
ORDER LINE (product - order)
Recognizing Entities
Determine what your entities are by doing the following:
Talk with your client and think about what the business does.
For example, your client makes the following statement about the
business, Our main business is what we call recondition clothing.
Our customers are companies which import various textiles. They often
import shiploads full of shirts or dresses from far away. They ship it in
large containers that arrive in the harbor over here. When the clothing
gets unpacked, it often looks like it has been worn before. Nobody
would buy that. So our customers contract us to iron it, sometimes
wash it, put it on a special clothes hanger and often prepare it for
further transport to warehouses or shops.
Take a minute or two to write down some of the entities you will expect
to be of importance; all of the nouns are a good starting point. You have
probably never heard of the business of reconditioning clothing but you
will recognize entities like CUSTOMER, ARTICLE, CLOTHING TYPE,
CONTRACT, TREATMENT, TREATMENT TYPE, SHIPMENT, LOT,
WAREHOUSE, LOCATION, and maybe some others. Maybe the
model that is used for the reconditioning company is completely
different from what is thought up here. That is not important. What is
important is that you have a feel for the entities involved.
Naming Entities
Do not underestimate the importance of names. An entitys name
should uniquely identify that entity in a manner that is understood by
the target audience for that model. The audience should generally be
able to describe to you what an entity is from just the name.
Candidate Names
Search for a word that, according to a good dictionary, has a meaning
close to what the entity stands for this usually covers some 80 % of
the naming problem.
Ordinary words are known by many people and have a rather sharp
definition; if this definition overlaps with the intended meaning of the
entity, use that word. Realize, however, that if a general every day
word is used for something with a slightly different meaning, it will be
unnoticed and therefore confusing for someone who knows the entity
name but not the definition.
There may be information within a business that has become so
synonymous with the mechanism used to capture or retrieve it, that
using the name of that information would only lead to confusion. It
may be useful here to use a new word to describe the information, in
order to avoid confusion with the mechanism. This technique must be
used sparingly, as this entity will no longer be recognizable by the client
and will have to be explained.
Oracle Method
Use entity names that consist of several words if these describe the
entity properly; there are many more entities than there are nice, short,
and perfectly fitting names.
Use the traditional name, as used by the customers company.
Traditional names often seem to be the best names to use because they
are well known and already in use; these are usually the customers
favorites. However, traditional names often have a long record of
covering shifting meanings. Always check that an entity named with
such a traditional name can be well defined, by you, to everyones
satisfaction. If not, let the customer suggest a name that can.
Use a name that is used elsewhere in the client business area. The use of
business jargon is very prevalent in certain businesses. Learn the jargon
and use it for modeling if you are sure the whole of the audience is
aware of the jargon. Make sure that a description of the jargon is held
within Oracle Designer to enable new personnel to understand the
jargon.
Use a logical construction based on combinations of new words or
jargon. Helpful words for combinations may include: ITEM,
ELEMENT, COMBINATION, EVENT, LINE, PERIOD, TYPE, etc.
Often there is someone around who is very creative in finding a nice
word for an entity. Never hesitate to ask those people for advice on
names. Never let your creative requirements modeling process during
an intense analysis session be halted because you cannot find a proper
entity name. Use whatever name you think of first, but at the end of the
session ensure that you have clearly defined the entity such that its
meaning is not forgotten.
Reserved Words
As the plural of the entity name will become the default table name,
avoid the use of names that in plural lead to reserved words or words
very similar to reserved words. In case of doubt: do not. Realize that
words that are now still unreserved may become so later on. So, avoid,
if possible, database and query programming language terms like
COLUMN, CONSTRAINT, USER, LOOP, END, VALUE, TYPE, and so
on.
Example
2.
Example
Example
If the entity name consists of a single syllable word, use the first
two characters plus the last;
CLASS -->> CLS
COACH -->> COH
4.
Oracle Method
3.
Example
If the entity name consists of two or more words, use the first
character of the first and second words plus the last character of
the last word.
Conceptual Views
Sometimes concepts seem to be entities but actually are composed of
other entities. Usually, these concepts can be seen as what could be
called a conceptual view, based on entities. Examples might include
PRICE LIST, STUDENT PROFILE, etc. Unfortunately, on the
conceptual level in ERM, there is nothing comparable to a view as an
entity is to a table. In dataflow diagramming, conceptual views can be
represented as data stores. Data stores do not play a role in ERM.
Attributes
Attributes form the flesh and blood of entities; they are the information
held about an entity. Entities without attributes are very rare.
Attributes must apply to few instances of an entity, for example the
chassis number of a car is unique to that car and the date of
manufacture may be common to only a few cars in the business, but the
manufacturer may be the same for many types of cars and should be
stored as a separate entity.
Reference: For more information, refer to CASE*Method
Entity Relationship Modeling.
Examples
Attributes Straight Attributes:
Name
Short Name
Id
Description
Birth date
License Number
Score
Attributes Process-oriented:
Creation Date
Last Update By
Approved Indicator
Available Since
Unique Identifier
Every entity must have an attribute, a relationship, or a combination of
attributes and relationships that uniquely identify it. Refer to Chapter 3,
Business Rule Modeling, for more information on modeling unique
identifiers.
Oracle Method
Figure 4-1
Relationships
Relationships should always be named since there can be various
relationships between two entities, and their purposes must be known.
There are many different relationships possible between two entities; for
example, between the entities PERSON and COMPANY the relationship
is currently working for may be of interest, but so is the relationship is
owner of. You must give each end of a relationship a name, an
optionality, and a degree (1 or many).
m:1 > - - - - - - - -
(optional m to optional 1)
m:1 >
(mandatory m to mandatory 1)
1:1 - - - - -
(mandatory 1 to optional 1)
It is very unlikely that you will find correct examples of the following:
Example
Oracle Method
Read as follows:
EACH car MUST BE manufactured by ONE OR MORE manufacturers.
EACH person MAY BE the owner of ONE OR MORE cars.
EACH tree MUST BE grown from ONE AND ONLY ONE seed.
In a hierarchy, the instance of the entity at the single end of the
relationship is often called the parent and the one at the many end, the
child. For example, a car manufacturer makes many cars, so the
manufacturer is the parent and the cars the children.
Unfortunately, this type of phrase cannot easily be automatically
translated into another language, as the fixed text in many languages
would depend on the gender of the entity name. Compare
Toute/Tout in French, Jede/Jeder in German, and so on.
Hierarchical Relationships
A 1:m relationship between an entity and an occurrence of the same
entity leads to what is often wrongly identified as a hierarchical
relationship. The classic example of this is the manager-employee
relationship. A manager is one employee who manages many
employees and is in turn one of many employees managed by a
manager. This may sound hierarchical, but a staff member may be
responsible to many managers, in which case the relationship is no
longer hierarchical. It has become a network.
Figure 4-2
Modeling a Hierarchy
Oracle Method
Figure 4-3
Figure 4-4
Oracle Method
Naming of Subtypes
It is a good test for the usefulness of subtyping in a particular case if
good names can be found. If not, reconsider the subtyping. Suppose
you modeled entity A with a subtype B (see Figure 4-5). How do you
name the complementary subtype? In the best case: a word X exists
for the complement of B within A. Then use X. NON-B is a name that
is often chosen. However, the name does not show that it is the
complement of B within A. More importantly, if during requirements
modeling another subtype, say C, of A comes along, the name NON-B
must change. Another often used name is OTHER A. If a second
subtype C comes along, now the name OTHER A can remain the same,
but it is important to realize that implicitly the definition has changed.
Figure 4-5
Naming Subtypes
Supertypes
If two or more entities have relationships or attributes in common, this
may be modeled by creating a supertype for the entities. Be aware that
if you create a supertype B for entities A1 and A2, you implicitly state
that every B is either an A1 or an A2. If not, add a subtype entity NONA1 NON-A2 WITHIN B, or OTHER B.
Implied Subtypes
A frequent mistake is to model implied subtypes. Suppose a company
delivers both services and products; all order lines can be divided into
service order lines and product order lines. This is an implied subtype of
order line that usually can remain implicit. In other words, always
carefully check the constructions, as in Figure 4-6.
Figure 4-6
Implied Subtypes
Almost Subtypes
Often an entity can be divided into important non-disjunct subgroups.
For example, this is quite likely the case for an entity representing
customers, supplying companies, employees, and so on. Suppose this
entity is called CONTACT. A company that supplies goods can be a
Oracle Method
Figure 4-7
The model of Figure 4-8 does the opposite: it ignores the differences
and boils all entities down to one entity CONTACT. The various almost
subtypes can now be found as part of the names of the relationships.
Separate indicator attributes have been added for easy recognition.
Note that a mandatory relationship or attribute for an almost subtype
now becomes optional. This means, in short, that some constraints have
to be defined separately that could otherwise have been a part of the
conceptual model.
Figure 4-8
The model of Figure 4-9 is a mix of two worlds. It shows the various
almost subtypes as separate entities, and shows the communality by
keeping common attributes and relationships in entity CONTACT. The
1:1 relationships keep them tied together. One problem here remains.
Where do we put an attribute or relationship end that applies to some
but not all of the almost subtypes?
Figure 4-9
The model in Figure 4-10 is a more generic structure than what is shown
in Figure 4-9. It models the concepts of ROLE and ROLE TYPE
explicitly. All attributes and relationships of the subgroups must be
united in ROLE. A mandatory attribute for, say, SUPPLIER, must now
again be modeled as an optional attribute for ROLE. The attributes and
relationships that apply to all groups must be modeled in CONTACT;
all others will be placed in ROLE. Again, extra constraints need to be
Oracle Method
defined to cater for attributes and relationships that are mandatory for
only some subgroups.
Generation Be aware that more generic structures lead to additional functional
complexity. If your data model contains mainly straightforward flesh
and blood entities, then the code generated by Forms Generator is
probably acceptable. However, if your model is of a higher abstraction
level, then the generated code often requires more post-generation
manual adjustments.
ER Diagrams
Drawing ER diagrams of a data model helps the process of thinking
about the data structure. Diagrams also help you to communicate your
thinking. This section addresses the following topics:
Merging Structures
Cleaning Up
Do not confuse your sketches with a final data model. When using
Oracle Designer Entity Relationship Diagrammer as a sketching tool,
use a separate application system for sketching purposes. This can ease
the tidying effort required, as the sketching application can be dropped
without affecting the final data model. The final data model can be
drawn afresh. If the sketch develops into the final data model, then
there will be work involved in tidying the sketch dictionary entries to
ensure that they are correct.
Oracle Method
stuck. Then switch roles: let a colleague convince you. Your own
arguments spoken by someone else often sound less convincing.
Merging Structures
If two parts of the models are very similar, you should consider
combining them and making the model more generic. You should
always ensure that business information is not lost when structures are
merged.
Cleaning Up
When your data model is ready, spend some time putting the finishing
touches to the diagram. The model layout must be well presented as it
will be the portrait of the system.
Remove as many crossing relationship lines as possible, by slightly
moving entities. Make sure the lines are parallel or perpendicular.
Extend or decrease the size of entity soft boxes; remove unimportant
reoccurring relationship lines and entities entirely, and replace them
with a small symbol.
Make separate diagrams for each important business area and
application system. Start every time from a diagram copy of the
model. Undress it, peel away all insignificant components, but keep the
old floor plan in tact, for reasons of recognition.
Oracle Method
CHAPTER
Function Modeling
T
Oracle Method
Common Functions
Function Modeling 5 - 1
5 - 2 Function Modeling
Oracle Method
support the way the users will work with the system or to help
them achieve their business functions, such as functions to
support the flow of work between users, like work flow
queuing and management functions
Function Modeling 5 - 3
5 - 4 Function Modeling
Oracle Method
Function Modeling 5 - 5
Function Hierarchy
The set of functions, the function model, is best organized in a
hierarchical structure. The hierarchy shows how each function breaks
down into subfunctions from the business mission statement at the top
to the simplest functions at the bottom. By using this structure, you will
discover missing functions and see possibilities for decomposing
functions or for consolidating them. Describing functionality helps you
to explore various useful levels of abstraction. The hierarchical
structure is easy to grasp, gives a good overview, and is relatively easily
verified.
Keep in mind that any new functions that are discovered while
analyzing or decomposing the function hierarchy most likely also
represent deficiencies in the process model. You should always plan to
keep the process model and function model coordinated.
-prepare lunch is
--get bread from freezer
--toast bread
--pour milk in a glass
end
5 - 6 Function Modeling
Example
-prepare lunch is
--get food
---get skimmed milk from fridge
---get the delicious whole-wheat bread from cupboard or freezer
---get marmalade from cupboard and cheese from fridge
--prepare food
---toast several slices of bread
---make a cheese and marmalade sandwich
---pour a half glass of milk
--eat food
---eat two sandwiches
---drink milk
end
For modeling business functions, this version adds too much detail. It
tells far too much about how things are done. When modeling a system
to automate these functions it is okay to describe the how, because it
helps you and the user to visualize the system.
Business functions should be concerned with what, using the how only
as an example. It is better to try to formulate the functions accurately as
early in the process as possible to avoid re-work later.
Now have a look at Lunch version 3:
Example
-prepare lunch is
--get food
---get milk
---get bread
---get cheese and marmalade
--prepare food
---toast bread
---make sandwich
---pour milk
--eat food
---eat sandwiches
---drink milk
end
Oracle Method
Function Modeling 5 - 7
-prepare lunch is
--collect ingredients
--prepare food
---bake bread
---fry eggs
--prepare drinks
---boil hot drinks
----boil coffee
----boil tea
----boil chocolate
---squeeze oranges
--lay the table
--pick flowers
--arrange flowers
--select music
--collect lunch participants
--check various supplies
--maintain shop list
end
5 - 8 Function Modeling
Software Packages
If standard software packages (logistics, accounting, and so on) play a
role, always define at least the highest level functions that are covered
by these packages and any areas of concern. Compare the package and
the requirements, and decide if the overhead of using the package is
outweighed by the functionality it offers.
Where to Start
Start with a top function that reflects the goal of the company or
division. Divide that function into between three and eight child
functions. Try to keep sibling functions at more or less the same weight.
If you exceed eight child functions for one parent, add a layer of
functions in-between. As a confirmation, also start with some
supposedly elementary functions, ensuring their grouping is correct.
Gaining an understanding of the current systems can ease
communication between the analyst and the client, but it may lead to
confusion between the how is it done at the moment and the what is
being done. Consider the following:
what the users see and experience as the strong and pleasant
aspects of it, what they like
what the users see as the weak parts, what they do not like
Where to Stop
Stop when all functions that will be supported by the system are
decomposed to their elementary level. Elementary means that if the
Oracle Method
Function Modeling 5 - 9
5 - 10 Function Modeling
Oracle Method
Function Modeling 5 - 11
Function Frequency
Frequency of a function is not a measure of its importance, nor does it
necessarily affect the required response time. A lookup type of function
that is used 600 times a day, while a customer is waiting on the
telephone, clearly requires a quick response. A crisis procedure for an
event which occurs less than once a decade also needs a very quick
response.
It is not the frequency, but the nature of the function, that tells
something about how crucial a function is for the business.
Then what is the use of entering frequency information? First, it is very
useful business information, as it identifies the areas where work could
be reduced by streamlining. Second, it helps identify the function. If
your concept of a function actually differs from that of the customer, but
you do not know the concepts are different, it is unlikely that you will
agree on the frequency of the function. Function frequency information
can also be vital for the subsequent design of the system, as the system
must have sufficient capacity to handle the required volumes.
5 - 12 Function Modeling
Function-Entity Usage
The association between business functions and entities is known as the
Function-Entity Usage or Function Entity CRUD (Create-RetrieveUpdate-Delete) matrix. The Function-Entity Usage matrix ties the two
major models together. This association is used to define what entities
are used by a particular elementary function, and how the entities are
used.
The Function-Entity Usage matrix is the major check that can be used to
make sure the data model and the function model are consistent and
complete. For every entity, there must be a function that allows for the
various states in the life-cycle of the entity. Every function must have at
least one entity associated with it, unless there is a very good and
documented reason why there is no entity involved. This can be the
case, for instance, if the function is elementary but decomposed.
The Function-Entity Usage matrix is useful for discovering functional
overlap and missing functionality.
Two functions with more or less the same CRUD entries can sometimes,
but not necessarily, be identified, and sometimes they can be merged
into one, more generic, function. Checking the CRUD matrix can
therefore be of help in your search for missing or duplicate functions, or
in your quest for possible mergers.
The Function-Entity Usage matrix must be populated completely for all
functions and all entities. But what is meant by completely in this
respect? If function F allows you to create instances of entity ORDER,
and ORDER has a mandatory relationship to CUSTOMER, should
CUSTOMER be mentioned as well in the CRUD matrix? And what if
the reference is not mandatory? And what if F also allows deletes of
instances of ORDER? Should ORDER ITEM then be in the CRUD
matrix as well?
There are two good alternative approaches here. One is to be as
complete as possible. Mention every entity that might be involved in
this function. So, if ORDER is the base entity for function F, then
make Create, Retrieve, Update, and Delete entries for ORDER. If
CUSTOMER is queried to check the relationship, then make the
Retrieve entry for CUSTOMER. If ORDER ITEMS can be created and
updated through F, make Create, Retrieve, and Update entries for
ORDER ITEMS, and a Retrieve for ARTICLE.
Oracle Method
Function Modeling 5 - 13
Function
ORDER
CUSTOMER
ORDER ITEM
ARTICLE
CRUD
YYYY
Y
YYYY
Y
Function
ORDER
ORDER ITEM
CRUD
YYYY
YYYY
The advantage is, of course, that it saves you a lot of work now which,
nevertheless, has to be done at some point during systems design. The
non-base, implicit entities will be used by the future module as a
consequence of the relationship definitions and the rules applying there.
You could postpone adding the CRUD details until systems design.
Oracle Generators will find foreign key columns in a table and will
generate lookup functionality and foreign key checks.
Special attention must be paid to functions that allow transfer of a
relationship, that is, a function that enables you to transfer the
assignment of the occurrence A1 of entity A from B1 to B2. A typical
example is the function, Reassign Employee to New Department.
A function that will be used for the transfer of the relationship from
entity A to B is marked as Update for entity A and Retrieve for B. Note
that it is not possible to mention the function usage of a relationship, as
such.
5 - 14 Function Modeling
Tools
The Matrix Diagrammer provides an easy to handle, two-dimensional
interface to the Function-Entity Usage. This diagrammer is especially
useful for creating the initial matrix. It is, however, easier to add the
details through the Oracle Designer tabsheets. Later, when the matrix is
(almost) ready, the Matrix Diagrammer gives a good overview and a
very simple access path to the usages that are shown in the cells.
Oracle Method
Function Modeling 5 - 15
Function-Attribute Usage
About the same story that applies to the Function-Entity Usage matrix
applies to the Function-Attribute Usage matrix. This matrix is very
detailed and consequently requires a good deal of work, and may well
be left to system design, where its counterpart, the Module-Column
matrix, can be used. This matrix is also often referred to as the
Attribute CRUD matrix, although in a Oracle Designer environment
the name IRUN (for Insert, Retrieve, Update, and Nullify) would be
better. By populating the matrix, you check and cross-check the
attributes and functions. All attributes must be used by at least two
functions, one that Creates (Inserts, to be precise) the attribute and one
that Retrieves it (usually a report). If this is not the case, either the
attribute is obsolete or some functionality is missing. This matrix is
very useful for clarifying functionality. The standards on FunctionAttribute Usage do not prescribe in detail the function usage to attribute
level, unless it helps to clarify some of the functionality. If you specify
attribute usages, specify them all for the particular entity.
Attention: Not all combinations of Function-Entity Usage
and Function-Attribute Usage make sense. For example, if
for a particular function the Usage of Entity ORDER is
defined as Retrieve only, the Usage for an attribute of
ORDER, Orderdate, logically cannot be Update or Nullify. In
other words, some usages at the attribute level imply a usage
at the entity level. Oracle Designer does not check for
consistency between the two usages.
5 - 16 Function Modeling
Common Functions
The function hierarchy should represent the net total usage of all
functions of the application system. It should function as an intelligent
catalog of all functions, organized by functional breakdown. In other
words, you should not repeat functions in different branches, unless it is
absolutely necessary. If a single function is executed as part of multiple
processes, you should use global process steps. Refer the section,
Building and Using Function Hierarchies with Oracle Designer, in
Chapter 2, Processing Modeling, for more information on common
functions.
Function Network
The function network can be recorded in Oracle Designer using the
Trigger tabsheet in the Function Hierarchy Diagrammer. By selecting a
function on this tabsheet, a function can be indicated to be executed as a
result of executing another function.
If a function, Fa calls function, Fb, then an entry is made in the Function
Triggering Function screen. Meanwhile, an event (named END-Fa) is
created automatically by Oracle Designer.
Attention: Oracle Designer does not check for loops in the
calling scheme: Fa calling Fb and Fb calling Fa are accepted
at the same time.
Attention: Do not confuse these function triggers with true
business events! Refer to the section, Modeling Primary
Processes, in Chapter 2, Process Modeling, for more
information.
Oracle Method
Function Modeling 5 - 17
5 - 18 Function Modeling
Functions that are luxuries in the analysts eyes may be the bare
minimum for someone else; thus, the level of luxury must
always be made explicit.
Oracle Method
Function Modeling 5 - 19
CHAPTER
Prototyping
T
Oracle Method
Risks of Prototyping
Prototyping 6 - 1
6 - 2 Prototyping
Approach to Prototyping
Prototyping is a very useful technique when used in the right place for
the correct purpose. However, uncontrolled prototyping can be bad for
the health of a system, as well as for your credibility as a system
analyst/designer. Frequent problems found with its misuse include the
duplication of data and functions, no common look and feel, no
documentation, and generally incoherent systems.
General Guidelines
To be successful at prototyping, there are some basic rules you must
obey:
Oracle Method
Prototyping 6 - 3
When prototyping the look and feel of the system, do not use
screens that implement actual functionality of the system. This
only distracts from the real purpose of the prototyping session.
Risks of Prototyping
Prototyping has the following risks associated with it:
6 - 4 Prototyping
Oracle Method
Prototyping 6 - 5
are pieces of functionality that really must work the way they want in
order for the system to be a success.
This valuable information should not go to waste and can only be the
product of an open and constructive atmosphere during prototyping
sessions. Modeling requirements together with future end users is
really giving and taking. Giving and taking is really one of the most
important aspects of being a system analyst, and should not be
underestimated.
For the user participants, there is often only one thing that counts: the
usability of the final system. Of course, that is a goal you have in
common, but there are many other factors that you, as system
analyst/designer, should take into account. Apart from short-term
issues like available time, personnel, and budget, there are two
important longer-term factors that are often forgotten or
underestimated:
6 - 6 Prototyping
Oracle Method
1.
2.
Prototyping 6 - 7
6 - 8 Prototyping
3.
4.
5.
6.
Finally, feed all the information gained from the prototype back
into the requirements models. This usually means modifying
the existing requirements and creating new entities, attributes,
relations, and functions. You can retrieve the definitions of the
prototype on-line from the imported application system
(PROTO). Do not forget to perform a cross-check between the
function model and the data model!
Index
A
agents, 2-27, 3-31
specifying, 2-39
application hierarchy, 2-57
arc, 4-19
attribute, 4-11
authorization
vertical data access rule, 3-33
authorization
function access rule, 3-32
horizontal data access rule, 3-34
authorization rules, 3-4, 3-31
B
bottom-up development, 5-10
business area, 2-12
business objectives
in process modeling, 2-13
business objectives, 2-13
business process, 2-6
business process model, 2-5, 2-12
business rule
modeling, 1-6
business rules, 3-1
modeling, 3-4
recording as function, 3-35
business unit, 3-31
C
change event rules, 3-4
Oracle Method
D
data operation rules
attribute transition rule, 3-23
other update rules, 3-24
data rules
static, 3-8
dataflow diagramming, 1-7
decision points
drawing with Oracle Designer, 2-44
decisions
depicting in process model, 2-33
drawing
entity relationship diagrams, 4-23
dusiness rules
audience, 1-7
E
EBF. See elementary business function
elementary business functions, 2-26, 2-27
and process steps, 2-69
elementary business functions, 2-47
elementary function, 5-11
entity
changing names, 4-8
names, 4-7
recognizing, 4-6
Index 1
subtype, 4-17
supertype, 4-17
entity relationship diagram
layout, 4-24
entity relationship model, 1-5, 4-1
hierarchical relationships, 4-15
event, 5-17
rule triggering, 3-40
event mechanisms, 2-47
event mechanisms, 2-48
event response, 2-6, 2-24
Event response analysis, 2-46
events, 2-6, 2-20, 2-24
responses to, 2-46
types of, 2-29
external interfaces
in process modeling, 2-22
F
foreign key, 3-20
function
entity usage, 5-13
function
attribute usage, 5-16
authorized to business unit, 3-32
common, 5-17
description, 5-12
frequency, 5-12
short definition, 5-12
function hierarchy, 5-6
developing in parallel, 2-56
where to start, 5-9
where to stop, 5-9
function modeling, 1-6, 5-1, 5-3
bottom-up, 5-10
top-down, 5-10
functional scope, 2-61
functions
and processes, 2-55
common functions, 2-60
reparenting, 2-59
2 Index
H
hierarchical relationship, 4-15
M
matrices
business unit-entity/attribute usage, 3-33
business unit-function, 3-32
function-attribute usage, 5-16
function-entity usage, 5-13
N
naming
entity, 4-7
relationship, 4-14
subtype, 4-18
O
Oracle Designer
documenting business processes with, 2-36
in constructing context process model, 2-17
process modeling support, 2-9
organization units
use as agents, 2-18
other systems
diagramming, 2-22
outcome events, 2-34
drawing with Oracle Designer, 2-45
P
planned response system, 2-6, 2-24
primary key, 3-15
primary processes
modeling, 2-24
primary processes, 2-13
process, 2-6, 2-24
process diagrams
complex diagrams, 2-51
hierarchy, 2-36
process flow diagram, 2-3, 2-51
process flows, 2-19
depicting, 2-33
drawing with Oracle Designer, 2-43
multiple flows, 2-52
process modeling, 1-4, 3-31
downstream benefits, 2-4
primary benefits, 2-4
process steps, 2-3
continuation of, 2-52
depicting, 2-29
global, 2-42
leveling, 2-25
types of, 2-40
process steps, 2-19, 2-25
processes
single-step, 2-52
prototyping, 1-7, 6-1
S
single-step processes, 2-52
static data rules
attribute rule, 3-9
domain rule, 3-12
entity rules, 3-15
format rule, 3-9
inter-entity rules, 3-17
other attribute rules, 3-13
Oracle Method
U
unique identifier, 3-15, 4-11
unique key, 3-15
user roles, 3-31
W
working sequence
model requirements, 1-4
Index 3
4 Index