Requirements Analysis in UML

The Context

The aim is to obtain user requirements that can form the basis of the design for a software product.

The situation is that I have a friend called Nick. He has a shop that hires out DVDs of popular films but recently, business has become very bad because of internet competition.

He would like to start a web based business to download copies of these films to registered members.

He would like to call the new business Nick’s Flicks – believe it or not.

So he asked me to design a web application. He wants it to be usable from PCs as well as mobile devices. This sounds like a difficult task but with your help I can at least get started with the requirements.

So what does he want the application to do, exactly?


The Problem Statement

The business should provide general information that lets browsers see what videos are on offer. Then, if they like, they can register as members. This involves them completing a form and offering credit card details as proof of identity and as a payment method. They are then given a unique username and password with which they can login to borrow films. The site will be connected to an internet payment system run by Barclays Internet Bank and managed entirely by them.

Members can choose from a list of available titles or search for a specific title. When they find one of interest they can make the appropriate payment and download the film. The downloaded file will be protected by DRM so it cannot be copied. If they want to download a second film they will have to uninstall the first one. They can only have one film at a time. The content of the online shop will be maintained by the administrator who can add new films or delete existing ones depending on their popularity.

Some Questions

So here are some questions for you.

Users and Stakeholders

The users are the people who browse the website, the members and the administrator

The stakeholders are the users and the owner of the business and website and their internet bank and maybe the suppliers of the films. Also the developers themselves. Anyone with an interest in how the software performs.

Functional Requirements

For example, the requirements are that the system shall –

Any more?

Fit Criteria

The fit criteria are that the functions are completed successfully, so

Technical Requirements

How about the need to be usable on a PC or a mobile device? This needs further discussion but it is probably an operational non-functional requirement.

However if the requirement is specifically to use HTML5 and JavaScript only so that the web page is compatible with most devices, it is a technical constraint.

What about copyright protection? This is probably not a function of the borrowing system but if it is specified as such it is a normal functional requirement. How you do it might be a technical requirement.

Another technical requirement might be that it has to be hosted on Nick’s current server and use PHP as the server language.

Non-functional Requirements

For example –

Non members should not be able to download films. This is a security requirement. A fit criterion might be that there should be fewer than 1 illegal download per 1000 logins.

Similar for copying the films.

Films should be discovered quickly. This is a performance requirement

A fit criterion might be that a particular film of interest should always be located in less than 1 minute.

The web pages should be styled to suit the business owner’s preferences  This is a look and feel requirement. A fit criterion might be that it matches the existing business colours and style.

Finally, why are we doing this?

These are all going to be written up in a Volere template or similar.

Then they will be tested and developed in more detail with activity diagrams and use case diagrams to end  up with a set of textual representations of the use cases.

These will lead to a detailed set of software functional requirements which is the first attempt at a plan for implementation.

All we have to do then is identify the classes and objects to be used along with all their methods, and decide how they will implement these requirements.