https://github.com/apptivegrid/pharodevs

An implementation of discrete event system specification

https://github.com/apptivegrid/pharodevs

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary
Last synced: 11 months ago · JSON representation

Repository

An implementation of discrete event system specification

Basic Info
  • Host: GitHub
  • Owner: ApptiveGrid
  • License: mit
  • Language: Smalltalk
  • Default Branch: main
  • Size: 198 KB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 1
  • Open Issues: 3
  • Releases: 0
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

PharoDEVS

An Pharo based implementation of Discrete Event System Specification - formalism for modelling and simulation by B. Ziegler.

Loading project

Install Pharo latest stable version e.g. from command line:
wget -O- https://get.pharo.org/64 | bash

Run in Pharo Playground: Metacello new baseline: 'PharoDEVS'; repository: 'github://ApptiveGrid/PharoDEVS:main/src'; load

Running examples

TODO

History

Current implementation is Pharo port and continuation of original SmallDEVS library implemented in Squeak 4.3 at Department of Intelligent Systems on FIT BUT (namely doc. Ing. Vladimír Janoušek Ph.D., Ing. Elöd Kironský).

Overview of changes

This is list of changes compared to original SmallDEVS implementation: - removed all squeak and repository/proto object code - cleaned core and made class prefixes etc. consistent - removed all SIXX and storage dependencies - added a project baseline - initial unit tests added, fixed bugs/inconsistencies - added github actions to run tests on commits - added a simple traffic system simulation that enabled me to understand - removed all Transcript based logging and introduced events - inspector extension for a simulation logger can be used to have a decent log of everything happened

TODOs and next steps, open questions

  • separate roles of solver, model and coordinator
  • clarify DEVSnDESS code that is there
  • parallel stuff looks too naive and needs improvement
  • Bloc based UI?

Key Differences between DES and DEVS

  • DES is more straightforward and is widely used for simpler systems where events are the primary drivers of change.
  • DEVS is a more rigorous and flexible framework, suitable for complex systems requiring modularity and hierarchical organization.

DES (Discrete Event Simulation) and DEVS (Discrete Event System Specification) are both approaches to modeling and simulation, but they have different focuses and structures:

| Aspect | DES | DEVS | |---------------------|----------------------------------------------|---------------------------------------------| | Focus | Event scheduling and processing. | Modular, hierarchical system specification. | | Time Management | Event-driven (time jumps between events). | Event-driven with explicit time advance functions. | | Modeling Approach | Informal, system-specific implementations. | Formal, mathematical framework. | | Structure | Flat, centralized event list. | Hierarchical composition of atomic and coupled models. | | Reusability | Limited modularity, typically system-specific.| High modularity and reusability. | | Applications | Queueing, logistics, manufacturing systems. | Complex, hierarchical systems like distributed simulations. |

Discrete Event Simulation (DES)

  • Concept:
    • DES is a simulation approach where the state of the system changes only at specific points in time, triggered by events.
    • Time advances by jumping from one event to the next (event-driven).
  • Characteristics:
    • Events are instantaneous and cause state transitions.
    • Typically used to model queueing systems, manufacturing processes, and other systems where changes occur at discrete points (e.g., arrival of a customer, completion of a task).
    • Often implemented using event lists, where events are processed chronologically.
  • Example Applications:
    • Customer service systems (banks, call centers).
    • Production lines in factories.
    • Computer network packet transfers.

DEVS (Discrete Event System Specification)

  • Concept:
    • DEVS is a formal modeling framework for discrete event systems, developed by Bernard Zeigler.
    • It provides a modular and hierarchical way to specify systems using a well-defined mathematical structure.
  • Characteristics:
    • Consists of two main types of models:
    • Atomic Models: The basic building blocks defining state variables, inputs, outputs, internal and external transitions, and time advances.
    • Coupled Models: Compositions of multiple atomic and/or coupled models, defining how they interact.
    • Supports modularity and reusability, making it easier to build complex systems from simpler components.
    • Formalism allows rigorous analysis, validation, and verification of the models.
  • Example Applications:
    • Complex system simulations, such as transportation systems, military simulations, and distributed systems.
    • Hierarchical and modular systems, e.g., smart cities, IoT systems.

Owner

  • Name: ApptiveGrid GmbH
  • Login: ApptiveGrid
  • Kind: organization
  • Location: Germany

GitHub Events

Total
  • Issues event: 6
  • Delete event: 2
  • Member event: 1
  • Issue comment event: 13
  • Push event: 50
  • Pull request review comment event: 29
  • Pull request review event: 26
  • Pull request event: 32
  • Fork event: 1
  • Create event: 13
Last Year
  • Issues event: 6
  • Delete event: 2
  • Member event: 1
  • Issue comment event: 13
  • Push event: 50
  • Pull request review comment event: 29
  • Pull request review event: 26
  • Pull request event: 32
  • Fork event: 1
  • Create event: 13

Committers

Last synced: 12 months ago

All Time
  • Total Commits: 67
  • Total Committers: 2
  • Avg Commits per committer: 33.5
  • Development Distribution Score (DDS): 0.164
Past Year
  • Commits: 67
  • Committers: 2
  • Avg Commits per committer: 33.5
  • Development Distribution Score (DDS): 0.164
Top Committers
Name Email Commits
Norbert Hartl n****t@2****e 56
David Bajger 4****r 11
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 5
  • Total pull requests: 30
  • Average time to close issues: about 6 hours
  • Average time to close pull requests: 1 day
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.97
  • Merged pull requests: 29
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 5
  • Pull requests: 30
  • Average time to close issues: about 6 hours
  • Average time to close pull requests: 1 day
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.97
  • Merged pull requests: 29
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • noha (3)
  • Bajger (2)
Pull Request Authors
  • noha (24)
  • Bajger (6)
Top Labels
Issue Labels
Pull Request Labels
WIP (2)