Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

You are asked to design a software package for the robotic floor sweeper (RFS).

ID: 3836131 • Letter: Y

Question

You are asked to design a software package
for the robotic floor sweeper (RFS). The RFS will
take commands from its user. The commands
include clean floor with various types such as
wooden floor, marble floor, carpeted floor); clean
floors on House xxx, House xxx may have number
of floors, floor types, floor size, floor shapes, etc..;
clean the floor in mm minutes. When the debris
collector is full, a software entity will notify the
user to take action. When the operating hours is
over the threshold, a software entity will ask the
owner for maintenance.


First and the most important is to understand the
requirements as stated above (customer’s mission
statement).

In the OOD&A course, you were taught to go
through steps as outlined below to design a
system. (For the interest of time allocated for final
exam, we skip some of the steps.)

Step1. Identify the actors and the software
entities for the system to be implemented.

Step2. Describe 3 to 5 Customer/Business Use
Cases.

Step 3.Derive User Interface from the Business Use Cases.
Draw a few user interface sketches.

Step 4.Draw a Use Case Diagram which consists of 3 to 5
use cases defined in Step 2.

Step 5. Create Classes from Actors and Entities.

Step 6. Write attributes and Operations (Methods) for
each Class. The Operations are derived from Activities in
the system.

Step 7. Draw communication diagrams for the Use cases
you defined in Step 2 and 4. This step is called Use Case
Realization.

Step 8. Now you are at System Design Stage to make
technology, and topology choices.

Step 9. Based on your choices in Step 8, you
may pick out network subsystem and
database subsystem. For example the
database can be imbedded, local, or remote.
Explain their pros and cons for your database
location choice.

Step 10. Based on the attributes you defined
in Step 6, sketch relational Tables (Database
Schema) to be used by the RFS.


Step 11. Based on your choice in Subsystem
design, draw a ServletsLayer Class Diagram
which contains the subsystem artifacts
required to support the customer/business
service realization and the user client.


There is another device designed to clean the
windows, it is called Robotic Window
Sweeper, RWS for short. In your opinion,
which part of the software package in RFS can
be reused in RWS? Which can not be reused?

From hardware point of view, the device may
have multi-legs so that it can go from one
piece of the window to another piece; or the
device can be a cleaning broom installed on a
drone with operator on the cleaning site.

Explanation / Answer

Step1. Identify the actors and the software entities for the system to be implemented.

As per the senarion given, i would like to break the whole application or solution into MVC ( Model view Controller ) architecture and break the whole application into three part and they are as following

1. View :
   View is responsible for providing input for the system and will be doing the follwing task
   1. Intiating the action called clean floor.
   2. Selecting the particular House on which clear floor action needs to be happened.

2. controller :

   1. Controller will be resposbile for controlling the task instiated through UI or view.
   2. Controller will maintains the information like actor who is going to do the task, which type of task is being done by actor.
   somethimes called registration of each entity which isn responsible for completing the task.
   3. controller will be responsible for notifying the message to View or UI to take furhter action where the maintainence would be   required.
3. Model :
   1. Model part will be maintaiing serval models classes like house information like floor type,floor size, floor area etc.
  

Following entitites we would be having for the above application

1. RFSScreen.java
2. IActionController.java
3. IActor.java
4. ICommand.java
5. RFSActionController.java ( Implements IActionController.java )
6. RFSActor.java ( Implements IActor.java )
7. RFSCommand.java ( Implements ICommand.java )
8. RFSModel.java ( maintain all the House information. it would be like make with unique house number as key.)
9. RFSUitilities.java - ( All the supported method would be at vaialble in this class and controller will be using this class. these method are nothing but helper methods).

  
Step2. Describe 3 to 5 Customer/Business Use Cases.

Use case 1 : Intiate Clean sweep action for a specific house by user.
Use case 2 : Pause the clean sweep action at any point of time for a specific time like 30 min or 50 min.
Use case 3 : Reintitate the clean sweep action or task which is got paused for a specific time.
Use case 4 : Parmanent stop the clean sweep action execution at any point of time.
Use case 5 : When the operating hours is over the threshold, a software entity will ask the owner for maintenance.
   A notification should send back to user for fruther inputs.


Step 3.Derive User Interface from the Business Use Cases. Draw a few user interface sketches.

1. IActionController.java is interface to provide serval implementation or controller.

package chegg.datastructure;

public interface IActionController {

   public boolean registerClient();

   public void submitAction(IActor actor);

   public void notifyClient();

   public void pauseAction() throws InterruptedException;

   public void stopAction() throws InterruptedException;
}

2. ICommand.java

package chegg.datastructure;

public interface ICommand {
  
   public void execute();

}


3. IActor.java

package chegg.datastructure;

public interface IActor {

   public void buildCapacity(int timeThreshold);

   public void buildWork(ICommand command);

   public void doAction(ICommand command);
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at drjack9650@gmail.com
Chat Now And Get Quote