se-lib
This article is written like a manual or guidebook. (May 2024) (Learn how and when to remove this template message) |
This article relies too much on references to primary sources. (May 2024) (Learn how and when to remove this template message) |
Original author(s) | Ray Madachy |
---|---|
Developer(s) | Ryan Longshore |
Initial release | November 30, 2022 |
Stable release | 0.27.4
/ October 19, 2023 |
Written in | Python |
Engine | |
Operating system | Cross-platform |
Type | Systems Modeling |
License | MIT |
Website | se-lib |
Search Se-lib on Amazon.
The Systems Engineering Library (se-lib) is a free and open-source library written in Python. Current capabilities for systems modeling include SysML and UML textual notation and diagrams, other modeling diagram types, time-based simulation including discrete event modeling and continuous systems modeling with system dynamics, system reliability modeling, system cost modeling, and systems engineering process and project management. It is interoperable with other modeling tools.
Overview[edit]
The goals of se-lib are to [1]:
- Lower access barrier to system modeling with open source tool environment.
- Provide integrated capabilities for systems modeling, analysis, and documentation
- Be digital engineering compliant.
- Compatibility with other modeling tools and libraries
- Compatibility of everything on desktop and cloud platforms
se-lib was originally called the Python Modeling Library (PyML), and was renamed to be more specific for systems engineering applications. [2]
Examples[edit]
SysML and UML[edit]
The following generates a use case model diagram:
import selib as se
# system model
system_name = "Course Portal"
actors = ['Student', 'Instructor']
use_cases = ['Post Discussion', 'Take Quiz', 'Create Quiz']
interactions = [('Student', 'Post Discussion'), ('Instructor', 'Post Discussion'), ('Student', 'Take Quiz'), ('Instructor', 'Create Quiz')]
use_case_relationships = []
# create diagram
se.use_case_diagram(system_name, actors, use_cases, interactions, use_case_relationships, filename=system_name+'use case diagram.pdf')
Discrete Event Simulation[edit]
A discrete event model for electric car charging is:
# electric car charging simulation
init_de_model()
add_source('incoming_cars',
entity_name="Car",
num_entities = 50,
connections={'charger': .7, 'impatient_cars': .3},
interarrival_time='np.random.exponential(5)')
add_server(name='charger',
connections={'payment': 1},
service_time='np.random.uniform(0, 16)',
capacity = 1)
add_delay(name='payment',
delay_time = 'np.random.uniform(1, 3)',
connections={'served_cars': 1},)
add_terminate('served_cars')
add_terminate('impatient_cars')
draw_model_diagram()
model_data, entity_data = run_model()
plot_histogram(model_data['charger']['waiting_times'], xlabel="Charger Waiting Time")
References[edit]
- ↑ Madachy, Raymond (2024-04-17). "Keynote: Open Source Systems Modeling and Convergence with AI". Boehm Center for Systems and Software Engineering 2024 Annual Research Review.
- ↑ Madachy, Raymond (2022-12-03). "Introduction to PyML" (PDF). San Diego INCOSE Mini-Conference. San Diego, CA.
External links[edit]
This article "Se-lib" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Se-lib. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.