{"id":24296678,"url":"https://github.com/apptivegrid/pharodevs","last_synced_at":"2026-02-09T18:31:23.985Z","repository":{"id":271217836,"uuid":"912403959","full_name":"ApptiveGrid/PharoDEVS","owner":"ApptiveGrid","description":"An implementation of discrete event system specification","archived":false,"fork":false,"pushed_at":"2025-06-30T16:34:00.000Z","size":203,"stargazers_count":0,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-09T09:33:18.701Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ApptiveGrid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-05T13:38:08.000Z","updated_at":"2025-06-30T16:34:03.000Z","dependencies_parsed_at":"2025-01-06T11:19:23.744Z","dependency_job_id":"4a4db208-4bf3-4b10-bebb-2c4129cc5668","html_url":"https://github.com/ApptiveGrid/PharoDEVS","commit_stats":null,"previous_names":["apptivegrid/smalldevs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ApptiveGrid/PharoDEVS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ApptiveGrid%2FPharoDEVS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ApptiveGrid%2FPharoDEVS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ApptiveGrid%2FPharoDEVS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ApptiveGrid%2FPharoDEVS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ApptiveGrid","download_url":"https://codeload.github.com/ApptiveGrid/PharoDEVS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ApptiveGrid%2FPharoDEVS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29275515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T17:15:22.002Z","status":"ssl_error","status_checked_at":"2026-02-09T17:14:42.395Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-16T19:41:30.951Z","updated_at":"2026-02-09T18:31:23.943Z","avatar_url":"https://github.com/ApptiveGrid.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PharoDEVS\nAn Pharo based implementation of [Discrete Event System Specification](https://en.wikipedia.org/wiki/DEVS) - formalism for modelling and simulation by B. Ziegler.\n\n## Loading project\nInstall [Pharo latest stable version](https://pharo.org/download) e.g. from command line:  \n`wget -O- https://get.pharo.org/64 | bash` \n\nRun in Pharo Playground:\n```\nMetacello new\n baseline: 'PharoDEVS';\n repository: 'github://ApptiveGrid/PharoDEVS:main/src';\n load\n```\n\n## Running examples\nTODO\n\n## History\nCurrent implementation is Pharo port and continuation of original [SmallDEVS library](http://perchta.fit.vutbr.cz:8000/projekty/10) implemented in Squeak 4.3 at [Department of Intelligent Systems on FIT BUT](https://www.fit.vut.cz/units/uits/staff/.en) (namely doc. Ing. Vladimír Janoušek Ph.D., Ing. Elöd Kironský).\n\n## Overview of changes  \nThis is list of changes compared to original SmallDEVS implementation:\n- removed all squeak and repository/proto object code\n- cleaned core and made class prefixes etc. consistent\n- removed all SIXX and storage dependencies\n- added a project baseline\n- initial unit tests added, fixed bugs/inconsistencies \n- added github actions to run tests on commits\n- added a simple traffic system simulation that enabled me to understand\n- removed all Transcript based logging and introduced events \n- inspector extension for a simulation logger can be used to have a decent log of everything happened\n\n## TODOs and next steps, open questions\n- separate roles of solver, model and coordinator \n- clarify DEVSnDESS code that is there\n- parallel stuff looks too naive and needs improvement\n- Bloc based UI? \n\n---\n# Key Differences between DES and DEVS\n- **DES** is more straightforward and is widely used for simpler systems where events are the primary drivers of change.  \n- **DEVS** is a more rigorous and flexible framework, suitable for complex systems requiring modularity and hierarchical organization.  \n\n**DES (Discrete Event Simulation)** and **DEVS (Discrete Event System Specification)** are both approaches to modeling and simulation, but they have different focuses and structures:  \n\n\n| Aspect              | DES                                           | DEVS                                       |\n|---------------------|----------------------------------------------|---------------------------------------------|\n| **Focus**           | Event scheduling and processing.              | Modular, hierarchical system specification. |\n| **Time Management** | Event-driven (time jumps between events).     | Event-driven with explicit time advance functions. |\n| **Modeling Approach** | Informal, system-specific implementations.  | Formal, mathematical framework.             |\n| **Structure**       | Flat, centralized event list.                 | Hierarchical composition of atomic and coupled models. |\n| **Reusability**     | Limited modularity, typically system-specific.| High modularity and reusability.             |\n| **Applications**    | Queueing, logistics, manufacturing systems.   | Complex, hierarchical systems like distributed simulations. |\n\n\n## Discrete Event Simulation (DES)  \n- **Concept:**  \n  - DES is a simulation approach where the state of the system changes only at specific points in time, triggered by events.  \n  - Time advances by jumping from one event to the next (event-driven).  \n- **Characteristics:**  \n  - Events are instantaneous and cause state transitions.  \n  - 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).  \n  - Often implemented using event lists, where events are processed chronologically.  \n- **Example Applications:**  \n  - Customer service systems (banks, call centers).  \n  - Production lines in factories.  \n  - Computer network packet transfers.  \n\n---\n\n## DEVS (Discrete Event System Specification)\n- **Concept:**  \n  - DEVS is a formal modeling framework for discrete event systems, developed by Bernard Zeigler.  \n  - It provides a modular and hierarchical way to specify systems using a well-defined mathematical structure.  \n- **Characteristics:**  \n  - Consists of two main types of models:\n    - **Atomic Models:** The basic building blocks defining state variables, inputs, outputs, internal and external transitions, and time advances.  \n    - **Coupled Models:** Compositions of multiple atomic and/or coupled models, defining how they interact.  \n  - Supports modularity and reusability, making it easier to build complex systems from simpler components.  \n  - Formalism allows rigorous analysis, validation, and verification of the models.  \n- **Example Applications:**  \n  - Complex system simulations, such as transportation systems, military simulations, and distributed systems.  \n  - Hierarchical and modular systems, e.g., smart cities, IoT systems.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapptivegrid%2Fpharodevs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapptivegrid%2Fpharodevs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapptivegrid%2Fpharodevs/lists"}