Today we will focus on the planning process in business life instead of dealing with technical details. We’ll take together the planning and management process of a software project from scratch. We will prepare the architecture of the supermarket delivery system and examine the software engineering processes. The steps required to properly manage a software project are set to planning, control, and monitoring.
The subject selected for the design of the database I will mention in this article is a supermarket distribution system that takes customers ‘ orders to their homes in electronic media. In this system, customer id, first name, last name, address information is kept in the customer system to register to the database is provided. After the registration process is completed, the customer can log in to the system and complete the order if the product selected during the order is in stock. Then the supermarket store clerk prepares the selected product and gives the product to the driver for delivery. The driver delivers the order to the customer because he has customer information. After the customer receives the product, feedback is returned to the system as the product has been delivered. As you can see, all transactions are recorded in a gradual manner. If one step is omitted, the next step does not occur. For these reasons, the projected process model was chosen as the waterfall model. In the waterfall model, requirements need to be defined as done in this system. In total, 14 requirements have been set for this system. Requirements can range from a high-level summary statement of a service or system constraint to a detailed functional math tariff. System requirements are a structured document that provides detailed descriptions of system functions and services. Now, let’s get away from these technical phrases and start our story, shall we?
- Registration: If the customer does not have a registered account, he/she should be able to register.
- Login: The customer must log in to the system in order to place the order. In this way, tracking which order comes from which customer will be done.
- Product Search: Customers should choose the product they want by searching for the product they want in order to easily reach the product they want.
- Adding To The Basket: If the products are in stock, the product should be added to the basket by entering pieces.
- Offering Payment Method: The customer should act accordingly by asking how he wants to pay. For example, the pos device must also be taken away if it wants to pay by card.
- Providing Payment At The Door: If the customer is going to pay at the door, the environment must be provided to do so.
- Providing Online Payment: If the customer is to pay through the application, the customer should be provided with an online payment environment.
- Inventory Tracking: If the inventory number of a product falls below a certain number, a notification should be sent to the store clerk.
- Stop Selling Product: If a product is not in stock, the sale of that product must be stopped. If the product is not in stock, the customer should be prevented from adding the product to the basket on the application.
- Package Preparation: Orders should be packaged according to the specifications of the product. (priority, sensitive, emergency, perishable product, crushable product, crushable product, etc.)
- Invoice (Bill) Creation: If the product has been sold, the invoice must be created to be sent to the customer.
- Ordering Information To The Driver: In order for the order to be delivered to the customer, customer information must be given to the driver who will deliver the order.
- Delivery Of The Order: If the customer is at the given address, the order must be delivered to the customer.
- Notification Of Order Delivery Status To The Official: The official should be notified whether the order has been delivered to the customer or not.
In the above figure, the process of our project plan has been formed according to the waterfall model. If one of the steps mentioned in the figure is requested to be passed without making the system will give an error. For this reason, the waterfall model has been selected. All steps are performed in order.
Before choosing the UML diagram type that we will use when designing the system model, I want to give you a little information about UML diagrams. UML diagrams within the framework activities in the system consist of 4 main headings: use-case diagrams, sequence diagrams, class diagrams, and state diagrams.
🔸 1. Use-case Diagram
According to the Use-case diagram, there are 3 actors in the system, and with this diagram, the data is tracked and it is inferred which actors are engaged with what work. The goal is to deal with what the user does. The customer can register in the supermarket database, login, perform a product search, add the product of his choice to the basket, or make a payment for this order. Payment can be made online or at the door. If you need to examine another actor the attendant (market attendant); prepares orders, makes task formation, and creates invoices. The driver, who is the last actor, loads the boxes with the orders into the vehicle, delivers the orders to customers, and then takes delivery of the payment. This scenario, which is described verbally, is given below by pouring into a very practical design with the use-case diagram.
🔸 2. Sequence Diagram
Sequence diagrams are used to model the interaction between actors and objects located within the system. These relationships between objects and actors are represented by arrows. 3 actors are used in this diagram and these actors consist of customers, attendants, and drivers respectively. When we look at this diagram, the customer registers to the market database (SupermarketDB) with id, first name, last name, and address information. On the other hand, MarketDB responds with successful registration. The customer enters orders if the product is in stock. If there is no product in stock, the product cannot be added to the basket and the order cannot be completed. The attendant prepares the selected product or products and delivers the cargo to the driver for delivery (PreparePackage). The driver then delivers the received cargo to the customer (DeliverPackage). During delivery, if the customer is not at home, the FailedDelivery message is sent, and if the customer is at home, the CompleteOrder function is activated.
🔸 3. Class Diagram
The Class diagram is used to show the properties of the classes in the system and the relationships between each other. In this example, the relationship types between classes are shown as follows. Association and Aggregation relationship types are selected.
A type of Aggregation relationship exists between the customer and order classes. Because the customer can place an order, the order is housed within the customer. Or, the same type of relationship exists between the driver and the task. The driver may either have no task or have more than one task. (0…*) likewise, a task belongs to at least one driver. If we consider another relationship, there is a type of aggregation relationship between the customer and basket classes. The customer may not have any basket or may have 1 basket. A basket must have at least 1 customer. This is why the aggregate relationship type is selected. The Association relationship type is selected between the product and type classes. Because products have types. A product must have at least 1 type or more than one type. Classes are associated with these relationship types as above.
🔸 4. State Diagram
State diagrams show how the system responds to internal and external events, models the system’s behavior, and defines all possible States when an event occurs. Elements are designed and associated to determine the state of the object. This system consists of 3 actors including customer, driver, and attendant.
4.1. Customer Status Diagram
In the customer status diagram, the customer enters into practice. The customer can either search for products or go to the basket with a choice of products. If the customer finds the product he is looking for, he examines the product and adds it to the basket if it is in stock. After the products go to the basket, the customer can examine the products in his basket. In addition, the customer can delete a product in the basket or end the process by turning to the payment part.
4.2. Staff Status Diagram
The staff prepares the customer’s order for the status diagram. If the officer has prepared the order, he can reduce the inventory of the product from the database. The officer prepares the invoice for the order to represent the customer. The officer puts the order and the invoice in the same package while preparing the package. After this process, the task is created. The driver provides information about the vehicle and its task time (start and finish time).
4.3. Driver Status Diagram
In the driver status diagram, the driver receives a package and order information from the attendant. It then takes the package to the Order address for delivery. If the customer is at home and the payment method is selected as payment at the door, the payment is completed. The driver then delivers the order. If the customer is not at home, he returns the package.
Project Evaluation and Cost Calculation
During the transformation of the supermarket system into a software project, the requirements for this database system were determined first. After Process Modeling, the required UML diagrams are designed with Object-Oriented Analysis. The use-case diagram, sequence diagram, class diagram, and state diagrams were used in this project as examples of these UML diagrams. In these diagram drawings, objects and properties are defined and relationships between classes are defined.
The CoCoMo model was used as the cost calculation for this system. Cocomo modeling consists of three distinct types:
- Organic CoCoMo: There are small businesses in this CoCoMo model. The requirements for this system are determined precisely.
- Semi-detached CoCoMo: In this model, the experience levels of employees are mixed. Requirements are not as precise as those in the organic CoCoMo model.
- Embedded System: In this system model, software projects must be developed within a set of tight hardware.
When these system models were examined, We identified the CoCoMo model for supermarket software as Organic.
The resulting effort, schedule, and the average number of staff were calculated as follows : (assumed to be calculated on average values. )
KLOC = 20K (average line of code)
MM = 2.4 * (20)1.05 = 55.75
TDEV = 2.5 * (55.7)0.38 = 11.51 (schedule)
Efficiency = 20,000 DSI / 55.7 = 359
Average staff = 55.7 / 11.51 = 4.8 FSP (average staff to work on the project:5)
Since the tdev result in the CoCoMo calculation was 11.51, this software project is planned to be finished in 12 months in total. I hope my samples have been useful to you. Stay healthy ✨
- Karabuk University, Software Engineering, Requirement Engineering, Week 6, 2018-2019 Spring Term, Dr. Oguzhan Menemencioğlu.
- Karabuk University, Software Engineering, Design and Realization, Week 10, 2018-2019 Spring Term, Dr. Oguzhan Menemencioglu.
- Karabuk University, Software Engineering, Software and Planning, Week 10, 2018-2019 Spring Term, Dr. Oguzhan Menemencioglu.
- Software Engineering: A Practitioner’s Approach 7/e, Roger S. Pressman, 1996, 2001, 2005, 2009.