What Can Systems Engineering Do For You?
This article is a description of the service of Formal Systems Engineering, offered by the author.
It is practiced and refined as a long term specialist Systems Engineering Chartered Professional, in the manufacture, production, and maintenance of large scale and whole system critical software intensive defence and civil aerospace projects over a period of around twenty years.
The service is offered here on a freelance consultancy basis for the attention and utilisation of any new project, startup, or mature enterprise in the modern economy, who may wish to contract the service.
What is Systems Engineering?
“ Systems Engineering is an interdisciplinary approach and means to enable the realization of successful systems. It focuses on defining customer needs and required functionality early in the development cycle, documenting requirements, then proceeding with design synthesis and system validation while considering the complete problem: Operations, Performance, Test, Manufacturing, Cost & Schedule, Training & Support, Disposal”.
In essence, here we describe the most rigorous method known, of ensuring that all of the system Stakeholder Requirements of an intended system are taken into account, and met by the delivered system.
What is a System?
A system is a software application, a machine, an enterprise, an economy, a society, a network, a species, an organism, an algorithm, or any combination of any or all of those things, as well as many other things.
The Systems Engineering process itself is a system.
A system can exist completely in concept before being built or implemented, but a concept is not a system until it has been designed as such.
The System Stakeholders
The System Stakeholders are the complete set of individuals and organisations affected by the system, and with concerns in the system.
The environment is often a stakeholder.
We describe the process as applied to the whole System Lifecycle. This is intended from the outset of new systems, but can be cut down and customised as necessary for application to existing legacy systems development and upgrade.
Model Based Systems Engineering
The process of our expertise which we know from experience as being the most powerful, and the most flexible, and thus the area in which we have concentrated on as our speciality, even amongst our practicing general Systems Engineer peers (who sometimes seek out our expertise), is model based. Specifically, this is a formally designed process known as “Model Based Systems Engineering” (MBSE).
Concept Analysis, System Specification & Requirements
The process begins with concept analysis. We use the Unified Modelling Language (UML) and its derivatives including the Systems Modeling Language (SysML), to define the system specification. By this we methodically elicit, analyse, and express the complete system requirements as a formal System Specification Model. This is best done in consultation with the System Stakeholders, all of whose concerns the System Requirements must meet.
In the case of a complex set of Stakeholders, including multiple sets of legislative, proprietary management, industrial, or societal standards on process which might need to be met, an architectural framework including those requirements can be set up, to ensure they are tracked throughout the development process, by tracing to corresponding model elements.
Executable Specifications and Requirements
The System Specification may include executable elements such as state machines and flowcharts, and executable simulations of any systems or environment our system under design needs to interface with, so as to efficiently test and express the complex reqirements of the System Specification.
A full set of documents describing the System Specification, including interface specifications can be automatically generated from the System Specification model at any stage as required.
Platform Independent Design Model
From the Specification Model, we develop a platform independent System Design Model, again using the UML family of formal modelling languages, which again may include or completely comprise executable elements.
We do this by a formal transformation of the System Specification, which results in 100% coverage of the requirements of the System Specification model.
In other words, every requirement in the System Specification is met by a corresponding system element or constraint in the platform independent System Design model. This ensures that all stakeholder requirements are met by the system design, none are left out.
Domain Specific Design Model
We develop domain specific design models towards the eventual platform specific design model(s) by transforming as necessary to separate physical and logical modules, so as to express in terms of the domain specific modelling tools and languages within our capability such as 3D Solid Modeling and Electrical CAD, installation and harness design tools for the physical elements, and Matlab Simulink for the logical functional elements.
After implementation, the behaviour of the code in the physical system is tested against the behaviour validated in the model, thus verifying the System Implementation.
Again, full documentation for the system can be generated at any time.
Code Manual Adjustment and Back Annotation
Problems found in code verification can sometimes be practically addressed by adjusting autogenerated code by hand. Processes exist in all tools to back annotate and reverse engineer code as necesary to obtain the desired system baviour.
Code can be configured in Github or other code repository for manual maintenance and/or future development work as necessary, after the system design is completed, or at any time to give a snapshot of work.
The Benefits of Systems Engineering
We see many instances of less than ideal systems released, resulting in (a) stakeholder needs not being met, (b) system functionality outside of stakeholder requirements being delivered, or (c) unexpected negative consequences for stakeholders.
In general, if we see stakeholder concerns not being met or addressed by a system, this indicates at least an error in the system design, if not a complete absence of it.
Facebook is an obvious example for whom and who’s customers would have benefited greatly from rigorous Systems Engineering at the outset. Many of the societal problems known to be caused by Facebook could have been avoided, further promoting the growth and apparent utility of the network, by taking into account and addressing the needs of the users.
We see many opportunities missed by open source communities also, for the same reason, lack of Systems Engineering at the outset.
In every case, where code is defined before system design, big mistake.
A more subtle example from there is Dlive, who otherwise have shown great business acumen in attracting a high profile video blogger, “Pewdiepie” with millions of users, away from youtube. Astonishingly, Dlive have not yet implemented a token. We know from multiple academic studies on Metcalf’s law that the value of the token of a community is proportional to the square of the number of users. Adding millions of users as Dlive will probably do, would have boosted the token value beyond anyone’s wldest expectations, if they had it implemented. Now, if the coin is released to an already established network, it cannot benefit from the added value of network expansion, which with millions of users added, would have had an effect on the token value corresponding to being multiplied by a figure with twelve zeros.
They could have been huge, even by the standards of their current apparent success.
If you have a system in mind, and have some funds, hire me to help you Engineer it.
If you have no funds, get some, and hire me. You will save in the end.
My Rates: £40 per hour online, £55 per hour plus travel expenses in person. One free hour consultation to discuss if you need me or not.
Regardless of whatever other activities I am involved in (See my other stories in Medium), if you hire me, you get me 100% working in your interests, for the time that you pay me for.
You can contact me direct via the details in my profile.