Professional Documents
Culture Documents
Supplementary
Requirements
Modern-day businesses are complex, as are the systems that support them.
To make matters worse, there are various aspects to the complexities. For ex-
ample there are business complexities that you need to understand, technical
complexities, even constraints imposed on you by outside authorities. The
implication is that you need techniques with which to explore these com-
plexities, techniques that produce something that I will call “supplementary
requirements” in this book. Table 7.1 summarizes the supplementary require-
ments artifacts described in this chapter.
This chapter discusses
r Business rules;
r Technical requirements;
r Constraints;
r Object constraint language (OCL);
r Glossaries; and
r Supplementary specifications.
209
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010
210 SUPPLEMENTARY REQUIREMENTS
A business rule defines or constrains one aspect of your business that is in-
tended to assert business structure or influence the behavior of your business.
Business rules often focus on access control issues; for example, professors
are allowed to input and modify the marks of the students taking the seminars
they instruct, but not the marks of students in other seminars. Business rules
may also pertain to business calculations, for example, how to convert a per-
centage mark (for example, 91 percent) that a student receives in a seminar
into a letter grade (for example, A-). Some business rules focus on the policies
of your organization; perhaps the university policy is to expel for one year
anyone who fails more than two courses in the same semester.
Figure 7.1 summarizes several examples of business rules. Notice how
each business rule has a unique identifier. My convention is to use the format
of BR#, but you are free to set your own numbering approach. The unique
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010
7.1 Business Rules 211
TIP
You Need Multiple Models
The requirements for a system are typically complex, dealing with a wide variety
of issues. Because every model has its strengths and weaknesses no one single
model is sufficient for your needs; therefore you will need several types of models
to get the job done.
r Name. The name should give you a good idea about the topic of the business
rule.
r Description. The description defines the rule exactly. Although I used
text to describe this rule it is quite common to see diagrams such as
flow charts or UML activity diagrams (Chapter 6) used to describe an
algorithm. Other options include business rule languages such as ob-
ject constraint language (OCL) (http://www.omg.org), the ILOG rules lan-
guage (http://www.ilog.com), or business rules markup language (BRML)
(http://xml.coverpages.org/brml.html). As agile modeling (Chapter 4) sug-
gests, apply the right artifact for your situation.
r Example (optional). An example of the rule is presented to help clarify it.
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010
212 SUPPLEMENTARY REQUIREMENTS
Figure 7.2 is clearly a lot wordier than most project teams need. A more
agile approach would be to simply write the name of the business rule, the
business rule number, and the description on an index card and leave it at
that. Or you might want to get a little fancier and type the business rule into
a Wiki page (http://www.wiki.org) or a word processor. Remember to keep
your models as simple as possible.
Business rules are identified in the normal course of requirements gathering
and analysis. While you are usage modeling, perhaps with use cases or user
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010
7.1 Business Rules 213
TIP
You Only Need a Subset of the Models
When you fix something at home you will only use a few of the tools, such as a
screwdriver and a wrench, in your tool box. The next time you fix something you
will use different tools. Even though you have multiple tools available, you will
not use them all at any given time. It is the same thing with software development;
although you have several techniques in your “intellectual toolbox” you will only
use a subset on any given project.
stories, you will often identify business rules. A rule of thumb is if something
defines a calculation or operating principle of your organization then it is
likely a good candidate to be documented as a business rule. You want to
separate business rules out from your other requirements artifacts because
they may be referred to within those artifacts several times. For example,
BR129 was referenced by the Enroll Student in Seminar use case and likely
would be referenced by your class models (Chapter 6) and perhaps even your
source code. However, if you have only a handful of business rules or use
cases, you may choice to document them right in the use cases. A rule of
thumb: start out including them in the use cases until it becomes obvious, or
painful, to do so. This may be because the sheer number of business rules is
dominating the use case or because the same business rule is referenced in
two or more use cases.
A good business rule is cohesive: in other words, it describes one, and only
one, concept. By ensuring that business rules are cohesive, you make them
easier to define and increase the likelihood they will be reused (every time
one of your artifacts refers to a business rule, even other business rules, it is
effectively being reused). Unfortunately, because business rules should focus
on one issue, you often must identify a plethora of rules.
Ross (2003) describes several basic principles of what he calls “the business
rule approach.” He believes that rules should
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010
214 SUPPLEMENTARY REQUIREMENTS
TIP
Use the Terminology of Your Stakeholders
Do not force artificial, technical jargon onto your project stakeholders. They are
the ones doing the modeling and they are the ones the system is being built for;
therefore, you should use their terminology to model the system. As Constantine
and Lockwood (1999) say, avoid geek-speak.
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010
7.3 Constraints 215
r TR34 The system shall be available 99.99 percent of the time for any 24-
hour period.
r TR78 A seminar search will occur within less than three seconds 95 per-
cent of the time.
r TR79 A seminar search will occur within no more than ten seconds 99
percent of the time.
7.3 CONSTRAINTS
TIP
Requirements Must Be Prioritized
Your project stakeholders must prioritize the requirements, enabling you to
constantly be working on the most important requirements and thus provide the
most value for their IT investment.
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010
216 SUPPLEMENTARY REQUIREMENTS
management that restricts the way you develop a system. Constraints can be
economic, political, technical, or environmental and pertain to your project
resources, schedule, target environment, or to the system itself. Figure 7.4
presents several potential constraints for the university system. Like business
rules and technical requirements, constraints are documented in a similar
manner.
An interesting thing about Fig. 7.4 is that it contains two constraints, C73
and C76, which were previously identified as a technical requirement and a
business rule, respectively. Constraints can be a little confusing because of
their overlap with business rules and technical requirements. Don’t worry
about it. The important thing is that you have identified the requirement. If
you happen to miscategorize it as a constraint instead of a business rule that
is perfectly okay; the world is not going to end as a result (unless of course
you are working on a nuclear missile guidance system). I would not identify
the same requirement as both a business rule and a constraint—that would be
busy work—but I would not waste any time arguing over whether something
is a constraint or another type of requirement.
As with business rules, you identify constraints as you are developing other
artifacts, such as your use case model and user-interface model.
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010
7.5 Glossaries 217
rule definitions. OCL can be used for a wide variety of purposes, including
specifying the invariants of classes, preconditions and postconditions on op-
erations, and constraints on operations. The reality is that a graphical model,
such as a UML class diagram, is not sufficient for a precise and unambiguous
specification. You must describe additional constraints about the objects in
the model, constraints defined in your supplementary specification.
I rarely use OCL when I am modeling. First, few people know how to
read OCL, let alone write it, so you are restricting the audience of your mod-
els when you use it. Second, it is complex. OCL statements are depicted on
UML diagrams in the format “{constraint description},” where the constraint
description may be in any format, including predicate calculus. I personally
find that free-form text, along the lines of Fig. 7.2, is far more effective. Third,
if I want to describe rules in such a way that I can generate working soft-
ware from them I will use a real programming language such as Java or C#
to do it.
The OCL was an interesting concept but it has not been adopted by the
industry. Because it shows no signs of being adopted any time soon, in my
opinion it is not worth the effort to learn.
7.5 GLOSSARIES
TIP
Reuse Existing Resources
Your organization may already have an existing glossary in place; if so then reuse
appropriate terms from it. Often your industry will already have a specialized
dictionary describing common terms that you may want to adopt as well.
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010
218 SUPPLEMENTARY REQUIREMENTS
both the relevant technical and business terminology goes a long way to im-
proving the communications between developers and users—if you do not
understand each other’s language you cannot communicate effectively.
The best advice that I can give about creating a glossary is to be realistic.
You are not Webster’s—you do not have to get the definitions perfect, they just
need to be good enough. Furthermore, dictionaries have multiple definitions
for most words so do not be afraid to do the same. Ideally you want a single
definition; realistically it often is not worth the effort to argue it out if it is
even possible to come to agreement.
An important issue with glossaries, with all artifacts for that matter, is to
make them available to people. This is one of the reasons AM includes the
display models publicly practice. You might want to consider documenting your
glossary as a single HTML page that everyone can access and hopefully edit
(remember the practice of collective ownership). Another option, particularly
if editing a major concern, is to use a Wiki (http://www.wiki.org).
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010
7.8 Review Questions 219
stakeholders are the best source of requirements because they are the experts.
You also learned that requirements have nothing to do with the development
paradigm you are following—any of these techniques could be used with ob-
ject technology, component technology, structured technology, or any other
technologies.
1. Identify the three most important business rules referenced by your use
cases in Question 2 of Chapter 5 and describe them appropriately.
2. What were the benefits of developing the three models of Questions 1
through 3 of Chapter 5 in parallel? Discuss, from the point of view of the
quality of the requirements, their consistency and their reliability.
3. Discuss the term “supplementary specification.” Is it a good name? Discuss
the subconscious implications of the name.
4. How are essential use cases, essential user-interface prototypes, and busi-
ness rules interrelated? Discuss from the point of view of the changes you
made to the three models from Questions 1 through 3 of Chapter 5. What
are the strengths and weaknesses of each technique? Do you need all of
them?
5. Compare and contrast small development groups of three or four peo-
ple versus larger development groups of ten to twenty people. Take into
consideration management issues, communication issues, logistical issues,
decision-making ability, group dynamics, skills, and knowledge. What do
you believe is the ideal size for a development team? Why?
6. With several other people, go through a brainstorming session to iden-
tify nonfunctional requirements and constraints for the university system.
Identify potential sources for these requirements, such as roles within the
organization (the Dean, an instructor, a registrar, and so on) and docu-
ments.
7. Identify the categories of tools, such as requirements management systems
and computer-aided software engineering (CASE) tools, which you could
potentially use during requirements gathering. For each category, present
three examples of them in the marketplace: one should be an open-source
software (OSS) tool and one should be a commercial package. Identify how
each category is used and the potential skills required of the people using
them.
Downloaded from https:/www.cambridge.org/core. New York University Libraries, on 20 Jan 2017 at 17:04:32, subject to the Cambridge Core terms of use, available at
Cambridge Books Online © Cambridge University Press, 2010
https:/www.cambridge.org/core/terms. https://doi.org/10.1017/CBO9780511584077.010