Skip to content

Milestone 1 Report

Emre edited this page Apr 10, 2023 · 25 revisions

Self Introduction

CMPE352 - Fundamentals of Software Engineering - Group 6

Contributors

Table of Contents

  1. Executive Summary
    1.1. Summary of the Project Status
    1.2. Future Plans for the Project
  2. List and Status of Deliverables
    2.1. D1 - Project Repository
        2.1.1. Up to date wiki pages
        2.1.2. Issue tracking
    2.2. D2 - Requirements
        2.2.1. SRS
        2.2.2. Mockups
    2.3. D3 - Software design documents in UML
        2.3.1. Use Case Diagrams
        2.3.2. Class Diagrams
        2.3.3. Sequence Diagrams
    2.4. D4 - Project plan & RAM & Communication plan
        2.4.1. Project Plan
        2.4.2. Responsibility Assignment Matrix
        2.4.3. Communication Plan
    2.5. D5 - Milestone Report
  3. Evaluation of Impact of Deliverables On Project Plan
  4. Evaluation of the Tools and Processes We Have Used
    4.1. GitHub
    4.2. Google Meet
    4.3. Whatsapp
    4.4. Discord
    4.5. Canva
    4.6. Miro
    4.7. Google Docs
    4.8. When2Meet
  5. Individual Contribution Reports

1. Executive Summary

We are currently working on a Video Game Platform where gamers, developers, and e-sports players can interact with others in many different ways by providing various unique features of its three main sections: Forum, Event, and LFG.

Users can share posts to tell about their experiences, and they can discuss any topic in the context of the games. They can participate in events that are organized by others or they can create their own events. The platform also offers an LFG section to bring game enthusiasts together.

1.1 Summary of the Project Status

We started off the development process by determining the requirements of the project and simultaneously organizing the wiki page. At first, the requirements were quite subtle, and we were barely able to meet the expectations of our project owner. A lot of brainstorming and time were required, and elicitation was crucial to overcome that phase. At this stage, the requirements are pretty much final.

Afterward, having more or less settled the requirements, we kicked off the mockups. Rather than making up a scenario and demonstrating only the necessary parts of it, we opted for creating mockups for all the pages that users could interact with. That way, we had a more comprehensive demonstration of the features of our project. Currently, the mockups greatly serve our project's requirements and its elements.

The latest task to complete was the creation of the use case, class, and sequence diagrams. Those three combined made up an integral part of our effort time, up until now. We first began designing the use case diagram and put forward the main features of our application. The use case diagram allowed us to see the hierarchy of the features that we will be providing. Currently, the use case diagram is completed.

Secondly, we got our hands dirty with the class diagram. We knew the class diagram defined the relations among the actors-entities of our application, and it exceptionally affected the overall system design, thus requiring extra time and care. Therefore, the design process of the class diagram took the most time out of the three. We had a face-to-face meeting to further enhance the efficiency of our discussions on the topic. At this stage, with minimal questions on our minds, the class diagram is settled.

During all those missions, we have done some parts of the tasks together to make sure that all members are on the same page, avoiding inconsistency. Although it had that advantage, we observed it caused serious latency. To overcome that, after deciding the main framework of the tasks altogether, we split up the tasks to work parallelly, and thus put up the work quicker. We also attempted to allocate the subtasks to the right people since different tasks were similar in some way.

Up until now, almost all members have put a tremendous amount of effort into the project. We are quite confident and satisfied with our product. Also, we believe that communication is the key factor in a well-designed and concrete application. To accomplish this, we arranged meetings quite often and kept in touch with each other through various means of communication, mainly Discord and Google Meetings.

1.2 Plans for Moving Forward

Having gotten so far, we are thrilled to move forward and see how things will be working together in the future. We have a solid foundation, and we will be building the rest of the project upon that. After spending exceptional amount of time asking the question “what”, we are excited to switch to the “how” question. We hope that us having asked the “what” question accurately will help us answering the “how” question. The leadership of our instructors combined with the collective hardwork of our team members will yield a bright product.

List and Status of Deliverables

D1 - Project Repository

Up to date wiki pages

Since the term began, we've held regular meetings among group members, which helped us allocate tasks weekly. As a result, we've kept the wiki pages consistently updated. We created pages, filled in the content, and made subsequent edits using specific templates for each page. With the regularly updated sidebar by group members, we made the hierarchy of the wiki pages easily traceable. All these efforts allowed any visitor to the wiki page to easily observe the project throughout the process.

Issue tracking

Working on the project as a 12-member group, we actively used GitHub's issue tracking system. This system greatly simplified the tracking and coordination of tasks and issues among all team members. Some group members prepared issue templates and label sets, which made sure each issue was reported, understood, and managed in a standardized format. This approach reduced communication gaps among team members and increased the project's workflow and efficiency. As a result, team members could closely monitor which issues were being worked on, the stage of progress, tasks carried out in the context of issues, and the project's developments, allowing for quick interventions when necessary.

D2 - Requirements

SRS

Particularly at the beginning of the term, requirements were drafted on a collaborative doc as the main topic of meetings. Later, these requirements were added to the relevant wiki page and were revised regularly by group members in accordance with decisions made during meetings. The process of preparing mockups and Q&A sessions with staff on Discord were crucial in making final decisions on the requirements. Just before finalizing the milestone report, a final general analysis was conducted on the requirements, and any necessary adjustments were determined. Following the final revisions, the requirements were prepared for deliverables.

Mockups

The project's nearly all features were demonstrated thanks to mockups created using Canva. The preparation of numerous mockups was shared among the 12 group members, which maintained a high level of detail in the mockups. The preparation process of the mockups was facilitated by the SRS, and at the same time, it greatly assisted in deciding on the sections to be added or removed from the SRS. Decisions on revisions were made during dedicated meetings about the mockups, and all group members applied these revisions to the mockups they prepared in the best possible way. To get the mockups ready for deliverables, one of the group members made the final touches. As a result, the mockups were finalized for the deliverables.

D3 - Software design documents in UML

During the meetings, our team identified the headings for use cases, classes, and their details, as well as sequence diagrams. This allowed us to divide tasks among ourselves, and in subsequent meetings, we reviewed the work done, identified corrections, and consolidated everything into a single piece.

Use Case Diagrams

For the use cases, we prepared a template and identified the headings to include in the use case diagram. We divided the identified headings among group members and organized the use cases according to a format agreed upon by the group, ensuring compatibility between them.

Class Diagrams

For the class diagrams, we determined the classes and their attributes and functions during a meeting. We then divided the preparation of the identified classes on Miro equally among three groups. In subsequent meetings, each class was reviewed by the entire group, and corrections were made where necessary. We also determined the relationships between the classes and included them in the diagrams.

Sequence Diagrams

For the sequence diagrams, we determined the required diagrams and drew an example sequence diagram during the meeting. We then divided the tasks and reviewed and revised the diagrams based on feedback.


As we progressed with our tasks, we frequently discussed and shared our progress with each other, making sure that our individual diagrams were compatible with each other and in line with the project requirements. We provided feedback to each other and suggested improvements or corrections where necessary.

In the end, we were able to create a set of comprehensive and well-designed UML diagrams that accurately captured the system interactions and allowed us to better understand the functionality of the system. These diagrams will be valuable resources when we begin the coding phase of the project and will help us ensure that the system is implemented in a way that aligns with the project requirements.

D4 - Project plan & RAM & Communication plan

During the initial weeks of our project, we developed a communication plan tailored to the needs and availability of each group member. We then documented this plan in a table format and uploaded it to GitHub for easy reference. Our weekly meetings are held on Google Meets, and we utilize both WhatsApp and Discord for general communication purposes.

To keep track of our progress and ensure that we are staying on track, we reviewed meeting notes and issues and used them to create our project plan and RAM (Responsibility Assignment Matrix). The RAM is a detailed record of each group member's contributions and the tasks they have completed while working on the project. The project plan includes information about our tasks, the timeframe for completing them, and which tasks are dependent on others.

To ensure that everyone is on the same page and aware of their responsibilities, we created an Excel sheet where each group member can document their assigned tasks and any associated issues.

Overall, our detailed communication plan, project plan and RAM have been instrumental in keeping our project on track and ensuring that everyone is contributing effectively.

D5 - Milestone Report

To prepare our milestone report, we first divided the report into several sections and shared them among the group members. We then collaborated on each section and made the necessary edits before uploading the final report to GitHub.

Our milestone report provides an excellent summary of the progress we've made so far and the group's collective effort in achieving our goals. The report includes details on project status, future plans, tools we've used, and individual work done by each group member. Additionally, we've included links to all the wiki pages that we've created to document our work thus far.

Overall, our milestone report is a comprehensive and well-organized summary of our progress so far, and it serves as a valuable resource for tracking our project's success.

Evaluation of Impact of Deliverables On Project Plan

As the project has progressed, we have seen firsthand the impact that the deliverables have had on the project plan. By having a clear list of deliverables and their associated statuses, we have been able to maintain a high level of predictability throughout the project. This has allowed us to stay on track and make adjustments when necessary to ensure that we are meeting our deadlines and achieving our goals. In addition, the well-documented files associated with each deliverable have enabled us to foresee future steps of the project with greater accuracy, and have given us a more complete understanding of how each piece of the project fits together.

The completion of an important part of the project plan has been a major milestone for our team, and we feel confident in the steps we have taken thus far. The documentation of progress has been clean and detailed, allowing us to understand where we have been and where we need to go in order to stay on track. Furthermore, the effort put forth by all group members to complete each deliverable has been outstanding, and has contributed greatly to the success of the project.

Not only have the deliverables themselves been important, but the process of preparing them has also been valuable for our team. As we worked on each deliverable, we were able to get to know each other better. This will be crucial as we move forward, as we will need to work together effectively in order to ensure that the coding phase is completed with high quality.

In conclusion, the impact of the deliverables on the project plan has been significant, and we are grateful for the level of predictability they have brought to our project. As we move forward into the next phase of development, we feel confident in our ability to meet our goals and stay on track, thanks in large part to the well-prepared deliverables and the effort put forth by all members of our team.

Evaluation of the Tools and Processes We Have Used

For this project, we tried many different tools to see the best fit for our group. Some of the regular tools among previous/other teams are not used due to the reasons that can be found below.

Here’s a list of tools our group used along with a brief explanation:

GitHub

Github is a web-based platform for version control and collaboration, allowing us to work together on the project. We did not actually commit or push anything at this stage, but we still used some of the features such as issues and wiki, which helped us to have some idea of a development experience. During the rest of this project, we’re pretty sure that we’re going to learn more about this platform. Overall, Github has been valuable in fostering collaboration and transparency among team members.

Google Meet

Google Meet is a video conferencing tool that we used to have virtual meetings and discussions. It’s free to use, unlimited, and comes with good functionality. We have held our meetings using Google Meet by sharing our ideas, videos, and screens. It was really consistent and smooth for the team. Alternatives of Google Meet were Zoom and Discord. Zoom has a 40-minute limit and Discord channels do not provide a good environment for meetings, so we skipped both of these options. In general, our experience with Meet has been largely positive, and we plan to continue using it for the future.

Whatsapp

WhatsApp is the messaging app that we used for quick and informal communication between team members. For the purpose of such stuff, Whatsapp worked well for us. Other than that, important topics were collected in our Discord channel.

Discord

Discord is a communication platform that offers text, voice, and video chat capabilities. After the first lecture, we formed a Discord server for our project. We’ve added some channels, and made every discussion of our project in the relevant channels. We pinned the important links & topics to ensure that no one got lost in the threads of messages in this platform that we used frequently. It worked nicely for us in general. The major alternative of Discord was Slack. Actually, Slack could provide a nice environment for the project & team - however, its free version is limited to 10,000 messages. We simply did not want to go with that option as the CMPE352 & CMPE451 combination has a high possibility of exceeding that limit. No message should get lost, all of them are important. To sum up, Discord worked nice so far and the group will continue with it.

Canva

Canva is a graphic design tool that we used to create the contents of our project (i.e. mockups). It is free and super easy to use, and it was a good pick for completing our mockups. On separate pages, we built the mockups of our project for both mobile and web views based on the templates. By using Canva, we also did not deal with any of the complexities of visual design tools such as Figma and Illustrator. It is simple, effective, and cool.

Miro

Miro is an online whiteboard platform specifically designed for teams to collaborate visually and brainstorm their ideas effectively. We used Miro to create our use case, class, and sequence diagrams. It enabled us to do all of this process simultaneously (online) for free, and it also has features of backup and high-res export, along with a plugin like app support. We could also use Lucidchart and diagrams.net for diagrams. However, Lucidchart strangely blocked us and gave us a limit of 80 objects (which is something completely useless). We have no idea on why this happened, and we also know that some other teams are actively using Lucidchart. Overall, we could not make it work, so we switched our diagram application to Miro completely. Additionally, we could also use diagrams.net but it does not allow people to work in sync at the same time. Thus, we kept our decision of using Miro. As a bonus, Miro is a very well-known and commonly used platform among software development teams. So it also adds the benefit of experience. It was nice to use it.

Google Docs

Google Docs is a web-based document editor that we used to produce documents in collaboration. It allowed us to form everything together, and made our work much easier. An important note is that we used Docs to form and update our drafts on some topics as it’s explicitly stated by the instructor that we should not use Docs to keep everything cumulatively. After drafting our work, we quickly moved the finalized versions to Github wiki pages. An alternative to Docs was using Notion, but we decided to keep this simple. For most of our cases, Docs worked fine as expected.

When2Meet

When2Meet is a scheduling tool for finding common availability on meetings and sessions. It really simplified the time selection process for our meetings. Luckily, most of our members were able to attend most of the meetings. For some meetings, this tool worked brilliantly.


In conclusion, the tools and processes of our group have proven effective in facilitating communication, collaboration, and organization. Each tool has served its specific purpose and contributed to the overall productivity.

Individual Contribution Reports

Clone this wiki locally