Model-Driven Development Processes & Methods
The processes/methods listed below are subdivided into Rigorous (a.k.a. Robust or Heavyweight) and Agile (a.k.a. Lean or Lightweight) process categories, where the former focus on the scaleablity issues associated with larger teams (e.g., 15+), and the latter emphasize streamlining the efficiency of smaller teams (15 or fewer).
By three methods we may learn wisdom: First, by reflection, which is noblest; Second, by imitation, which is easiest; and third by experience, which is the bitterest. — Confucius
Please contact us regarding additions and corrections.
- Unified Process variants (Open Source & Commercial)[+]The Unified Process (UP) is a popular iterative and incremental software development process framework that has many variations and refinements. UP variations include, but are not limited to the Open Unified Process (Open UP; open source), the Rational Unified Process (RUP; commercial), and the Rational Unified Process-System Engineering (RUP-SE; commercial). The Unified Process can be customized for various development disciplines, such as Business Modeling and Systems Engineering.
- Harmony-Systems Engineering (Harmony-SE)[+]
- OpenUP (Open Unified Process)[+]The Open Unified Process (OpenUP) is a part of the Eclipse Process Framework, an open source process framework developed within the Eclipse Foundation. Its goals are to make it easy to adopt the core of the Unified Process. OpenUP preserves the essential characteristics of Unified Process, which include incremental development, Use Cases driving development, and an architecture-centric approach. Although OpenUP tends to be software-centric, it is open source and can be customized to address team and project needs.
- Agile Modeling Methods[+]Agile Modeling methods refer to streamlined approaches for applying visual modeling techniques to software-intensive system development. Agile Modeling methods typically emphasize using a pragmatic subset of UML or SysML diagram types and techniques that are strategically applied to produce critical work artifacts. Agile Modeling methods are intended to be compatible with Agile software development methods, such as SCRUM, Crystal, etc.
For example, consider a team of Systems Engineers and Software Engineers applying Agile Modeling methods to a project where the Software Engineers are applying the SCRUM method and are working in Sprints (short increments between project checkpoints). In order maintain the speed and flexibility of SCRUM Sprints, the Systems Engineers may choose to use only three of the nine SysML diagrams (e.g., SysML Use Cases, Block Definition, and Activity diagrams), and the Software Engineers may restrict themselves to only two of the fourteen UML2 diagrams (UML Class and Sequence diagrams), ensuring that traceability mappings between the mixed SysML-UML diagram type usages are defined precisely via Allocation Dependency relationships.