UML Weekend Crash Course™ - To Parent Directory

UML Weekend Crash Course™ - To Parent Directory UML Weekend Crash Course™ - To Parent Directory

crnarupa.singidunum.ac.rs
from crnarupa.singidunum.ac.rs More from this publisher
01.01.2015 Views

Session 4—Defining Requirements for the Case Study 37 Business process Most systems are built in order to do something: place orders, issue payments, launch rockets, run a heart/lung machine, and so on. To use a system, you need to know how to interact with it and why. Business processes describe your relationship with the system in terms of interactions. You enter a shipment. The system validates the data about the shipment and gives you a set of error messages. You fix the data about the shipment and try again. The system validates the data again. Seeing that the data is valid, the system uses it to save the shipment to the database and update the associated orders. A common challenge with gathering business processes is that it is difficult to distinguish personal preference or legacy practice from actual current need. So how do you avoid this trap One technique is to look past the process to the reason for the process. Each process had a justification at some point, even if that justification no longer exists. You need to know the reason behind the process. For example, What result does logging the shipment produce What would happen to the rest of the system if you didn’t have a record of the shipment Would another process fail (for example, would you be able to accurately maintain the inventory and Accounts Receivable if you didn’t know what was shipped) Next, evaluate each process, both on its own and in its role in the system. Identify those processes that no longer produce valuable outcomes. Keep only those that are essential to the successful operation of the system. For example, evaluate the following interactions of the Inventory Control processes for Receiving, Stocking, and Accounts Payable: The stock is offloaded from the trucks and placed into a staging area. Why Historically the same people offloaded the trucks and placed the products into inventory. They couldn’t do both at the same time. When the product is in the right location, the stocking personnel inform the supervisor, who delivers the documents to the Accounts Payable department. Why do they wait to notify AP Historically this was a manual process so the stock clerks waited until they had all of their other work done. Then come back and evaluate those processes that, even though they aren’t essential, may add value. Prioritize these contributions and allocate resources proportional to their value to the system and add them to the project plan. For example, The incoming shipment documents are delivered to the supervisor for verification. Why After a few interviews, you find out that this practice was instituted because in years past the warehouse had serious theft problems. Is there still a problem that would justify the added cost and delays The goal in this evaluation process is to make conscious choices about how to spend the finite time and money available to the project to deliver the best possible system. The lesson: Focus on results rather than processes; quantify the value of the results; allocate resources proportional to the value of the results.

38 Friday Evening Constraints The second type of requirement is called a constraint. Constraints are limitations on or boundaries around what you can do when you develop a solution for the system. Constraints can apply to virtually any aspect of your project and the resulting system. Why do you care about constraints Because constraints limit the options you have at virtually every phase of the development life cycle. Consider the constraints on each of these four development phases: Requirements gathering: Limitations on client skills and experience drive the type of solutions that you can offer. The application may need to offer substantially more help features for less-skilled users, whereas extremely skilled or experienced users might reject the same features as a hindrance. Analysis: Limitations imposed by policies and procedures, laws, contracts, and industry standards restrict the models that you develop to document the problem domain. You may not be able to be as creative as you’d like when the law or a contract says that it has to be done a particular way. For example, the inventory system must abide by generally accepted accounting principles. Failure to do so risks an audit, fines, or worse. Design: Programming languages, databases, middleware, and just about every technology impose specific limitations. These technologies often dictate field data types and sizes, data conversions, communication protocols, and more. This limits the options available to you to when you try to satisfy the system requirements. You might want to network the warehouse to the accounting office a few blocks away only to find the phone lines are over 30 years old and are currently tied up in a massive upgrade project that is running badly behind schedule. Implementation: Implementation technologies impose performance limitations that often conflict directly with the performance requirements for the business. This is, in fact, the motivation behind so much technological advancement (that is, removing these bottlenecks so that technological constraints don’t sabotage business constraints). The warehouse may want to transition to radio frequency data entry, but the substation next door causes too much interference; the technology may be ideal, but to overcome the interference problem would cost twice what has been budgeted for the whole project. Rules Constraints are like mandates: It must be done this way! Rules are more like agreements: We’ve talked about it and agreed that the invoice needs to include these items and have these approvals. Rules need to be enforced, but if you find a better way to do it you can always talk about it again and choose to change it. In the meantime, you agree to implement and follow the decision consistently. Rules can be anything from the look of a form or screen, to a business process with checks and approvals, number of copies, and waiting periods. Constraining policies are typically upper-management decisions or directives from the business environment (legislation, regulations, and so on) and tend to be separate from the processes that implement them. In the case study, the inventory control system requires you to complete the receiving documentation with the prescribed details about the shipper, products, shipping company,

38<br />

Friday Evening<br />

Constraints<br />

The second type of requirement is called a constraint. Constraints are limitations on or<br />

boundaries around what you can do when you develop a solution for the system.<br />

Constraints can apply to virtually any aspect of your project and the resulting system.<br />

Why do you care about constraints Because constraints limit the options you have at<br />

virtually every phase of the development life cycle. Consider the constraints on each of<br />

these four development phases:<br />

Requirements gathering: Limitations on client skills and experience drive the type<br />

of solutions that you can offer. The application may need to offer substantially<br />

more help features for less-skilled users, whereas extremely skilled or experienced<br />

users might reject the same features as a hindrance.<br />

Analysis: Limitations imposed by policies and procedures, laws, contracts, and<br />

industry standards restrict the models that you develop to document the problem<br />

domain. You may not be able to be as creative as you’d like when the law or a contract<br />

says that it has to be done a particular way. For example, the inventory system<br />

must abide by generally accepted accounting principles. Failure to do so risks an<br />

audit, fines, or worse.<br />

Design: Programming languages, databases, middleware, and just about every technology<br />

impose specific limitations. These technologies often dictate field data types<br />

and sizes, data conversions, communication protocols, and more. This limits the<br />

options available to you to when you try to satisfy the system requirements. You<br />

might want to network the warehouse to the accounting office a few blocks away<br />

only to find the phone lines are over 30 years old and are currently tied up in a<br />

massive upgrade project that is running badly behind schedule.<br />

Implementation: Implementation technologies impose performance limitations<br />

that often conflict directly with the performance requirements for the business. This<br />

is, in fact, the motivation behind so much technological advancement (that is,<br />

removing these bottlenecks so that technological constraints don’t sabotage business<br />

constraints). The warehouse may want to transition to radio frequency data<br />

entry, but the substation next door causes too much interference; the technology<br />

may be ideal, but to overcome the interference problem would cost twice what has<br />

been budgeted for the whole project.<br />

Rules<br />

Constraints are like mandates: It must be done this way! Rules are more like agreements:<br />

We’ve talked about it and agreed that the invoice needs to include these items and have<br />

these approvals. Rules need to be enforced, but if you find a better way to do it you can<br />

always talk about it again and choose to change it. In the meantime, you agree to implement<br />

and follow the decision consistently. Rules can be anything from the look of a form or<br />

screen, to a business process with checks and approvals, number of copies, and waiting periods.<br />

Constraining policies are typically upper-management decisions or directives from the<br />

business environment (legislation, regulations, and so on) and tend to be separate from the<br />

processes that implement them.<br />

In the case study, the inventory control system requires you to complete the receiving<br />

documentation with the prescribed details about the shipper, products, shipping company,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!