CIS2245: Software Engineering
Amjad Alharbi, Quality Assurance
Jonathon Chenvert, Project Manager
Megan Wong, Developer
Kam Chung Tam, Developer
Steve Morganstern, Quality Assurance
03/20/2018
Midterm Project
SchoolSearch is an educational web platform which is used by students to access various services of the campus online. Students can enter their majors and preferred campuses, then this platform will do an optimal search to show the best results that will accommodate to their educational needs. It will also help to locate those campuses which are nearby using GPS. Students can also shift their classes and register once again in numerous extracurricular activities of the universities. SchoolSearch is aware that creating client-oriented software requires technical excellence and that the firms should hire the best.Stakeholders
The project has several stakeholders including Benjamin Raffleton, a Business Operations Manager. He uses the college’s databases currently in Excel spreadsheet but, would like to use an automated platform in the future for collecting the information he is looking for. He aspires to see the classes made necessary for majors in general and also information about the classes for a whole semester included. He hopes that information on classes such as timetables can be included (Alan, 2014). Our team should first consult each other about the information on the majors that should be made available for viewing by users who request information from them. Hence, we should do an analysis to know the important information and the less important information so that the linking of majors is properly implemented.
Another stakeholder is Roger Freeman, who is the Product Manager. He wants to see a repository that will have the information of classes in the whole university and their categorization to be done well in order to make it easy for any person searching information about a class to do it easily (Alan, 2014). As a team we can discuss with Mr. Roger Freeman so that we know how much of information will be able to be showed as per the needs of him and also if there could be any possible restrictions of some type of information from reaching certain individuals.
Emilia Smith is a student who changed courses and wants an app that can tell her the number of classes she is required to attend before she gets to graduate. This app will help to stop overlapping of classes. It is also supposed to give her notifications of classes beginning (Joseph, 2012). We should discuss with Emilia to know how exactly she would like the app interface.User Stories
As a student, I want courses chosen for me so that I can graduate on time.
As the dean, I want courses filled so that classes aren’t cancelled.
As a counselor, I want tailored class lists for students so that I am able to help them with specific schedules.
As a student, I want a list of colleges near me so that I have a choice in my education.
As a part-time student, I want a list of c ...
1. CIS2245: Software Engineering
Amjad Alharbi, Quality Assurance
Jonathon Chenvert, Project Manager
Megan Wong, Developer
Kam Chung Tam, Developer
Steve Morganstern, Quality Assurance
03/20/2018
Midterm Project
SchoolSearch is an educational web platform which is used by
students to access various services of the campus online.
Students can enter their majors and preferred campuses, then
this platform will do an optimal search to show the best results
that will accommodate to their educational needs. It will also
help to locate those campuses which are nearby using GPS.
Students can also shift their classes and register once again in
numerous extracurricular activities of the universities.
SchoolSearch is aware that creating client-oriented software
requires technical excellence and that the firms should hire the
best.Stakeholders
The project has several stakeholders including Benjamin
Raffleton, a Business Operations Manager. He uses the
college’s databases currently in Excel spreadsheet but, would
like to use an automated platform in the future for collecting the
information he is looking for. He aspires to see the classes made
necessary for majors in general and also information about the
classes for a whole semester included. He hopes that
information on classes such as timetables can be included
(Alan, 2014). Our team should first consult each other about
the information on the majors that should be made available for
viewing by users who request information from them. Hence,
we should do an analysis to know the important information and
the less important information so that the linking of majors is
properly implemented.
Another stakeholder is Roger Freeman, who is the Product
2. Manager. He wants to see a repository that will have the
information of classes in the whole university and their
categorization to be done well in order to make it easy for any
person searching information about a class to do it easily (Alan,
2014). As a team we can discuss with Mr. Roger Freeman so
that we know how much of information will be able to be
showed as per the needs of him and also if there could be any
possible restrictions of some type of information from reaching
certain individuals.
Emilia Smith is a student who changed courses and wants an
app that can tell her the number of classes she is required to
attend before she gets to graduate. This app will help to stop
overlapping of classes. It is also supposed to give her
notifications of classes beginning (Joseph, 2012). We should
discuss with Emilia to know how exactly she would like the app
interface.User Stories
As a student, I want courses chosen for me so that I can
graduate on time.
As the dean, I want courses filled so that classes aren’t
cancelled.
As a counselor, I want tailored class lists for students so that I
am able to help them with specific schedules.
As a student, I want a list of colleges near me so that I have a
choice in my education.
As a part-time student, I want a list of classes that works with
my schedule so that I can continue working.
As a student, I want a list of class prices so that I can stay in
budget every year.
As a student without a car, I want a list of colleges close to
mass transportation so that I can continue my education.
As a student, I want to take more classes at a time so that I can
graduate sooner.
As a student, I want a cross-platform app for my busy life so I
can stay up to date wherever I am.
As a student, I want to know when waitlisted classes become
available so that I can get into the classes I need to graduate.
3. As a student, I want a good balance of GE and major-specific
classes so that I can maintain my GPA.
As a student, I want to know which classes fulfill more than one
requirement so that I can save time in my schedule.
As a student, I want to have a goal of graduating on time so that
I can pick the appropriate classes for that goal.
As a student, I want detailed information about classes so that I
understand what I am going to take.Acceptance Criteria
Header: User successfully creates a SchoolSearch account.
GIVEN Melanie is on the account creation page
WHEN she enters all the required registration fields
AND it is validated
THEN a SchoolSearch account is created
Header: User successfully searches for courses
GIVEN Muhammad has their education profile completed
WHEN he inputs a desired zip code
AND desired course query results are found
AND the classes match the search criteria
THEN the program displays desired courses
Header: User successfully fills out an education profile
GIVEN Zach is in the education profile page
WHEN he fills out all desired information
AND it is accepted
THEN the program gives him a list of recommended courses
Header: User successfully creates an administrator profile
GIVEN Dean is on the administrator profile page
WHEN he fills out all required registration fields
AND it is validated
THEN a SchoolSearch account is updated to become an
administrator account
Header: User successfully creates a counselor profile
GIVEN Counselor is on the counselor profile page
4. WHEN he fills out all required registration fields
AND it is validated
THEN a SchoolSearch account is updated to become a counselor
account
Project Plan
High-level task-Development of a website for students to access
services of the school online
In SR phase-To determine how much of information should be
made available to the web in order to completely develop the
website for use by students and lecturers of the university
(DRM,2011)
In AD phase-To develop an application which can notify
students about their classes and their time of graduating.
In DD phase-The software which is to be developed should
allow users to log in, provide information about majors and
classes, also allow individuals to edit data automatically.
Use Cases
Sequence Diagram
Required Tools for Project
-Use-Cases/Design Flow (Visual Paradigm, mockups io,
balsamiq mockups)
- Git with either GitHub or GitLab
- REST Api (assuming you won't be using SOAP or GraphQL)
- oAuth
- JavaScript (angular vs react)
- A responsive frontend framework (Bootstrap, Material Design,
etc)
- Swift (if we are doing iOS)
REST Api in Java, Spring/Hibernate, and Test Frameworks
- Some Ops stuff, Apache/Nginx, SSL Certs (Let's Encrypt),
AWS/Google
Cloud/Heroku, Linux, ssh, Build Tools (such as Jenkins &
WebPack)
Activity Diagram
5. REFERENCES
Alan M. Davies Great Software Debates (2014), Willey –IEEE
Computer Society Press
DRM Associates (2011) “New Product Development Glossary”
Joseph M Morris (2012) Software Industry Accounting
1
Project 2
In this assignment you will be completing the creation of most
of the tables for the Online Vehicle Sales
(OVS), Inc. online transaction processing (OLTP) database
based on the supplied ERD, and fully
populating all the tables you create. You will also be
performing a number of queries against the
populated tables.
Your OLTP tables will be populated with a large number of
rows since this is intended to simulate a large
number of transactions which will make the data warehouse
you’ll create in later assignments more
realistic.
In Assignment #1 you already created the CUSTOMERS,
VEHICLES, and SALES tables based on the ERD,
and populated them with a few rows of data. In this assignment
you will create the FINANCING_PLANS,
SALES_FINANCINGS, and SALESPERSONS tables and fully
populate them. You will not be creating the
other tables in the ERD.
6. You will be making up your own data and in many cases you
will need to reuse the same customer,
vehicle, and financing plan data for your sales.
For all six tables, unless otherwise specified, you must include
all necessary integrity constraints
including primary keys, foreign keys (except to tables not
created), CHECK constraints, UNIQUE
constraints, and NOT NULL constraints. It is good practice, but
not required, to explicitly name your
constraints.
You can create your database on Nova or any other Oracle
system you wish, but you must use the
Oracle RDBMS.
You should use one or more SQL script files to complete this
assignment. Do NOT submit your SQL script
files. Doing so may result in confusion and will result in lost
points.
If you are using SQL*Plus put all your SQL and results together
in a single SPOOL file. If you are using
SQL Developer or other GUI, put all your screen snapshots in a
single file. For a SPOOL file you need to
show all your SQL and results. For a screen snapshot file you
need to show at least the first 10 INSERT
statements and all other statements. You must show the results
of executing your SQL statements right
after the SQL statements. Failure to do so will result in lost
points.
Do NOT submit additional files as this only complicates the
grading, and will result in lost points.
Here are the specific assignment steps. In order to earn full
7. credit you must keep your steps in order,
number your steps, and put everything in a single file.
1) Create the FINANCING_PLANS table and populate it with
at least 5 (five) rows of data. Show all the
SQL you used and the results returned by Oracle from executing
your SQL after each SQL statement.
2) Add more rows as necessary to your VEHICLES table so
that you have at least 50 (fifty) rows of data
total. Execute a “SELECT COUNT(*) FROM vehicles”
statement after you have added all your new
2
data. Show the INSERT SQL statements you used and the
SELECT COUNT(*) statement and the results
returned by Oracle from executing all your SQL after each SQL
statement.
3) Create the SALESPERSONS table and populate it with at
least 10 (ten) rows of data. You do not
need to worry about a foreign key to the DEALERSHIPS table
since you won’t be creating that
table. Show all the SQL you used and the results returned by
Oracle from executing your SQL after each
SQL statement.
4) Add more rows as necessary to your CUSTOMERS table
so that you have at least 100 (one hundred)
rows of data total. Execute a “SELECT COUNT(*) FROM
customers” statement after you have added all
your new data. Show the INSERT SQL statements you used and
8. the SELECT COUNT(*) statement and the
results returned by Oracle from executing all your SQL after
each SQL statement.
5) Add more rows as necessary to your SALES table so that
you have at least 200 (two hundred) rows
of data total. Execute a “SELECT COUNT(*) FROM sales”
statement after you have added all your new
data. Show the INSERT SQL statements you used and the
SELECT COUNT(*) statement and the results
returned by Oracle from executing all your SQL after each SQL
statement.
6) Create the SALES_FINANCINGS table and populate it
with at least 200 (two hundred) rows of data
(i.e. one per sale). Execute a “SELECT COUNT(*) FROM
sales_financings” statement after you have
added all your new data. Show the INSERT SQL statements
you used and the SELECT COUNT(*)
statement and the results returned by Oracle from executing all
your SQL after each SQL statement.
7) Via a single SELECT query display the total count of
sales, and the lowest, average, and highest sale
price. Show the SQL statement you used and the results
returned by Oracle from executing your SQL
statement right after the statement.
8) Via a single SELECT query display all customer IDs,
names, and zip codes of customers having
purchased 2 or more vehicles. Show the SQL statement you
used and the results returned by Oracle
from executing your SQL statement right after the statement.
9) Via a single SELECT query display the institution and
loan type of the financing plan that was used
9. for the most sales. Show the SQL statement you used and the
results returned by Oracle from executing
your SQL statement right after the statement.
10) Via a single SELECT query display the make of the vehicle
involved in the most sales and all
customers having purchased a vehicle of that make. Show the
SQL statement you used and the results
returned by Oracle from executing your SQL statement right
after the statement.
11) Via a single SELECT query display the total count of sales,
by model and then by zip code, with the
highest values first. Show the SQL statement you used and the
results returned by Oracle from
executing your SQL statement right after the statement.
Your submission MUST be in a single text, Word, or PDF file
with all steps numbered and in order.
3
Project 2 grading rubric
Attribute Meets Does Not Meet
CREATE TABLE SQL
statements
10. 15 points
Uses an SQL script file.
Creates the FINANCING_PLANS,
SALES_FINANCINGS, and
SALESPERSONS tables.
Includes all necessary integrity
constraints including primary keys,
foreign keys, CHECK constraints,
UNIQUE constraints, and NOT NULL
constraints.
Uses an Oracle RDBMS.
All SQL statements are syntactically
correct and execute without error.
0 points
Does not use an SQL script file.
Does not create the
FINANCING_PLANS,
SALES_FINANCINGS, and
SALESPERSONS tables.
Does not include all necessary
integrity constraints including
primary keys, foreign keys,
CHECK constraints, UNIQUE
constraints, and NOT NULL
constraints.
11. Does not use an Oracle RDBMS.
All SQL statements are not
syntactically correct or execute
without error.
INSERT SQL statements 35 points
Populates the FINANCING_PLANS
table with at least 5 (five) rows.
Populates your VEHICLES table with
at least 50 (fifty) rows.
Populates your SALESPERSONS
table with at least 10 (ten) rows.
Add more rows as necessary to
your CUSTOMERS table so that you
have at least 100 (one hundred)
rows of data total.
Adds more rows as necessary to
your SALES table so that you have
at least 200 (two hundred) rows of
data total.
Populates the SALES_FINANCINGS
table with at least 200 (two
hundred) rows of data (i.e. one per
sale).
All SQL statements are syntactically
0 points
12. Does not populate the
FINANCING_PLANS table with at
least 5 (five) rows.
Does not populate your VEHICLES
table with at least 50 (fifty) rows.
Does not populate your
SALESPERSONS table with at least
10 (ten) rows.
Does not add more rows as
necessary to your CUSTOMERS
table so that you have at least
100 (one hundred) rows of data
total.
Does not add more rows as
necessary to your SALES table so
that you have at least 200 (two
hundred) rows of data total.
Does not populates the
SALES_FINANCINGS table with at
least 200 (two hundred) rows of
4
correct and execute without error.
data (i.e. one per sale).
13. All SQL statements are not
syntactically correct or execute
without error.
SELECT SQL statements 35 points
Via a single SELECT query, display
the total count of sales, and the
lowest, average, and highest sale
price.
Via a single SELECT query, display
all customer IDs, names, and zip
codes of customers having
purchased 2 or more vehicles.
Via a single SELECT query, display
the institution and loan type of the
financing plan that was used for the
most sales.
Via a single SELECT query, display
the make of the vehicle involved in
the most sales and all customers
having purchased a vehicle of that
make.
Via a single SELECT query, display
the total count of sales, by model
and then by zip code, with the
highest values first.
All SQL statements are syntactically
correct and execute without error.
14. 0 points
Does not display the total count
of sales, and the lowest, average,
and highest sale price via a single
SELECT query.
Does not display all customer IDs,
names, and zip codes of
customers having purchased 2 or
more vehicles Via a single SELECT
query.
Does not display the institution
and loan type of the financing
plan that was used for the most
sales Via a single SELECT query
Does not display the make of the
vehicle involved in the most sales
and all customers having
purchased a vehicle of that make
Via a single SELECT query
Does not display the total count
of sales, by model and then by zip
code, with the highest values first
Via a single SELECT query
All SQL statements are not
syntactically correct or execute
without error.
SQL script file and SPOOL file 15 points
Submits either an SQL*Plus SPOOL
15. file or screen snapshots of the
output if using SQL Developer or
another GUI.
Demonstrates DROP TABLE, CREATE
TABLE, and ALTER TABLE SQL
statements as they executed and
the Oracle responses.
Demonstrates INSERT SQL
statements as they executed and
0 points
Does not submit either an
SQL*Plus SPOOL file or screen
snapshots of the output if using
SQL Developer or another GUI.
Does not demonstrate DROP
TABLE, CREATE TABLE, and ALTER
TABLE SQL statements as they
executed and the Oracle
responses.
Does not demonstrate INSERT
5
the Oracle responses.
Displays the contents of all tables
from SELECT * FROM tablename;
16. statements.
Displays all single SELECT
statements queries.
Does NOT submit a SQL script file.
Includes a SET ECHO ON SQL*Plus
statement in your SQL script file to
ensure that all the SQL that is
executed is displayed in your
SPOOL file.
SQL statements as they executed
and the Oracle responses.
Does not display the contents of
all tables from SELECT * FROM
tablename; statements.
Does not display all single SELECT
statements queries.
Submits a SQL script file.
Does not Include a SET ECHO ON
SQL*Plus statement in your SQL
script file to ensure that all the
SQL that is executed is displayed
in your SPOOL file.