We have a range of MDA and UML training courses designed to take a new user through to accomplished practitioner. Our tool agnostic courses focus on process and modelling strategies, as our experience shows that these are key to project success.
Model Based Systems Engineering applies the rigour and abstractions provided by modelling techniques to the whole systems development process, encompassing requirements elicitation & management, use case modelling and system structural & behavioural modelling. The models form a coherent description of the system and its components (whether software or hardware) and flow seamlessly into implementation phases such as MDD for software.
MBSE uses modelling to support the whole system development process from requirements through to software and hardware implementation. SysML (UML for Systems Modelling) provides a standardised language to describe requirements and use cases as well as system structure and behaviour. However, to be effective the language must be used appropriately and a suitable development process must be employed.
Abstract Solutions offers a mature, highly optimised system and software design process that has been specifically designed to reduce the amount of time needed to deliver a new concept to market. It is founded on a lightweight, joined-up system and software modelling process, in which the modelling notations are simple, precise and universally comprehensible. Our approach will help you to unify your engineering process by allowing your systems and software people to communicate using a common language, while providing a clear delineation between the two disciplines. Software engineers capitalise on the work of systems engineers, avoiding duplication and providing continuity and traceability throughout the process, saving time and money.
System Requirements and Use Cases
Thefirst step is to capture and organise system requirements as a set of use case diagrams. Each use case represents a capability to be provided by the system, without prejudice to whether it is realised using hardware, software, firmware or liveware. Systems engineers explore all required behaviour, including failure modes, by means of use case scenarios. These use case scenarios will form the basis for testing the models as they emerge.
System Component Architecture: Domains
The next step is to examine the capabilities identified by the use case model, and establish a system design comprising a set of components, or domains, that will together allow those capabilities to be realised. Again, system designers can safely defer decisions about hardware / software boundaries, although it is of course possible to formalise boundaries over which there is no discretion. Each domain is unpolluted by knowledge of other domains, keeping them simple and greatly increasing their portability and reuse potential.
System Interfaces: Interaction Modelling
The final step of the system design part of the lifecycle is to take each use case scenario and show the set of domain interactions that will occur when executing that use case. This allows system designers to establish confidence in their domain architecture, and provides traceability from requirements into the system components. It also establishes a preliminary interface specification for each component, allowing them to be developed separately and concurrently at low risk.
The models produced by this approach then serve as the starting point for development and implementation of the components either in hardware or software. In the latter case the models will feed directly into the model driven software development approach.