Models and architecture
now browsing by category
The main category of my posts, my experience and research as well.
System design and implementation
WHAT DOES A SOFTWARE ENGINEER DO?
Software engineers evaluate client or company needs in conjunction with those of the user and methodically conceptualize a systematic solution (also System Engineer).
This person is a Solution Designer…
WHAT DOES A PROGRAMMER DO?
Programmers write code and debug errors in programs and software based on instructions from software engineers. They are involved in a single stage within the development lifecycle and concentrate on one component at a time (also System Developer).
Design and implementation process
How it works for those who succeed:
- an organisational model is created (business processes and document structures)
- define business requirements (needs)
- a platform-independent logic is designed to implement the requirements (system model)
A developer is then selected to:
- selects and sets up the environment
- implements the designed logic in the selected environment
- deliver the system to the users and implement it.
NOTE!
- If the project is monolithic, the implementation will be a “big risky waterfall”.
- If the project is a component architecture (microservices), the implementation will be a smooth, iterative and incremental process (points 5. and 6. in the loop).
Above diagrams from the left (Bibliography):
Paul Harmon. (2016). The State of Business Process Management 2016. BT Trends. https://www.club-bpm.com/Contenido/Estudios/BPT-Survey-Report.pdf
Bajaj, M., Cole, B., & Zwemer, D. (2016, September 13). Architecture To Geometry—Integrating System Models With Mechanical Design. AIAA SPACE 2016. AIAA SPACE 2016, Long Beach, California. https://doi.org/10.2514/6.2016–5470
Cockburn, A. (2005, January 4). Hexagonal architecture. Alistair Cockburn. https://alistair.cockburn.us/hexagonal-architecture/
A good beginning and then it gets worse, i.e. MVP
Why problems occur” only later”, at the beginning it was good and the customer was satisfied
Paradoxically, the explanation is quite simple: developers are still dominated by methods based on monolithic architectures. Preaching application” Object-oriented programming methods” only means that the so-called” object-oriented programming language”, which absolutely does not mean that the architecture of what will be created will be modern. Audit practice shows that it will rather be an architectural museum based on a relational data model, multi-level inheritance and the worst data modeling practices, which are an anemic domain model and shallow flat classes with a huge number of operations (including set/get for each attribute of classes representing database tables).
Therefore, this scenario often looks like this: at the beginning, software is created that performs one specific function, often the embryo of a monolith. Everything works fine, the customer is happy and concludes (extends) the contract. The next functionalities are the beginning of the drama: expansion of the monolithic data model, migrations from the old model to the new one, growing problems of the monolithic architecture: everything is falling apart because everything depends on everything, and no one knows how, because there is no documentation of the application’s operation mechanism, and the code has long been no longer suitable for reading. Trying to fix this is starting to be a bit of a rabbit chase too…. and there is a dispute.
Source: A good beginning and then it gets worse, i.e. MVP – IT-Consulting Jarosław Żeliński
Mechanism of operation vs. system model
Most often in the course of analysis we use the term model, less often mechanism. The thing is that the term mechanism appears when we want to explain something, e.g. “the mechanism of generating a discount on an invoice”. The thing is that the term mechanism appears when we want to explain something, e.g. “the mechanism for generating a discount on an invoice”. But here beware! A model (block diagrams, formulae, etc.) is documentation, a copyrighted description. The mechanism is what we understood by reading these documentation (model), because the mechanism is protected know-how. The content of the application to the Patent Office is the model (description), but what we patent is the mechanism invented/developed.
Source: Mechanism of operation vs. system model – Jarosław Żeliński IT-Consulting
Architecture & Systems Engineering
I highly recommend the MIT Architecture & Systems Engineering course. it is precious knowledge and an increasingly popular skill: the analysis and design of complex, interdisciplinary systems.
Enroll in MIT’s Architecture & Systems Engineering Online Program and learn from MIT faculty and industry experts. Explore the newest practices in systems engineering, including how models can enhance system engineering functions and how systems engineering tasks can be augmented with quantitative analysis.
Source: Enroll in MIT’s Architecture & Systems Engineering Online Program
If you are looking for local personal mentoring, I am an experienced MBSE expert, please ask for details.
Enterprise Architecture – goals and scope of analysis and modeling
Enterprise Architecture – goals and scope of analyzes and modelingPurpose and benefitsThe primary goal of analyzing and modeling the entire company, at a predetermined level of detail (or rather the level of generality), is to determine the context for specific local, domain-specific projects. The whole model contains information about the document flow and the IT systems supporting it. The key benefit of having a documented Enterprise Architecture is an even several-fold reduction in the costs of ongoing management and development of the IT system, The key benefit of having a documented Enterprise Architecture is even a several-fold reduction in the costs of current company management and the costs of IT system development. Given models we have:possibility to make organizational decisions immediately and without risk: documented information about mechanism of the operation of each business service (business processes), means the ability to perform immediate analysis the impact of each such decision on the rest of the companythe ability to immediately make decisions about introducing necessary changes to the IT system, documented information about the operation mechanism and architecture of the IT system, allows for immediate implementation of the specification“to-be” of this system, and send it to suppliers as a requirement (no need to do any pre-implementation analyses),possibility of implementing business continuity management,possibility of implementing a controlling and activity-based cost management system (ABC method of cost management). See also Target operating model (TOM).
Source: Enterprise Architecture – goals and scope of analyzes and modeling – Jarosław Żeliński IT-Consulting
What is the difference between the requirements of the solution and the needs of the user?
Seven years ago (2015), I ended an article about requirements and traceability with the words: So the business requirements may be dozens. The required system services (use cases) in a large project may also be dozens. But hundreds or thousands of ?requirements? is an expression of losing control of the project scope? Here I would like to point out that a requirement (a system service) could be, for example, a VAT invoice produced in compliance with the regulations. The features of this invoice (list of fields) are not separate requirements, they are features (parameters, attributes) of a single requirement. No feature of the VAT invoice has any value on its own so it cannot be a separate use case, just as our requirement can be a car but its colour or automatic transmission are features of the car, it makes no sense to require ?red colour? without expecting a car (and how to justify that this colour supports the business objective). The use case for a car is the journey and not the insertion of the key into the ignition, because this is just one element of the scenario of starting a car journey.Source: Why is requirements tracing important in a project? – Jarosław Żeliński IT-ConsultingThere are publications about requirements, their management and implementation. There are applications available on the market to collect them and manage such a collection. And we are constantly confronted with their – requirements – ambiguity (Šenkýř & Kroha, 2019). It turns out that their importance becomes crucial for projects, also from a legal perspective (PZP and the concept of need defined in the recommendations of the Public Procurement Office). This time I will focus on the concepts of «requirement» and «need» in relation to the solution design.
Work vs. design vs. intellectual property in engineering
Another discussion I had on LinkedIn recently showed that intellectual property law is very difficult to assimilate, mainly because – due to its «immateriality» – it escapes the intuitive and material manners of human perception of the world. This is overlaid by the coder’s conviction that, in principle, they are autonomous creators, and unfortunately, many lawyers also think so. The thing is that the coder is always the creator, but not always the designer. When the coder is not a designer, their works (source code) are dependent works on primary works, which are technical designs expressed, for example with the help of UML, mathematical formulae, algorithms. Then we expect coders, as developers, to do their craft brilliantly.Given that I often use purposeful and systemic interpretation of contracts and law in the expert reports I write, I have decided to describe here an ontological analysis of this area of engineering. The aim is to determine the meaning and range of definitions of terms commonly used in the field of intellectual property. I also hope to help you with this to make better software supply contracts.
True Engineering
A few days ago I was talking about the border between requirements analysis and engineering with Tom Gilb. The conclusion is: that we have to separate the requirements stage and the engineering stage. A huge thank you to Karolina Zmitrowicz for organizing this meeting.
UML model and stereotypes as icons
Someone will ask: why all this? The thing is that managing presentation graphics (model consistency, tracing, etc.) is practically impossible: any change requires interference with block diagrams and laborious reinsertion into the analysis report (I wrote about this in an article about CASE tools). Such graphics are not transferable between tools other than as uneditable bitmaps. However, if someone feels that block diagrams expressed in more «friendly» symbols add value to the project, they can do so. The UML provides for this and many tools allow it (I used Visual-Paradigm).
Source: UML model and stereotypes as icons – Jarosław Żeliński IT-Consulting.