Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Phase 1 Report Template for CS 6400 - Fall 2023, Thesis of Natural Science

A detailed template for a phase 1 report in a cs course, outlining the required sections, data types, business logic constraints, task decomposition, and abstract code. It serves as a guide for students to structure their reports and ensure they meet the project requirements.

Typology: Thesis

2022/2023

Uploaded on 09/30/2024

lakshmi-areti
lakshmi-areti 🇺🇸

1 document

1 / 6

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Phase 1 Template:
Please use this template as a guide for what to submit for phase 1 report. Include team number, class, and current term in the header for all
pages (show above).
For your p1_report.pdf submission, please follow this order:
Table of Contents
Data Types
Business Logic Constraints
TD/AC for each Task including oval diagrams for each task on remaining pages of report
Table of Contents:
Datatypes, Constraints, Task Decomposition (TD), and Abstract Code (AC) for each task working navigation links.
Data Types:
Include data types for all attributes in your EER diagram. In this phase, SQL datatypes such as VARCHAR should not be used. The
datatypes listed should be simple datatypes such as integer, string, Boolean, and float for single-value attributes, and for multi-value
attributes, you should use list, collection, or single-dimension array with the individual element data type properly reflecting the data
being stored. You should also indicate if NULLs are allowed for the attribute.
Make sure to recognize when to appropriately store certain kinds of data (such as phone numbers, quantities, or zip codes. See this for an
example.) In this phase, do not create database tables or any kind of database schema, so do not include any surrogate keys, foreign keys,
or any data types that represent them.
In phase 3, you may optionally implement 'best-practice' security safeguards (password hashing, SQL injection prevention, etc.), but you
should not model them in phase 1 or phase 2.
Business Logic Constraints:
Include applicable business logic which cannot be represented sufficiently in the EER diagram.
Task Decomposition:
Include the rules of thumb outlined in the lectures for each task and determine if a mother task is needed (lock types, enabling conditions,
frequency, schemas, indices, consistency, and subtasks). Task names on the IFD should match those in the TD. Please follow the report
names provided in the requirements document, so TAs can easily follow your logic.
Per Leo Mark: "The rules of thumb for task decomposition give you an indication of whether to sub-divide or not. You stop the
decomposition when no more decomposition is called for by the rules. You need a mother task if the sub-tasks need to be sequenced, all
executed together as an atomic unit."
Per Jay Summet: “If your task has no sub-tasks you would only have the single oval in the IFD and the abstract code in the report. If your
tasks do have subtasks, then you show how it breaks down and show the abstract code for each subtask in the report.
Abstract Code:
Your abstract code should handle basic data validation (example: user cannot enter string for an int datatype) and basic error handling
(example: user types in wrong password what happens?). Consider the IFD forms to be like web-page user interfaces where the user
clicks on buttons or types input fields. Walk us through how you get to each task and how you leave each task to get to the next one.
Include consistent markup to convey meaning (bold, italic, underline, etc.). Include the words ‘task’, form’, and ‘button’ (or similar)
after every use in your abstract code so there is no confusion on intent. Note: application variables like '$UserID' are optional
depending on your language- PHP, Python, Java, Ruby, etc. Make sure your abstract code clearly describes how a variable is assigned!
Markup something similar to:
Bold Underline: Form Example: Main Menu form
Bold Italics: Buttons Example: Save button
Bold: Task Example: Login task
Italics: Form Input Fields: Example: username, model, cost, etc.
…etc.
Please do not put TD and AC side-by-side, TD before AC sections in order are allowed.
Lastly, use this as a guide so the grading process will be faster. Feel free to post a private question: (Team0## + Instructors) if you need
further clarification for your project.
Thank you in advance,
CS6400 Instructional Team
pf3
pf4
pf5

Partial preview of the text

Download Phase 1 Report Template for CS 6400 - Fall 2023 and more Thesis Natural Science in PDF only on Docsity!

Phase 1 Template: Please use this template as a guide for what to submit for phase 1 report. Include team number, class, and current term in the header for all pages (show above). For your p1_report.pdf submission, please follow this order:

  • Table of Contents
  • Data Types
  • Business Logic Constraints
  • TD/AC for each Task including oval diagrams for each task on remaining pages of report Table of Contents: Datatypes, Constraints, Task Decomposition (TD), and Abstract Code (AC) for each task working navigation links. Data Types: Include data types for all attributes in your EER diagram. In this phase, SQL datatypes such as VARCHAR should not be used. The datatypes listed should be simple datatypes such as integer, string, Boolean, and float for single-value attributes, and for multi-value attributes, you should use list, collection, or single-dimension array with the individual element data type properly reflecting the data being stored. You should also indicate if NULLs are allowed for the attribute. Make sure to recognize when to appropriately store certain kinds of data (such as phone numbers, quantities, or zip codes. See this for an example.) In this phase, do not create database tables or any kind of database schema, so do not include any surrogate keys, foreign keys, or any data types that represent them. In phase 3, you may optionally implement 'best-practice' security safeguards (password hashing, SQL injection prevention, etc.), but you should not model them in phase 1 or phase 2. Business Logic Constraints: Include applicable business logic which cannot be represented sufficiently in the EER diagram. Task Decomposition: Include the rules of thumb outlined in the lectures for each task and determine if a mother task is needed (lock types, enabling conditions, frequency, schemas, indices, consistency, and subtasks). Task names on the IFD should match those in the TD. Please follow the report names provided in the requirements document, so TAs can easily follow your logic. Per Leo Mark: " The rules of thumb for task decomposition give you an indication of whether to sub-divide or not. You stop the decomposition when no more decomposition is called for by the rules. You need a mother task if the sub-tasks need to be sequenced, all executed together as an atomic unit ." Per Jay Summet: “ If your task has no sub-tasks you would only have the single oval in the IFD and the abstract code in the report. If your tasks do have subtasks, then you show how it breaks down and show the abstract code for each subtask in the report.Abstract Code: Your abstract code should handle basic data validation (example: user cannot enter string for an int datatype) and basic error handling (example: user types in wrong password what happens?). Consider the IFD forms to be like web-page user interfaces where the user clicks on buttons or types input fields. Walk us through how you get to each task and how you leave each task to get to the next one. Include consistent markup to convey meaning ( bold , italic , underline, etc.). Include the words ‘task’,form ’, and ‘ button ’ (or similar) after every use in your abstract code so there is no confusion on intent. Note: application variables like '$UserID' are optional depending on your language- PHP, Python, Java, Ruby, etc. Make sure your abstract code clearly describes how a variable is assigned! Markup something similar to: Bold Underline: Form Example: Main Menu form Bold Italics: Buttons Example: Save button Bold : Task Example: Login task Italics: Form Input Fields: Example: username, model, cost , etc. …etc. Please do not put TD and AC side-by-side, TD before AC sections in order are allowed. Lastly, use this as a guide so the grading process will be faster. Feel free to post a private question: (Team0## + Instructors) if you need further clarification for your project. Thank you in advance, CS6400 Instructional Team

Table of Contents:

GTOnline Data Types

Data Types

GTOnline Constraints

Business Logic Constraints

Task Decomposition with Abstract Code:

Login

Main Menu

View Profile

…etc.

Business Logic Constraints: GTOnline User

  • Users who are new to GTOnline must register first.
  • Users who have an existing GTOnline account will not be able to register.
  • Both users must send friend requests to each other and both requests must be accepted.

Login

Task Decomp

Lock Types : Read-only on RegularUser table Number of Locks : Single Enabling Conditions: None Frequency : Around 200 logins per day Consistency (ACID): not critical, order is not critical. Subtasks: Mother Task is not needed. No decomposition needed.

Abstract Code

● User enters email ('$Email'), password ('$Password') input fields. ● If data validation is successful for both username and password input fields, then: ● When Enter button is clicked: ● If User record is found but user.password != '$Password': ○ Go back to Login form, with error message. ● Else: ○ Store login information as session variable '$UserID'. ○ Go to View Profile form. ● Else email and password input fields are invalid, display Login form, with error message.

Main Menu / Navigation Bar

Task Decomp

Lock Types : Lookup User Name and City, all are Read-only. Number of Locks: Single Enabling Conditions: Trigger by successful login. Frequency: User Detail and Menu Options have the same frequency. Consistency (ACID) : not critical, order is not critical. Subtasks: Mother Task is not needed. No decomposition needed.

Abstract Code

● Show " View Profile ", " Edit Profile ”, “View Friends " ”, “Search for Friends " ”, “View Requests " ”, “View Status Updates ", and " Log out " tabs. ● Upon: ● Click View Profile button- Jump to the View Profile task. ● Click Edit Profile button- Jump to the Edit Profile task. ● Click View Friends button- Jump to the View Friends task. ● Click Search for Friends button- Jump to the Search for Friends task. ● Click View Requests button- Jump to the View Requests task. ● Click View Status Updates button- Jump to the View Status Updates task. ● Click Log Out button- Invalidate login session and go back to the Login form.

Main Menu /

NavBar