Non-Functional requirements also include the product's intended operating environment and any maintainability, portability and security issues. Non-Functional requirements also include cultural and political issues as well as legal requirements that the software must conform to. It's important to point out that various sources, such as books and web sites, describe the different types of software requirements using other categories, often with contradictory terminology.
The important part, however, is not which category the requirements fall into, but that all the requirements in the business process have been identified and documented. So, now that we know what types of information we should be collecting, let's take a look at the characteristics of good requirements.
Good requirements have the following attributes. They are:. Looking at the above list, it's obvious that quality and accuracy are extremely important. One way to assure quality is to create a single checkpoint that each requirement must pass through. Thus, a single person or a group of people must eventually individually approve every requirement no matter where it originated.
Having a single quality checkpoint is especially important in large or complex projects. In addition, it's vital to make sure that the requirements are not too general, and that they are comprehensive and completely clear.
Keep in mind that the person collecting the requirements might not always be the same person who will be writing the actual code. It's important that you set up meetings with these people and interview them in order to extract the information. This, of course, is not always an easy task, depending on the people involved and how well they can communicate about what they do and how they do it.
So, now we know what information we are looking for and we know where to get it. The next items we'll discuss are the various methodologies for collecting requirements. These techniques include cards, simple requirement lists, matrices and templates, as well as complex software programs for requirements management. Often, a combination of techniques works the best, since each method has strengths and weaknesses.
One methodology for collecting requirements is to write each requirement on a separate 5" x 7" index card. Using these cards is an excellent way to begin the requirements collection process, and the cards have some other advantages, as well. They are a fast and easy way to group, reorganize and discard ideas. Additionally, they can easily be sorted and distributed among different people or groups. Using the requirement, identify the Class by finding the noun in the statement.
The nouns usually indicate the classes in the system. The Responsibility is anything the class knows or does, and can usually be identified by the verb in the requirement statement.
The Collaboration occurs when the class needs information it doesn't have - it describes the interaction between other classes and objects. This involves the customer not the programmer writing a short, simple story on each card. Each card should hold approximately one week of programming work for a single programmer.
Finally, Volere Snow Cards are cards that are preprinted with a variety of information about each requirement see Figure 1. See the sidebar for web site addresses to obtain information about each of these processes.
Another technique for collecting requirements involves simply keeping a list of requirements. As this list grows, it is grouped into logical elements from the business domain. For example, you may have requirements that fall into the following categories: customers, products and billing. Once this list has been compiled, the next step often is to create a Requirements Trace Matrix.
This matrix simply takes the list of requirements, grouped by category, and puts them into a matrix that has other information see Figure 2.
One effective technique is to store this information on a system that can easily be shared and modified by each team member. Finally, a third methodology involves using a predefined template containing various groups of information about the project.
These templates are extremely useful, since they insure that all the necessary information has been gathered and that nothing has been overlooked. Two such templates are the Vision and Scope Document and the Volere Specification see sidebar for web links. These templates contain extensive information about the project - the actual requirements are just a small portion. In addition to sections for various types of requirements, they also include items such as the vision of the solution, the scope of the project, the product constraints, success factors and more.
If the list of requirements is large, it's useful to create separate documents, perhaps using requirement trace matrices, for the requirement portion of the template and reference these external documents within the template. As we've seen, there are many different ways to collect requirements.
The important thing is to find a technique that works well for you. So, now that we have a complete organized list of requirements, I guess we're ready to start coding, right? Whoa, not so fast! The requirements really just give us an outline of what we are trying to build. Use Cases are the next step in the design process. Use cases integrate the requirements into a comprehensive package that describes the interaction of the user with the system.
So, what exactly are Use Cases, and how do we build them? Often, the actor is simply another computer system or other hardware. The actors are not part of the system, but are outside of it. They are the ones interacting WITH the system.
Welcome to the Reimagined HHS. Creating Cross-Channel Experiences. User-Centered Design Process Map. Creating a User-Centered Approach in Government. Related Resources Creating Wireframes. Defensive Design for the Web: How to improve error messages, help, forms, and other Related Categories Interaction Design. Use Cases. Stay Connected. Who is using the website What the user want to do The user's goal The steps the user takes to accomplish a particular task How the website should respond to an action.
Implementation-specific language Details about the user interfaces or screens. On Wednesdays, the housekeeper reports to the laundry room. She sorts the laundry that is there. Then she washes each load. Free Download. Named by noun. Actor plays a role in the business Similar to the concept of user, but a user can play different roles For example: A prof.
Actor has a responsibility toward the system inputs , and Actor has expectations from the system outputs. Do something Each Actor must be linked to a use case, while some use cases may not be linked to actors. Communication Link The participation of an actor in a use case is shown by connecting an actor to a use case by a solid link. Actors may be connected to use cases by associations, indicating that the actor and the use case communicate with one another using messages.
Boundary of system The system boundary is potentially the entire system as defined in the requirements document.
For large and complex systems, each module may be the system boundary. For example, for an ERP system for an organization, each of the modules such as personnel, payroll, accounting, etc. The entire system can span all of these modules depicting the overall system boundary.
Use Case Relationship Visual Representation Extends Indicates that an "Invalid Password" use case may include subject to specified in the extension the behavior specified by base use case "Login Account".
Depict with a directed arrow having a dotted line. The tip of arrowhead points to the base use case and the child use case is connected at the base of the arrow. A use case includes the functionality described in another use case as a part of its business process flow. A uses relationship from base use case to child use case indicates that an instance of the base use case will include the behavior as specified in the child use case.
An include relationship is depicted with a directed arrow having a dotted line. The tip of arrowhead points to the child use case and the parent use case connected at the base of the arrow.
Generalization A generalization relationship is a parent-child relationship between use cases. The child use case is an enhancement of the parent use case. Generalization is shown as a directed arrow with a triangle arrowhead.
The child use case is connected at the base of the arrow. The tip of the arrow is connected to the parent use case. Turn every software project into a successful one. Try Visual Paradigm Free. All rights reserved.
Legal Privacy statement.
0コメント