Bachelor of Information Technology
B.Eng (Software Engineering)
School of Information and Communication Technology
2509ICT SOFTWARE ENGINEERING
Assignment 1: (Due Date: Thursday, the 14 of April 2011) Week 7/2011
The purpose of this assignment is to construct and document a Requirements Specification, Design, and
Development Process for a simple software problem. You should use, as far as possible, the Behaviour
Engineering method to solve the problem; you are also asked to produce UML diagrams to model the
problems. You should employ a component/object architecture to partition the system and integrate the
components. The following problem statement is provided. The assignment is to be conducted in the groups
that you have formed to do the workshop exercises. A Group may have 4, 5 or 6 students.
Your group is asked to develop a sales management system for the company “Happy Year”.
The system should be implemented in Java language, and it can run in Windows
environment with Java JSDK1.2 installed.
1. The system is operated by an administrator (=admin, here after) of the company.
2. The system manages the sales records as well as the inventory.
3. The admin can add new products into the system. To add a new product, the admin
needs to input the code, the name, the price, the stock and the description of the
4. The code is unique, that means you can’t have two products share the same code.
The product name and the price can’t be empty.
5. The admin can adjust the balance of a product in stock.
6. The admin can list the entire inventory.
7. The admin can change the description and the price of a product.
8. The admin can add new orders into the system. To add a new order, the admin
needs to input the name of the customer, delivery address and one or more order
items. An order item includes a product code and quantity of the product. There is
no limit of how many order items an order can have. When a new order is added
into the system, the system needs to generate a unique order id for the order
9. When an order is created, its status is new. When an order is new, the admin can
use the pay order function to change the status of an order from “new” to “ paid”.
10. When an order is in the status of “paid”, the admin can use the ship order function
to change the status of order from “paid” to “shipped”. However, when the admin
wants to ship an order, the system needs to check if there is enough stock for this
order. If there is not enough stock, it will display an error message; if there is
enough stock, the order status will be changed to “shipped” and the ordered items
will be deducted from the stock.
11. The admin can check details of each order and can list all orders.
To do this assignment, your group should treat the tutor as the client. If you find that there is
an unclear or uncompleted part of the requirements, please ask the tutor to clarify it.
However, you need to keep the records and formally document them in your report. If you
make any assumptions, you need also to document them in your report.
In your design and implementation be sure to model the appropriate start-up of the system.
The task required is to analyse, specify, design, an object-oriented (or component-
based) system that will satisfy the client’s needs. The system should satisfy all the
requirements stated above. You should strive to design and implement the system in
such a way that it is easy to maintain and may also be reused in other applications.
It is crucial that you carefully read the Guidance and Marking Scheme sections
and supply what is required in your report. No late assignments will be
accepted for any reason – managing risk (including lateness) is part of the
The emphasis of the assignment is upon the use of rigorous inspection to find faults in the products of the
various phases of development before the software is ever compiled.
1. At the outset of the assignment you should create a plan which documents in tabular form, when you
expect to complete each phase of the development process. This should include the time/date when
you expect to complete the development, verification and correction of the product produced in each
phase. You should also include the number of person hours that you expect to spend on each
activity. Later, when each phase is completed you should record the actual time taken and when the
task was actually completed. There should also be documentation which shows which team
members were responsible for each task. Include all this information at the front of your report.
2. Your report should contain an analysis of the original problem statement for any ambiguities or other
problems. Use behaviour trees and composition trees to identify these problems. Any assumptions
or interpretations made should be documented in a refined behaviour tree and in point-form, in a
3. Use behaviour trees and composition directly to formally document each functional requirement.
There should also be clear documented evidence of how each functional requirement traces back to
and satisfies each of the natural language requirements. Use a systematic notation for defining and
referencing traceability between the products of each phase of development. Each requirement
should be clear and unambiguous, complete and consistent.
4 An Integrated behaviour tree (IBT) that is created by integrating the behaviour trees for each
functional requirement should be included. Any problems discovered during the integration phase,
and on inspection of the IBT should be documented. Also include a integrated composition tree
5 Refine as necessary the IBT and ICT to create a design behaviour tree (DBT) and a DCT that may
used to guide the implementation of the system.
6 Project the behaviours of each component (CBT), Component Interface Diagram (CID) from the
design behaviour tree for use in implementing the behaviour of each component. Produce the
Component Integration Network (CIN). This also allows us to apply information-hiding principles in
order to hide the data structure representations associated with each reusable component.
7 Use UML use case diagram, class diagram and sequence diagram to model the high level behaviour,
and the detailed design of the system. You need to produce one use case diagram, one class
diagram and two sequence diagrams, which model the scenarios of input a new product and ship an
8. At least two people should be assigned to each phase and at least two, other people should validate
and/or verify the correctness of the product of each phase. Your report should document who is
responsible for the various phases (and components and classes) and the errors discovered in each
phase and what phase they were found in.
9. You should document the key problems that occurred in the current assignment together with your
plan for process improvement in the next assignment. This should include the formulation of
measurements that may be used to assess the effectiveness of your proposed improvements. You
should include actual effort and percentage results, for rework, planning, verification, analysis, and
design and any other measures you consider appropriate.
10. You should submit one completed report
For the MARKING SCHEME - see the following page.
MARKING SCHEME - Assignment 1
Total Marks = 100 (20%)
The following marking scheme will be used as a guide for marking this assignment. However the tutors
marking the assignment may use their discretion where appropriate to deviate from this scheme.
What is important to keep in mind when carrying out the assignment and preparing your report is that you
must use carefully documented evidence to demonstrate that you have systematically followed the process.
Simply submitting a correct program is by no means adequate. Your obligation is to demonstrate clearly to
others using objective evidence that indeed your program is correct. Marks will be given for how well you
have structured the various tasks in the assignment. Detailed requirements for each of the phases and a
marks-breakdown are provided below.
YOU MUST INCLUDE ON THE FRONT PAGE, YOUR GROUP NUMBER, A LIST OF ALL GROUP
MEMBERS (IN ALPHABETICAL ORDER) AND THEIR STUDENT NUMBERS, YOUR TUTOR'S NAME,
THE COURSE CODE, FAILURE TO MEET ALL THESE REQUIREMENTS WILL RESULT IN AN
IMMEDIATE LOSS OF 10 MARKS.
Try to keep your overall report as concise as possible by appropriate use of graphic and tabular
forms and other structuring devices.
MARKS WILL BE DEDUCTED FOR REPORTS THAT ARE TOO VERBOSE/LONG AND/OR POORLY
ORGANISED AND POORLY PRESENTED.
Project Planning and Documentation = 20
• Document the projected and actual individual and group effort for each phase and task as well as
the overall effort. In working out the earned value, projected cost and actual cost use a cost-rate of
$30 per hour per person. Based on these costs, work out a dollar cost per line for the project and the
overall cost of the project.
Requirements = 30
• Document your analysis of the original problem statement/requirements. Identify any problems found
and any assumptions made
• Include requirements traces and all the requirements behaviour trees (RBTs).
• Include a UML use case diagram.
• Document any defects found during requirements translation
Specification = 10
• Integrate the requirements to produce a design behaviour tree (DBT) and documents any defects
found during integration. Also produce a DCT
• Inspect the DBT and DCT for any defects and document these defects.
Design = 30
• Refine the DBT and the DCT if possible.
• Produce CBTs and CIDs (Component Interface Diagram) for each component (object).
• Produce a CIN (Component Integration Network) for all the components (objects).
• Provide the UML class diagram and at least two UML sequence diagrams
Error/Defect Analysis = 10
• Your error/defect analysis should document what kinds of errors were found (design error, etc), and
in what verification phase (implementation verification, testing phase, etc) they were discovered.
This measures the effectiveness of your verification procedures. You should also include a measure
of how many errors were found after the first compile of your program and by the independent
• Use an appropriate table to document this information
You may use following tables as templates for your project management.
Task Plan Actual
# Task Name Student Planed Cumulative Finished Time Cumulative Finished Date
Time Time Date Time
1 Project plan Smith 2 Hours 2 Hours 17/03/10 2.5 2.5 18/3/10
Mark 3 Hours 3 Hours 17/03/10 3 3 17/3/10
Task 5 Hours 5 Hours 17/03/10 5.5 5.5 18/3/10
2 Documentation Smith 3 Hours 5 Hours 21/03/10 2 4.5 21/3/10
Anna 2 Hours 2 Hours 20/03/10 3 3 21/03/10
Task 5 Hours 10 Hours 5 10.5
3 Draw Behavior
Project Working Load Summary
Plan (hours) Actual (hours)
Total time 100 105
Average time per 20 21
Smith 20 25
Anna 20 15
Mark 20 20
Joe 15 18
Tom 25 27
Please note that students contributing less than half of the average hours to the project will result point
deduction. The formula is as:
Let H be the average working hours of the group, S be the mark of the group, and h is the working hour of a
particular student. If 2xh<H, the mark for that student will be s:
s = 2 x S x h / H. For example, if the average working hours is 20, the mark for the group is 80 and a
particular student only spend 5 hours on this project, then the mark for that student will be:
s = 2 x 80 x 5 / 20 = 40.
A student who contributes more than half of the average working hours on this project will receive the full