Skip to content

leorbs/WUSE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projekt für den Kurs "Werkzeugunterstützte Software Entwicklung"

English version available below.

Rahmen des Projekts


Dieses Projekt war für die Einführung in Werkzeugunterstützte Softwareentwicklung gedacht. Dabei war uns Studierenden freigestellt in welchem Projekt die Werkzeuge zum Einsatz kommen. In diesem Projekt habe ich Folgende Werkzeuge benutzt:

  • Eclipse
  • Git
  • Maven
  • Maven Unit Tests / JUnit
  • Jenkins
  • Doxygen

Inhalt


Ich habe mir überlegt, eine Klassenhierarchie zu entwickeln, mit der Basiseinheiten als Klassen erstellt werden können, wie z.B. Distanz: Meter, Zentimeter; Zeit: Stunde,Sekunde. Diese Basiseinheiten stellen Funktionen bereit, sich mit anderen Basiseinheiten addieren zu können. Somit sollte eine "Meter" Klasse nicht mit einer "Stunde" Klasse addierbar sein. Dies habe ich über eine dreistufige Typisierungshierarchie gelöst:

Deklaration einer Einheit:

public class Meter extends Distance_Abstract<Meter> {…}

Deklaration einer einheitenspezifischen Klasse:

public abstract class Distance_Abstract<T extends Distance_Abstract> extends BaseUnit<T,Distance_Abstract> {…}

Deklaration der Basiseinheitenklasse:

public abstract class BaseUnit<T extends F, F extends BaseUnit> {
  public T plus(F toAdd) {…}
}

Des Weiteren gibt es Einheiten, die durch die Kombination der Basiseinheiten entstehen, wie z.B. km/h. Diese wurden durch die "Units" Klasse implementiert.

Benutzung


Die "HelloWorld" Klasse zeigt Beispiele zur Benutzung auf.

Fazit


In diesem Projekt konnte ich viel über generic Abhängigkeiten in Java inclusive der Benutzung von unbounded Wildcards (in der Klasse "Units") erfahren.

Project for the course "Tool Assisted Software Development"

Scope des Projekts


This project was for showing Tool Assisted Software Development in a hands on project. We studends were allowed to use any project and tools for this course. I chose following tools:

  • Eclipse
  • Git
  • Maven
  • Maven Unit Tests / JUnit
  • Jenkins
  • Doxygen

Content


I chose to use a class hirarchie to create base units as classes, like distance: meter, centimeter; time: hour, second. Those base units provide functionality to interact with base units of the same kind. Therefore a "meter" should not be, for example addable to an hour. I managed to do this via a three staged type hirarchie.

Declaration of a specific unit:

public class Meter extends Distance_Abstract<Meter> {…}

Declaration of a specific unit class:

public abstract class Distance_Abstract<T extends Distance_Abstract> extends BaseUnit<T,Distance_Abstract> {…}

Declaration of the base unit:

public abstract class BaseUnit<T extends F, F extends BaseUnit> {
  public T plus(F toAdd) {…}
}

Furthermore there are Units, that can be created through combining base units, for example km/h. This Funktion is Provided through the class "Units".

Benutzung


The "HelloWorld" class shows usage examples.

Fazit


In this project I could learn a lot about dependency generics including the usage of unbounded wildcards (in the class "Units").

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages