Code Monkey home page Code Monkey logo

bdsa-assignment-04's Introduction

Assignment #4

C♯

Fork or clone repository.

Kanban Board part deux

Simple-kanban-board-

Implement and test the IItemRepository, ITagRepository, and IUserRepository interfaces using the rules from Assignment 03.

You must use an in-memory database and dependency injection for testing.

Software Engineering

Exercise 1

Recapitulate the meaning of encapsulation, inheritance, and polymorphism in object-oriented programming. Provide a description of these concepts including UML diagrams to illustrate your descriptions.

Exercise 2

Draw a UML class diagram that illustrates your implementation of the entities of last week's C♯ assignment, see https://github.com/itu-bdsa/assignment-03/blob/main/README.md#kanban-board. The purpose of the diagram should be to document the main relationships between the entities and their multiplicities.

Exercise 3

Draw a UML state diagram that illustrates your implementation of the WorkItem entity from last week's C♯ assignment, see https://github.com/itu-bdsa/assignment-03/blob/main/README.md#kanban-board. The purpose of the diagram should be to document the different states of the entity and the events that trigger the state changes.

Exercise 4

For each of the five SOLID design principles, provide an example that illustrates the violation of the specific principle. Your examples can be given either in code or as UML diagrams. Briefly explain under which conditions the respective principle is violated. Note, the examples do not need to be sophisticated.

Exercise 5

For each of the examples of violations of SOLID design principles in Exercise 4, provide a refactored design that respects the respective design principle. Again, the refactored designs can be given either in code or as UML diagrams, briefly explain under which conditions the respective principle is not violated any longer, and remember that the examples do not need to be sophisticated.


Submitting the assignment

To submit the assignment you need to create a PDF document using LaTeX that contains the answers to the questions and a link to a public GitHub repository that contains a fork of the assignments repository with the completed code.

Note: You should not send a PR with your changes.

The PDF file must conform to the following naming convention: group_<x>_<id1>_<id2>_<id3>_assignment_04.pdf, where <x> is replaced by the number of your group from README_GROUPS.md and <id1>, <id2>, and <id3> are your respective ITU identifiers.

You submit via LearnIT.

bdsa-assignment-04's People

Contributors

mrphil2105 avatar chrbank avatar helgecph avatar ondfisk avatar crest-centre avatar

Watchers

 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.