Sunteți pe pagina 1din 4

Curtin University Department of Computing

Software Engineering 110 (8933)


2014, semester 1

Assignment
Due: Week 11 Monday 12 May, 12:00 noon.

[Originally 5 May.]

Weight: 20% of the unit mark.

Introduction
Theres a lot of information in this section, some implied. Be prepared to read it several times!
Your company, US Robotics, aims to design and sell a range of different robots for
use in homes and businesses. US Robotics needs a software system to keep track of
everything it does. In particular, this includes:
Research and development of new technology.
Production and marketing of robots.
The company employs teams of researchers. Researchers work on projects to create
new models of robots. Your software must allow researchers to create new projects,
choosing a unique codename to identify the project. Researchers must then be able to
periodically upload design specifications (documents) and performance data (spreadsheets) to be recorded as part of a project. When they do this, researchers should
also be asked to update the projects status, which can be (1) conception, (2) experimental, (3) development and (4) mature. It is expected that a project will
progress through each of these stages, from 1 to 4, over a period of months or years
(i.e. not all in one go). Some projects may also never progress beyond a particular
stage. All this information is kept in an external research database.
Projects that reach the mature stage can go on to become products to be sold. The
system helps co-ordinate this decision (since the people involved may be in remote
locations), but the person who initiates it is the companys director of marketing.
The researchers are also involved, along with the director of manufacturing. All
people involved must be logged into the system.
It is assumed that the researchers and directors have previously communicated, so
they have all the required information at hand. The director of marketing selects
one of the mature projects, proposes a model name (to replace the codename), and
proposes a price per robot and a target for the first year of sales (i.e. the number of
robots the company should aim to sell). Meanwhile, the director of manufacturing
provides estimates of the cost to make each robot, and the maximum number of robots
the company can make per month.
Page 1 of 4

SE 110

2014, semester 1

The system then displays all this information to all parties the researchers and
directors who then indicate their approval. Finally, a new product record is added
to the products database (separate from the research database).
Employees working in marketing or manufacturing are able to add relevant data to
the system as time goes on. For marketing, this means sales data the number of
robots sold in a given month. For manufacturing, this means production data the
number of robots produced in a given month. In both cases an employee must specify
the model in question, the relevant year and month, and an integer (either the sales
figure or the production figure). Both figures are kept in the products database.
The director of manufacturing marketing* is also able to update the price per robot,
and has the ability to discontinue a model. When a model is discontinued, this is
recorded in the products database and the director of manufacturing is notified. No
further production figures for discontinued models are allowed to be added.
[* Corrected on 2014-04-24.]

Your Tasks
As you are aware, your assignment mark is determined in part by your practical
work (as detailed in the unit outline). Therefore, the practical worksheet signoffs are
considered part of the assignment. You do not need to submit your practical work
simply continue to have it signed off.
The other part of the assignment is described here. Start as soon as possible, and keep
at it. If you need clarification, the ask the lecturer good, specific questions, and ask
them early.

Task I: Requirements
Your first task is as follows:
(a) Determine all the actors involved in the system.
(b) Determine all the user stories.
(What does all mean? Your set of actors and user stories should cover everything described in the previous section, and nothing else.)
(c) Develop a complete use case for the approval process for new products.
(d) Pick three other user stories, substantively different from each other, and develop each one into a complete use case.
(e) For each of your four use cases, come up with rough plan for testing that functionality. In a paragraph of plain English, explain how you would test whether
the final system correctly implements the use case.
(Were not after formal test cases for this part.)
Page 2 of 4

SE 110

2014, semester 1

Task II: Testing


Development of the system has moved on, as planned, and your team is now busy
designing submodules and test cases.
Your team has identified the need for a submodule for each of the following tasks:
Creating a new research project with a given codename. Codenames can be
any non-empty string, but they must be unique. No two projects in the research
database can have the same codename, even if the case (lower or upper) is different.
Updating the status of a research project, given its codename. The codename
and status are kept in the research database. The status cannot be changed
backwards (e.g. from mature (4) to development (3)), but it can skip steps
(e.g. from experimentation (2) to mature (4)).
Determining whether the monthly production of a given model of robot is sufficient to meet the yearly sales target.
In each case, if an attempt is made to make an invalid change, nothing happens.
These submodules will take some of their information from the research and products
databases. To ensure test repeatability, your team has created extra submodules called
createFakeResearchDB and createFakeProductsDB, designed to help set up some test
cases. These have no imports or exports, but simply (and temporarily) replace either
of the real databases with a fake, empty one.
Assume there are extra submodules to add/retrieve data to/from the fake databases,
for the purpose of (1) providing test inputs, and (2) checking database outputs;
e.g. addResearchProject and setMonthlyProduction. These have imports, exports,
database inputs and/or database outputs as needed.
Thus, your second task is as follows:
(a) Provide a partial design of each of the three production code submodules. You
do not need to provide algorithms. For each submodule, state its name, its imports (names and datatypes) and exports (where applicable), and its database
inputs and outputs. Also describe briefly what the submodule does with its
imports and inputs, and what it gives back in its export and outputs.
(b) Design test cases for each production code submodule, using equivalence partitioning.
For simplicity, assume the databases contain only valid data.

[Updated on 2014-04-24.]

(c) Determine what set of additional submodules e.g. addResearchProject you


will need in order to add test inputs to the fake databases. Provide their names,
imports, exports, inputs and outputs (whichever are applicable), and a short
description.
(d) Implement your test cases using JUnit (using your additional submodules as
appropriate).
Page 3 of 4

SE 110

2014, semester 1

This goes a little above and beyond what youve already done. You have some flexibility in how you design the various submodules use it wisely!
The methods createFakeResearchDB, etc. are not provided, nor is the production
code itself, in either source or compiled form. Thus, you wont be able to compile
and run your test cases, unless you choose to create dummy versions of the required
methods. In any case, you must still write good quality test code!

Submission
Prepare a document containing your complete solutions to the above tasks, including
all answers, discussion and source code. Your work must be neatly presented and
easy to read. Include your name and student ID!
Submit your document electronically to the Assignment area on Blackboard, in one
of the following formats: .pdf, .odt, .doc or .docx.
If you cant submit to Blackboard, email your work to david.cooper@curtin.edu.au
instead (with the subject SE110 Assignment), but do so before the deadline.

Mark Allocation
Here is a rough breakdown of how marks will be awarded. The percentages are of
the total possible assignment mark:

30% Use cases.


20% Other parts of Task I.
30% Test design (Task II).
20% Test code (Task II).
10% for each practical signoff mark of zero (pro-rata for fractional marks;
e.g. 7.5% for each signoff mark of 41 ).

Academic Misconduct Plagiarism and Collusion


Copying material (from other students, websites or other sources) and presenting it as
your own work is plagiarism. Even with your own modifications, it is still plagiarism.
Exchanging assignment solutions, or parts thereof, with other students is collusion.
Plagiarism and collusion are both forms of academic misconduct and may lead to a
grade of ANN (Result Annulled Due to Academic Misconduct) being awarded for the
unit. Serious or repeated offences may result in termination or expulsion.

End of Assignment
Page 4 of 4

S-ar putea să vă placă și