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 39 and time of arrival. Not all this information is necessarily essential to the business, but it does help management make decisions about shipping companies and suppliers based on their delivery performance. During the analysis phase, rules are a major focus of discussion. They refocus your attention onto why the client is doing the job that particular way. For example, why do they need the extra shipment information When you use this line of questioning, you bring the client back to that important question, “What is really needed to make this system work correctly” And, “What is essential” versus “What do you do because you want to, or because the old system didn’t work, or because you are used to doing it that way” The UML diagrams provide places for you to capture these rules. In Sessions 5 through 8, you will use the Use Case model to describe how the users plan to use the system for filling orders, stocking products, and so on. Sessions 9 through 13 use the Class and Object diagrams to model rules and constraints for the resources the system manipulates like shipments, products, and orders. Sessions 14 and 15 model how the various processes are supposed to work using the Activity diagram. Sessions 16 through 23 explain how to use the Sequence, Collaboration, and Statechart diagrams to capture how objects behave when they are used in these processes. Performance Performance requirements define how well the system solution should perform when you use it. The challenge here is that the means to achieve the required performance may require choices at any or all the project phases. For example, the speed at which the product search window refreshes may reflect the volume of data being requested, bandwidth on the network, server memory or speed, the efficiency of the code, and so on. If you can identify the performance requirements, then you can use them at each phase of the project to evaluate how what you’re deciding in that phase could affect the ultimate outcome. Consider the impact on these design phases if the requirement is a specific response time threshold for all applications: Requirements gathering: Earlier, I said that the inventory control system users wanted to network the warehouse to the accounting office so that they can do inventory searches, but the phone lines would be so restrictive that this would interfere with the performance of the system. Addressing this requirement could require feasibility testing to determine exactly what performance levels could be achieved given the current limitations of the phone lines. Analysis: In the inventory system, users have defined product searches that bring the current system to its knees. You could restrict the allowed lookups to take advantage of the database configuration and guarantee the required response time. Design: The database in use is two versions behind and the current version promises to provide the speed that would satisfy the required performance level if we also put the restricted lookups in place. Unfortunately, the upgrade adds three months to the project and 15 percent to the project cost. The most important point to remember here is that performance is not a concern to be left to the implementation phase. Performance should be addressed throughout the project.

40 Friday Evening An Inventory Control System Now to the nitty-gritty part you’ve been waiting for! As a hands-on opportunity to explore the diagramming techniques, you’ll work on modeling the inventory control system. Although you won’t be able to build a complete model, you’ll have ample opportunity to try the UML modeling notation in a reasonably realistic setting. The goal of this course is to build at least one of each type of diagram to model the inventory control system. This should provide a representative sampling of how each type of diagram may be applied to understand and to solve a problem. Beginning with user requirements and progressing through the logical modeling of classes and objects and their interactions, you will move on to process modeling, and finally implementation modeling. In each session, I explain the use of each diagram and the notation used to express the model fully. Identifying requirements There is a wealth of material in bookstores on gathering and documenting requirements. The variety is a reflection of the diversity of applications under development. Some of the techniques can be large and sophisticated. But because this book is intended as a crash course, I don’t want you to get diverted from the focus, which is applying the UML modeling language to describe systems. So I take a simplified approach. One approach to gathering requirements is to look for them by examining the problem statement and the supporting documents and interviews from different perspectives. Using these different perspectives also helps to validate the requirements by giving you the opportunity to compare and contrast what you find from three overlapping sources: Users: Users have expectations for the use of the system. Resources: Resources are represented as information that is created, used, and deleted by the system to support the system behavior. Functionality: Functionality refers to the behavior supported by the system. While you’re researching the problem from each unique perspective, be on the lookout for the four different types of requirements discussed earlier. Users Someone or something (another system or device) is going to communicate with your system. You need to know why and what they expect from their communication with the system. Consequently, the questions you ask should focus on the users’ responsibilities that make them dependent upon the system or that make them an essential source of information for the system. As you read through these questions, try to imagine the answers you may receive from the actors in the case study. You’ll need that information to build the diagrams in the remaining chapters.

40<br />

Friday Evening<br />

An Inventory Control System<br />

Now to the nitty-gritty part you’ve been waiting for! As a hands-on opportunity to explore<br />

the diagramming techniques, you’ll work on modeling the inventory control system.<br />

Although you won’t be able to build a complete model, you’ll have ample opportunity to try<br />

the <strong>UML</strong> modeling notation in a reasonably realistic setting.<br />

The goal of this course is to build at least one of each type of diagram to model the<br />

inventory control system. This should provide a representative sampling of how each type of<br />

diagram may be applied to understand and to solve a problem.<br />

Beginning with user requirements and progressing through the logical modeling of<br />

classes and objects and their interactions, you will move on to process modeling, and finally<br />

implementation modeling. In each session, I explain the use of each diagram and the notation<br />

used to express the model fully.<br />

Identifying requirements<br />

There is a wealth of material in bookstores on gathering and documenting requirements.<br />

The variety is a reflection of the diversity of applications under development. Some of the<br />

techniques can be large and sophisticated. But because this book is intended as a crash<br />

course, I don’t want you to get diverted from the focus, which is applying the <strong>UML</strong> modeling<br />

language to describe systems. So I take a simplified approach.<br />

One approach to gathering requirements is to look for them by examining the problem<br />

statement and the supporting documents and interviews from different perspectives. Using<br />

these different perspectives also helps to validate the requirements by giving you the<br />

opportunity to compare and contrast what you find from three overlapping sources:<br />

Users: Users have expectations for the use of the system.<br />

Resources: Resources are represented as information that is created, used, and<br />

deleted by the system to support the system behavior.<br />

Functionality: Functionality refers to the behavior supported by the system.<br />

While you’re researching the problem from each unique perspective, be on the lookout<br />

for the four different types of requirements discussed earlier.<br />

Users<br />

Someone or something (another system or device) is going to communicate with your system.<br />

You need to know why and what they expect from their communication with the system.<br />

Consequently, the questions you ask should focus on the users’ responsibilities that<br />

make them dependent upon the system or that make them an essential source of information<br />

for the system.<br />

As you read through these questions, try to imagine the answers you may receive from<br />

the actors in the case study. You’ll need that information to build the diagrams in the<br />

remaining chapters.

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

Saved successfully!

Ooh no, something went wrong!