The assignments are based on the scenario presented in
Section 2 and 3 in this document.
If something is unclear about the system you shall make assumptions. All assumptions have to be motivated and documented.
When turning in each assignment, the previous solutions on the assignments shall be turned in as well. All the assignments shall have an introduction containing a short, but clear summary of the system that the assignment is based on.
All assignments shall be sent in by email to Ulf.Cederling@msi.vxu.se.
The assignments shall be written in Swedish or in English, and the implementation shall be done in C++.
The assignments are to be done in groups of two.
Kalle Pettersson from Petterssons Video and Games in Ronneby is a rapidly growing player in the video rental market. In order to save money during the start-up process of the company, Kalle chose not to buy a computerised video rental system. Instead he has relied on post-its and folders with customer information in order to keep track of rented movies. Obviously, this low-tech system won’t survive more than five customers a day. Therefore, Kalle needs a computerised video rental system. But, since money is scarce, Kalle has decided to use students for the development of his new system.
When a customer wants to rent a movie, it must be possible for Kalle to either find the customer in the system or to add a new customer (name, social security number, address, phone number, statistics about rental habits) to the system. There are several movies (VHS & DVD) and games (PS3, PS2, X-BOX, and GameCube) in the store and if a customer wants to know if one of them is available, it should be possible to perform a search for it. There can also be several copies of the same movie or game in the store so Kalle must be able to keep track of which one each customer has rented.
If new movies or games are bought, Kalle must be able to add them to the system. He must also be able to edit information (name, unique id, trivia, and price group) about them as they win awards or change price.
All items in the store are divided into price groups. There are three price groups, red (59 SEK), blue (49 SEK) and green (39 SEK) and those prices must be possible to update. In order to lure more customers to the shop, Kalle has the special offer “Rent Nine Movies, Get the Tenth for FREE!”. This offer should be handled automatically by the system.
When several items are rented, the total price should be listed, so that Kalle does not have to make this calculation on his own. It is also important that customer data can be updated if necessary.
It is also necessary that Kalle can keep track of which movies someone already rents and if a movie has not been returned. Therefore, he wants to list all movies that are rented and get them sorted by returning date so he knows which customers he has to start chasing.
Kalle also wants to be able to provide an extra service for the customers by giving them a monthly newsletter. He wants to specialize the newsletters so he will send out letters to different customers based on what type of movie they rent for the most. For example, if a customer mainly rents romantic movies she/he will get a newsletter with news about the latest romantic movies available in the store. Therefore, Kalle needs to be able to extract address lists to customers based on what types of movies they seem the most interested in. Available genres in Kalle’s store are Western, Action, Romance, Drama, and Horror.
Because of rules from the Data Inspection, Kalle has to remove customers if they request it. He also wants to be able to remove media items (games and movies) from the system, as they get old. Kalle does not care about the user interface of the system, it can be either graphical or text.
You shall write a requirement specification for the system that is to be developed. It shall contain both the functional and the non-functional requirements. The requirements shall be extracted from the system description that you have received.
In order to help you identify requirements you are to create
and document high-level use cases, these shall be turned in along with the
Each requirement shall at least contain the following information:
· Unique Id
All requirements shall be testable, consistent,
and unambiguous. Each requirement should only be found once in the
For more information about the requirement specification, see Part 2 in the book “Software Engineering” by Ian Sommerville.
For more information on high-level use cases, see chapter 6 in “Applying UML and Patterns” by Craig Larman.
You need to create a project plan supporting
the management of the project. It is recommended that you start looking at the
planning in parallel with the requirements, so you have some idea of what you
are planning for.
The project plan shall contain:
· An activity list with estimations (size, complexity, and time)
· A person responsible for each task
· A Gantt-chart showing the plan for the project
· A risk analysis.
For more information
about the project plan, see Part 1 and 6 in the book “Software Engineering” by
Based on the system description in section 3 and the requirements specification you created in the previous assignment, you are to perform an analysis of the video rental system.
The following tasks should be documented:
· Fully dressed use cases
· Domain model
All produced documentation should be turned in, including the documentation from the previous assignment.
For information on the different tasks, see the following chapters in “Applying UML and Patterns” by C. Larman:
· Use cases and system sequence diagrams, chapter 6 and 10
· Domain models, chapter 9
· Glossary, chapter 7, subsection 7.8.
Based on the earlier planning and analysis of the video rental system, create a design for the system. You shall perform and document the following tasks:
· Write operation contracts
· Create interaction diagrams (either sequence or collaboration diagrams)
· Create class diagrams.
For more information on creating the diagrams, see the following chapters in “Applying UML and Patterns” by C. Larman:
· Operation contracts, chapter 11
· Sequence diagrams, chapter 15
· Class diagrams, chapters 16, 17 and 18.
Implement the system based on the analysis and design that you created in the two previous steps.
In this assignment you are to turn in the source code for the video rental system.
A text file that describes how the program is compiled and executed has to be included as well as instructions on how it is to be used. All functionality listed in the requirements specification shall be implemented.
For more information, see the following chapters in “Applying UML and Patterns” by C. Larman:
· Implementation and realization of design, chapters 17, 18 and 20.
the last assignment you shall write a test specification for the system. It is
important that there are test cases for each of the requirements of the system,
since when you use the test specification you verify that the requirements are
The test cases shall at least contain the following information:
· Unique Id
· Requirement/s being tested
· Test sequence
· Expected outcome.
shall use the test specification on the system you have implemented and also
turn in a test report of the results from the test.
For more information about testing, see Part 5 in the book “Software Engineering” by Ian Sommerville.