You can edit almost every page by Creating an account. Otherwise, see the FAQ.

se-lib

From EverybodyWiki Bios & Wiki

se-lib
Original author(s)Ray Madachy
Developer(s)Ryan Longshore
Initial releaseNovember 30, 2022 (2022-11-30)
Stable release
0.27.4 / October 19, 2023; 8 months ago (2023-10-19)
Written inPython
Engine
    Operating systemCross-platform
    TypeSystems Modeling
    LicenseMIT
    Websitese-lib.org

    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')
    

    Se-lib course portal use case diagram

    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")
    

    Se-lib electric car model diagram from discrete event simulation

    Se-lib electric car model output

    References[edit]

    1. 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.
    2. 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.