Write Product Specifications using models part 1/2

Before we describe how to specify a Product like an Application, first we have to explain what a “model” is. Model in the Analyst meaning. Specifications of the application will base on the most popular conception of “modeling”.  

If you are a Product Owner, Analyst, or you build applications for clients as a freelancer, this is a great article for you. 

This is not a trivial issue and it cannot be explained in a short time. You should reserve a minimum of 30 minutes to read this article about writing Product specifications based on modeling. 

We will describe here a conception of how to specify Software products. We answer how to specify this kind of product so that you and your client can be on the same page. This type of documentation reduces misunderstandings in the development process. If you have an existing application, documentation helps all stakeholders communicate on the same “picture”.

Describing applications from one perspective is very difficult. We should always divide those pictures from a miscellaneous perspective. We should describe the apps from a different point of view. Describing the products will help with the mentioned above modeling and conception of the model indeed. Models represent the specified level of abstraction and help to focus on only one perspective. 

Let’s use the metaphor below:

Imagine a house. Describing to somebody what the house looks like is very simple. Everyone has seen a house in their life. Describing what function this house would have, would be easy too. You could probably describe or predict what benefits and needs are being fulfilled by this building. 

The problem with describing the application is that in the beginning, nobody knows what it should look like. In the beginning, only the owner knows what features this app should have. Sometimes the product, as the application, is the owner’s vision, and only he knows what needs it will satisfy.

Let’s go down deeper and look at the model’s approach.

We have to introduce a new term into our considerations. The “Conceptual model”. (https://en.wikipedia.org/wiki/Conceptual_model). We could say that in the common understanding, the  Conceptual model is a representation and a part of a mental model (https://en.wikipedia.org/wiki/Mental_model). A mental model is an image of something. In addition, it represents actions that someone has in mind. 

If you are an engineer or more technical, you have to be careful and try not to be wrong with the Conceptual model from a computer science perspective https://en.wikipedia.org/wiki/Conceptual_model_(computer_science) .

Let’s simplify and go back to our metaphor with the house. If you ask different people to send you a picture of a “house “, I’m sure you will get different pictures

This happened because everyone has a varied “mental model” of the house. People have other associations with the term “house”. They are sending you a representation of their own mental model of a house. This image represents their imagination. They want to describe a house with this image. They are sending you their conceptual model. They couldn’t send you the emotional part and the feelings they experienced with a house that they have in mind. The Conceptual model is poorer than the mental model but presents the main thought about the house.

Ok so if you have a clear notion of a conceptual model, we can dive into the term “model”. The collection of models describes a“conceptual model”. One model or we could say one concept is a specific perspective of the conceptual model. The conceptual model represents the whole picture and we use a model to focus on only one point of view. If you describe something from a lot of perspectives you have a better understanding of the conceptual model. 

 In Analysis, in building products as applications, we could document a business model and specify the application from a business perspective. Then, we distinguish how the product should exist on the market. On other hand, we could document applications from the perspective of where and how an application would be used. This will be a process model. You can collect requirements and have a model of requirements. This will characterize a conceptual model and explain what the application should do. If you list business requirements, you are building a model that explains what business needs the application fulfills.  

A collection of models shows you the whole conceptual model like in this picture 

When somebody asks you to build applications that help to manage time. Your client has in mind an image of this application. Sometimes only rudimentary vision, sometimes a very deeply thought out idea with details. Your task is to understand his vision and first build a conceptual model. This is a task for Business Analysts, of course for general purposes. Models help the Analysts in this work. You can use tools like models to describe only one or a few points of view. After all, you have a structure and can focus on one level of abstraction. You could talk and focus with your client and stakeholders only on one perspective.

When you try to understand your Client without modeling, you can use a Mind Map, some HLD (High-Level Design), or write everything as a note. You could also describe the system as a Big Picture on Event Storming. The goal of this model is only to understand the conception of the project, product, or system.

Be careful and don’t be wrong with conceptual models from the computer-science meaning. The above conceptual model could have some ambiguous or logical mistakes. If you have those conceptual models, you can go deeper and understand the concept model. A concept model is a more logical and enclosed certainty definition. We will return to the concept model later on. 

To specify the product, you could use some known analyst methodology. This could be BABOK with Business Analysis Core Concept Model or RUP based on UML modeling, Corporation Architecture as ArchiMate, or Models of Software Architecture like c4 Model, 4+1  architectural view model, ISO/IEC 42010; TOGAF

 Then, you could use some well-known models. You could understand more about what you need and how you could represent the specific models.

Now, I want to indicate the most popular models that should help describe applications. These models offer the broadest understanding of your Client’s conceptual model.

I emphasize that the order of the below list does not define the process of analyzing the software product.  But the first model is very convenient for starting work with clients or stakeholders in a project. 

So, let’s start modeling the conceptual model. We know here that we will build applications, so we can use a conceptual model from the computer-science meaning. This is well-known as a Concept model. 

Concept Model

You meet with the clients, and with the stakeholders. They use specialized terminology. The information and terminology used are often inconsistent. To solve this problem, use a concept model and distinguish business objects. This will disambiguate the terminology. Your next activity is to track the connections between the described objects. This is a base that can be used later to validate the correct understanding of the topic. Something that could be shown to stakeholders and discussed with them, and thus checks whether we understood them well and whether we correctly combined the obtained information. This is the theory of the Concept model and we have to divide it into 

  • Conceptual data model
  • Logical model (we will describe it in another article)
  • Database model (we will describe it in another article)

Conceptual data model

Is a general, high-level data model completely independent of the created solution, and in particular, the structure of the database that will be created. This model presents a business perspective of what objects exist in a system or domain and how they are related to each other.

This could help all stakeholders understand how the application manages the data. Then, you will understand the main conceptual model from the next important point of view. A conceptual data model is a description of the structures that will be used to collect data. This model specifies the structure depicting the concepts and the connections between them.

You could represent this model in 

  • a dedicated tool to model the Entity Relationship Diagram (ERD) 
  • A Class model (In the UML Notation)
  • You can use a mind map
  • or you can use some other tool to define the structure with nesting like product core lab

Dictionary

I classify a dictionary in the project or product specification as a special model. This is a great addition to the above Conceptual model. This model could be represented as a structure that lists all the terms in some domain. A list of definitions could help understand the conceptual model when the subject matter experts use some specialist language. Viewing this “model”, you have the possibility to focus only on understanding or meeting the domain. 

In the Product Core Lab, you could add some abbreviations. Those frequently appear in collaboration with stakeholders as Domain matter experts. They use them subconsciously and it is worth taking note of them. It  will be helpful at later stages of Business analysis and collaboration with Stakeholders

Go to part 2 of the article about Product Specifications using models >>

About author

Karol Kordziński - Business AnalystI’m Karol Kordziński from Poland . I’m an analyst with a couple of years of experience. I’m the owner of ITGrowPartner where we help small- and medium-sized companies analyze projects.  But mainly I’m the owner of Product Core Lab. Saas tool to manage a product in the whole Product Lifecycle. With this tool, you can explain your product and processes in a structural method. We introduce you to how to model software products step by step

Materials

https://it-consulting.pl/2022/04/03/diagram-przypadkow-uzycia/#.YksjmDixV5Y

https://it-consulting.pl/2016/04/05/model-pojeciowy-model-danych-model-dziedziny-systemu/

https://analizawymagan.pl/definicja-wymagania-rodzaje-wymagan-czyli-o-czym-powinien-pamietac-kazdy-analityk/

https://www.hosiaisluoma.fi/blog/application-architecture/

https://standards.ieee.org/ieee/610.12/855/

https://analizawymagan.pl/wymaganie-biznesowe-a-regula-biznesowa/

https://www.ibm.com/docs/pl/rsas/7.5.0?topic=modeling-designing-software-application-by-using-models

https://www.h2kinfosys.com/blog/top-10-list-of-business-analysis-model/

https://www.indeed.com/career-advice/career-development/business-analysis-model

https://www.geeksforgeeks.org/conceptual-model-of-the-unified-modeling-language-uml/

https://en.m.wikipedia.org/wiki/Abstraction_(computer_science)

https://en.m.wikipedia.org/wiki/Conceptual_model

https://iep.utm.edu/models/

https://4ba.pl/model-koncepcyjny-od-czego-zaczac-modelowanie/

https://www.iiba.org/professional-development/knowledge-centre/ba-connection/baccm-overview—the-core-concepts-business-analysis-core-concept-model/

https://www.interaction-design.org/literature/topics/conceptual-models

https://www.interaction-design.org/literature/topics/mental-models

https://visionxpartners.com/startup-stakeholders/

https://wolski.pro/2019/01/wymagania-biznesowe-a-wymagania-systemowe/

https://www.ibm.com/docs/en/rational-soft-arch/9.7.0?topic=diagrams-artifacts

https://en.wikipedia.org/wiki/C4_model

https://en.wikipedia.org/wiki/4%2B1_architectural_view_model

https://sparxsystems.com/enterprise_architect_user_guide/15.2/model_domains/requirements_engineering.html4

https://study.com/academy/lesson/requirements-modeling-in-software-engineering-classes-functions-behaviors.html

https://www.adaptiveus.com/blog/modeling-requirements-effectively/

https://pl.wikipedia.org/wiki/Konceptualizacja

https://polski.wiki/blog/en/Conceptual_model

https://wolski.pro/2021/10/modelowanie-infrastruktury-w-jezyku-uml-diagram-wdrozenia-w-praktyce

https://it-consulting.pl/2022/12/12/modelowanie-systemow-organizacja-jako-mechanizm/

https://en.m.wikipedia.org/wiki/Mental_image

https://en.wikipedia.org/wiki/Conceptual_model_(computer_science)

https://www.brcommunity.com/articles.php?id=b977 -> Conceptual Model vs. Concept Model: Not the Same!

https://www.emakina.com/int-en/news/blog/post/mental-and-conceptual-models#:~:text=In%20short%3A%20conceptual%20models%20are,we%20think%20something%20will%20work.

https://arturkasprzyk.wordpress.com/category/model-koncepcji/

Leave a Reply