+1(978)310-4246 credencewriters@gmail.com
  

Description

This week I need assistance with reviewing and critiquing group 5. No citations or references are required just a simple analysis and feedback of what the group did well and what they can improve on.

I attached a rubric along with group 5’s ICD & Plan. I attached some older documents they worked on leading up to this one to give you some context into what it is they are working on.

Do not get the documents confused you will be doing a review only for the ICD & test plan

hank you!

GFive Inventory Management ICD
CMSC 495-7383
4/20/2021
Group 5
Scott Forsyth
Ryan Stewart
Andrew Bellmio
Nathan Clavell
2
Revisions
Revision Number
Revision Date
Team Member
Notes
1.0.0
4/16/2021
Ryan Stewart
Initial Draft
1.0.1
4/16/2021
Scott Forsyth
Added Test Cases
1.0.2
4/17/2021
Andrew Bellmio
Document Design
1.0.3
4/18/2021
Nathan Clavelli
Final Draft
3
Contents
Revisions
2
Interface Control Document
3
ICD of User Login
3
ICD for Connectivity
4
ICD for UI Navigation
5
ICD for Valid and InValid Transfer
5
ICD for User Work-Order
6
ICD for Query (Any Management System)
6
ICD for Create (Any Management System)
7
ICD for Edit (Any Management System)
7
ICD for Delete Object
8
ICD for Any Transaction
9
Test Cases
Items Requirements
9
9
User Interface Testing
10
Location Requirements
14
4
Interface Control Document
ICD of User Login
User Input from the user login html page to the input subsystem and user database
From
To
Name
Type
User Input
Input
subsystem,
User database
User login
Char, Integer
User Input
User database,
User database
Invalid user
login
Char, Integer
User Input
Input
subsystem
User Logout
Integer
Value Range
0-9
Default Value
0
A-Z
0-9
A-Z
True / False
0
False
ICD for Connectivity
Subsystem that monitors if network connection is established and if not warns the user.
From
To
Name
Type
Value Range
Default Value
Network
Connection
Subsystem
Web GUI
Connection
Loss/Time out
Boolean
True / False
True
5
6
ICD for UI Navigation
GUI Web pages to allow a user to navigate to sub-pages with correct permissions
From
To
Name
Type
Value
Range
Default
Value
User
Input
Permission SubSystem, Html Page
User Changes
UI Screen
Integer,
Boolean
0-10
0
ICD for Valid and InValid Transfer
User is able to transfer items and locations via UI Html pages
From
To
Name
Type
Value
Range
Default
Value
User
Input
Permission
subsystem, Html
sub-page,
Transaction subsystem
Valid Transfer
Integer
0 – 10
0
User
Input
Permission
subsystem, Html
sub-page,
Transaction
sub-system
Invalid
Transfer
Integer
0 – 10
0
7
ICD for User Work-Order
User completes work order through Item Management
From
To
Name
Type
Value Range
Default Value
User Input
Html Item
page, Item
Management
sub-system
Work-Order
Char, Boolean
A-Z, True /
False
X, False
User Input
Html Item
page, Item
Management
sub-system
Invalid WorkOrder
Char, Boolean
A-Z, True /
False
X, False
ICD for Query (Any Management System)
User queries any management system with valid data with valid permissions.
From
To
Name
Type
Value Range
Default
Value
User input
Management
html page
item/location
management
sub-system
Query: User
successfully
calls data on
items,
locations,
work orders
Boolean
True / False
False
User input
Management
html page
item/location
management
sub-system
Query: User is
denied to call
data due to
invalid
permissions
Boolean
True / False
False
8
ICD for Create (Any Management System)
User tries to create in any management system (item/location/user) with valid permissions
From
To
Name
Type
Value
Range
Default
Value
User input
Management
html page
item/location
management subsystem
Create: User
creates object
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
User input
Management
html page
item/location
management subsystem
Create: Invalid
user input
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
User input
Management
html page
item/location
management subsystem
Create: User
does not have
permissions to
create object
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
User input
Management
html page
item/location
management subsystem
Create: Object
already exists
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
ICD for Edit (Any Management System)
User edits an object any management system with valid formatted data with valid
permissions.
From
To
Name
Type
Value
Range
Default
Value
User input
Management
html page
item/location
management subsystem
Edit: User edits
object in the
management
page
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
User input
Management
html page
item/location
management subsystem
Edit: Invalid
Input
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
9
User input
Management
html page
item/location
management subsystem
Edit: User does
not have
permission
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
ICD for Delete Object
(Any Management System) – User edits an object any management system with invalid data with
valid permissions.
From
To
Name
Type
Value
Range
Default
Value
User input
Management
html page
item/location
management subsystem
Delete object:
with
permissions
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
User input
Management
html page
item/location
management subsystem
Delete object:
invalid input
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
User input
Management
html page
item/location
management subsystem
Delete object
object does not
exist
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
User input
Management
html page
item/location
management subsystem
Delete object:
object currently
in use
Char,
integer,
boolean
A-Z, 09999,
True/
False
X, 0, False
10
ICD for Any Transaction
(Any management system, invalid permissions) – User attempts any transaction without
sufficient permissions assigned to their token
From
To
Name
Type
Value Range
Default Value
User Account
Sub-system
Html
Management
page GUI
Any Transaction
with invalid
permissions
Integer
0-10
0
Test Cases
Items Requirements
Test ID
Test
Description
Input
Expected Out
ITM-TC1
List Inventory
Click search with no
filter on /items.jsp
page.
All item
information
including:
● ID
● Name
● Location
● Quantity
● Color
Requirement
Reference:
ITM-1
ITM-2
ITM-3
ITM-4
DB-1
UI-3
ITM-TC2
Create New Item
Requirement
Reference:
ITM-7
ITM-TC3
Delete Item
Requirement
Reference:
ITM-8
_
ALT:
SELECT * FROM items
Actual
Out
Pass?
11
ITM-TC4
Transfer Items
into Location
with max
capacity reached
ITM-9
Work Order
executed to add
items to a location
that already has max
item capacity.
Error displayed
“Location Max
Capacity Reached,
Cannot execute
Order”.
Work order is left
un-executed in the
queue.
User Interface Testing
Test ID
Test Description
Input
Expected Out
UI-TC1
Good Login
Navigate to URL
/items.jsp
Successful login.
Dashboard page
displayed.
Req Ref:
UI-1
/index.jsp
Submit Login
Credentials with
valid user credentials
UI-TC2
Bad Login
Requirement
Reference:
UI-2
UI-TC3
Null Login
Requirement
Reference:
UI-2
Navigate to URL
/items.jsp
/index.jsp
Submit Login
Credentials with
invalid user
credentials
Navigate to URL
/items.jsp
/index.jsp
Returned to Login
page with “Invalid
Username or
Password.”
Messages
displayed
Returned to Login
page with “Invalid
Username or
Password.”
Messages
displayed
Actual
Out
Pass?
12
Submit Login
Credentials with
blank fields
UI-TC4
UI-TC5
Direct to non login
page URL
Navigate to URL
/items.jsp
Requirement
Reference:
UI-2
Without having
logged in first
List users
Click search with no
filter on /users.jsp
page.
Returns list of all
users in the
system
Click search with no
filter on
/locations.jsp page.
Returns list of all
locations in the
system
Click search with no
filter on
/workorders.jsp
page.
Returns full list of
work orders
Navigate to URL
/settings.jsp
No able to see the
settings page
because of user
role access
permissions
Requirement
Reference:
UI-5
UI-TC6
List Locations
Requirement
Reference:
UI-4
UI-TC7
List work orders
Requirement
Reference:
UI-6
UI-TC8
Access the System
Settings pages
As worker user
Requirement
Reference:
UI-16
UI-17
UI-TC9
Access the System
Settings pages
As mgmt user
Requirement
Reference:
UI-16
UI-17
Logged in as a
worker user role
Navigate to URL
/settings.jsp
Logged in as a mgmt
user role
Forwarded to the
index.jsp page to
login
Not able to view
information on
items.jsp
Able to see and
edit settings
attributes for the
system
13
UI-TC10
As Worker: Create
/ Delete User
Requirement
Reference:
UI-13
UI-TC11
As Mgmt: Create
User
Requirement
Reference:
UI-13
UI-TC12
As Mgmt: Delete
User
Requirement
Reference:
UI-13
UI-TC13
As Worker: Create
/ Delete location
Requirement
Reference:
UI-10
Go to the users.jsp
page as a worker
user, and try to
create or delete a
user
Create / Delete
buttons should not
appear
(based on user
role)
Go to the users.jsp
page as a mgmt user,
and select create user
button
Manager user is
able to select and
name and address
and create the
user (if it does not
exist)
Go to the users.jsp
Manager user is
page as a mgmt user, able to select a
and select delete user user and delete it
button
Go to the location.jsp
page as a worker
user, and try to
create or delete a
location
Create / Delete
buttons should not
appear
(based on user
role)
UI-TC14
As Mgmt: Create
Location
Requirement
Reference:
UI-8
LOC-3
LOC-5
Go to the location.jsp
page as a mgmt user,
and select create
location button
Manager user is
able to select and
name and address
and create the
location (if it does
not exist)
UI-TC15
As Mgmt: Delete
Location (empty)
Go to the location.jsp
page as a mgmt user,
and select delete
location button
Manager user is
able to select a
location and
delete it
Go to the location.jsp
page as a mgmt user,
and select delete
location button
Manager user is
not able to select
and delete the
location because
Requirement
Reference:
UI-8
LOC-6
UI-TC16
As Mgmt: Delete
Location (full)
14
the location has
items assigned to
it.
UI-TC17
User Logout
Click the profile Icon User is logged out
and select logout, and and not able to see
confirm
page or
information again
without logging in
UI-TC18
Access the System
Settings pages
As mgmt user
Navigate to URL
/settings.jsp
Requirement
Reference:
UI-16
UI-17
UI-TC19
Create Work Order
as worker role
Requirement
Reference:
UI-14
UI-TC20
Create Work Order
as MGMT role
Requirement
Reference:
UI-14
UI-7
UI-TC21
Delete Work Order
as MGMT role
Requirement
Reference:
UI-14
UI-TC22
Execute Work
Order
Requirement
Reference:
UI-15
Logged in as a mgmt
user role
Able to see and
edit settings
attributes for the
system
Go to the
workorders.jsp page
as a worker user, and
try to create or delete
a work order
Create / Delete
buttons should not
appear
(based on user
role)
Go to the
workorders.jsp page
as a MGMT user, click
the button to create
new work order
Taken to the work
order page with a
new work order
number and fields
to fill out
Go to the
workorders.jsp page
as a MGMT user,
select a work order,
and click the delete
button
After
confirmation, the
work order is
removed from the
list.
Go to the
workorders.jsp page,
click on a work order,
and select the
execute button.
Work order
confirmation
popup, and work
order is marked as
completed and
items moved or
changed.
15
Location Requirements
Test ID
Test Description
Input
Expected Out
L-TC1
List Location
Navigate to URL
/locations.jsp
Lists all locations
and their attributes
including:
Req Ref:
LOC-1
LOC-2
LOC-7
LOC-8
LOC-9
Run search with no
filters
●
●
●
●
●
●
Location ID
Address
Name
Capacity
Number of
items
assigned to
location
Number of
pending
items
Actual
Out
Pass?
GFive Inventory Management Project Design
CMSC 495-7383
4/8/2021
Group 5
Scott Forsyth
Ryan Stewart
Andrew Bellmio
Nathan Clavell
Revisions
Revision Number
1.0.0
1.0.1
1.0.2
1.0.3
Revision Date
4/8/2021
4/12/2021
4/13/2021
4/13/2021
Team Member
Andrew Bellmio
Scott Forsyth
Ryan Stewart
Nathan Clavelli
Notes
Initial Draft
Added Risk and mitigation section
Class diagram visions
Assisted with pseudo code
Table of Contents
Revisions ……………………………………………………………………………………………………………………………………. 2
1.
Class Diagrams …………………………………………………………………………………………………………………….. 4
2.
Event-trace ………………………………………………………………………………………………………………………….. 5
3.
4.
•
User login (startup): ………………………………………………………………………………………………………….. 5
•
User login invalid (Failure) …………………………………………………………………………………………………. 5
•
User logout (shutdown) …………………………………………………………………………………………………….. 6
•
User connection loss/timeout: …………………………………………………………………………………………… 6
•
User changes UI screens (moves between management systems) ………………………………………….. 7
•
Valid transfer……………………………………………………………………………………………………………………. 7
•
Invalid Transfer ………………………………………………………………………………………………………………… 8
•
User work-order ……………………………………………………………………………………………………………….. 8
•
Invalid work-order…………………………………………………………………………………………………………….. 9
•
Query (Any Management System) ………………………………………………………………………………………. 9
•
Invalid Query Data (Any Management System)…………………………………………………………………… 10
•
Create (Any Management System) ……………………………………………………………………………………. 10
•
Invalid Creation (Any Management System, Missing info) ……………………………………………………. 11
•
Invalid Creation (Any Management System, Duplicate object) ……………………………………………… 11
•
Edit (Any Management System) ……………………………………………………………………………………….. 12
•
Invalid Edit (Any Management System, Bad Query) …………………………………………………………….. 12
•
Invalid Edit (Any Management System, Object in use failure) ………………………………………………. 13
•
Delete object (Any Management System) ………………………………………………………………………….. 13
•
Delete object (Bad query failure) ………………………………………………………………………………………. 14
•
Delete object (Any Management System, object not found) ………………………………………………… 14
•
Delete object (Any Management System, object in use) ……………………………………………………… 14
•
Any Transaction (Any management system, invalid permissions) …………………………………………. 15
Pseudocode ……………………………………………………………………………………………………………………….. 15
•
UserGUI Subsystem……………………………………………………………………………………………………… 15
•
LocationManagement Subsystem………………………………………………………………………………….. 18
•
ItemManagement Subsystem ……………………………………………………………………………………….. 19
•
UserManagement Subsystem ……………………………………………………………………………………….. 21
•
Database Subsytstem …………………………………………………………………………………………………… 23
Risks and Mitigations ………………………………………………………………………………………………………….. 24
1. Class Diagrams
Modifications from previous plan:
To make the management systems more symmetrical, secure, and understandable, we have
split out the User Management subsystem from the UserGUI subsystem.
Notes:
Our database is going to be run via SQL per the previously described architecture, and our UI is
provided via HTML/CSS, so this is a little unconventional as far as class diagrams go. We have attempted
to conform as closely as possible to the design requirements, but this does get a little strange, as
obviously we are not strictly running code to “draw” a GUI. For the sake of readability, we are including
these properties and treating things like that as methods, and our SQL database as a class to conform
with assignment specifications.
2. Event-trace
• User login (startup):
Description: User logs in to the system (Startup)
Precondition: The webserver/SQL database are running
Post-condition: The user has logged in and has an active session.
• User login invalid (Failure)
Description: User logs in to the system with invalid credentials
Precondition: The webserver/SQL database are running
Post-condition: The user has logged in and has an active session.
• User logout (shutdown)
Description: User logs out of the system
Precondition: The user is currently logged in
Post-condition: The user is logged out and their session is terminated.
• User connection loss/timeout:
Description: User loses connection from the system
Precondition: The user is currently logged in, but the system senses a closed connection or
the user times out
Post-condition: The user is logged out and their session is terminated
• User changes UI screens (moves between management systems)
Description: User opens a new management screen
Precondition: The user is currently logged in
Postcondition: The user has navigated to the new screen
• Valid transfer
Description: User transfers items through Location Management
Precondition: The user is currently logged in and has the Location Management screen
drawn with valid permissions. The user provides a valid transaction.
Postcondition: The user has posted a transaction
• Invalid Transfer
Description: User transfers items through Location Management
Precondition: The user is currently logged in and has the Location Management screen
drawn with valid permissions. The user provides an invalid transaction.
Postcondition: No transaction is posted.
• User work-order
Description: User completes work order through Item Management.
Precondition: The user is currently logged in and has the Item Management screen drawn
with valid permissions. The user provides a valid transaction.
Postcondition: Work order is completed, success reported.
• Invalid work-order
Description: User completes work order through Item Management.
Precondition: The user is currently logged in and has the Item Management screen drawn
with valid permissions. The user provides an invalid transaction.
Postcondition: Work order is not completed, failure reported.
• Query (Any Management System)
Description: User queries any management system with valid data with valid permissions
Precondition: The user is currently logged in and has the management system drawn on
their screen.
Postcondition: Query is successful, with information returned
• Invalid Query Data (Any Management System)
Description: User queries any management system with invalid data with valid permissions
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Query is unsuccessful, with user notified
• Create (Any Management System)
Description: User tries to create in any management system (item/location/user) with valid
permissions
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Creation is successful, user notified
• Invalid Creation (Any Management System, Missing info)
Description: User attempts to create an object in any management system with invalid
formatted data with valid permissions
Precondition: The user is currently logged in and has the management system drawn on
their screen.
Postcondition: Creation is unsuccessful, user is notified
• Invalid Creation (Any Management System, Duplicate object)
Description: User attempts to create an object any in management system with valid data which
has a duplicate in the database already with valid permissions
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Creation is unsuccessful, user is notified
• Edit (Any Management System)
Description: User edits an object any management system with valid formatted data with valid
permissions
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Edit is successful, user is notified
• Invalid Edit (Any Management System, Bad Query)
Description: User edits an object any management system with invalid formatted data with valid
permissions
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Edit is unsuccessful, user is notified
• Invalid Edit (Any Management System, Object in use failure)
Description: User edits an object any management system with valid formatted data, but the
object is in use with valid permissions
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Edit is unsuccessful, user is notified
• Delete object (Any Management System)
Description: User edits an object any management system with invalid data with valid
permissions
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Edit is unsuccessful, user is notified
• Delete object (Bad query failure)
Description: User edits an object any management system with invalid data with valid
permissions
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Edit is unsuccessful, user is notified
• Delete object (Any Management System, object not found)
Description: User deletes an object any management system with valid formatted data with
valid permissions, but the object to delete is not found
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Delete is unsuccessful, user is notified
• Delete object (Any Management System, object in use)
Description: User deletes an object any management system which is in use
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Delete is unsuccessful, user is notified
• Any Transaction (Any management system, invalid permissions)
Description: User attempts any transaction without sufficient permissions assigned to their
token
Precondition: The user is currently logged in and has the management system drawn on their
screen.
Postcondition: Transaction unsuccessful due to failed permissions
Note: The UserGUI class should not show options which the user does not have, but this is to
catch a user somehow managing to get options which they are not allowed to access.
3. Pseudocode
•
UserGUI Subsystem
Class UserGUI {
userToken currentToken = null;
Boolean sessionActive = True;
sqlDB database = new sqlDB (DatabasePath);
//initialize to user login screen
drawGUI(LoginUI)
//while the user is connected
while(sessionActive){
//while no user is logged, in, prompt them for a login
while(currentToken is null){
draw login screen for user
wait until user provides login
currentToken = login(userLoginData);
if login is successful a token is provided
add the current login user and the token to
Database.ActiveUsers
}
//draw the navigation screen once login is successful
drawGUI(ManagementOptionsScreen)
wait for user to provide input
if user wishes to change screens:
changeActiveScreen(screenToDraw)
else if user wishes to provide input to current screen:
//This is obviously somewhat vague, as we could have any of
//the 3 management screens here. Input is described in later
//pseudocode chunks in individual subsystem methods.
Catch if user provides invalid parameters, print error indicating
such
checkPermissions(userToken) to get permission level for user
Catch if the user tries to perform an operation, they do not have
permission for
Process selection
else if user wishes to log out:
logout(userToken);
userToken = null;
}
login(userLoginData){
If(userLoginData is in database.userTable):
Create a user session token;
Store the token in the activeUsers table;
Return a valid user session token to user;
Else:
Report invalid credentials
}
Logout(logoutUserToken){
Remove logoutUserToken from active users.
For each management system:
Prompt deletion of open transactions from logoutUserToken
}
drawGUI{
render html screen for selected address
}
•
LocationManagement Subsystem
LocationManagement {
//list to hold open transfers
List openTransfers;
//list to hold open work orders
List openWorkOrders;
processTransfer(itemOrigin, itemDestination, quantity, transferItemID){
add transaction to openTransfers
If(item exists at origin in required quantity){
updateLocation(origin, transferItemID, -quantity)
updateLocation(itemDestination, transferItemID, quantity)
}
else
print an error to the screen indicating origin does not exist
close transaction in openTransfers
}
processWorkOrder(workOrderID){
if work order ID exists in Database.workOrderTable and it’s not in openWorkOrders{
add workOrderID to openWorkOrders
get item, quantity, and location from Database.workOrderTable inventory as
indicated
remove workOrderID from Databases.workOrderTable
}
else
print error to screen indicating work order does not exist
remove workOrderID from openWorkOrders
}
createLocation(locationName){
if location name not already in Database.locationTable
update locationTable with new entry
else
print error to screen indicating duplicate location
locationDelete(locationToDelete){
if locationToDelete in Database.locationTable AND locationToDelete is empty
delete locationToDelete from Database.locationTable
else
print error to screen to indicate location not empty
}
queryLocation(locationToQuery){
if locationToQuery in Databases.locationTable
print items in location
else
print error indicating location does not exist
}
queryEmpty(){
return each location with no inventory in it
}
•
ItemManagement Subsystem
ItemManagement{
List openItems;
createItem(itemID, unitOfMeasure, itemDesc){
if itemID does not exist in itemTable
add itemID with unitOfMeasure and itemDesc to Database.itemTable
else
print error indicating the item already exists
}
createWorkOrder(itemID, quantity, location){
if location and itemID are in the database
create a work order in workOrderTable matching parameters
else
print error that indicating which one was not found
}
editItem(itemID, unitOfMeasure, itemDesc){
if itemID does not exist in itemTable
print error indicating the item does not exists
else
add itemID to openItems
update unitOfMeasure and itemDesc in itemTable
remove itemID from openItems
}
deleteItem(itemToDelete){
if itemToDelete exists in itemTable
if itemToDelete in queryUnused()
delete item from itemTable
else
print error indicating item is in use
else
print error indicating item does not exist
}
queryItem(itemToQuery){
if itemToQuery exists in itemTable
return all locations and quantities for that item from locationTable
else
print error indicating item does not exist
}
queryUnused(){
if there are any unused items
return a list of them from itemTable
else
print message indicating there are no unused items
}
•
UserManagement Subsystem
UserManagement{
List openUsers;
addUser(userID, Name, credentialLevel){
if userID doesn’t exist in userTable
create new user in userTable matching parameters
}
Else
Report that the user already exists
}
editUser(userID, Name, credentialLevel){
if userID is in userTable and isn’t in openUsers
place userID in openUsers
set name and credential level at userID in database
remove userID from openUsers
else
Report that the userID is invalid
}
queryUser(userID){
if userID exists in userTable
return all information about it
else
Report that userID does not exist
}
queryUsers(credentialLevel){
if credentialLevel exists in userTable
return all users with that credential level
else
Report that credential level does not exist
}
deleteUser(userID){
if userID is in userTable and isn’t in openUsers AND is not in activeUsers
delete userID
else
Report that the userID was unavailable
}
•
Database Subsytstem
Database{
SQLTable userTable;
SQL Table locationTable;
SQL Table itemTable;
SQL Table workOrderTable;
SQL Table activeUsers;
checkPermissions(userToken){
If userToken exists in activeUsers
Return permission level
Else
Report user is not logged in
}
updateLocation(locationToUpdate, ItemID, Itemqty) returns Boolean processed {
boolean processed = false;
set quantity at itemID/locationToUpdate = itemqty
processed = true;
}
4. Risks and Mitigations
Some of the risk factors external to the application that would need to be monitored and accounted for:
Risk
Hosting not accessible
User Load
Resource Limits
Ransom or Malware attack
Irregular Patch
Insecure Traffic
Mitigation
Private hosting is cheaper but comes at the loss
of redundancy. Having a dead man ping
(https://deadmanssnitch.com/) running on the
webserver and database allows it to spin up a
AWS instance within 5 min causing minimal
downtime.
Due to the smaller team and development
system, user load is limited by the connection
and bandwidth. To mitigate, a trigger to spin up a
second load balanced instance of the webserver
in AWS could be used.
Depending on the amount of traffic, sessions, etc,
the potential of limited webserver resources
could be mitigated the same as above by spinning
up a load balanced webserver or cluster to meet
need.
While access is limited and the database isolated
with standard security practices, there is still a
change of “crypto” attacks. This is mitigated by
backups taken ever 30 min, mixed with activity
logs there should be no down time.
All patches to webserver, DB, libraries, and
frameworks are tested in dev environment first
to see if the application still performs as
expected.
The web server runs with SSL encryption, but the
connection to the database is local. Should the
database and webserver be separated, TLS traffic
between them would need to be setup.
Test Plan
Once we did the design with event-trace diagrams, it is easy to complete the test plan.
Our test plan is a document that lists all test cases with each test case corresponds to an
event-trace diagram. Also, in each test case, we list the requirement that is met by this
test case; we then check to make sure that all requirements are covered by our test cases.
Lastly, we make sure that there are test cases that handle errors, such as unexpected or
invalid input values, to see if our design can handle those situations gracefully (in case
we missed these cases in the event-trace diagrams). In the real world, the design is done
by one team, and the test plan is developed by another team (called test team), and this
test team might not have access to the design document while developing the test plan. If
the design document is available, the test team would use it together with the functional
requirements document to develop the test plan, i.e. the test team does not rely blindly on
the design document. If the design document is not available, then the test team must
rely on the functional requirements alone to develop test cases on both normal operations
and error-handling operations.
Example: sample test plan for the Microwave oven
Test
Case
Number
Requirement
Number
Test Description
Expected
result
1
1, 2, 3
Place a Healthy Choice
Meatball Marinara inside
the microwave oven, then
enter power level and time
according to instruction on
this TV dinner. Press the
Start button and let the
microwave run until finish.
The TV
dinner is
hot and
ready to
eat.
2
1, 2, 3
Let a Hungry Man
Meatloaf thaw for an hour
or so per instruction, then
put it inside the microwave
oven. Enter the power
level and time according to
instruction on the TV
dinner. Press the Start
button, and let the
The TV
dinner is
hot and
ready to
eat.
Actual
result
Pass/Fail
microwave run until finish.
3
2, 3, 7
Place a Banquet Chicken
Fingers Meal TV dinner
inside the microwave oven,
then enter power level and
time according to
instruction on the TV
dinner. Press the Start
button, then while the
microwave is cooking,
press the Stop button
The
microwave
system
stops
cooking
(light turns
off and
turntable
stops)
Note:
1) The Actual Result and Pass/Fail columns are to be filled out when it is time to carry
out the tests.
2) Requirement 7 was added as the start and stop buttons were added as a derived
requirement.
Interface Control Document
The Interface Control Document (ICD) is a document that lists all data and their types
that are passed among the subsystems or between a subsystem and an outside system.
The purpose of this document is to have the interfaces well defined so that sub-systems
can be coded in parallel by different software engineers.
Example: ICD for the Microwave sub-systems.
Data between Input Subsystem and MicroWaveHeat subsystem:
From
Input
Subsystem
To
Name
Type
Microwave Power_Level
Heat
MicrowaveHeat Input
Subsystem
Status
Value
Range
Default
Value
Integer
0 – 10
5
Integer
0-10
0
Data between Input Subsystem and Timer subsystem:
From
To
Name
Type
Value
Range
Default
Value
Input
Timer
Timer_Value
Subsystem Subsystem
Unsigned
long int
0 – 9999
0
Timer
Input
Status
Subsystem Subsystem
Unsigned
long int
0 – 9999
0
Data between Input Subsystem and TurnTable subsystem:
From
To
Input
TurnTable
Subsystem
Name
On
Type
Boolean
Value
Range
True
False
Default
Value
False
TurnTable
Input
Status
Subsystem
Boolean
True
False
False
Data between Timer Subsystem and Display subsystem:
From
To
Name
Timer
Display
Count_Value
Subsystem Subsystem
Type
String
Value
Range
“0 – 9999”
or
Default
Value
“0”
“Food is
Ready”
Display
Timer
Status
Subsystem Subsystem
Boolean
True
False
False
Project Test Plan & ICD Grading Rubrics
Items
Test cases must be mapped to functional requirements
Test description and expected results must be listed for each test case
All functional requirements must be covered in the test plan
Test cases must cover all normal operations
Test cases must cover error-handling scenarios
Any two communicating classes must have an ICD
ICD must list data types, range of values and default values
Points
10
10
15
15
10
20
20

Purchase answer to see full
attachment

  
error: Content is protected !!