System anatomy

Last updated

A system anatomy is simple visual description of a system, focusing on the dependencies between system capabilities.

Contents

Overview

The system anatomy was first used in a project at Ericsson, and Jack Järkvik is considered the inventor of the concept. After that, the system anatomy and the similar project anatomy (also integration anatomies) have been used widely in different Ericsson projects and now they are being spread to other major companies with complex system development as well.

Anatomies can be said to be a human centric way of describing a system, since they are used as a means to obtain a common view of the system under development.

The anatomies are especially useful in development of large complex systems in incremental and integration driven development, and as a means to coordinate agile development teams.

Advantages and limitations

The system anatomy, unlike its siblings (project anatomy, integration anatomy), is actually just another view of the system, different from product structure modeling, UML diagrams and flowcharts. By focusing on the system's capabilities – both internal and money making ones – and the dependencies between those, the development team gets a common picture of the system to be developed, that is easier to grasp than many other models.

One of the key features of the system anatomy is its simplicity. That, of course, means that the anatomy cannot replace other models or design tools. It is only another way of describing the design, in SW tools, on paper or in the heads of the system engineers.

The system anatomy can be used as a starting point when creating an integration anatomy (aka project anatomy) that has more use as a project management tool.

Example

The following example is a simplified example of a system anatomy for an issue management system. This anatomy is drawn with the most basic capabilities at the top. The notation is that the capability at the end of the arrow is a dependent of the capability at the beginning. In this example the anatomy also shows development progress (blue boxes).

System Anatomy Example.png

Further reading

Related Research Articles

Project management is the process of leading the work of a team to achieve all project goals within the given constraints. This information is usually described in project documentation, created at the beginning of the development process. The primary constraints are scope, time, and budget. The secondary challenge is to optimize the allocation of necessary inputs and apply them to meet pre-defined objectives.

Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development involves writing and maintaining the source code, but in a broader sense, it includes all processes from the conception of the desired software through to the final manifestation of the software, typically in a planned and structured process. Software development also includes research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.

Test-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases. This is as opposed to software being developed first and test cases created later.

In software development, agile practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end user(s), adaptive planning, evolutionary development, early delivery, continual improvement, and flexible responses to changes in requirements, capacity, and understanding of the problems to be solved.

<span class="mw-page-title-main">Dynamic systems development method</span>

Dynamic systems development method (DSDM) is an agile project delivery framework, initially used as a software development method. First released in 1994, DSDM originally sought to provide some discipline to the rapid application development (RAD) method. In later versions the DSDM Agile Project Framework was revised and became a generic approach to project management and solution delivery rather than being focused specifically on software development and code creation and could be used for non-IT projects. The DSDM Agile Project Framework covers a wide range of activities across the whole project lifecycle and includes strong foundations and governance, which set it apart from some other Agile methods. The DSDM Agile Project Framework is an iterative and incremental approach that embraces principles of Agile development, including continuous user/customer involvement.

System of systems is a collection of task-oriented or dedicated systems that pool their resources and capabilities together to create a new, more complex system which offers more functionality and performance than simply the sum of the constituent systems. Currently, systems of systems is a critical research discipline for which frames of reference, thought processes, quantitative analysis, tools, and design methods are incomplete. The methodology for defining, abstracting, modeling, and analyzing system of systems problems is typically referred to as system of systems engineering.

<span class="mw-page-title-main">Department of Defense Architecture Framework</span> Enterprise architecture framework

The Department of Defense Architecture Framework (DoDAF) is an architecture framework for the United States Department of Defense (DoD) that provides visualization infrastructure for specific stakeholders concerns through viewpoints organized by various views. These views are artifacts for visualizing, understanding, and assimilating the broad scope and complexities of an architecture description through tabular, structural, behavioral, ontological, pictorial, temporal, graphical, probabilistic, or alternative conceptual means. The current release is DoDAF 2.02.

Open-source software development (OSSD) is the process by which open-source software, or similar software whose source code is publicly available, is developed by an open-source software project. These are software products available with its source code under an open-source license to study, change, and improve its design. Examples of some popular open-source software products are Mozilla Firefox, Google Chromium, Android, LibreOffice and the VLC media player.

<span class="mw-page-title-main">Scrum (software development)</span> Software development framework

Scrum is a framework for project management with an initial emphasis on software development, although it has been used in other fields including research, sales, marketing and advanced technologies. It is designed for teams of ten or fewer members who break their work into goals that can be completed within time-boxed iterations, called sprints, no longer than one month and most commonly two weeks. The scrum team assesses progress in time-boxed daily meetings of 15 minutes or fewer, called daily scrums. At the end of the sprint, the team holds two further meetings: one sprint review intended to demonstrate the work done for stakeholders and elicit feedback, and one sprint retrospective intended to enable the team to reflect and improve.

The Eclipse Process Framework (EPF) is an open source project that is managed by the Eclipse Foundation. It lies under the top-level Eclipse Technology Project. It has two goals:

Capability management is a high-level management function, with particular application in the context of defense.

<span class="mw-page-title-main">Follow-the-sun</span> Type of workflow in software engineering

Follow the Sun (FTS), a sub-field of globally distributed software engineering (GDSE), is a type of global knowledge workflow designed in order to reduce the time to market, in which the knowledge product is owned and advanced by a production site in one time zone and handed off at the end of their work day to the next production site that is several time zones west to continue that work. Ideally, the work days in these time zones overlap such that when one site ends their day, the next one starts.

A glossary of terms relating to project management and consulting.

In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.

Capability management is the approach to the management of an organization, typically a business organization or firm, based on the "theory of the firm" as a collection of capabilities that may be exercised to earn revenues in the marketplace and compete with other firms in the industry. Capability management seeks to manage the stock of capabilities within the firm to ensure its position in the industry and its ongoing profitability and survival.

A project anatomy is a tool for integration planning that visualizes dependencies between work items in development projects. It is mainly used in incremental development and Integration Driven Development projects.

The following outline is provided as an overview of and topical guide to project management:

<span class="mw-page-title-main">Extreme programming</span> Software development methodology

Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent releases in short development cycles, intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.

Tuleap is an application lifecycle management system, which facilitates agile software development, design projects, V-model, Requirement Management, and IT Services Management. It is open source and released under the GNU General Public License, version 2.

Integration Driven Development (IDD) is an incremental approach to systems development where the contents of the increments are determined by the integration plan, rather than the opposite. The increments can be seen as defined system capability changes - "Deltas" . The advantages compared to other incremental development models still apply, such as short design cycles, early testing and managing late requirement changes, however IDD adds pull to the concept and also has the advantage of optimizing the contents of each increment to allow early integration and testing.