.NET Solution Architectures: Gathering and Analyzing User Requirements

Date: Jul 4, 2003

Return to the article

Learn how to gather and analyze users' specific requirements in .NET Solution Architectures. You will learn the benefits of UML as well as how to use it, and you will see how to develop world-ready applications.

Terms you'll need to understand:

Techniques you'll need to master

The previous chapter covered methods for analyzing the current business state and identifying business requirements for the solution. There are many sources from which to collect information and ways to interpret this information. The next phase of the requirements process is to focus on gathering and analyzing users' specific requirements. In many ways, this phase can be one of the most challenging and frustrating aspects of developing a computer system (think of your "favorite" user). Because of time or resource constraints, you might need to start designing the system before you can adequately complete the requirements-gathering phase. You might encounter users who can't tell you what they want but still expect the perfect solution. The amount of information gathered during the requirements-gathering phase can, at times, be overwhelming or contradictory. To extend the lifespans of systems professionals and to address these issues, the development of systems applications evolved into the object-oriented approach.

Unified Modeling Language

To address the need for a commonly accepted method of object-oriented modeling, the Unified Modeling Language (UML) has been developed. The notations in UML are meant to be straightforward and consistent, and a minimal number of symbols are used. It was purposely designed to be readable on almost any medium, such as whiteboards, paper, or computer displays.

IN UML, nine types of diagrams are used to represent the various modeling viewpoints. Here, in alphabetical order, is a list of the various diagrams and a brief explanation of each:

Although all UML diagrams are important in some aspect of the development life cycle, use case diagrams, because they are considered such an integral part of gathering user requirements, are the only UML diagram explored in detail in this chapter.

Use cases use actions and reactions to describe the behavior of a system from a user's standpoint. They show the definition of the system's boundaries and the relationships between the system and the environment.

Even with these modern methods available, the most basic task of gathering requirements, talking to the users, is still the major source of gathering requirements. So to create use cases, you still need to sit down with expected users of the system and do a thorough analysis of the functions they need from the new system. Each use case corresponds to a specific kind of system use. A use case is an image of a system's functionality, which is triggered in response to the stimulation of an external actor.

An actor represents the role played by a person or thing that interacts with a system. Actors are represented in use case diagrams by little stick people who trigger the use cases. (Additional certification for drawing stick people might be available soon.)

The name of the actor describes the role the user plays. To determine who the actors are, observe the direct users of a system, those who are responsible for its use or its maintenance, and other systems that interact with the one you're gathering requirements for. The same person can play the roles of several actors.

CAUTION

The various concepts related to UML, data modeling, and actors as tools for gathering requirements have continued to gain momentum, so expect to see questions about these topics in the exam.

A good rule for determining what can be considered an actor is that they are usually the people and things outside a system, and they interact with the system by exchanging information. In this way, determining the actors also helps set the system's boundaries. There are four main categories of actors:

In UML, a use case model is depicted in a diagram (see Figure 3.1). A use case diagram depicts the use cases and actors for a system. The use cases are represented as ellipses contained within the system. The two main pieces of information to determine when creating use cases are the actor's action and the expected result. (If there were any doubts, look at the diagram. I was serious about the stick people.)

Figure 3.1 A use case diagram.

Use cases are determined by observing and specifying, actor by actor, the interaction sequences (scenarios) from the user's standpoint. They are described in terms of the information exchanged and the way the system is used. A use case groups a family of usage scenarios according to a specific functional criterion. Use cases are abstractions of dialogue between the actors and the system: They describe potential interactions without going into the details of each scenario.

Use case diagrams represent use cases, actors, and relationships between use cases and actors. In UML, there are three types of links between actors and use cases:

Figure 3.2 The communicates or association relationship.

Figure 3.3 The uses relationship.

Figure 3.4 The extends relationship.

Usage Scenarios

Usage scenarios capture the system's requirements in the users' business context, using a narrative or story format. They also describe necessary tasks and serve to document the series of steps required to complete a business function. Usage scenarios and the use cases from which they are derived should describe an application's expected behavior in multiple business processes. Gathering this information requires sitting down with users and determining every possible scenario for a specific function. Documenting usage scenarios might seem tedious and not as much fun as drawing stick figures, but it is helpful in finding possible missing conditions.

The project team can use the usage scenarios to keep its focus on the real problem to be solved. Usage scenarios should also provide a conceptual description of what the application must do and provide the basis for the logical design of components in the application. Also, even if some previously undiscovered interaction is identified later, new use cases can be incorporated into the design.

To see how a usage scenario works, take the simple process of a customer logging on to the Billington Web site (see Figure 3.5) and walk through what a usage scenario might look like:

Usage scenario: A customer logs on to the Billington.com Web site to order medicine.
When the logon page is displayed, the customer is asked to enter his or her username and password, and the authentication process begins.
If the customer leaves the username blank, an error message is returned explaining that the username must be filled in, and the logon page is displayed again.
If the customer leaves the password field blank, an error message is returned explaining that the password must be filled in, and the logon page is displayed again.
If the customer enters an invalid username, an error message is displayed indicating that the username is invalid, and the logon page is displayed again.
If the customer enters a valid username but an invalid password, an error message is displayed indicating that the password is invalid, and the logon page is displayed again.
If the customer selects the Forgot Password check box, a window is displayed with the option of entering the username and sending the password in an e-mail.
If the customer enters a valid username and password, the initial product order entry window is displayed.

Figure 3.5 The logon function.

Finally, it is important to remember that the scope of use cases is not created while defining the system requirements and then forgotten. Use cases come into play throughout the development life cycle, from the requirements phase to system testing, through the analysis, design, implementation, and documentation stages. Besides, a good stick figure is a terrible thing to waste.

Developing World-Ready Applications

CAUTION

Being able to develop applications that can be easily distributed globally with little or no specialized development for each locale is a major selling point for adopting the .NET architecture, so expect exam questions involving globalization, localization, and Unicode.

The .NET Framework provides extensive support for developing world-ready applications. There are several advantages to designing and developing world-ready applications using .NET:

When determining the requirements for a world-ready application, you should divide the process into two areas, globalization and localization.

Globalization

Globalization is the process of designing and developing a software product that functions in multiple cultures and locales. A globalized application can correctly accept, process, and display a worldwide assortment of scripts, data formats, and languages. A truly global application is culture-neutral and language-neutral. The trick, then, in the requirements-gathering phase is to determine which requirements will work equally well for users from all cultures and regions that the application must support. The most efficient way to globalize these functions is to use the concept of cultures/locales. A culture/locale is a set of rules and a set of data that are specific to a given language and geographic area. This process involves two tasks:

If your company already has an international market or plans on pursuing international customers, there are several important factors to consider when gathering your international requirements. The ultimate goal should be to develop one common application that offers customers a choice of languages and currencies. In the Billington Pharmaceuticals case study, there are more than 1,000 stores in the United States and Canada. Because Canada (usually considered a foreign country) has a different currency from the United States and, in some areas, its inhabitants speak a different language, the application developed for Billington Pharmaceuticals should follow the concept of globalization.

Although this requirement seems obvious, most companies choose to ignore this option or create several versions of their applications for different language sets. This is an excellent way of keeping their IT developers fully engaged, but it is not the most efficient use of resources. The goal should be to make it easy for customers to change language or currency without being directed to another application. The specific areas that the requirements-gathering phase should focus on include:

The "Localization" section, later in this chapter, provides more detail about these areas.

Being sensitive to cultural and political issues is also especially important when designing world-ready applications. What is acceptable in one culture might be offensive to another; this fact should not be minimized. These are common items to avoid:

Localization

The final step in building a world-ready application is localization, which is the process of customizing and adapting your application for a given culture/locale. Localization consists primarily of translating the user interface, using rules developed for specific cultures/locales. Most organizations make the mistake of attempting localization after the initial application is developed. This approach is expensive and causes inconsistencies among versions. It also usually requires international users to wait weeks or months to have a localized version available.

These are the major advantages of following the localization model:

There are several specific areas in which requirements pertaining to localization need particular attention:

Practice Questions

Question 1

Which of the following UML diagrams documents the logic of a single operation or method, a single use case, or the flow of logic of a business?

  1. Class diagrams

  2. Activity diagrams

  3. Deployment diagrams

  4. Statechart diagrams

  5. Sequence diagrams

The correct answer is B. The purpose of an activity diagram is to document the behavior of an operation as a set of actions. The other diagrams represent other parts of the modeling process, so only answer B is correct. Use cases use actions and reactions to describe the behavior of a system from a user's standpoint. They show the definition of the system's boundaries and the relationships between the system and the environment. A use case is an image of a system's functionality, which is triggered in response to the stimulation of an external actor.

Question 2

Which of the following are benefits of use cases? (Choose three.)

  1. Use cases use actions and reactions to describe the system's behavior from a user's standpoint.

  2. Use cases show the definition of the system's boundaries and the relationships between the system and the environment.

  3. Use cases show an image If a system's functionality when triggered by the actions of an external (user) actor.

  4. Use cases show where automation will be required.

  5. Use case diagrams show the sequence in which events in the system must occur.

The correct answers are A, B, and C. Use cases do not show a system at a technical level, so answer D is not correct. Use cases are not concerned with a sequence of events, but with the expected system response to specific triggers, so answer E is also not correct.

Question 3

Considering the use of actors in a use case diagram, which of the following statements is not true?

  1. An actor represents the role played by a person or thing that interacts with a system.

  2. Actors always represent people.

  3. The name of the actor represents the role played by the user.

  4. The same person can play the roles of several actors.

  5. Determining the actors also sets the system's boundaries.

The correct answer is B. Actors can also represent external hardware and other systems.

Question 4

In the Billington Pharmaceuticals case study, which of the following situations would require creating a usage scenario?

  1. The process to hire developers for the development project

  2. Setting prices for the co-payment amounts

  3. A Billington customer logging on to the Web site

  4. Determining a new logo for the Web site

  5. Implementing computer systems in participating doctors' offices

The correct answer is C. All the other responses are considered outside the scope of the project, so only answer C is correct.

Question 5

Which of the following statements about usage scenarios are true? (Choose three.)

  1. Usage scenarios document the series of steps required to complete a business function.

  2. Usage scenarios are depicted pictorially.

  3. Usage scenarios capture requirements in the users' business context.

  4. Usage scenarios are used only in the requirements-gathering phase.

  5. Usage scenarios can be used to validate the design.

The correct answers are A, C, and E. Because usage scenarios are used to document a business function, capture requirements in the users' business context, and help validate the design, answers A, C and E are all correct. Because usage scenarios are depicted in a narrative format and are used in all phases, answers B and D are not correct.

Question 6

Which of the following is the type of use case that represents a relationship between an actor and a use case?

  1. Uses relationship

  2. Communicates relationship

  3. Extends relationship

  4. Functional relationship

  5. Logical relationship

The correct answer is B. The communicates relationship is the only relationship that exists between actors and use cases.

Question 7

Which of the following is not a major advantage of using .NET to develop world-ready applications?

  1. Support for new cultures can be added quickly.

  2. The .NET Framework fully supports Unicode.

  3. A feature of .NET is the System.Globalization namespace.

  4. .NET enables you to create a different application for each country.

  5. Resources are used more efficiently.

The correct answer is D. The main advantage of using .NET is that it enables you to have only one application that can easily function in multiple countries.

Question 8

Which of the following is the major goal of globalization?

  1. Develop a unique application for each culture/locale.

  2. Encourage the use of local colloquialisms.

  3. Determine the language favored in each individual country.

  4. Apply a currency exchange rate calculation to the application.

  5. Create an application that is both culture-neutral and language-neutral.

The correct answer is E. By using many of the functionality options already available in the .NET Framework, specifically the System.Globalization namespace, creating a culture- and language-independent application is an achievable goal.

Question 9

Billington Pharmaceuticals will be developing an application distributed globally using the .NET architecture and specifically incorporating Unicode features of and classes available in the System.Globalization namespace. Assuming the infrastructure is implemented properly, which of the following common internationalization issues will be resolved by the available .NET architecture and require no additional development or research effort? (Choose two.)

  1. Language displayed to the users

  2. Allocation of adequate screen space to display all text regardless of language

  3. Format patterns for dates, currency, and numbers

  4. Preventing the display of offensive or misleading icons

  5. Syntax checking to remove slang or obscure phrases

The correct answers are A and C. Based on the assigned locale, the correct language and format patterns will be chosen. Allocation of adequate screen space is a design or development issue, so answer B is not correct. Not allowing offensive icons and preventing slang and obscure phrases from being part of the application are research efforts, so answers D and E are also not correct.

Question 10

When developing localized versions of an application, which of the following statements are correct? (Choose two.)

  1. The selected database management system has a major impact on developing localized versions.

  2. Efforts to develop localized versions should begin only after the entire application has been developed and implemented.

  3. To avoid having an application that won't work in some locales, knowing which keyboards can be used is important.

  4. Applications that follow the localization model are easier and less expensive to maintain and are usually more stable.

  5. One advantage of localization is that it converts all screen flow to be left-to-right and top-to-bottom.

The correct answers are C and D. The choice of a DBMS should be not be a localization issue, so answer A is not correct. Localization efforts should begin in the requirements-gathering phase and continue to be done in parallel with the system development phases, so answer B is not true. Localization must take into account that some locales do not follow left-to-right display rules, so answer E is not correct.

Need To Know More?

Microsoft Global Software Development Site (http://www.microsoft.com/globaldev/). Provides extensive reference material and a number of articles dealing with developing world-ready software.

ftp://ftp.microsoft.com/developr/msdn/newup/
glossary/
. Individual glossaries for all Microsoft localized products are available for download.

MSDN Online Certified for Windows Program (http://msdn.microsoft.com/library/en-us/vsent7/html/vxconDesigningAccessible
Applications.asp
). For more information on designing accessible applications.

http://msdn.microsoft.com/certification/
default.asp
. For more information on the Certified for Windows program.

For more information about usage scenarios, search online for "usage scenarios" in MSDN Library Visual Studio 6.0.

Valacich, Joseph S., Joey F. George II, and Jeffery A. Hoffer III. Essentials of Systems Analysis and Design. Upper Saddle River, NJ: Prentice Hall, 2000.

Cooper, Alan and Paul Saffo. The Inmates Are Running the Asylum. Indianapolis, IN: Sams, 1999.

Symmonds, Nick. Internationalization and Localization Using Microsoft .NET. Berkeley, CA: Apress, 2002.

Kaplan, Michael K. Internationalization with Visual Basic. Indianapolis, IN: Sams, 2000.

800 East 96th Street, Indianapolis, Indiana 46240

sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |