Software Plan
Requested by:
Mr. Ken Swarner
System Administrator
Computer Science Department
Dr. Tim Lederman
Professor
Computer Science Department
RAEMS
Remote Access Environmental Monitoring
System
EIN Systems
Environmental Intelligence Network
Systems
Prepared by:
Ybelka Brito
Michael
Devanandan
Joseph Halvey
Michael Jakubowski
Vernell Mitchell
Anthony Ruotolo
RAEMS
Remote Access Environmental Monitoring
System
Table of Contents
Problem Definition:
Section 3: Goal for the system and on the project
1Section 4: Constraints on the System and on the Project
1Section 5: Functions to be Provided (Hardware and Software/People)
2Section 6: User Characteristics
2Section 7: Development/Operating/Maintenance Environments
2Section 8: Solution Strategy
3Section 9: Priorities of System Feature
3Section 10: System Acceptance Criteria
3Section 11: Sources of Information
3Project Plan:
Section 1: Life-Cycle Model: Linear Sequential (Classic Waterfall) Model
4Section 2: Organizational Structure
5Section 3: Preliminary Staffing and Resource Requirements
6Section 4: Preliminary Development Schedule
6Section 5: Project Monitoring and Control Mechanisms
6Section 6: Tools and Techniques to be Used
6Section 7: Programming and Scripting Languages
6Section 8: Testing Requirements
6Section 9: Supporting Documents Required
7Section 10: Manner of Demonstration and Delivery
7Section 11: Sources of Information
7Appendix:
Section 1: Gantt Chart
8Section 2: Team Resumes
9-14Section 3: Glossary of Terms
15
In today’s society home monitoring devices are becoming more and more of a necessity for a variety of reasons, from basic home security, to optimal room conditions for sensitive electronic equipment. Our client, Mr. Ken Swarner, has requested that we develop a system which will allow people to set up environmental-monitoring devices in their homes and businesses as well as allow them to view the output of these devices from any web browser on the internet.
The purpose of our software is to help system administrators and homeowners feel more secure when away from their office or home. The Remote Access Environmental Monitoring System (RAEMS) will allow a user to remotely check the status of a monitored area via a webpage. This will result in less stress for users, and faster response to critical emergencies.
1.3: Goal for the system and on
the project
The Goal for our project is to create an environmental-monitoring system which will allow people to monitor different aspects of their home and/or business from a remote location from the web. This will allow Mr. Swarner to check and regulate the temperature in his office in order to protect his computer equipment. His partner, Dr. Lederman, has also requested a water sensor gauge for the purpose of monitoring and water which may enter his basement at an undesirable time. A webcam was also mentioned.
The goal for our team is to learn about and gain experience in the field of software engineering. We also expect to correct software engineering techniques in a group setting to help solve our client’s problem.
1.4: Constraints on the System and on the Project
Our monitoring system needs to be secure,
using the HTTPS standard. We must also discover a way for the program to work
with IP changes as some clients may not have static IP’s. The program itself is required to be built on
a Linux server, while the website must run on an Apache web server. We must not use any ActiveX, an the system
must work on both Windows and Macintosh Operating systems, with the possibility
of also running on the Linux system.
1.5: Functions to be Provided (Hardware and Software/People)
·
A central server database to hold information on
user accounts, including IP addresses of computers connected to monitoring
devices and types of devices connected.
This will allow registered users to communicate with and monitor compatible
devices from almost anywhere with an internet connection and the required
viewing software.
·
An Apache Web Server to host a webpage,
accessible to users, that allows communication with the central database and
the active monitoring devices of the users.
Information that would normally be available directly from the device
will also be available via the web.
·
Webpages on the server will work with the
Firefox and Internet Explorer browsers.
·
Client software will be made to communicate
directly with the monitoring devices, and send information gathered to the
central server. The client software will
work on major operating systems such as Windows and Linux.
·
Devices supported will include a thermometer and
a water sensor.
·
A security system to prevent unauthorized access
to another user’s information and devices.
Both the server software and the client software will be secure.
1.6: User
Characteristics
There will
be a number of different types of users. One
kind of user will be people in charge of the well being of server rooms and
other similar important setups. They
will expect detailed information from the system. Another type of user will be a normal homeowner.
They will want the system to be user friendly.
The system will require users to have an active connection to the internet
for their monitoring devices, as well as access to the internet when they
wish to check on the status of their monitored areas.
Table of Contents
1.7: Development/Operating/Maintenance Environments
The Environmental monitoring system will be created on the Siena College Software Engineering workstations. Users will be able to set up their home or business systems, As well as gain access to the web site and monitor the various devices from any computer with internet capabilities. The usage of this system will be accessible with any computer system with Internet capabilities. The maintenance of this system will be determined later on.
1.8: Solution
Strategy
Our team will utilize the Linear Sequential Model (also know as the Classic Waterfall Model) to actualize the system requested by our clients. The Linear Sequential Model is made up of the following levels:
· Problem Definition: In this beginning level the team will identify and define the problem that needs to be addressed.
· Analysis and Requirements: The team will meet with the respected client to gather all information necessary and required to find a solution to the problem projected.
·
Preliminary Design: The team will convert
the given system requirements into useable software requirements.
·
Coding and Testing: The team will
translate the known software requirements into machine friendly code. The code
will be tested with different cases to make sure it is able to correct errors.
This stage will take place in Spring 2006.
· Project Approval: For this final level the team will in fact install the finalized software product. Documents with relevant assistance and maintenance of the system will be provided to the clients in Spring 2006.
1.9: Priorities of System
Feature
The most important system feature is maintaining security over the database and the information sent to the database from the user. To ensure this, we will assign passwords to the users who register. We will also use HTTPS using the SSL protocol to protect the users’ passwords over the internet. Portability, the ability to use the system from a variety of places, is also of high importance. The purpose of a web-based system is to provide a user-friendly GUI that is completely functional.
1.10: System Acceptance Criteria
The web-based system will allow for a number of on-line activities, including at a minimum:
1) Users to register their compatible monitoring devices.
2) Devices to communicate with the server and send information.
3) The user to access only the parts of the database pertaining to their devices.
4) The user to access the database from anywhere that has the internet and the correct browser.
1.11: Sources of Information
The majority of project information was acquired from meetings with our client, Mr. Ken Swarner. Other sources of information include Software Engineering Lecture by Dr. Tim Lederman, previous Software Engineering teams’ projects and our text Software Engineering: A Practitioner’s Approach by Roger S. Pressman.
2.1: Life-Cycle Model: Linear Sequential (Classic Waterfall) Model
This item defines the problem that needs to be solved. It also allows for our organization to develop and implement a plan to solve the problem.
Before a software package can be launched we must fully understand the purpose of the software; the interface (the design of the product that the consumers must be able to interact with as much ease as possible), as well as the desired behavior (how the product is to be used by consumers), performance (the results of the product). These areas need to be documented thoroughly and reviewed by our clients and organization.
This is the beginning process of designing the code to build the software product. Various functions and classes are described.
Detailed Design
The entire skeleton of the code is produced and prepared for testing.
Development & Testing
The code design is implemented and compiled to discover any errors and bugs that need to be corrected. The software will not be produced until it meets all of the desired results formulated before testing began. Once the software passed this rigorous testing process the software will be presented to our client(s) for their approval.
Acceptance
Test
Acceptance Test
The software is brought to our clients to ensure that our product has met all of their desired design, behavior, and functions. If our software does not meet their needs it will be brought back for re-evaluation.
2.2: Organizational Structure
Environmental Intelligence Network (EIN Systems) is comprised of the following members:
Name E-mail
Address Phone
Number
Ybelka
Brito syb8052@siena.edu
Michael
Devanandan smd2621@siena.edu
Joseph
Halvey sjh7299@siena.edu
Michael
Jakubowski smj2080@siena.edu
Vernell
Mitchell svm3084@siena.edu
Anthony
Ruotolo ap15ruot@siena.edu
EIN Systems is organized as follows for the Environmental-Monitoring Project:
Michael Devanandan – Team Leader and System Administrator
Anthony Ruotolo – Team Coordinator
Ybelka Brito – Librarian
Vernell Mitchell – Webmaster
Michael Jakubowski – Project Engineer
Joseph Halvey – Software Developer
The team structure of EIN Systems is democratic. Decisions will be decided by the majority vote.
The work assignment for each member is as follows:
Team Leader – Organizes meetings and interviews for the team as well as for the client, guide the team throughout the semester.
System Administrator – Maintains the team’s user’s accounts and is responsible for software administration.
Team Coordinator – Makes sure every team member is doing their individual projects
Librarian – Maintains all documentation and records of team members and meetings.
Webmaster – Creates and maintains the project web page.
Project Engineer – Responsible for research and development of each aspect of the project.
Software Developer – Responsible for analyzing the problem presented, deciding what type of software is needed to implement the solution of the project.
2.3: Preliminary Staffing and
Resource Requirements
The software resources needed for this project are a database management system such as Oracle or MySQL as well as a web design page editor such as Dreamweaver of Fireworks. Our primary sources are those directly involved with this project. Also our client Dr. Ken Swarner is a major source as well as Dr. Tim Lederman, our Software Engineering professor.
2.4: Preliminary Development Schedule
Refer to Gantt chart in the appendix of this document as well as the proposed development schedule in Sec. 3.1
2.5: Project Monitoring and Control Mechanisms
All team members have responsibilities and tasks to prepare according to a weekly schedule maintained by the Team Leader. Weekly meetings are scheduled with client to further acquire necessary information, as well as report progress toward milestones. Strict adherence to the development schedule will help to assure progress is made toward the clients’ desired projections. Periodic presentations and team meetings will help provide feedback about our project to ensure that development is proceeding successfully.
2.6
Tools and
Techniques to be Used
EIN will make
use of a wide variety or hardware and software.
On the clients end we will provide for all popular Operating Systems
including Windows,
2.7
Programming
and Scripting Languages
The project will require the integration of several programming languages including PHP, HTML, Java, C++, and Perl.
2.8
Testing
Requirements
Testing will be performed during development by group members, with results reported to our client for study and feedback, as well as their participation in the testing process. Each aspect of the project will be rigorously tested by multiple members to ensure that no mistakes are overlooked. Final product testing will be subject to the specifications of our client and it must compatible with all major software and Operating Systems.
2.9: Supporting Documents Required
The following supporting documents will be given to our clients on the dates provided:
1) The
Project Definition/Project Plan –
2) The
Software Requirements Specifications –
3) The
Preliminary Design –
Additional supporting documentation on the Detailed Design will be contributed to the client in the spring of 2006.
2.10: Manner of Demonstration and Delivery
Through out the development of this project we will give various presentations. These presentations will be made up of, but are not limited to speeches, handouts, demonstrations and PowerPoint slides. Our intention through these presentations is to describe the accomplishments we have made up to that point and to make sure that the client’s goals and necessities are being met. Dates of presentations to the client and delivery of documents are as follows:
1) The
Project Definition/Project Plan Document –
2) The
Project Definition/Project Plan Presentation –
3) The
Software Requirements Specifications Document –
4) Software
Requirements Specifications Presentation –
5) The
Preliminary Design Document –
6) The
Preliminary Design Presentation –
2.11: Sources of Information
The majority of project information was acquired from meetings with our client, Mr. Ken Swarner. Other sources of information include Software Engineering Lecture by Dr. Tim Lederman, previous Software Engineering teams’ projects and our text Software Engineering: A Practitioner’s Approach by Roger S. Pressman.
3.1: Gantt Chart
Table of Contents
Ybelka F. Brito
Present Address Permanent Address
syb8052@siena.edu
OBJECTIVE
A challenging position in the field of computer
science.
B.S. in Computer Science, B.A. in French, Minor in
Mathematics and Spanish; May 2006
Study
Abroad:
COMPUTER & LANGUAGE
SKILLS
Computers
Languages:
Fluent
in Spanish, Proficient in French
Algebra
Intern,
Institutional Planning & Research,
Consultant,
Resident Assistant,
Resident Counselor, Center for the Disabled,
Siena College Research Institute, Summer 2003
ACTIVITIES
Mentor,
Member, Computer Science Club and Math Club,
Member,
Table of Contents
3.3:
Glossary
Classic Waterfall Model / Linear Sequential Model – A systematic, sequential approach to software development that begins at the system level and progresses through analysis, design, coding, testing, and support.
Code – The symbolic arrangement of data or instructions in a computer program or the set of such instructions.
C++ – A compiled object oriented programming language.
Database – A collection of data arranged for ease and speed of search and retrieval.
EIN – Environmental Intelligence Network – Our team name for the six software engineers who will design and implement a home environmental regulation system available over the internet.
Gantt Chart – A chart that depicts progress in relation to time, of ten used in planning and tracking a project.
GUI – Graphical User Interface – An interface, which uses text box’s and buttons to allow easy access of information by a mouse or other input device.
HTML – Hypertext-markup language – HTML is a markup language used to structure text and offers hypertext links between documents. It is the standard of the World Wide Web.
HTTPS – Hypertext Transfer Protocol Secure – This is a more secure version of HTTP. It is often used for credit card transactions over the web.
Internet – An interconnected system of
networks that connects computers around the world via the
Java – An object oriented programming language.
Perl – A general-purpose interpreted procedural programming language developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more.
PHP – Hypertext Processor – PHP is a widely-used server-sided scripting language and can be embedded into HTML.
SSL – Secure Socket Layer –A cryptographic protocol which provides secure communications on the internet.