Image for post
Image for post
“1471–2148–7–222–4” by Phylogeny Figures is licensed underCC BY 2.0

What Can Systems Engineering Do For You?

An Executive Summary of Formal Systems Engineering Capability.

Introduction

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?

Our preferred definition is from INCOSE:

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.

The Process

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.

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).

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.

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.

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.

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.

In Matlab Simulink, we can comprehensively validate the System Design by testing the system behavioral elements, in, and against the simulated interfacing systems and environments of the System Specification, prior to automatically generating fully executable VHDL, C++, Java, Javascript and etc, thus de-risking the code prior to implementation.

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.

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.

Conclusion

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.

Solarpunk

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store