0% found this document useful (0 votes)
101 views4 pages

CS251: Intro To Software Engineering: Second Semester Prpject - v1.0

This document outlines the objectives and tasks for a software engineering project on developing a meeting room booking system called GoFo. It includes 4 main tasks: 1) Creating system design documents including class, sequence, and user interface diagrams; 2) Developing parts of the system related to user registration, login, profile creation, booking a time slot, and more; 3) Hosting the code on GitHub and writing documentation; 4) Providing screenshots and a video demonstration. It provides details on each task and notes the project requires teamwork, self-learning, and avoiding plagiarism. An optional additional task is to develop requirements documents for a similar but expanded meeting room booking system.

Uploaded by

Abdo Essam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views4 pages

CS251: Intro To Software Engineering: Second Semester Prpject - v1.0

This document outlines the objectives and tasks for a software engineering project on developing a meeting room booking system called GoFo. It includes 4 main tasks: 1) Creating system design documents including class, sequence, and user interface diagrams; 2) Developing parts of the system related to user registration, login, profile creation, booking a time slot, and more; 3) Hosting the code on GitHub and writing documentation; 4) Providing screenshots and a video demonstration. It provides details on each task and notes the project requires teamwork, self-learning, and avoiding plagiarism. An optional additional task is to develop requirements documents for a similar but expanded meeting room booking system.

Uploaded by

Abdo Essam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

CS251: Intro to Software Engineering

Second Semester Prpject – v1.0


Due Date & Submission Link: To Be Announced by FCAI
Cairo University, Faculty of
Computers and Information

Objectives
This project aims to:
1- Learn about software design and how to move from requirements to design.
2- Learn how to develop class diagrams and sequence diagrams for a system.
3- Learn how to transform design models to code
4- Learn how to document code using Java doc
5- Learn how to use GitHub as a repository for your system

Setup
1- This is a team project that requires that will require each team to work together closely and
independently and will need self-learning and self-discipline. ‫هذا المشروع هو مسك الختام للمقرر‬
.‫ويتطلب قدرا كبيرا من التعلم الذاتى والبحث وتنظيم الوقت والتعاون الجيد مع أعضاء الفريق‬
2- This project will be done in groups of up to 5 students from the same lab.
3- The group will submit together one combined solution on the site decided by FCAI.
4- The entire group is responsible of helping any weak member to be able to do his/her task by
his/herself, by providing the necessary support, knowledge, hands-on demos, etc.
5- Only submit original work. Any copied work will be severely penalized.
6- ‫مسؤولية الفريق تضامنية عن عمله و أى غش من أى فرد سيكون مسؤولية الجميع و يخصم منهم مثل الدرجة‬
7- You have two options for this project as listed below. You choose ONE OPTION ONLY.

Option 1
Task 1 – System Design
Project Phase 2: System Design
Complete the attached Software Design Specifications Document. Remove the red comments.
Task 1: Class Diagram
1- Read carefully the GoFo project description attached with this project.
2- Read the sample SRS given with this assignment. Use it as basis for your design and coding.
3- Read carefully the Software Design Specifications template given with this assignment. Read
the instructions in red very carefully.
4- Identify all the important classes in the system
5- Divide these classes into packages or subsystems, each one includes the related classes.
6- Decide the responsibility of each class and what role it plays.
7- Design the attributes and operations of each class. For each attribute decide the type and
visibility. For operations, decide the name, parameters and return type.
8- Design the relations between classes (inheritance, association, aggregation, composition). For
each relation, decide the direction and multiplicity and give it a label.
9- Read again, the Software Design Specifications template given with this assignment.
10- Finally, draw a complete class diagram for the system, divided into packages or systems. Use
a tool for drawing.
1
CS251: Intro to Software Engineering
Second Semester Prpject – v1.0
Due Date & Submission Link: To Be Announced by FCAI
Cairo University, Faculty of
Computers and Information

Task 2: Sequence Diagrams


Sequence diagrams help developers understand how a system works and how a use case is
implemented using the classes and methods in the class diagram.
1- Select the most important six use cases in the use case diagram. (suggested: register user,
add a playground, book a playground for a specific time slot, view playing hours, approve
playground, create a team)
2- Design a detailed sequence diagram for each one of them.
3- Read again, the Software Design Specifications template given with this assignment.

Task 3: User Interface Design


An important part of your system is user experience design. no matter how brilliant your
software design is and how excellent your code is, if the end-user ‫العميل الذى يدفع مرتبك بتمامه فهو سيدك‬
‫ و أنت خدامه‬does not have good experience using your system, it will not be successful. In this task,
your will design mockups or wireframes. These are prototypes for a the screens of the program.
Your task is to provide designs (mockups) for all the screens of GoFo app. You can use tools like
Mocups (https://moqups.com/). These resources will help you:
1- How to use Moqups https://www.youtube.com/watch?v=glijkZFo4AY
2- UX/UI designer/developer job https://www.youtube.com/watch?v=cYWnVH0x44c

Task 2 - Development
Project Phase 3: Implementation
In this phase of the project, we will implement a small part of the system in Java. The purpose is to
learn transferring model to code, good quality code. Your task will be:
1- Read the Corona Store example under acadox on how to model and develop a system.
2- Implement the parts of your design related to (1) registering a user (playground owner or
player) and entering verification code or expiry of the registeration, (2) logging in, (3) creating
a profile for the owner and adding a playground and its available times and price, (4) booking
a time slot on the playground, (5) approving a playground by administrator, (6) viewing
playgrounds and filtering them and (7) creating a team and sending them email.
3- You will implement the necessary domain classes and control classes needed for these
functionalities.
4- Implement a UI (Console-based or GUI) for this task. Write a Main class to run your
implementation.

2
CS251: Intro to Software Engineering
Second Semester Prpject – v1.0
Due Date & Submission Link: To Be Announced by FCAI
Cairo University, Faculty of
Computers and Information

Task 3 – Hosting and Documentation


Project Phase 5: Hosting and Documentation
This is not an independent phase. It is a set of supporting processes to do along with development
activities.
1- Create a private repo on GitHub and use it to develop the code by doing multiple commits.
Learn how to check-in and check-out code from the repo. Repo must be private to avoid
stealing your work.
2- Add https://github.com/mramly as a collaborator on your project. Write project link in SDS.
3- Document the all classes and functions using JavaDoc and generate HTML documentation.

Task 4 – Screenshots and Video


This not an independent phase. It is a set of activities to verify the ownership of your project.
1- Take screenshots from your program operation which explain how it works and add them to
the SDS report.
2- Make a video 3~5 min explaining the components of your system and how it works.
3- Add the screenshots and the link to the video to your SDS.

Option 2
You will do ALL the items under option 1 + Develop SRS and use case model and tables for the
following problem.
Our system Go Meeting (GoMe) is a booking system for meeting rooms. Anyone can register himself
on the system and create a profile. He can see the meeting rooms near to him or in a specific area or
all of them.

Meeting room owner. This is the person / company who wants to register his room. He first registers
himself on the system and creates a profile, with his name, ID and password, email, phone and
default location. Then he requests registering a meeting room and adds its name, its location, its
capacity, the available facilities and booking hours, the price per hour and the cancellation period. A
room is not active until approved by the administrator who may check if information given is true.

The administrator has the right to delete a room or suspend it. This is usually the case if the owner
does some fraudulent activities like double booking or if the meeting room gets a lot of complaints
from the users. Then the administrator can activate it again or delete it completely.

The owner can set and change the hours available for booking for his meeting room. He can view his
bookings. And he can check the money in his eWallet.

3
CS251: Intro to Software Engineering
Second Semester Prpject – v1.0
Due Date & Submission Link: To Be Announced by FCAI
Cairo University, Faculty of
Computers and Information

An eWallet is an electronic payment system used to allow users to pay for the bookings they make
and allow ground owners collect their money. It is externally connected with a service like Fawry that
allows users to add money to their eWallet and ground owners to take the money from it. Any user
can check the money in his eWallet or transfer some of it to another eWallet. Adding money to the
eWallet happens outside the system boundary.

User. This is a person who is interested in booking a meeting room. He registers with the system and
creates a profile as described above. He can display the rooms near to him or in a specific location on
specific dates. He can filter them by the hours and date he selects. He can book a time slot of 1 or
more hours if available and not booked. Booking includes (1) Checking available meeting rooms and
time slots (2) Selecting the free time slot(s) he wants (3) Calculating the total price (4) Paying the
amount from his eWallet to the eWallet of the owner (5) The system updates the status of the
booked slot(s) so no one else can book it, and optionally (6) The user can send invitation to his group
members via email. To make this last step easy, he can create his favorite meeting group and store
their names and emails. Then he can select the entire group. Or he can enter individual names and
emails or select the group and then modify some members. A user can also cancel a booking if within
the cancellation period.

Deliverables and Assessment


1- Submission link will be announced by FCAI administration. YOU will submit via the link
provided by the faculty NOT the doctor.
2- You will upload one zip file containing:
• A pdf file containing your design (SDS) document, code listing, screen shots, links to video
and GitHub repo.
• A directory with your implementation and documentation. Add a Readme.txt file
explaining the files included and the tools used to develop the program.

Policy Regarding Plagiarism:


‫تشجع الكلية على مناقشة األفكار و تبادل المعلومات و مناقشات الطالب حيث يعتبر هذا جوهريا لعملية تعليمية سليمة‬ .1
.‫ساعد زمالءك على قدر ما تستطيع و حل لهم مشاكلهم فى الكود و لكن تبادل الحلول غير مقبول و يعتبر غشا‬ .2
.‫أى حل يتشابه مع أى حل آخر بدرجة تقطع بأنهما منقوالن من نفس المصدر سيعتبر أن صاحبيهما قد قاما بالغش‬ .3
.‫قد توجد على النت برامج مشابهة لما نكتبه هنا أى نسخ من على النت يعتبر غشا يحاسب عليه صاحبه‬ .4
.‫إذا لم تكن متأكدا أن فعال ما يعد غشا فلتسأل المعيد أو أستاذ المادة‬ .5
.‫ و فى حالة تكرار الغش سيرسب الطالب فى المقرر‬، ‫فى حالة ثبوت الغش سيأخذ الطالب سالب درجة المسألة‬ .6

You might also like