Computer Engineering Department
CS491 Senior Design Project I
Fall 2024
 

Course Deliverables:

1. Logbook
Each senior student is required to create an online project logbook and record the progress of their design project during CS491 and CS492 in their personal logbook. Using a logbook is a standard practice in the industry and it will help to keep information organized and available.

Here are some ideas for what you might include in your personal project logbook:
- A timeline: This could be a list of the tasks you have completed, along with the date you completed them. You might also include any deadlines you have set for yourself.
- Notes and reflections: Estimations, calculations, links, choices you prefer in each step, literature search efforts, drawings, handouts, personal thoughts and reflections concerning the project or process, and conversations with potential customers, sponsors and legal entities.
- Samples of your work: Depending on the nature of your capstone project, you might want to include examples of your work, such as drafts, sketches or code snippets.
- A record of your progress: You might want to keep track of your progress over time by including regular updates on the status of your project.
Please use Google docs to host your logbook. Students should share it with their supervisor and course instructors when requested. Adjust the permissions of the logbook document so that instructors has read&write access to the file for comments and suggestions.

2. Project Information Form Guideline:

At the beginning of first semester, your instructors will request the details of finalized Project proposal. It is sufficient for one team member from each team to fill out the form that is available as Word document.
- Name of the Project: Aim for a short, unambiguous, and memorable title for your project/team. Your project name should reflect what makes your project unique. 
- One paragraph description of the project: You should write an  high-level summary of your project. It must be very-well written and checked many times. Avoid going deep into details or background of the problem you volunteer to solve. There are too many online resources about elevator speech and pitching, learn and use it.
- Supervisor & Innovation Expert: You should finalize your query for Supervisor and Innovation Expert for your project before submitting the form.
- The URL of the Project Web Page: Specific project web domain or github pages are accepted.
You are expected to use project web site to host all information regarding your project such as team member information, reports, links to Github repos, pronunciation of your project name.

3. Project Specification Document Guideline:

The project specifications report should provide a brief description and requirements of the proposed project. This document must also contain a section that discusses the project constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability. All the engineering standards used for the development of this project should also be documented in a seperate section. For example standards might be UML 2.5.1 for modelling, IEEE 830 for requirements documentation. In addition, a discussion of the professional and ethical responsibilities relevant to the project must also be included in a separate section. Copies of the Project Specification Report must be returned to the project supervisor and the course instructors.

One example organization of this report is as follows: 

1. Introduction
  1.1 Description
  1.2 High Level System Architecture & Components of Proposed Solution
  1.3 Constraints
    1.3.1. Implementation Constraints
    1.3.2. Economic Constraints
    1.3.3. Ethical Constraints
  1.4 Professional and Ethical Issues
  1.5 Standards

2. Design Requirements
   2.1. Functional Requirements
   2.2. Non-Functional Requirements
     2.2.1. Usability
     2.2.2. Reliability
     2.2.3. Performance
     2.2.4. Supportability
     2.2.5. Scalability

3. Feasibility Discussions
   3.1. Market & Competitive Analysis
   3.2. Academic Analysis

5. Glossary

6. References


4. Analysis and Requirements Report Guideline:

The analysis and requirement report contains a detailed analysis of the problem. It should address all relevant issues.

An analysis document of a project is produced as a result of the analysis of the system to be developed. The requirements specifications provided by the customer are analyzed carefully and this document is produced as a result of a thorough analysis of the system at hand. In a sense, this document is a contract between the developer ("you") and the user/customer ("us" in this case). Analysis results in a model of the system that aims to be correct, complete, consistent, and verifiable. Developers formalize the system specification produced during requirements elicitation and examine in more detail boundary conditions and exceptional cases. Developers correct and clarify the system specification if any errors or ambiguities are found. The client and the user are usually involved in this activity, especially when the system specification needs to be changed and when additional information needs to be gathered.

You can use one of the many approaches to do your project analysis. One of them is the object-oriented analysis used in software-intensive projects. For example, in object-oriented analysis, developers build a model describing the application domain. The analysis model is then extended to describe how the actors and the system interact to manipulate the application domain model. Developers use the analysis model, together with nonfunctional requirements, to prepare for the architecture of the system developed during high-level design.

The analysis of your system or solution, requirements, and related formal expressions, models, diagrams, and charts should build the major portion of your Analysis Report.

Additionally, you will include the following in your analysis report. As part of the analysis, you will consider how your system or solution will be constrained or address the needs of factors like public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors. That means you should consider how your solution can be affected by those factors, and do your analysis and design accordingly. At the end of this thinking and consideration phase, you will write in your analysis report (in a section named Consideration of Various Factors in Engineering Design) how these factors affected your analysis and can affect your design later. You should take each factor one by one and discuss it. It is possible that your solution may not be affected by a particular factor. You will indicate the level of effect (on a scale of 0 -none- to 10 -maximum-) for each factor. After discussions, you will include a table of factors and effects.

You should also envision risks in your project and come up with a B plan as well. In a B plan, you should discuss how you will handle the risks involved and include an alternative plan. In a section (named Risks and Alternatives) of your analysis report, you are to write those risks and your B plan. You should also include a table summarizing the risks.

You also need to plan your project and include your plan in your Analysis report (in a section named Project Plan). As part of the planning activity, you should list your project goals. Based on these goals, you should divide the overall project into work packages (WPs). Each work package should have a leader. At least two students need to work on a WP. For each WP, you will plan the start and end dates, major milestones, and deliverables. The high-level design report is, for example, a deliverable, which is submitted to the jury members. Hence, it should be part of your project plan. You will also come up with a Gantt (or a similar kind of) chart to express your project schedule. You should also specify your objectives and milestones for reaching the goals.

While planning and executing your project, you are to use team collaboration and project management tools [2,3]. There are many collaboration and project management tools available, such as GitHub, Jira, Basecamp, Asana, Redmine, Smartsheet, Trello, and Wrike. Make sure to use all such collaboration tools appropriately so that individual contributions can be properly tracked. You will investigate such tools and select one (or more of them as needed) to use. In your analysis report, you will write the tools you investigated and the ones you selected. You will enter your project plan into such a tool as well. You can, for example, produce your Gantt chart from such a tool. Additionally, hosting your source code and documentation on a repository, such as GitHub, is required.

You will provide an account on your selected tool to your supervisor as well. In this way, (s)he will be part of the team as a mentor and observer and track your progress and collaboration level. You will push code and documents to your repository frequently enough to have your supervisor see the progress and to keep teammates up-to-date.

It is important that all members of your team share the leadership and together provide an inclusive and collaborative environment. No one should be left outside. All should contribute. To this end, you should use the above-mentioned tools. Additionally, leadership should be shared as well. At the end of the project courses (CS491 and CS492), your supervisor will check these team properties (shared leadership, inclusive, collaborative). Therefore, it is important that you provide enough evidence (collected over time) to show peer contributions and to prove these desired properties. Hence such evidence must be collected while the project is being done (for both courses). Additionally, we can use tools from catme [4] or Teammates [5] to do peer grading at the end. To be prepared for all these you will write in a section (named Ensuring Proper Team Work) of your analysis report your plans for proper teamwork and for collecting evidence for desirable team properties and equal contribution.

You should also write and discuss (in a section called Ethics and Professional Responsibilities) the ethical and professional responsibilities that you recognized (fulfilled) during analysis and will recognize during the project.

You should document constraints like accessibility, aesthetics, codes, constructability, cost, ergonomics, extensibility, functionality, interoperability, legal considerations, maintainability, manufacturability, marketability, policy, regulations, schedule, standards, sustainability, usability, minimum hardware and/or software specifications within a seperate section.

You should document the engineering standards that are utilized for the project. Examples for engineering standards are the ISO/IEC/IEEE International Standard - Systems and software engineering -- Software life cycle processes,  ISO/IEEE Recommended Practice for Software Requirements Specifications,  Unified Modelling Language (UML) 2.5.1. There can be other standards relevant to your project, and they should be discussed in the related section as well. Here are some pointers to major standardization organizations:

Note that while doing your projects, you will make some decisions and judgments regarding your designs and solutions that will consider the impact of your engineering solution in global, economic, environmental, and societal contexts. At the end of CS492, you will be asked and be evaluated about such judgments that you have made till that time. Therefore, please use a logbook to record all your judgments considering these four elements during CS491 and CS492.

At the end of CS492, you will be asked what new knowledge (and skills) you acquired during the course, what learning strategies you used to acquire that knowledge, and how you applied that knowledge in your project. Therefore, in the analysis report, you should plan (to some extent) your learning as well. In a section of the analysis report (named Planning for New Knowledge and Learning Strategies), you will write what new knowledge you may need and how you plan to acquire that knowledge. Possible learning strategies include online learning, learning from peers, interviewing experts, learning by doing (hands-on experience), reading from a book, and doing exercises.

There can be many different ways in which to organize an analysis document; the key point is being able to convey the models produced as a result of the analysis as clearly and completely as possible. One example organization (that uses object-oriented approach) is as follows [1]:

1. Introduction
2. Current System (if any)
3. Proposed System
 3.1 Overview
 3.2 Functional Requirements
 3.3 Nonfunctional Requirements
 3.4 Pseudo Requirements
 3.5 System Models
  3.5.1 Scenarios
  3.5.2 Use Case Model
  3.5.3 Object and Class Model
  3.5.4 Dynamic Models
  3.5.5 User Interface - Navigational Paths and Screen Mock-ups
4. Other Analysis Elements
 4.1. Consideration of Various Factors in Engineering Design
  4.1.1 Constraints
  4.1.2 Standards
 4.3. Risks and Alternatives
 4.4. Project Plan
 4.5. Ensuring Proper Teamwork
 4.6. Ethics and Professional Responsibilities
 4.7. Planning for New Knowledge and Learning Strategies
5. Glossary
6. References

Note that, during your project you will not freeze the requirements with the submission of the Analysis report. You should work iteratively during the project. This means, while doing design and implementation, you should go back and refine your analysis/requirements/design. The design changes/updates are discussed during the Project Progress Meetings and are documented in students' logbooks. While working on the project, your understanding of the problem and domain will increase and you will be in a better position to refine your requirements and design. Hence the final requirements and design of the project will be completed when the whole project is completed. At that time, you will include the final requirements and final design details in your Final Report together with your implementation and other required information.

See template: CS491_Analysis_and_Requirement_Report_Template_v2.2.doc

5. Presentation and Demo:

At the end of the first semester, before final week, there will be a demo session for teams to present their progress to course instructors and to supervisors. Each team will have 20 minutes for their demo session. The scoring rubric for presentation & demo is as follows:

Organization and General Structure of the Presentation & Demo: Points
Information needs to be presented in a clear and logical sequence. 10
Each team member should present their contribution to the project. The demo session will be online, still the students needs to be dressed professionally and handle the entire session and questions appropriately and professionally.
//Practice and practice together as a team to make smooth transitions between speakers. Practice more to use time efficiently. keywords: 10 Ways to Prepare for a Winning Team Presentation.
10
Introduction and a short (2-4 page) Presentation (5 minute):
Introduction should give clear overview of the project and thorough background information about the target problem that you are trying to solve. Teams should present their project plan, current status and progress (gantt chart) of the tasks as next couple of slides.

//Remember the elevator speech and innovation wheel for the first slide. On the second slide, a graphical representation of the status of your main tasks e.g. research, design, frontend, backend (keywords:software project status graph dashboard). You can also create a project health card to show the progress and risks (keywords: software project health card). Since this is a design project, you should also show graphical representation of the architecture you designed (microservices, docker, gateways, containers, backend db,etc)
35
Demo (5-10 minute):
Since the capstone projects will not be completed in the first semester, your instructors and supervisors expect to see your current status and the progress of your design and implementation. Teams should eliminate all grey areas and should do their research and testing to finalize their architecture and design in the first semester. So that in the second semester, teams can focus on the implementation of the features without spending more time on major changes at the core fabric of their project.

In the demo, we aim to see teams as having installed and using the technologies, libraries, 3rd party tools and services they have decided on during their past research and evaluations.
//Show your UI, datasets,user/customer survey results, code, 3rd party APIs & services you integrated, your proficiency in using the frameworks you selected, show how this project helped you to develop team spirit and a sense of discipline. Show, how did you overcome the technical difficulties of working in a team.Describe the technical challenges and successes you encountered. Explain what you learned from the process and how this was a learning stretch for you.
35
Q & A Session (1-3 minute):
We expect teams to handle the questions that may be asked during the session appropriately and professionally. 10

 

References:
[1] Object-Oriented Software Engineering, Using UML, Patterns, and Java, 2nd Edition, by Bernd Bruegge and Allen H. Dutoit, Prentice-Hall, 2004, ISBN: 0-13-047110-0.
[2] Wikipedia, List of Collaborative Softwarehttps://en.wikipedia.org/wiki/List_of_collaborative_software, Accessed on 22 October 2019.
[3] Wikipedia, Comparison of Project Management Software, https://en.wikipedia.org/wiki/Comparison_of_project_management_software, Accessed on 22 October 2019.[4] CATME Smarter Teamworkhttps://catme.org/, Accessed on 22 October 2019.
[5] TEAMMATES - Online Peer Feedback/Evaluation System for Student Team Projectshttps://teammatesv4.appspot.com/, Accessed on 22 October 2019.