GithubHelp home page GithubHelp logo

palladiosimulator / palladio-reverseengineering-somox Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 13.95 MB

SoMoX - SOftware MOdel eXtractor

Home Page: https://sdq.kastel.kit.edu/wiki/SoMoX

License: Eclipse Public License 2.0

Java 97.15% GAP 2.68% Xtend 0.18%
nightly-build palladio reverse-engineering extraktion

palladio-reverseengineering-somox's Introduction

Software Model Extractor (SoMoX)

Build Pipeline Continual Improvement Process GitHub Page

SoMoX is a reverse engineering tool developed at the Karlsruhe Institute of Technology (KIT) for generating software component models from source code. It automatically extracts different types of software components, including basic components, composite structures, interfaces, ports, and connectors. SoMoX uses various source code metrics to guide its extraction process, allowing it to adapt to the specific component definitions and needs of individual projects. SoMoX supported source code written in C/C++, Delphi and Java.

The SoMoX logo

Overview

Key Features

  • Automatic component extraction: SoMoX can automatically extract software components from source code without manual intervention.
  • Multi-language support: SoMoX supports source code written in C/C++, Delphi and Java.
  • Adaptable to different component definitions: SoMoX can be configured to extract components based on different definitions, including component-based architectures, object-oriented programming and microservices.
  • Detailed component models: SoMoX generates comprehensive component models that include information about the component's structure, interfaces, ports, and connectors.

Benefits

  • Improved Software Understanding: SoMoX can help developers to better understand the architecture and structure of existing software systems.
  • Improved Maintainability: SoMoX can simplify the maintenance of existing software by providing a structured representation of the code.
  • Simplified Code Reuse: SoMoX can help developers identify and reuse reusable components of existing code.
  • Effective Change Impact Analysis: SoMoX can be used to analyze the impact of code changes on software components, helping with risk assessment and decision-making.
  • Accelerated Development: SoMoX can facilitate rapid prototyping and development by generating code from component models.

Examples

  • Extract reusable components: SoMoX can identify reusable components from existing code and create component models that can be used in new projects.
  • Analyze code changes: SoMoX can be used to analyze the impact of code changes on software components, identifying potential risks and problems.
  • Generate code from models: SoMoX can generate code from component models, simplifying rapid prototyping and new software development.
  • Document software architecture: SoMoX can be used to create documentation of the software architecture, improving understanding and communication among developers.

History

Versions

SoMoX is the successor of ArchiRec. This latest version of SoMoX uses our JDT based version of JaMoPP as its backend. Previously SoMoX was available with three other backends:

Contributors

SoMoX was originally developed with SVN and only migrated to GIT at a late stage. This repository has also been migrated several times. As a result, not all contributors are properly visible in the history.

Installation

SoMoX is available as an Eclipse update site and requires Java 17 and Eclipse 2023-03:

Documentation

This README provides basic information. For detailed instructions, examples, and advanced usage, please refer to:

Contributing

We appreciate your contributions to make SoMoX a better tool for software development and maintenance. If you want to contribute, please follow these steps

  1. Create a new issue in Jira: https://palladio-simulator.atlassian.net/browse/SOMOX
  2. Fork the SoMoX repository on GitHub.
  3. Create a pull request for your changes.
  4. Add unit tests for your changes.
  5. Document your changes.

License

SoMoX is licensed under the EPL-2.0 license.

palladio-reverseengineering-somox's People

Contributors

annekoziolek avatar dependabot[bot] avatar dr6817 avatar heikoklare avatar larissaschmid avatar ldap avatar ma avatar max-kramer avatar mm avatar nicolas-boltz avatar nipe94 avatar seiferma avatar singhsnigdha86 avatar yabbies avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.