You are on page 1of 10

Contents

1 Introduction
1.1 Project statement
1.2 Purpose
1.3 Goals
2 Deliverables
2.1 First Semester

2.2 Second Semester


3 Design
3.1 Previous work/literature
3.2 Proposed System Block diagram
3.3 Assessment of Proposed methods
3.4 Validation
4 Project Requirements/Specifications
4.1 functional
4.2 Non-functional
5 Challenges
6 Risks
7 Timeline
7.1 First Semester
7.2 Second Semester
8 Conclusions
9 References

The Idea

1.
2.
3.
4.

User inputs a question


Program requests information about the data center
Data is returned to the program
Data is parsed and outputted to user

1 Introduction
1.1 PROJECT

STATEMENT

We are going to create a chatbot that can process natural language queries regarding
the infrastructure of Critical Labs and formulate intelligent and accurate responses.
This could be a simple question such as "How much power capacity do I have left in
rack A?" or one that requires more complex calculation, such as "If I add a Dell R810
Server to Rack 20 will I overload the breaker?". The end goal is to be able to use a device
such as the Amazon Echo to enable employees to talk to their data center.
Managing a data center is a difficult task and downtime can be detrimental to an
organization. The monitoring system that Critical Labs currently has in place (Trellis) is
antiquated and can make it difficult to extract information. We wish to create a faster
tool that is simple to use so that an employee can easily manage the datacenter.

1.2

PURPOSE

We chose this project because we wanted to go outside of our comfort zone and learn
something new. None of us have worked with natural language parsing before and we
are eager for this new challenge. We will be learning new tools and working towards
taking a question and returning a quantitative answer. This will be a benefit to us
because well learn new skills, but it will also benefit Critical Labs. This tool will be
helpful to the employees who work in data centers as it will make their jobs easier.
Instead of having to do lots of navigation on a website and do queries over lots of data,
they can simply ask our intelligent agent a question and quickly get a response. This
will save everyone time and will help Critical Labs become more efficient by minimizing
downtime.

1.3 GOALS
Goals:

Gain experience in a professional work environment


Understand how to maintain a constant workflow with a team
Practice the agile methodology of software development
Build our communication skills with a client
Understand how to schedule meetings with a professional
Know how to ask meaningful questions
Create a proper source control that multiple people can maintain and update the
project
Collaborate together using github
Take advantage of github features such as branching and rollbacks
Learn about natural language parsing
Grasp how to analyze user input in a generic way
Gain knowledge on how to use 3rd party text parsers
Create a working device that will be an improvement over our clients existing
system

2 Deliverables
2.1 FIRST SEMESTER DELIVERABLES (FALL 2016)

Gantt Chart for first and second semester


Project Plan
System Block Diagram
Design Documentation
Project able to answer more than one question about Data Center

2.2 SECOND SEMESTER DELIVERABLES (SPRING 2017)

Project able to answer all questions given to us by client


Design Justifications
Adequate documentation on using and maintaining the product
Testing Plan
(optionally) Parse spoken language

3 Design
3.1 PREVIOUS

WORK/LITERATURE

An important factor to think about when creating a project is Does it already exist in
todays market? In our case, the Data Center Intelligent Agent premise is very close to
Chatbot, Siri, Cortana, Amazon Echo, and Jarvis from Iron Man. All of these applications
have some sort of natural language user input that is analyzed to produce some sort of
3

output. Each application does their task in a way that is different from each other and is
specified for which platform they run on. The Data Center Intelligent Agent is no
different. It will only run on Critical Labs data centers which means it needs to be very
specific to its environment; other applications cannot meet this requirement. This gives
the Data Center Intelligent Agent value and makes it a project worth working on.

3.2 PROPOSED SYSTEM BLOCK

DIAGRAM

3.3 ASSESSMENT

METHODS

OF

PROPOSED

There are multiple ways to create this project. The biggest design choice is the language
used to create the tool. Different languages run at different speeds. An example would
be using C instead of Java. C is very fast because it is a very low level language, but lacks
the libraries that Java has access to. We plan on using Java for this project because it is
able to run on any operating system which is a necessity since this application may run
on different types of machines.
Another approach would be to use different text parsers. There are a lot of parsers that
are free to download that all work in different ways. One parser would be Parsey
McParseface that Google has created. This parser is able to pick out all nouns,
adjectives, verbs, etc. We could also create our very own parser that will be very specific
to this project. We plan on using Parsey McParseface because it already has lots of
features that we can readily use.

3.4 VALIDATION
We plan to have a list of intended use-cases for the product; we will verify that product
properly fits all of those cases. We plan to test all edge cases within the system to make
sure there are no bugs.
Our sponsor will provide us with the resources to test our solutions. He will spin up an
AWS instance that we can test our code against.

4 Project Requirements/Specifications
4.1

FUNCTIONAL

Can reliably parse user input


The application can parse the user input and know what the user is
asking
Use APIs that are implemented with the datacenter
Application needs to be able to communication with a server by using
APIs. These APIs are the only way to find out information about to
datacenter.
Successfully answer a user inputs question
The program will output an answer to the users question that makes
sense
Has proper error handling for invalid input
If the user spelled something important wrong or there is an internal
error, proper error messages will be displayed to the user for easier
debugging.

4.2 NON-FUNCTIONAL

Maintain security
No access to this program outside of the intended network
No data leaks
Return an answer to the users question within a reasonable time
Must say if there is any issue related to an improper question
Preferably within a second or two.
Needs to be maintainable after we have completed the project
Contain proper documentation
Easy to understand code with modular design
Reliably answer users questions
Ensure the program always responds to the user, even in an exception
case.

5 Challenges
Finding time to work on the project will be very difficult because we all work 20 hours a
week and are taking a full semester course load. In addition to our busy schedules, we
will also have to find time that we are all free to meet. The coordination between all of
us can prove to be stressful which can slow down the project plan.
Another challenge is that none of us have parsed natural language before, so there will
be a lot of learning involved. This will involve understanding how to use tools like
Parsey McParseface and how concepts such as parse trees work.
A lack of understanding all of the clients wishes and needs may lead to more time
planning or any unforeseen changes that need to be made. This could result in a setback
on our timeline, doing unnecessary work, or missing components.
The opportunity to test our project will not always be available because the resources
required to test are expensive and require prior planning.

6 Risks
In the table below we discuss the possible risks, their likelihood, how much it might
impact the project, and our mitigation strategy for each risk.
Risk

We are unable
to meet our
project goals
before the
deadline.
Our developer
is unable to
work due to
personal
reasons.

We encounter
unforeseen
technical
issues.
Loss of coding
base.

Probability
of
occurrence

0.1

0.2

0.4

0.05

Criticality
(0-100)

80

30

60

90

Risk factor
(Prob. Of
occurrence x
Criticality)

Mitigation strategy

We have to scale
back the project, and
likely lose some
functionality.

We will all become


familiar with the
codebase so we can
take over
development easily.

24

All of us will be
working on becoming
familiar with Rest API
and Trellis, so we
can work together to
overcome problems.

4.5

Use git repository as


backups.

Table 1. Risks and Mitigation Strategies

7 Timeline
7.1 FIRST SEMESTER
September - Get requirements from client
October - Work on project plan and start design finish documentation is finished
November - Finish project design, setup project in source control, ready for
development
December - API connection functionality is complete, Start work on core modules

7.2 SECOND SEMESTER


Jan - Continue working on core modules
Feb - Continue working on core modules
March - Finished functionality for each module
April - All around testing is starting
Finish - May - Project is fully working

8 Conclusions
In conclusion, were going to make an easy to use text parsing tool that can answer
questions about a datacenter. We plan to do this by working and communicating with
an industry client so that our product is an improvement over our clients existing
system. In the end, we hope to gain experience in a professional work environment,
learn technical concepts such as language parsing, and have a product that our client
can continue to use.
Our team understands all requirements for this project and has created a reasonable
plan for achieving our goals.

9 References
http://www.apple.com/ios/siri/
www.amazon.com/echo

You might also like