Team Project 2020
The aim of the Team Project course is to give a possibility to implement a software project in the environment (kind of) resembling the reality on the basis of your software engineering skills achieved at former software engineering courses. The strongest impact is put on the actual information system artifacts elaborated, project management, and implementation of some workflow methodology. During the course, you will work as a project group in a software-oriented project.
Milestones of the project
A project group shall provide the following artifacts:
- Plan of a project WITH MILESTONES (Gantt diagram) (for the next week),
- Specification of business processes (e.g. in BPMN) to be implemented,
- (Wiki-based) document describing the vision in natural language + requirements specification,
- (Wiki-based) document describing the system model (UML):
- Use case diagrams,
- Modular architecture specification (component diagram),
- Conceptual (domain) information system model,
- Database model (physical relational model in case of RDBMS usage, otherwise E-R and description of adapted solutions, e.g. templates for documents, etc.),
- At least 3 non-trivial behavioral diagrams,
- User interface design with description of (consistent with system model),
- Implementation of software
- Deployment diagram
Implementation details
Form and range of implemented artifacts are set individually with the teacher and project manager. However, it should include:
- Some modern backend solution (e.g. RESTful HTTP-based interface, GraphQL, etc).
- Think about using technologies which you haven't used yet (let's learn something new).
- Non-zero unit test coverage :-)
- CI/CD
- At least two client applications as needed:
- mobile client,
- web client,
- dedicated desktop client app (?).
Testing
Each task group should provde unit tests report from. However, some integration testing report is also advisable.
Project roles
Each of the project member should have at least one role of the following:
- Project Manager (PM)
- Frontend Developer (FD)
- Backend Developer (BD)
- Mobile Application Developer (MAD)
- Quality Assurance & Tester (QAT)
- Business Analyst (BA)
- UX Designer (UXD)
- Task Group Leader (TGL)
- Integration Engineer (IE)
- DevOps (DO)
Exemplary project group structure.
Topic
Here, students are free to put their own project ideas on the first classes. However, each of the topic proposed should be easily modularized into 2-4 modules. Below are my propositions:
- E-learning app for creating exams/tests
- Car/Room/Whatever Sharing App
- Conference Management System
Your ideas ...?
Collaboration tools
You have to setup your work environment.
- Use a software code repository (e.g. git + self-hosted GitLab, GitHub, GitLab.com, Bitbucket, ...),
- Use an issue tracker or backlog management tool (e.g. JIRA, redmine (with some cool plug-ins), Gitlab hosted issue tracker, …, ClickUp),
- Use a wiki-based CMS as the only source of the project documentation: no other reports, no printed documents.
Formal Class Rules
- Each even week (2, 4, 6, 8, 10, 12, 14), each of the group should present their work progress and work plan (in a sprint-like manner).
- Any communication problems within groups should be reported to the teacher as soon as they are observed.
Final evaluation
The following items form the final grade:
- contribution in issue tracker, report articles, repository (33,3(3) %),
- following the adapted schedule and level of quality, coherence, significance and completion of each of the milestones (66,6(6) %).