ut-alcol-experiments

A bunch of experiments doing component-based software engineering in Java/Kotlin. Side-quest from the ALCoL course at the University of Toulouse

https://github.com/cyyynthia/ut-alcol-experiments

Science Score: 44.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

A bunch of experiments doing component-based software engineering in Java/Kotlin. Side-quest from the ALCoL course at the University of Toulouse

Basic Info
  • Host: GitHub
  • Owner: cyyynthia
  • License: mpl-2.0
  • Language: Kotlin
  • Default Branch: mistress
  • Size: 70.3 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

ALCoL experiments

A bunch of experiments doing component-based software engineering in Java/Kotlin.

These experiments have been inspired by the Architecture Logicielle et Composants Logiciels course at the University of Toulouse, and IRIT's Make Agents Yourself tool.

In no particular order, the repository structure (currently, subject to change (will change)): - docs: Design docs and write-ups about the experiments I'm doing and the results. - playground: Where most of the early experimentation happens. Usually not well documented besides code comments.

Why Kotlin?

Kotlin provides a lot of useful syntax sugar and features, such as null safety, merged property declaration and initialization, delegation, delegated properties, straightforward generic variance.

I assumed those would make a handful of tasks less verbose and more pleasant/idiomatic, and know that Kotlin does sometimes produce optimized bytecode for those (and other constructs) thanks to being first-party language features.

It does have cons though, such as making classes final by default (this can be changed by using the all-open compiler plugin though), and being much less widespread than Java.

I do intend to explore what can be done in Java later. A rough draft will probably be very easy to draft from the Kotlin code, although I intend on exploring the build plugin approach and provide annotations (similarly to what Lombok does) that'd get transformed at build time. (Or perhaps at runtime using reflection, but that's very likely to take forever to start... like a Spring Boot app >:))

Notes

Here are some random, hastily-written notes, in no particular order, about the current state of things. They're mostly for myself but may be helpful to whoever tries to wander in the source code right now... 🫠

  • playground structure
    • dev.cynthia.alcol.sys: CBSE support lib/rt, intended to be fully isolated from the component world. For now, will just be tucked in the main project for quick prototyping.
    • dev.cynthia.alcol.simple: A simple example, with just 2 components and 1 composite. Taken from the ALCoL course.
    • dev.cynthia.alcol.swappable: Example of a reconfigurable composition, with a component being swapped at runtime.
    • dev.cynthia.alcol.patterns: Quick examples of how certain design patterns look.

License

The software is released under the Mozilla Public License version 2.0.

Associated documentation and static assets are released under a Creative Commons Attribution-ShareAlike 4.0 International license.

Owner

  • Name: Cynthia
  • Login: cyyynthia
  • Kind: user
  • Location: Toulouse, France
  • Company: @Borkenware

23f. French Computer Science student at the University of Toulouse. I have a crippling cookie and coffee addiction.

Citation (CITATION.cff)

cff-version: 1.2.0
title: ALCoL Experiments
message: >-
  If you use this software and/or its associated
  documentation, please cite it using the metadata from this
  file.
type: software
authors:
  - family-names: Rey
    given-names: Cynthia
    email: cynthia@cynthia.dev
repository-code: https://github.com/cyyynthia/ut-alcol-experiments
abstract: >-
  This repository contains software and its associated
  design documentation related to component-based software
  engineering (CBSE). It explores approaches to build
  software using this paradigm in Java/Kotlin in quest of a
  lightweight methodology requiring little to no additional
  tooling.
keywords:
  - component-based software engineering
  - CBSE
license:
  - MPL-2.0
  - CC-BY-SA-4.0
references:
  - authors:
    - family-names: Arcangeli
      given-names: Jean-Paul
    - family-names: Migeon
      given-names: Frédéric
    - family-names: Noël
      given-names: Victor
    - family-names: Martin-Dorel
      given-names: Erik
    - name: IRIT SMAC Team
    title: Make Agents Yourself
    abbreviation: MAY
    url: https://www.irit.fr/redmine/projects/may
    repository-code: https://github.com/victornoel/may
    version: "3.6.2"
    date-released: "2021-03-21"
    # Note: website says "GPL and LGPL"; however no mention of LGPL in the source tree.
    # No mention of "any later versions" exists; therefore is 3.0-only (c.f. § 14.).
    license: GPL-3.0-only
    type: software

GitHub Events

Total
  • Public event: 1
Last Year
  • Public event: 1

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

playground/build.gradle.kts maven
build.gradle.kts maven