UML class diagram for a specified parking guidance system? - uml

I made this class diagram based on specification of a Parking Guidance System. This is the first time for me to draw UML Class Diagram, so can you tell me if it's ok?
Here the specifications on which I had to base my model.
Customer Module
a. Enables customer to print ticket for entry station with entry id, plate
number, transaction date
b. Enables customer to pay in exit station for parking hours with entry id.
Operator in Entry Station
a. Enables operator to monitor free spots in Parking
b. Enables operator to advise customer with free spot.
Operator in Exit Station
a. Enter ticket id to calculate total parking hours
Admin Module
a. Enables admin to add spots in parking.
b. Enables admin to view total spots in parking.
c. Enables admin to add / update / delete users with different roles
d. Enables admin to view shifts report with payment
e. Enables admin to view parked cars report

Related

Correct usage of includes and extends in use case diagram

I am creating a use case diagram for a barber shop system. I am not sure if the Add Product Inventory use case should include the Purchase Product use case.
The actors which will interact with the barber shop system are:
Customers
System users (ie. Barber)
System Administrator (ie. Manager)
All users will need to be able to login in, customers will need to register if they are a first time user.
The customer will interact with the system to make a booking or purchase a product i.e gel, shampoo, wax. A booking can extend to cancelling the appointment, it is unlikely for the customer to be able to reschedule the appointment but rather cancel the appointment and book again at a different time.
The system user, the barbers, need to be able to view the timetable of appointments, view customer contact details and login to the system.
The system admin, who is likely a manager and head barber, should also be able to view the timetable of appointments, view customer contact details and add a product inventory to the store. The product inventory will also include setting product specification, the colour or size of product, and setting the price.
I am not sure if the Add Product Inventory use case should include the Purchase Product use case.
This is not the case, else that means each time a product is added in the inventory it is also purchased during that add. Note also the actors are not the same for these two use cases, but having the include that means the purchase is also done by the admin.
There is no extend too.
The fact a product was added in the inventory before to be purchased is a precondition you put in the description of the UC Purchase.
There are other problems in your diagram :
all your extends are drawn in the wrong direction, except may be between Login and Register depending on what you wanted to say
it is common to put the secondary actors on the right, so Customer seems to be a secondary actor but this is not the case.
Admin and Barber cannot Login (but they can logout), to have one of these roles a real person needed to successfully login before and that is done with an actor Guest or something like that.
in the same way a Customer cannot Register (nor Login)
But in fact Login and Register (and logout) are very common and simple features and probably do not have enough plus value to be use cases.
A Customer can cancel an appointment only during its creation, this is not what you want.
you need to allow Customer to activate Cancel Appointment in an other way (directly or as an extension of the probable View Own Appointments, see after)
for me while an appointment is under construction it does not exist and then the Customer cannot cancel the appointment, but the customer can abort the construction. So for me there is no extend between these use cases. Of course in the description of Make Appointment you can say an abort is possible, but I think this is the case in all the UC.
Very probably a Customer can view his/her appointments so an UC (let say View Own appointments) must be added. Note this is not like the UC View Appointmenst a Barber can activate, so these UCs must not have the same name. To have Cancel Appointment as an extend of this new UC seems a good way and in that case Cancel Appointment cannot be directly activated by Customer.
Some UCs an Admin can activate are missing, to modify the price of a product, to remove a product, to modify a barber details, to remove a barber, ...
I'm not familiar with the business rules in your scenario, so this is a little bit of guess-work and a few assumptions which you can verify.
I assume the 'Add Product Inventory' Use Case is about adding products to an inventory of all products. For our purposes to answer your question, I don't think it matters whether this Use Case relates to adding one product, multiple products, managing products (e.g. editing or removing them), whether the inventory already exists or not, or if the Inventory is a separate thing to the Products on it, but answers to those questions are not 100% clear from your model and you may consider clarifying those points.
I also assume that a Product needs to be on the Inventory in order that it can be Purchased. If that is the case, then I think what you are asking is about this very point -- how do I represent the fact that the Product needs to be Added to the Inventory before it can be Purchased? If that is what you're asking, then you can represent that using a simple 'dependency' relationship which would run from the Purchase Product Use Case to the Add Product Inventory Use Case as per below. This states that the Product Purchase is somehow dependent on Add Product, but does not go further in explaining that relationship. Alternatively, you could use a preceedes relationship running instead from the Add to the Purchase. I don't think extend is the correct relationship -- the steps of Add Product don't need to be factored in every time you Purchase Product, the dependency is on the objective of Add Product having first been achieved, not the steps.

UML use case diagram "cafeteria system" validation

I've written a script to make a cafeteria system at college. I need to know whether my diagram is correct, especially the shares of the operations.
The student selects one of the restaurants available in the cafeteria.
The student selects the item you want with the possibility of adding some ingredients to the item and receive the sellers.
The student pays to the seller. The delivery of a request is included, an update to the store at the moment the student is paid.
The seller's issue the invoice to the student and includes an addition to the account of exports and imports of the restaurant.
Administrator for the restaurant When you want to add new item, the sellers are notified of the new item added.
Administrator records attendance and absence of sellers.
Use correct naming for use cases: predicate, subject (, object).
Do not use include/extend as it's simply mistaken for functional decomposition, which is plain wrong.
Synthesize function descriptions to extract the added value hidden behind those descriptions and make them use cases (single added values the system under consideration delivers to its actors).
It's ok to indicate primary and secondary actors by using directed associations. However, this in no standard, but a convention and needs to be explained in separate modeling rules.
Your saller should likely be Seller. Note the upper case first char too (also wrong with Student).
With little effort your diagram could have been uncluttered!

UML Diagram for program

I have to complete a program that implements a car Park system.
I started with the UML diagram as I think it is easier for the program to be done after that, but I am a bit stack.
The scenario is:
Design and implement a class Vehicle (abstract) and the subclasses Car, Van, Motorbike. The classes should include appropriate methods and hold information about the ID plate of the vehicle, the brand of the vehicle and the entry time/date in the parking.
In particular:
• The Car class should also include appropriate methods and hold information
about the number of the doors of the car and the color.
• The Van class should also include methods and information about the cargo
volume of the van.
The class Motorbike should also have methods and information about the size
engine of the motorbike.
You should implement a class DateTime to represent the time/date of the entrance of
the vehicle in the parking. Do not use any predefined library.
Design and implement a class called MyCarParkManager, which extends the
interface CarParkManager. MyCarParkManager maintains the list of the
vehicles currently in the parking.
The class should display in the console a menu from which the user can select among
the following management actions:
• Add a new vehicle in the parking if there are free lots (considering that the max number of lots is 20) and return the number of the free lots remaining. Consider that a Van occupied 2 lots. Display a message with the number of free lots or informing that there are no lots available.
• Delete a vehicle, selecting the ID plate, from the list when the vehicle leaves the car park and return the vehicle instance. Display the type of the vehicle leaving the parking (if it is a car, a van or a motorbike).
• Print the list of the vehicles currently parked. For each vehicle print the ID plate, and the entry time and the type of vehicle (if is a car, a van or a motorbike). The list should be ordered chronologically, displaying the last vehicle entered in the parking as the first in the list.
And this is what I've got so far. My Solution
Since class Vehicle is abstract and cannot be instanced, what should I use to create different vehicle objects, might it be an array? And how should the output be changed, I mean depending on what the input is going to be: If it is car, to ask for color also, if it is a van for cargo volume?
Thanks a lot in advance to who take the time to read it and see if this UML seems right.
Analyze the statement
An important skill that you will start to develop in this module is analyzing a problem statement in order to identify the details needed to develop a solution.In this assignment the first task you should perform is a careful analysis of the problem statement in order to make sure you have all the information to elaborate a solution. Do not make assumption about what is needed! If you are not sure, about the information provided, ask questions.
Design a solution:
The design of your system should be consistent with the Object Oriented principles and easy to understand by an independent programmer.
Source: 5COSC001W Object Oriented Programming - Assignment 1
Suggest you:
class: "VehicleCardInfo" for storing cars information and status
class: RulesForCarPark for validate all data in "VehicleCardInfo"
vocabulary for: car types e.t.c.
CarParkManager as Actor use UseCase "Managing Cars" for CRUD operation for "VehicleCardInfo" objects.
Maybe we need some rules for people to logging and use this application.
UML diagram maybe easy for above (we don't use associations, use dependency).

trying to identify the aggregated roots of a car rental domain

I am trying to study some aspects of ddd with the domain of a car rental website.
The user/customer selects a car from a start and destination station and the time period.
The price calculation depends on various things like payment method, time, car classification and so on. The data is retrieved from a subsystem which differs in data access strategy from the rest of the application.
There are several actors in the domain like station service, call center...
Idea for the bounded context are
Company (employee, car, station)
Booking (reservations, model for booking request process)
Pricing (the price model)
Billing (rental billing, positions, customer)
After defining the bounded context I am unsure if the aggregated roots of each are correct. My thoughts are
Company: all three of them
Booking: reservation (access to billings, the car and customer)
Pricing: tariff matrix
Billing: customer (access to reservations, billings)
If needed I can add some class diagrams to show the different bounded context.
If more information is needed, a class diagram or this should be migrated to an other section feel free to ask/do it.
With what little experience I have with the car rental domain, I'd say you are on the right track. A couple of things you should be aware of: Bounded Context are a logical separation, not a physical one. As such, using something like a compositional UI, would allow you to display pricing information as part of the booking process. You'd be hosting UI components from different BCs side by side, and using them to guide the end user through the process he's trying to complete. The other thing is, you're looking for aggregate roots in all of the BCs, but I do hope you realize that you don't need a domain model in each and every one of them. Maybe a simple datamodel will do if things are not "core" to your business or crud-based by nature. That's the beauty of BCs, the ability to make deliberate technology choices.

UML assignment question

Sorry, I know this is a very lame question to ask and not of any use to anyone else. I have an assignment in UML due tomorrow and I don't even know the basics (all-nighter ahead!). I'm not looking for a walkthrough, I simply want your opinion on something. The assignment is as follows (you only need to skim over it!):
=============
Gourmet Surprise (GS) is a small catering firm with five employees. During a typical weekend, GS caters fifteen events with twenty to fifty people each. The business has grown rapidly over the past year and the owner wants to install a new computer system for managing the ordering and buying process. GS has a set of ten standard menus. When potential customers call, the receptionist describes the menus to them. If the customer decides to book an event (dinner, lunch, picnic, finger food etc.), the receptionist records the customer information (e.g., name, address, phone number, etc.) and the information about the event (e.g., place, date, time, which one of the standard menus, total price) on a contract. The customer is then faxed a copy of the contract and must sign and return it along with a deposit (often a credit card or by check) before the event is officially booked. The remaining money is collected when the catering is delivered. Sometimes, the customer wants something special (e.g., birthday cake). In this case, the receptionist takes the information and gives it to the owner who determines the cost; the receptionist then calls the customer back with the price information. Sometimes the customer accepts the price, other times, the customer requests some changes that have to go back to the owner for a new cost estimate. Each week, the owner looks through the events scheduled for that weekend and orders the supplies (e.g., plates) and food (e.g., bread, chicken) needed to make them. The owner would like to use the system for marketing as well. It should be able to track how customers learned about GS, and identify repeat customers, so that GS can mail special offers to them. The owner also wants to track the events on which GS sent a contract, but the customer never signed the contract and actually booked a GS.
Exercise:
Create an activity diagram and a use case model (complete with a set of detail use case descriptions) for the above system. Produce an initial domain model (class diagram) based on these descriptions.
Elaborate the use cases into sequence diagrams, and include any state diagrams necessary. Finally use the information from these dynamic models to expand the domain model into a full application model.
=============
In your opinion, do you think this question is asking me to come up with a package for an online ordering system to replace the system described above, or to create UML diagrams that facilitate the existing telephone-based system?
Create an activity diagram and a use case model (complete with a set of detail use case descriptions) for the above system.
I think it's right there in the text: they want you to document the system described.
Best of luck!

Resources