|

Seven questions for choosing the right tool for systems engineering

To get straight to the point: The choice of a tool for system engineering should not come first. Tools should provide support, and in order to choose the right tool, we must first decide which activities the tool should support.

The V-model is a good "map" to discuss in which areas of development tools should be used. As a reminder: In the V-model, the requirements are at the "top left" of the V, which lead through several steps (architecture, design...) to the implementation at the "bottom tip" of the V. On the right-hand branch of the V are the V&V elements, for example tests, which check the elements on the left-hand branch at the same levels.

A tool alone is rarely the solution. But the wrong tool in systems engineering can lead to failure

The following questions should help you make a decision:

1. what kind of project is it?

Possible answers to this question are:

  • Academic project or "game project"
  • Completely new development without existing tool environment
  • Complete new development with existing tool environment
  • Further development (apparently with existing tool environment)

If a tool environment already exists, it should be carefully considered whether something should be changed here. In particular, changing a tool can generate significant costs and problems, even if it should theoretically not be a problem. An example of this would be changing the UML tool. Even if there is a standard for UML models (XMI), this does not mean that UML models can be easily transferred from one tool to another.

For academic or learning projects, the learning objective should be clearly defined. Here it can be useful to use tools that are open source (or at least support a powerful scripting language) so that the aspects relevant to the learning objective can be developed.

2. what is the scope of the tool support?

The V-model provides a good overview of the areas that could be covered by a tool. These range from requirements and design to hardware and software code. The first step is to decide for which of these areas a tool should be selected. It is quite possible that the decision has already been made for some areas (e.g. the choice of programming language and compiler).

Furthermore, although there are integrated tools that cover many areas, this is not a fundamental requirement. On the contrary: with an integrated tool, you can quickly become dependent on a single manufacturer ("vendor lock-in"), which can lead to many other problems. Examples of integrated tools include Scade Systems or IBM Jazz (although Jazz can also be used via OSLC). other tools integrated can be used).

However, the advantage of an integrated tool is that the development artifacts can be closely interlinked. This results in powerful traceability. However, there are also powerful external tools for traceability that bring together a wide variety of tools, such as Reqtify.

3. what does the tool architecture look like?

Even if only a small area of system development is to be covered with tools, these tools must fit into the overall context of system development. A tool architecture must therefore be selected. This is not complicated and the architecture description should be able to be summarized in a few sentences. Possible architectures could be

  • File-based working with manually assigned IDs
  • Linking all tools via OSLC
  • Working with an integrated environment

Of course, this is only an exemplary list, there are many other architectures that all influence the choice of tool.

4. are there any important requirements that need to be taken into account?

As with many things in systems engineering, requirements are important. There's no need to pull out the big guns here: For a small project, the requirements can be safely recorded on half a page.

Regulations must be taken into account, especially for safety-critical developments. But users must also be involved. It is important to remain pragmatic here and not go overboard.

5 How high must the degree of automation be?

Tools are powerful because they take work off our hands, i.e. they allow automation, among other things. However, two things should always be borne in mind:

  • Automation must be understood. Incorrectly configured (or misunderstood) automation can do more harm than good under certain circumstances. A classic example is code generation, i.e. the creation of software code from models. It works, but is time-consuming. And if this is not understood correctly, dead code may remain in the software, causing faulty behavior.
  • Manual processes may be part of the tool chain. If there is no clean interface between two tools, then it may be necessary to work manually. This is sometimes seen as negative, but can be easily managed with clearly described processes. It should also be noted that manual processes do not necessarily have to be carried out by a specialist. Checklists are an example of effective manual support.

6. is there a budget for support and customization?

This question is often forgotten, but it is very important: the best tool is useless if the users cannot handle it. The following statement may seem controversial: But Word may be more suitable for the requirements than Rational DOORSif the users have never worked with DOORS before and there is no budget for training and support.

Customization is also an important topic. All serious systems engineering tools have customization options, from document templates to script engines. If there is no budget for customization, then a great added value of the tools can simply fizzle out.

7. does it feel right?

And finally: even if one or more tools have been found rationally, all relevant stakeholders should be asked whether the choice of tool seems right to them, i.e. really from the gut. If this is not the case, then an attempt should at least be made to understand the reason for this feeling of discomfort. Of course, the decision can still be made in favor of the tool, but it should be understood why this is the case.

Similar Posts

4 Comments

  1. Hello,

    (english version below)

    I've been watching this forum (or rather blog) for some time now. Since I want to comment on the current article, I'm leaving my stealth mode.

    However, I would like to introduce myself briefly before I write my first comment.

    As an enterprise / solution architect with 20 years of professional experience, I have managed IT projects from the idea, conception, implementation and testing through to acceptance. My focus has evolved from development to combined technical-architectural and process consulting (enterprise and solution architecture).

    I use architecture frameworks (TOGAF, NAF) and process models (SCRUM, V-model) implicitly to structure work steps.

    I had my first contact with UML in 1997, followed by EPK, BPMN, SysML and Archimate as further notations. Accordingly, I am more of a modeling generalist than a systems engineering specialist.

    As described above, my first contact with UML was in 1997 when I was chosen to select an SE tool. And that brings us to the topic.

    My name is Carsten Pitz. And for topics outside the forum area, you can contact me at carsten.pitz@gmx.de contact.

    Oh yes, I live in Brühl near Cologne, or near Düsseldorf, the forum leader's home town.

    Hello,

    I followed this forum (or is it a blog?) completely passively for quite a while now. Simply because I want to comment on this article I leave my stealth mode.

    Before posting my first comment on this forum I will introduce myself briefly.

    As software architect with some 20 years experience I know and have headed all stages of software development projects. I started and have a strong background as developer, but my main interest is architecture.

    I implicitly use architecture-frameworks (TOGAF, NAF) and process models (SCRUM, V-Model) structure work.

    Back in 1997 I started modeling with UML, later EPC, BPMN, SysML and Archimate completed the zoo. As a result I am a modeling generalist rather than a system engineering specialist.

    My first contact with UML was as mentioned before in 1997 when I was choosen to choose a SE tool. So here we are ;-)

    My name is Carsten Pitz and please feel free to contact me via carsten.pitz@gmx.de if you have topics out of scope of this forum.

    Well, I live in Brühl which is next to Cologne and also next to Düsseldorf (the site owners residence) , even by european standards.

    Greetings,
    Carsten

  2. Thank you, the article speaks from my soul.

    Nevertheless, I have a few comments:

    to 1.)
    Introducing an SE tool for just one project only makes sense in special cases. If an SE tool makes sense in an organization, it is generally not just for one project. An exception is when a project is a pilot project with the aim of testing an SE tool.

    to 2.)
    The scope (I call it the objectives below) should be staggered over time. What are „quick wins“? What should be achieved in the medium term? What are strategic goals? Introduction and training can then be planned along this roadmap.

    Without this guidance, a tool introduction sometimes leads to creative use of the tool. An example from a project for which I worked as a consultant. In this project, DOORS was used exclusively as a repository for Word documents. The QA manager complained because DOORS was empty but should be used. So we quickly googled what DOORS actually does and can do. One of them came across the fact that Word documents can be stored in DOORS. The QA manager was satisfied, checked the „DOORS used“ box and ...

    to 5.)
    not quite fitting to the topic.
    It is better to check beforehand whether the properties promised by the tool manufacturer are actually fulfilled. When I used a popular commercial UML/SysML/etc modeling tool for the first time in 2008, I noticed that the model no longer had integrity after simple refactoring operations. A look at the - extremely dirty - XMI revealed that some referenced elements are not referenced as elements but are referenced using the originally assigned name. If the referenced element is renamed or deleted, the original „references“ remain. I immediately reported the error to the manufacturer in 2008. I was still able to reproduce this error in the current 2015 version.

    to 7.)
    Yes

    1. Hello Carsten,

      Thanks for the comments, which complement the article well. I have also seen projects where DOORS has been „misused“. For cost reasons alone, this is not particularly wise.

      Regarding 5): I have the feeling that tools are often introduced to increase efficiency, which is realized through automation (although this does not necessarily increase effectiveness). But at the end of the day, this is also a question of objectives. You could probably write a whole article on this topic.

      Greetings from Düsseldorf!

      - Michael

Leave a Reply