Introduction
Software engineering management is an important task when designing complex software systems. This is because the details of the systems will give a description of what needs to be done at each stage of the software development process. This paper will focus on the software development a courier service and how the scheduler works (Humphrey, 1989).
Question 1 a)
The hierarchical functions that will be included in the design of the system and scheduler will include:
- Enter the new job in the database. Record the new job in the database. This is where the clerk will enter the details of the new caller to the database.
- Invoke the scheduler to log the new job. The scheduler will then get the details of the new job. The details will have the job and what contact information will be required.
- The scheduler will invoke server to get the courier to work on this job. Server polls the smart-app in the couriers’ phones. For this function to take place there will be the communication between the server system and the scheduler. The server system will now start polling the smart-apps in the couriers’ phones to check the status of the courier. This will allow the server get the courier to work on the task.
- Server system contacts the GPS system and gets the location details of each of the courier. This is so that the calculation of the distance and time it will take to finish the task.
- Courier search optimization process. This is where the server system will get the best courier to work on the job. Optimization of the search will be necessary if the server system get more than one courier who will likely finish the earliest. Optimization will be done to get the best candidate for the job. This is based on the previous tasks.
- Courier selection. The system server will select the optimal courier and sends the details of the task. By this, the process will be closed.
b)
- Enter new job to the database
- Enter the client information
- Poll the GPS and get the distance to the client
Milestone: A new job shall have been entered to the system
- Logging the new job by scheduler
- Get the time that the client called and the time the parcel will be required for collection
- Get the details of the contact point of the new parcel.
- Get the destination of the parcel. This is achieved through getting the GPS location of the destination stated by the client
- Get the reception detail of the parcel
Milestone: The details of the new job recorded shall have been obtained.
- Scheduler invokes the server to get the location details of the couriers in the field
- Server polls the smart apps in the phones of the couriers
- Server get the location details of the courier
- Server contact the GPS system
- Server retrieve the location details of the courier from the GPS system
- Server calculates the actual location of the courier
Milestone: The distance of the couriers shall have been obtained
- Optimize the courier location results
- Server will calculate the distance that the couriers are yet to cover
- Server will get the courier with the lowest time possible to finish the current task
- Server system optimizes the search if there is more than one courier with short time
- Courier selection and assigning
- Get the best courier to handle the task
- Contact the courier that has been selected
- Pass information about the new task to the selected courier
Milestone: The task shall have been assigned to the new courier.
Question 2 a)
The plan can be achieved successfully using the waterfall model. For successful accomplishment of the plan, the first step would be to check the requirements of the plan. This is where the requirements of the server, the phone app-server communication, and the GPS-server communication requirements will be analyzed. In this stage, the requirements for the communication of the different modules will be assessed and analyzed. The different contacts of the modules like the scheduler and the server will be assessed so that the requirements for effective communication will be checked (Gilb, & Finzi, 1988).
In the system design stage, the design of the system will be undertaken. This is where the scheduler will be designed. In this project, it is the scheduler and the Smartphone app which will be designed from scratch. The server and the GPS will be configured to have a communication with the two systems. For this stage to be successful, there is a need to ensure that the scheduler is designed using the same platform with the server and the Smartphone app. The designers will ensure that the platforms of the various functions are compatible. This is so that there is communication possible with the final system. The GPS should also be able to communicate with the server and the Smartphone app. For successful system design stage, the communication and the compatibility of the three subsystems should be achieved.
Implementation stage is where the system will be set to work. For this stage to be successful, the Smartphone app should be able to communicate with the server and give the details of the phone. This will enable the two systems to communicate. There should be an integration of a GPS system in the Smartphone. This will enable the two systems to communicate with one another. It is important to understand the communication process of the two systems.
Testing stage is an important stage in this project. For this stage to be successful, it is important to understand the requirements of the system. The developers should be able to understand how the flow should take place. This is so that they are able to certify that the system follows the required procedures. The server should be able to communicate with the Smartphone app. The scheduler should also be able to invoke the server. Polling should be possible with the three systems. In the testing process, there should be reliable communication between the three sub-systems. The details that need to be captured in the process should be done effectively. These are the details about the parcel that needs to be collected (Charette, 1989).
The next stage of the waterfall model would be the deployment stage. This is where the system will be deployed for use. For this stage to be successful, the system shall have been able to communicate with the various processes. There are different processes that the system supports. These processes should be able to communicate effectively. This is one area that the system developers should ensure is working. Overall, for the system to be successful, the systems should have been successfully tested. The communication should be reliable and the details of the clients should be captured by the system well.
The last stage in the model is the maintenance of the system. For this stage to be successful, the system should be accepted. After the testing has been done, there should be satisfaction by the users of the system that the details are capture effectively. System should be maintained so that it continues to give reliable results. The Smartphone app should be updated so that it continues to give optimal results each time it is polled by the server. The algorithm that is used by the server to select the courier should be reviewed regularly so that it continues to be relevant to the system. With all these features and updates working, the system will continue working well. The maintenance will be optimal and successful (Pressman, & Jawadekar, 1987).
Question 2 b)
There are many programmers who will be involved in the development of the system. The first programmer would be the database programmer who will ensure that the database is designed. The database will also be involved with updating the database. Another programmer would be the mobile app programmer. The programmer will design the mobile app that will be used by the couriers. Another programmer would be the scheduler programmer. The scheduler would be required in order to develop the scheduler. The scheduler programmer would use a programming language of their choice. The last programmer would be the assembly language programmer. This is the programmer who would program the server to poll the mobile apps (Sommerville, & Kotonya, 1998).
References
Charette, R. N. (1989). Software engineering risk analysis and management. Intertext Publications.
Gilb, T., & Finzi, S. (1988). Principles of software engineering management(Vol. 4). Reading, MA: Addison-Wesley.
Humphrey, W. S. (1989). Managing the Software Process (Hardcover). Addison-Wesley Professional.
Pressman, R. S., & Jawadekar, W. S. (1987). Software engineering. New York 1992.
Sommerville, I., & Kotonya, G. (1998). Requirements engineering: processes and techniques. John Wiley & Sons, Inc..