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 There’s 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 (spread- sheets) to be recorded as part of a project. When they do this, researchers should also be asked to update the project’s status, which can be (1) “conception”, (2) “ex- perimental”, (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 company’s “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

SE110 2014s1 Assignment

Embed Size (px)

Citation preview

  • Curtin University Department of Computing

    Software Engineering 110 (8933)

    2014, semester 1

    AssignmentDue: 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 foruse in homes and businesses. US Robotics needs a software system to keep track ofeverything 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 createnew 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 toperiodically upload design specifications (documents) and performance data (spread-sheets) to be recorded as part of a project. When they do this, researchers shouldalso be asked to update the projects status, which can be (1) conception, (2) ex-perimental, (3) development and (4) mature. It is expected that a project willprogress 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 particularstage. 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. Thesystem helps co-ordinate this decision (since the people involved may be in remotelocations), but the person who initiates it is the companys director of marketing.The researchers are also involved, along with the director of manufacturing. Allpeople involved must be logged into the system.

    It is assumed that the researchers and directors have previously communicated, sothey have all the required information at hand. The director of marketing selectsone of the mature projects, proposes a model name (to replace the codename), andproposes a price per robot and a target for the first year of sales (i.e. the number ofrobots the company should aim to sell). Meanwhile, the director of manufacturingprovides estimates of the cost to make each robot, and the maximum number of robotsthe 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 anddirectors who then indicate their approval. Finally, a new product record is addedto the products database (separate from the research database).

    Employees working in marketing or manufacturing are able to add relevant data tothe system as time goes on. For marketing, this means sales data the number ofrobots sold in a given month. For manufacturing, this means production data thenumber of robots produced in a given month. In both cases an employee must specifythe model in question, the relevant year and month, and an integer (either the salesfigure 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 isrecorded in the products database and the director of manufacturing is notified. Nofurther 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 practicalwork (as detailed in the unit outline). Therefore, the practical worksheet signoffs areconsidered 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 keepat it. If you need clarification, the ask the lecturer good, specific questions, and askthem 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 every-thing 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 de-velop each one into a complete use case.

    (e) For each of your four use cases, come up with rough plan for testing that func-tionality. In a paragraph of plain English, explain how you would test whetherthe 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 busydesigning 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 beany non-empty string, but they must be unique. No two projects in the researchdatabase can have the same codename, even if the case (lower or upper) is dif-ferent.

    Updating the status of a research project, given its codename. The codenameand status are kept in the research database. The status cannot be changedbackwards (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 suf-ficient 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 productsdatabases. To ensure test repeatability, your team has created extra submodules calledcreateFakeResearchDB and createFakeProductsDB, designed to help set up some testcases. These have no imports or exports, but simply (and temporarily) replace eitherof 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. Youdo not need to provide algorithms. For each submodule, state its name, its im-ports (names and datatypes) and exports (where applicable), and its databaseinputs and outputs. Also describe briefly what the submodule does with itsimports and inputs, and what it gives back in its export and outputs.

    (b) Design test cases for each production code submodule, using equivalence parti-tioning.

    For simplicity, assume the databases contain only valid data. [Updated on 2014-04-24.]

    (c) Determine what set of additional submodules e.g. addResearchProject youwill need in order to add test inputs to the fake databases. Provide their names,imports, exports, inputs and outputs (whichever are applicable), and a shortdescription.

    (d) Implement your test cases using JUnit (using your additional submodules asappropriate).

    Page 3 of 4

  • SE 110 2014, semester 1

    This goes a little above and beyond what youve already done. You have some flexi-bility in how you design the various submodules use it wisely!

    The methods createFakeResearchDB, etc. are not provided, nor is the productioncode itself, in either source or compiled form. Thus, you wont be able to compileand run your test cases, unless you choose to create dummy versions of the requiredmethods. In any case, you must still write good quality test code!

    Submission

    Prepare a document containing your complete solutions to the above tasks, includingall answers, discussion and source code. Your work must be neatly presented andeasy to read. Include your name and student ID!

    Submit your document electronically to the Assignment area on Blackboard, in oneof the following formats: .pdf, .odt, .doc or .docx.

    If you cant submit to Blackboard, email your work to [email protected] (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 ofthe 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 14 ).

    Academic Misconduct Plagiarism and Collusion

    Copying material (from other students, websites or other sources) and presenting it asyour 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 agrade of ANN (Result Annulled Due to Academic Misconduct) being awarded for theunit. Serious or repeated offences may result in termination or expulsion.

    End of Assignment

    Page 4 of 4