Page 320 -
P. 320
chaPter 10 • object-oriented systems analysis and design Using Uml 287
COnsULting OppOrtUnity 10.4
C-Shore++
“They want the core of the customer service representa- have actually been making small changes in the CSR user
tive’s user interface to be radically reprogrammed again!” says interface for the past eight months anyway. The CSR users
Bradley Vargo, the information systems development director at have been calling us directly and begging for help. They usu-
C-Shore Mutual Funds, based in Burton, Michigan. “Only eight ally want just a small change to one isolated part of the sys-
months ago, we completed a two-year development project of tem, but that has created a high labor drain because we have
the Customer Service Representative (CSR) system. During that to recertify the entire system. You know how the effects of
entire project, we endured a parade of moving requirements. Every a small change can ripple through a large program. We’ve
month, Chelsea and Jonathan from Marketing would invent some billed the time to program maintenance on the grounds that
competitive new customer service feature, and within a week, the we thought we were just fine-tuning the completed system.
CSR group would be down here with vast changes to the CSR sys- Although the changes have been gradual, in eight months
tem specifications. I thought we’d never finish that project! Now we’ve pretty much rewritten about a quarter of the CSR user
it looks as if we will have to start a new reprogramming project interface code already. The work has not been falling off. It’s
on a system less than a year old. We had forecast this system for still pretty steady.”
a seven-year life span! Now I think it may be going into eternal “So what you’re telling me,” says Bradley, “is that we
reconstruction.” have system needs in this area that have been changing con-
Bradley is talking with Rachael Ciupek, the senior applica- stantly while we tried to write specifications, tried to write
tion systems analyst responsible for the CSR system, and Bridget program code, and tried to make a fixed solution work against
Ciupek, her sister and the programmer who wrote most of the user a fluid problem. How can we afford to write programs if they
interface. “Calm down, Bradley,” says Rachael. “It is not the fault will only last a few months?
of the people in Marketing or CSR. The nature of our business has How can Bradley manage a systems development process
been affected by fast-paced competition. Marketing doesn’t invent that no longer has fixed or constant business processes as part
these changes out of boredom. They are often responding to new, of its goal set? Is there a way for Rachael to manage specifi-
Web-based customer services offered by our competition. We have cation and control maintenance costs when programmers are
to stay ahead or at least keep up, or we’ll all be looking for new constantly asked to tinker with isolated parts of a large pro-
jobs.” gram? Keep in mind that an important goal is to provide good
“Bradley, Rachael, I think you better know that the situation support for the users’ needs and the organization’s business
may be worse than you think,” Bridget chips in. “The programmers strategies.
• Analyze the class diagrams to derive the system components; that is, functionally and
logically related classes that will be compiled and deployed together as a .DLL, a .COM
object, a Java Bean, a package, and so forth.
• Develop deployment diagrams to indicate how your system components will be
deployed in the production environment.
6. Document your system design in detail. This step is critical. The more complete the infor-
mation you provide the development team through documentation and UML diagrams, the
faster the development and the more solid the final production system.
The Importance of Using UML for Modeling
UML is a powerful tool that can greatly improve the quality of your systems analysis and design,
and it is hoped that the improved practices will translate into higher-quality systems.
By using UML iteratively in analysis and design, you can achieve a greater understanding
between the business team and the IT team regarding the system requirements and the processes
that need to occur in the system to meet those requirements.
The first iteration of analysis should be at a very high level, to identify the overall system
objectives and validate the requirements through use case analysis. Identifying the actors and
defining the initial use case model are part of this first iteration. Subsequent iterations of analy-
sis further refine the system requirements through the development of use case scenarios, class
diagrams, sequence diagrams, statechart diagrams, and so on. Each iteration takes a successively