Skip to content

Commit

Permalink
add use case diagrams
Browse files Browse the repository at this point in the history
  • Loading branch information
FelixTJDietrich committed Jun 2, 2024
1 parent 87ced1e commit 46627ca
Show file tree
Hide file tree
Showing 42 changed files with 585 additions and 194 deletions.
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@
<img alt="Hephaestus Logo" height="100px" src="./docs/images/hammer.svg">
</div>

# Hephaestus
Hephaestus - A Generative AI Mentor for Agile Software Development
# Hephaestus: Leveraging Generative AI to Enhance Software Development Processes and Developer Training

Hephaestus leverages generative AI, specifically large language models (LLMs), to enhance the software development lifecycle (SDLC) and developer training. This research project explores how AI can improve each phase of the SDLC — planning, analysis, design, implementation, testing & integration, and maintenance — while also providing comprehensive support for developer onboarding and continuous education. By integrating AI-driven insights and adaptive guidance into these processes, Hephaestus aims to boost efficiency, adherence to best practices, and overall software quality. The project also emphasizes support for agile methodologies, ensuring dynamic and iterative improvements to development workflows.

<img alt="Agile Hephaestus" height="200px" src="./docs/images/agile_hephaestus.png">

Hephaestus /hɪˈfɛstəs/ is the Greek god of blacksmiths, craftsmen, and artisans, symbolizing the fusion of creativity and technical skill.

## Documentation
The documentation can be found [here](https://ls1intum.github.io/Hephaestus/).
The documentation can be found [here](https://ls1intum.github.io/Hephaestus/).
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@
plantuml_output_format='svg'

# java = 'JAVA_HOME' in os.environ and f"{os.environ['JAVA_HOME']}/bin/java" or 'java'
# local_plantuml_path = os.path.join(os.path.dirname(__file__), )
plantuml = f"java -jar ./bin/plantuml.jar"
local_plantuml_path = os.path.join(os.path.dirname(__file__), 'bin/plantuml.jar')
plantuml = f'java -jar {local_plantuml_path}'

# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
Expand Down
95 changes: 0 additions & 95 deletions docs/hephaestus.uml

This file was deleted.

47 changes: 19 additions & 28 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -1,40 +1,31 @@
.. _hephaestus:

==================================================================
Hephaestus - A Generative AI Mentor for Agile Software Development
==================================================================
=====================================================================================================
Hephaestus: Leveraging Generative AI to Enhance Software Development Processes and Developer Training
=====================================================================================================

Hephaestus leverages generative AI, specifically large language models (LLMs), to enhance the software development lifecycle (SDLC) and developer training. This research project explores how AI can improve each phase of the SDLC — planning, analysis, design, implementation, testing & integration, and maintenance — while also providing comprehensive support for developer onboarding and continuous education. By integrating AI-driven insights and adaptive guidance into these processes, Hephaestus aims to boost efficiency, adherence to best practices, and overall software quality. The project also emphasizes support for agile methodologies, ensuring dynamic and iterative improvements to development workflows.

.. figure:: ./images/agile_hephaestus.png
:height: 250px
:alt: Hephaestus the Agile God

Hephaestus /hɪˈfɛstəs/ is the Greek god of blacksmiths, craftsmen, and artisans, symbolizing the fusion of creativity and technical skill.

Introduction
============

Hephaestus is designed to mentor novice developers in agile software development practices. The aim is to integrate Hephaestus into software engineering practical courses, extended university projects, and agile teams in the industry to help learn and apply agile methodologies. Unlike traditional educational tools that offer static content, Hephaestus provides dynamic, real-time guidance, adapting to individual and team needs.

This approach is expected to foster a better understanding and application of agile principles among novice developers, preparing them more effectively for professional software development environments. Hephaestus fills a critical gap in educational technology by actively supporting and enhancing learning in complex, team-based settings.

**Please note:** Hephaestus is currently in the concept and planning phase. The project aims to provide proactive guidance to novice developers, from planning a feature to delivering it to production and beyond.
.. uml:: ./use_cases.puml

.. getting_started/index
.. user_guide/index
.. api_reference/index
.. faq/index
.. contribute/index
.. uml_diagrams/index
.. toctree::
:maxdepth: 2
:caption: Contents

requirements_analysis/index
system_design/index
object_design/index


Rough UML Activity Diagram for Hephaestus
=========================================
:maxdepth: 3
:caption: System Documentation

system/planning/index
system/analysis/index
system/design/index
system/implementation/index
system/testing_and_integration/index
system/maintenance/index
system/training/index
system/collaboration/index
system/documentation/index
system/security/index

.. uml:: hephaestus.uml
2 changes: 0 additions & 2 deletions docs/object_design/class_interfaces.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/object_design/glossary.rst

This file was deleted.

12 changes: 0 additions & 12 deletions docs/object_design/index.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/object_design/introduction.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/object_design/packages.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/requirements_analysis/functional_requirements.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/requirements_analysis/glossary.rst

This file was deleted.

14 changes: 0 additions & 14 deletions docs/requirements_analysis/index.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/requirements_analysis/introduction.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/requirements_analysis/nonfunctional_requirements.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/requirements_analysis/proposed_system.rst

This file was deleted.

2 changes: 0 additions & 2 deletions docs/requirements_analysis/system_models.rst

This file was deleted.

6 changes: 6 additions & 0 deletions docs/system/analysis/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.. _hephaestus:

Analysis
========

.. uml:: ./use_cases.puml
29 changes: 29 additions & 0 deletions docs/system/analysis/use_cases.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
@startuml
left to right direction
skinparam backgroundColor transparent
skinparam packageStyle rectangle

actor "Project Manager" as PM
actor Developer
actor "Product Owner" as PO

rectangle "Hephaestus System - Analysis" {
usecase "Collect and Document Requirements" as CDR
usecase "Analyze and Validate Requirements" as AVR
usecase "Model System Behavior" as MSB
usecase "Define Acceptance Criteria" as DAC
usecase "Generate Analysis Reports" as GAR
}

PM --> CDR
PM --> AVR
PM --> GAR

Developer --> AVR
Developer --> MSB
Developer --> DAC

PO -up-> CDR
PO -up-> AVR
PO -up-> DAC
@enduml
6 changes: 6 additions & 0 deletions docs/system/collaboration/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.. _hephaestus:

Collaboration
=============

.. uml:: ./use_cases.puml
51 changes: 51 additions & 0 deletions docs/system/collaboration/use_cases.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
@startuml
left to right direction
skinparam backgroundColor transparent
skinparam packageStyle rectangle

actor Developer
actor "Project Manager" as PM
actor "Scrum Master" as SM
actor "Product Owner" as PO

rectangle "Hephaestus System - Collaboration" {
usecase "Facilitate Stand-up Meetings" as FSM
usecase "Assist Sprint Planning" as ASP
usecase "Conduct Sprint Retrospectives" as CSR
usecase "Manage Sprint Backlogs" as MSB
usecase "Track Sprint Progress" as TSP
usecase "Generate Collaboration Insights" as GCI
usecase "Facilitate Cross-team Collaboration" as FCC
usecase "Schedule Collaboration Sessions" as SCS
}

Developer --> FSM
Developer --> ASP
Developer --> CSR
Developer --> MSB
Developer --> TSP
Developer --> FCC

PM -up--> ASP
PM -up--> MSB
PM -up--> TSP
PM -up--> GCI
PM -up--> FCC

SM -up-> FSM
SM -up-> ASP
SM -up-> CSR
SM -up-> MSB
SM -up-> TSP
SM -up-> GCI
SM -up-> FCC
SM -up-> SCS

PO ---> ASP
PO ---> CSR
PO ---> MSB
PO ---> TSP
PO ---> GCI
PO ---> FCC

@enduml
6 changes: 6 additions & 0 deletions docs/system/design/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.. _hephaestus:

Design
======

.. uml:: ./use_cases.puml
39 changes: 39 additions & 0 deletions docs/system/design/use_cases.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
@startuml
left to right direction
skinparam backgroundColor transparent
skinparam packageStyle rectangle

actor "Project Manager" as PM
actor Developer
actor "Product Owner" as PO
actor "Scrum Master" as SM
actor "QA Engineer" as QA

rectangle "Hephaestus System - Design" {
usecase "Define System Architecture" as DSA
usecase "Design Database Schema" as DDS
usecase "Create UI/UX Prototypes" as CUP
usecase "Review and Approve Designs" as RAD
usecase "Generate Design Documentation" as GDD
usecase "Validate Design" as VD
}

PM -up-> DSA
PM -up-> RAD
PM -up--> GDD

Developer --> DSA
Developer --> DDS
Developer --> CUP
Developer --> VD

PO ---> CUP
PO ---> RAD
PO ---> VD

SM --> RAD
SM --> VD

QA -up-> RAD
QA -up-> VD
@enduml
Loading

0 comments on commit 46627ca

Please sign in to comment.