System Engineering

Scope

Taking a cue from Chris Aitchison’s post “You are NOT a Software Engineer!“,  one can see system engineering more like a gardening activity, growing different kinds of components depending on changing contexts and concerns.

Systems as Gardens, Software as Plants (Vincent van Gogh)

Along that reasoning, it is necessary to keep track of both business and system objects in situ in order to adjust locations along seasons and manage changes according to business weather. That would call for some planning, especially when contexts and objectives are bound to change all along the way, from requirements to deployment. Some language conventions are to be agreed, maps and itineraries should be selected, milestones arranged, crossroads identified, and assessment procedures settled upon.

Application vs System Engineering

Systems architecture combine software components with users and actual devices:

  • Users (supposedly human beings) may be granted with organizational status and responsibilities, and possess symbolic communication capabilities.
  • Software components and actual devices cannot be granted with  organizational status or responsibilities, the former with symbolic communication capabilities, the latter without.

While system engineering is usually understood as dealing with software artifacts (aka applications), organization and communication are clearly critical. Yet, since organization and communication channels are not supposed to change with each application, system engineering must proceed along a dual track, one set by requirements, the other by architecture capabilities. Unfortunately that aspects is usually ignored by development methods.

Applications can be designed and implemented along staged (e.g waterfall) or iterative (aka agile) routines. In both approaches initial (requirements) models become useless once replaced by applications.

Such a fire-and-forget procedure is inadequate for systems because they must cohabit with contexts as described by initial models. As a consequence requirements models must be kept alive all along systems life-cycle.

Application models can be managed independently, system models must keep in touch with context ones.

Hardware vs Software

Usually, system engineering is understood in terms of large applications combining software and hardware. Legacy systems are introduced at implementation level, and maintenance dealt with by subsequent tasks.

Systems usually support the processing of symbolic and physical flows.

That view works fine with standalone applications but falls behind when there is no waterproof cordon between existing and planned systems. That, for instance, is the case for complex embedded systems as well as for Service Oriented Architectures (SOA).

In order to deal with such requirements, systems must be considered as a mix of actual components (agents or objects) and symbolic representations (services and resources), many of which with overlapping life-cycles.

Engineering Processes

In that perspective engineering processes should provide the conceptual tools required for the overall management of simultaneous  business objectives, technological changes, and tasks management.

Project= Context+Technology+Tasks

Model Driven Engineering and Requirements

The proposed approach follows OMG’s Model Driven Architecture and can be implemented using the Unified Modeling Language.

Based upon a more precise understanding of model layers,  it is driven by architectural features and, as a corollary, put analysis models at the hub of engineering processes.

Projects can then be characterized by their footprint and dependencies:

  • Contexts can be irrelevant (standalone application), symbolic (services or data bases), or physical (embedded or industrial control systems).
  • Footprint can be rooted in requirements, analysis, or design; they can include persistency, control, and/or boundaries.

For that purpose requirements should be properly organized as to to identify development profiles. Moreover, archetypal crossroads can be identified with consistent guidelines about modeling alternatives.

 Further Reading

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: