Question

I am starting to design the architecture of my family's small hotel business. But I'm a junior js developper and I miss the big picture when programming on the go. I am afraid that this might lead to confusion and/or bad practices.

I have therefore started with a basic activity diagrams in order to document my ideas on the flow in the system. I want to be able to understand and forsee problems and catch them before i begin creating the implementation and to avoid spaghetti code (see below).

But I'm not sure it's the best way to start, and therefore need your advice. What kind of diagrams should I use to get the big picture and design the software before I start coding, in order to implement the business correctly into my program ?

Activity Diagram

I am still learning so please excuse my noobness.

Was it helpful?

Solution

The first thing you have to do, is to get an overview on the requirements. Two diagrams that may help:

  • The UML use case diagram , to identify the main functions offered by your system to the user. You may find it helpful to use it in combination with a use case narative to complete each high level use case with more details, as proposed for example by Alistair Cockburn
  • a BPMN diagram, to document business process (e.g. check in, check out, and other things that happen in an hotel's live), how they interact, and eventually who does what at which moment.

The next thing is that you'll have to do is to detail the behavior. Typically, you'll do this with one diagram for each use case (or BPMN activity), for example using an activity diagram (or sequence diagram). In parallel, you'll also have to identify the business objects (entities) that your application will have to manage with some data modeling diagram (for example, class diagrams, or other diagrams suitable for database modelling, such as an entity-association model).

If your family is in the hotel business, the kind of diagrams that you'll produce with BPMN, will be useful not only for your development activity, but also for other managerial purpose, as the core is not the technical components but the organisation of business activities.

Licensed under: CC-BY-SA with attribution
scroll top