Use-case analysis

Last updated

Use case analysis is a technique used to identify the requirements of a system (normally associated with software/process design) and the information used to both define processes used and classes (which are a collection of actors and processes) which will be used both in the use case diagram and the overall use case in the development or redesign of a software system or program. The use case analysis is the foundation upon which the system will be built. [1]

Contents

Background

A use case analysis is the primary form for gathering usage requirements for a new software program or task to be completed. The primary goals of a use case analysis are: designing a system from the user's perspective, communicating system behavior in the user's terms, and specifying all externally visible behaviors. Another set of goals for a use case analysis is to clearly communicate: system requirements, how the system is to be used, the roles the user plays in the system, what the system does in response to the user stimulus, what the user receives from the system, and what value the customer or user will receive from the system. [2]

Walkthrough

This walkthrough will set out one example of how to go about a use case analysis. There are many variations of how to develop a use case analysis, and finding the right method can take time. [3]

Realization

A Use-case realization describes how a particular use case was realized within the design model, in terms of collaborating objects. [4]

The Realization step sets up the framework within which an emerging system is analysis. This is where the first, most general, outline of what is required by the system is documented. This entails rough breakdown of the processes, actors, and data required for the system. These are what comprise the classes of the analysis.[ citation needed ]

Description

Once the general outline is completed, the next step is to describe the behavior of the system visible to the potential user of the system. While internal behaviors can be described as well, this is more related to designing a system rather than gathering requirements for it. The benefit of briefly describing internal behaviors would be to clarify with potential users that the system is not missing a vital component externally due to it being completed internally. The overall goal of this step is to provide just enough detail to understand what classes are required for the system. Too much detail can make it difficult to change the system later on. [3]

Analysis Classes

This step narrows down the class list into those classes that are capable of performing the behavior needed to make the system function successfully. If no classes yet exist for a system, they must be created before this step can be completed. Classes can be created in many ways from many sources. A few examples are: previous—but similar—systems, enterprise models, and data mining. Once classes are created and narrowed down, relationships must be developed between classes, now called analysis classes, which model the task of the system. [3]

Responsibilities

For each analysis class identified in the previous step, the responsibilities of the class must be detailed clearly. This will ensure that an individual class has a task to complete for which no other class in the system will also perform. The responsibilities of the different classes should not overlap. [3]

Associations

After detailing the responsibilities of each analysis class, the relationships between the classes must be clarified next. There are four parts of this step:
1. Identify the classes to be used.
2. Identify possible relationships between classes.
3. For those with relationships, describe the nature of the relationship.
4. If applicable, identify the multiplicity of the relationship, meaning determine how many of the first class correspond to one object in the second class of the relationship. [3]

View figure 1 for an example of associations between classes:

Use Cases Analysis Relationships using Video Store example Use Case Analysis Relationships1.JPG
Use Cases Analysis Relationships using Video Store example

In this diagram, each box is a class and the lines linking them show which ones have relationships between them.

Behavior

Once the relationships between classes are understood, the next process is to detail the behavior the classes will exhibit and how they will interact in order to complete the system. This entails determining how the classes communicate and send messages along the timeline of the system process being developed. This is derived from the responsibilities of the classes previously identified. Determining what class the message goes to follows the associations set up in the previous step. [3]

Describe Attributes

Throughout the use case analysis so far, attributes of the classes and objects may have been discovered that are necessary for the classes to complete their tasks. These could be in the form of data variables or functions. Some of these attributes can be derived from the previous steps, while others are general assumptions from common knowledge (e.g. all operational modern-day computers have an operating system, a processor, and input/output devices). [3]

View figure 2 for an example on described attributes following the figure 1 diagram:

Use Case Analysis Description of Video Store example Use Case Analysis Described1.JPG
Use Case Analysis Description of Video Store example

The attributes described in the diagram at this point are generally the items that become the data needed for the system/process to function properly.

Mechanisms

The final step is to identify components that provide a solution to the problem domain. This would include databases to hold the data, security, exception handling, and communication between processes or programs. [3]

Related Research Articles

Unified Modeling Language Developed by Grady Booch, Ivar Jacobson and James Rumbaugh.

The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.

Data model An abstract model that organizes elements of data and standardizes how they relate to one another and to real world entities.

A data model is an abstract model that organizes elements of data and standardizes how they relate to one another and to the properties of real-world entities. For instance, a data model may specify that the data element representing a car be composed of a number of other elements which, in turn, represent the color and size of the car and define its owner.

In software and systems engineering, a use case is a list of actions or event steps typically defining the interactions between a role and a system to achieve a goal. The actor can be a human or other external system. In systems engineering, use cases are used at a higher level than within software engineering, often representing missions or stakeholder goals. The detailed requirements may then be captured in the Systems Modeling Language (SysML) or as contractual statements.

Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.

User-centered design (UCD) or user-driven development (UDD) is a framework of processes in which usability goals, user characteristics, environment, tasks and workflow of a product, service or process are given extensive attention at each stage of the design process. User-centered design can be characterized as a multi-stage problem-solving process that not only requires designers to analyze and envision the way users are likely to consume a product, but also to validate their assumptions with regard to the user behavior in real world tests. These tests are conducted with/without actual users during each stage of the process from requirements, pre-production models and post production, completing a circle of proof back to and ensuring that "development proceeds with the user as the center of focus." Such testing is necessary as it is often very difficult for the designers of a product to understand intuitively what a first-time user of their design experiences, and what each user's learning curve may look like. User-centered design is common in the design industry and when used is considered to lead to increased product usefulness and usability.

Requirements analysis Engineering process

In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the various stakeholders, analyzing, documenting, validating and managing software or system requirements.

Systems development life cycle Systems engineering term

In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life-cycle, is a process for planning, creating, testing, and deploying a physical, a software or an information system. The systems development life cycle concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.

Structured Systems Analysis and Design Method (SSADM), originally released as methodology, is a systems approach to the analysis and design of information systems. SSADM was produced for the Central Computer and Telecommunications Agency, a UK government office concerned with the use of technology in government, from 1980 onwards.

Data modeling (in software engineering) process of creating a data model for an information system by applying certain formal techniques

Data modeling in software engineering is the process of creating a data model for an information system by applying certain formal techniques.

Job analysis is a family of procedures to identify the content of a job in terms of activities involved and attributes or job requirements needed to perform the activities. Job analysis provides information of organizations which helps to determine which employees are best fit for specific jobs. Through job analysis, the analyst needs to understand what the important tasks of the job are, how they are carried out, and the necessary human qualities needed to complete the job successfully.

Business analysis is a research discipline of identifying business needs and determining solutions to business problems. Solutions often include a software-systems development component, but may also consist of process improvement, organizational change or strategic planning and policy development. The person who carries out this task is called a business analyst or BA.

A conceptual model is a representation of a system, made of the composition of concepts which are used to help people know, understand, or simulate a subject the model represents. It is also a set of concepts. In contrast, physical models are physical objects; for example, a toy model which may be assembled, and may be made to work like the object it represents.

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.

Glossary of Unified Modeling Language (UML) terms provides a compilation of terminology used in all versions of UML, along with their definitions. Any notable distinctions that may exist between versions are noted with the individual entry it applies to.

Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design.

Metadata modeling

Metadata modeling is a type of metamodeling used in software engineering and systems engineering for the analysis and construction of models applicable to and useful for some predefined class of problems.

Problem analysis or the problem frames approach is an approach to software requirements analysis. It was developed by British software consultant Michael A. Jackson in the 1990s.

View model

A view model or viewpoints framework in systems engineering, software engineering, and enterprise engineering is a framework which defines a coherent set of views to be used in the construction of a system architecture, software architecture, or enterprise architecture. A view is a representation of a whole system from the perspective of a related set of concerns.

Responsibility-driven design is a design technique in object-oriented programming, which improves encapsulation by using the client–server model. It focuses on the contract by considering the actions that the object is responsible for and the information that the object shares. It was proposed by Rebecca Wirfs-Brock and Brian Wilkerson.

Use case diagram UML use case diagram

A use case diagram at its simplest is a representation of a user's interaction with the system that shows the relationship between the user and the different use cases in which the user is involved. A use case diagram can identify the different types of users of a system and the different use cases and will often be accompanied by other types of diagrams as well. The use cases are represented by either circles or ellipses.

References

  1. Taylor, Art. "Analysis, Design, and Development Techniques with J2EE." InformIT. 6 June 2003. 22 Mar. 2008 <http://www.informit.com/articles/article.aspx?p=31942&seqNum=5>
  2. Shacklette, Mark. 22 Mar. 2008 <http://people.cs.uchicago.edu/~mark/51023/Ucstyleg.html>
  3. 1 2 3 4 5 6 7 8 Getting From Use Cases to Code, Part 1: Use-Case Analysis by Gary Evans, IBM, 2004
  4. Performing use-case realizations by Ezequiel Cuellar