Week 9 – MVC

Our Framework

Since Android is our only chosen framework and databases are not used for Tower-Defense, CRUD is not applicable for our project.

Android itself provides a simple use of CRUD-technologies though.

MVC - Diagram

In this week, we worked on subdividing our class diagram into Model-, View- and Controller-sections in order to match the MVC model.

The subdivision happened using plantUML again which provides a functionality to colorize classes. We decided on orange for model, blue for view and green for controller.

For this purpose, a SAD (Software Architecture Document) has been created and written which can be found here.

According to the basic Android-MVC-model, we subdivided our classes as following.

Automatic UI Testing - Feature Files, Cucumber & Espresso

After many hours of researching and testing, we finally got UI-tests using Gherkin Feature Files, Espresso, Cucumber and GreenCoffee running.

Because Android is our used framework, we installed plugins called "Cucumber for Java" and "Gherkin" in order to keep UI-tests as simple as possible. Sadly, UI-tests could not be set up using this simple configuration, because several errors (java.lang.IllegalStateException: No instrumentation registered! Must run under a registering instrumentation & cucumber.runtime.CucumberException: Failed to instantiate class & java.lang.NoClassDefFoundError: gherkin/formatter/Formatter Caused by: java.lang.ClassNotFoundException: gherkin.formatter.Formatter) occured.

Probably, those issues are related to new android libraries which do not interact well with cucumber anymore.

Researching even more, a solution using Espresso (Android UI testing) and GreenCoffee (Combination of Cucumber & Espresso) seemed pretty sensible because of its topicality.

In the blog entry of week 5, working with those libraries is described in more detail (including a demo video).

10 Gedanken zu „Week 9 – MVC

  1. Heya Team Towerdefense,

    after looking over your SAD we must say that everything looks well done, nothing missing.
    We’re only missing the answer for if your framework is able to create simple CRUDs.
    The detailed section for your tests is also pretty nice, keep up the good work!

    Team Itemize

    1. Hi Team Itemize,
      thanks for your feedback and the helpful hint – we forgot about mentioning our framework.
      Recently, a new box/section called „Our Framework“ has been added which includes our description concerning CRUD.
      Hopefully, this answers your question.

      Kind regards,
      Nicolas

  2. Hey Team Towerdefense,

    I miss a DB model in your SAD, otherwise it looks good for me.
    Otherwise I can only join Itemize.
    I really liked your blog, keep it up.

    Best regards,
    Manuel@Orchestra

    1. Hi Manuel,
      thank you for your feedback!
      For the Tower-Defense game, we did not plan to use a database which is why there is not any data-structure existing in our project-files.

      Kind regards,
      Nicolas

  3. Hi there,

    your SAD seems up to standards and features all the necessary parts needed. Since you do not have any outbound connections with external service the database model mentioned above (previous comment) is probably non existent, which is fine. The MVC structure is also there and explained well.

    Regards
    – Sam

  4. Vielen Dank für eure Hilfe für Menschen bei den Suche nach die benötigten Info. Gute Arbeit wie üblich. Leitet weiter so gute Arbeit!!!. Sie hat viele nützliche Info! Alle eure Posts gefallen mir. Tolle Arbeit. Danke für wirklich super Blog. Es war sogar sehr hilfreich. Ich bin froh, dass ich es entdeckt habe.
    aufsatz struktur

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.