Developer(s) | IBM, BfR, Eclipse Foundation |
---|---|
Initial release | 2006 |
Stable release | V4.0.0 |
Repository | |
Written in | Java software |
Operating system | Any (Java software) |
Available in | English (with Java National Language Support) |
Type | Scientific software |
License | EPL |
Website | www |
The Spatiotemporal Epidemiological Modeler (STEM) is free software available through the Eclipse Foundation. Originally developed by IBM Research, STEM is a framework and development tool designed to help scientists create and use spatial and temporal models of infectious disease. STEM uses a component software architecture based on the OSGi standard. The Eclipse Equinox platform is a reference implementation of that standard. By using a component software architecture, all of the components or elements required for a disease model, including the code and the data are available as software building blocks that can be independently exchanged, extended, reused, or replaced. These building blocks or plug-ins are called eclipse "plug-ins" or "extensions". STEM plug-ins contain denominator data for administrative regions of interest. The regions are indexed by standard (ISO3166) codes.
STEM currently includes a large number of plug-ins for the 244 countries and dependent areas defined by the Geographic Coding Standard maintained by the International Organization for Standardization. These plug-ins contain global data including geographic data, population data, demographics, and basic models of disease. The disease models distributed with STEM include epidemiological compartment models. Other plug-ins describe relationships between regions including nearest-neighbor or adjacency relationships as well as information about transportation, such as connections by roads and a model of air transportation.
Relationships between regions can then be included in models of how a disease spreads from place to place. To accomplish this, STEM represents the world as a "graph". The nodes in the graph correspond to places or regions, and the edges in the graph describe relationships or connections between regions. Both the nodes and the edges can be labeled or "decorated" with a variety of denominator data and models. This graphical representation is implemented using the Eclipse Modeling Framework (EMF). Since a model can be built up using separate subgraphs, STEM enables model composition. Predefined subgraphs defining different countries can be assembled with a drag and drop interface. New disease vectors can simply be added to existing models by augmenting the model with a new set of edges. The architecture also supports collaboration as users can not only create new models and compose new scenarios but also exchange these models and scenarios as reusable components and thereby build on each other's work. As an open source project, users are encouraged to create their own plug-ins (both data and models) and, if appropriate, to contribute their work back to the project.
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data, i.e., it is an algebraic structure about data.
In mathematics, graph theory is the study of graphs, which are mathematical structures used to model pairwise relations between objects. A graph in this context is made up of vertices which are connected by edges. A distinction is made between undirected graphs, where edges link two vertices symmetrically, and directed graphs, where edges link two vertices asymmetrically. Graphs are one of the principal objects of study in discrete mathematics.
In computer science, a tree is a widely used abstract data type that represents a hierarchical tree structure with a set of connected nodes. Each node in the tree can be connected to many children, but must be connected to exactly one parent, except for the root node, which has no parent. These constraints mean there are no cycles or "loops", and also that each child can be treated like the root node of its own subtree, making recursion a useful technique for tree traversal. In contrast to linear data structures, many trees cannot be represented by relationships between neighboring nodes in a single straight line.
Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only one or a few pieces of software, such as MUSH soft code. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages, and domain-specific programming languages. Special-purpose computer languages have always existed in the computer age, but the term "domain-specific language" has become more popular due to the rise of domain-specific modeling. Simpler DSLs, particularly ones used by a single application, are sometimes informally called mini-languages.
Cyclomatic complexity is a software metric used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program's source code. It was developed by Thomas J. McCabe, Sr. in 1976.
In computer science, graph transformation, or graph rewriting, concerns the technique of creating a new graph out of an original graph algorithmically. It has numerous applications, ranging from software engineering to layout algorithms and picture generation.
Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be through the addition of new functionality or through modification of existing functionality. The principle provides for enhancements without impairing existing system functions.
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.
A software factory is a structured collection of related software assets that aids in producing computer software applications or software components according to specific, externally defined end-user requirements through an assembly process. A software factory applies manufacturing techniques and principles to software development to mimic the benefits of traditional manufacturing. Software factories are generally involved with outsourced software creation.
A web template system in web publishing allows web designers and developers work with web templates to automatically generate custom web pages, such as the results from a search. This reuses static web page elements while defining dynamic elements based on web request parameters. Web templates support static content, providing basic structure and appearance. Developers can implement templates from content management systems, web application frameworks, and HTML editors.
Object-oriented design (OOD) is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design.
Azure DevOps Server is a Microsoft product that provides version control, reporting, requirements management, project management, automated builds, testing and release management capabilities. It covers the entire application lifecycle and enables DevOps capabilities. Azure DevOps can be used as a back-end to numerous integrated development environments (IDEs) but is tailored for Microsoft Visual Studio and Eclipse on all platforms.
Seam was a web application framework developed by JBoss, a division of Red Hat.
A view model or viewpoints framework in systems engineering, software engineering, and enterprise engineering is a framework which defines a coherent set of views to be used in the construction of a system architecture, software architecture, or enterprise architecture. A view is a representation of the whole system from the perspective of a related set of concerns.
Simulation Open Framework Architecture (SOFA) is an open source framework primarily targeted at real-time physical simulation, with an emphasis on medical simulation.
GIMIAS is a workflow-oriented environment focused on biomedical image computing and simulation. The open-source framework is extensible through plug-ins and is focused on building research and clinical software prototypes. Gimias has been used to develop clinical prototypes in the fields of cardiac imaging and simulation, angiography imaging and simulation, and neurology
Cypher is a declarative graph query language that allows for expressive and efficient data querying in a property graph.