Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

FIT5136

Software Engineering - PAPER 1

Question 1

After graduation, three IT students decided to start a software company called SmartComputing. You had just been hired as a software engineer by the founders.

On your first day in the new job you asked the Chief Technology Officer (CTO) about SmartComputing’s software engineering process. She replied:

We follow the Unified Process to make sure we develop the right product in the right     way. The process consists of five distinct workflows. We complete all the tasks and confirm all the documentations in each workflow before we move on to the next workflow.

The first workflow is the Requirements Workflow, where we brainstorm ideas about features that our customers will love to have.

The next workflow is the Analysis Workflow. This involves analysing the problem domain more  deeply  and  describing  the  requirements  in  the  kind  of  exacting  detail  that developers need. Typically, in this workflow we will produce conceptual class diagrams, detailed use case scenarios, interaction diagrams and statecharts.

Once the Analysis Workflow is completed, we begin the Design Workflow, where we refine the conceptual class diagram into something more concrete, producing a detailed class diagram.

The next workflow of the process is the Implementation Workflow. In this workflow, we write  the  code  to  implement  the  detailed  class  diagram  produced  in  the  previous workflow.

Finally, we will have the Test Workflow, where we test our program to ensure that the system works correctly.

Based on what you have learned in FIT5136, analyse and critique  the company’s software engineering process described above by the CTO.

Question 2

You then asked the CTO about the latest project the company is undertaking.  She mentioned that the project is to develop an on-line learning platform called Poodle 2 system for the university.

The first task you, as the software engineer, are assigned for Poodle 2 is the analysis of the functionality of adding students to the system:

An administrator is able to add a student enrolled in a unit. An administrator can also list the students added in the last 24 hours and also delete a student if it was added by mistake.

(a) Draw a UML use case diagram for this functionality.

(b)  On the next page is a detailed description of the normal scenario for the Add Student” use case, with no

exception conditions. Write three exception conditions, including reasonable actions to be taken.

Question 2 (cont.)

Use Case Name

Add Student

Scenario

Add a student identified by id

Trigger

An administrator selects the Add Student functionality

Brief description

An administrator  user wishes to  add a student to a  unit. The student  is identified by his/her id and the unit is identified by its unit code.

Actors

Administrator

Related use cases

List added students, remove the incorrectly added student


Question 3

The CTO provides more description about the Poodle 2 project below:

The university that we graduated from has a very bad on-line learning platform called Poodle. We were asked to improve and extend the current system. I think we were successful in getting the project because three of us were former students and we had used their system before. Based on my experience, I can confirm that the system is really bad and definitely needs improvements. We call this project Poodle 2.

Every user of Poodle 2 is identified by an id and a name. To use the system, every user will need a password to log in. In Poodle 2, administrators can create units. Each unit is identified by a unit code and a unit name. Teaching staff can create contents in units they teach and each teaching staff can teach up to four units. Students have access to the contents as long as they are enrolled in the unit. Every student can enrol in up to four units. An administrator can add a student to the unit if the student is officially enrolled in the unit. An administrator can also delete a student from the unit if the student is no longer enrolled.

Students are allowed to comment on units and contents in Poodle 2. Comments on a unit and comments on its contents can only be created and viewed by students currently enrolled in the unit and staff teaching the unit. Users given authorisation can post replies to a comment. A lecturer of a unit or an administrator can remove a comment if the comment is deemed inappropriate, irrelevant or not useful in general.

Based on the CTO’s description of the Poodle 2 project and the use case scenario in Question 2, you are tasked to produce an initial class diagram for the project.

(a)  Perform noun extractions and build a dictionary of abstractions for the system. Use it to decide on your

candidate classes by assessing each abstraction and considering whether it:

•    lies outside the problem boundary and may therefore be ignored,

•    is a candidate entity class, or

•    is likely to be a simple attribute of a class.

(b) Develop an initial UML class diagram for the system, with the relevant classes and attributes resulting

from your dictionary of abstractions.  Concentrate on modelling the problem domain rather than any boundary or control classes. Make sure you:

•    include appropriate attributes for the classes

•    describe  the  relationship  between  classes  using  generalization,  association,  aggregation  and composition (as appropriate)

•    indicate the multiplicity (cardinality) of the relationships properly.

•    DO NOT include responsibilities or operations. You do not have all the information at this point to do so.

Question 4

Based on the initial class diagram you have produced for Question 3 and the use case scenario in         Question 2, produce a sequence diagram to show the messages exchanged between objects needed to carry out the Add Student use case scenario.

Question 5

After some discussions inside the company, it was decided that the commenting feature should be enhanced to make it more useful. An informal description of the new feature was documented below.

“A user can create comments about any content in Poodle 2. The comment is publicly visible by default. However, the author of the comment can subsequently make the comment visible only to a group of users.

A comment can be reported by a user if she deems it to be inappropriate, irrelevant or not useful. Once reported, a comment can be deleted by a member of the teaching staff or  a  system  administrator.  An  accidentally  deleted  comment  can  be  subsequently restored by a member of the teaching staff or an administrator.

A comment can also be promoted by a member of the teaching staff if it is deemed to be highly informative, relevant or useful. A promoted comment cannot be reported, nor can it be deleted.

However, if the content itself is deleted, all comments associated with this content will be permanently deleted.”

Develop a UML statechart diagram as a precise representation of the above informal specification of the enhanced commenting feature. When there is ambiguity in the informal specification, clarify it by  stating your assumptions explicitly (separately from the statechart diagram).

Question 6

Having completed a few features with tight schedules, your talent had finally been recognised by the founders of SmartComputing with good recommendations from your team leader.

One week before the project deadline, the Chief Technical Officer (CTO) called your team leader into her office and showed him a piece of functionality implemented in the latest version of a competitor’s software, Noodle. The CTO said, “This is a feature we must have! Please ask the team to implement it by the end of the week so that we can demo the feature to the university.”

You were asked by your team leader to start designing it. After thinking for a couple of hours, you came to the conclusion that Poodle 2 was so different from Noodle that this feature simply didn’t make sense for Poodle 2. Moreover, it was not only difficult to implement, it would also make the system less reliable. You went back to the team leader to discuss these issues with him. The team leader then had a meeting with the CTO and explained your concerns to her.

After hearing the team leader’s explanation, the CTO was still adamant about including the feature in Poodle 2. To convince the team leader that it was easy to implement, she showed him the source code of Noodle,     which is free and open-source, and asked him to “just copy their code then you’re done!” The team leader     went ahead, followed her suggestions and completed the implementation on time for the demo.

What are the ethical and professional issues that arise with the behaviour of the CTO and the team leader in this situation? How would you evaluate their behaviours? In your answer, you must refer to the applicable parts of the Software Engineering code of ethics.

Question 7

The SmartSolutions software company had a contract with a transportation company, TransCo, to add a new component to their existing scheduling tool. The new component was to be a smart       reasoning component for recommending routes to drivers. After the first version was delivered,    TransCo decided that the new component would have to contain more features to allow maximum flexibility for users (“event 1”).

After incorporating these and the second version was delivered, SmartSolutions found out that the company producing the constraint solver library that it was using had gone broke, so it needed to  change the design to use a different library(“event 2”).

Then SmartSolutions realized its own analysts had misunderstood one of TransCo’s requirements, so they had to re-do some of the analysis (“event 3”).

Below is an empty” depiction of the Unified Process. Extend the figure to represent (roughly) the relative effort given to the different workflows during this project. Indicate on the x (time) axis     roughly when event 1”, “event 2” and “event 3” occurred.

 

Question 8

Suppose that you are a  software engineer working on a car  simulation  system. You are given the pseudocode for the drive method in the Driver class.

 

Question 8 (cont.)

Write a set of 10 test cases for glass box unit testing of the drive() method.

Test No and brief

description

instructions

Car

status

Car

speed

Expected

output/behaviour

1.

 

 

 

 

2.

 

 

 

 

3.

 

 

 

 

4.

 

 

 

 

5.

 

 

 

 

6.

 

 

 

 

7.

 

 

 

 

8.

 

 

 

 

9.

 

 

 

 

10.

 

 

 

 

Question 9

You are a software engineer working on an online shopping application. Web customers can browse items,   but has to register the first time they make a purchase. When making a purchase, the customer can go back at any time and view the items in their shopping basket. When they proceed to the “checkout” phase, the           system allows them the option of paying by credit card (which means the system has to connect to a credit    payment service), or by PayPal. A separate database system will store all the customer registration                 information.

Below are 3 of the requirements, written in English.  Each of these is not well-written (well-written requirements should be precise, unambiguous, complete and consistent.) For each

(i)  indicate whether this is a functional or non-functional requirement (1 mark) (ii)  re-write the requirement (2 marks)

(a) “When customers register they have to provide a password, which must be a strong’

one.”

(b) “The shopping website has to work on all the main web browsers.”

(c) “Customers will be able to search for items”