Software Plan

 

Requested by:                 Mr. Ken Swarner

                                      Systems Administrator

                                      Computer Science Department of Siena College

 

 

 

 

 

 

 

 

TCP/IP Packet Identifier

 

 

EdgeTech Development

“Always on the cutting edge”

edgetechdevelopment@hotmail.com

 

 

 

 

Prepared by:                             Matthew DeCrescente – Team Leader

                                      Eric Fish

                                      Jill Foster

                                      John Mooney

                                      Das Nobel

 

 

 

 

 

 

 

September 26, 2004

TCP/IP Packet Identifier

Software Plan

 

Table of Contents

 

 

System Definition:

 

Section 1:  Problem Definition …………………………………………………………..     3

Section 2:  System Justification ………………………………………………………….     3

Section 3:  Goals for the Project …………………………..…………………………..…    3

Section 4:  Constraints on the Project ..……………………………………...……………3

Section 5:  Functions to be Provided ………………………………… …………………    4

Section 6:  User Characteristics ………………………………………………………….    4

Section 7:  Development/Operating/Maintenance Environments………………………...        4

Section 8:  Solution Strategy ……………………………………………………………..   4

Section 9:  Priorities of System Feature ………………………………………………….    5

Section 10:  System Acceptance Criteria ………………………………………………...    5

Section 11:  Sources of Information ……………………………………………………..     5

 

Project Plan:

 

Section 1:  Life-cycle Model Linear Sequential (Classic Waterfall) Model………….…..6

Section 2:  Organizational Structure ……………………………………………………..     7

Section 3:  Preliminary Staffing and Resource Requirements ………………………..…         8

Section 4:  Preliminary Development Schedule ………………………………………….8

Section 5:  Project Monitoring and Control Mechanisms ………………………………..      8

Section 6:  Tools and Techniques to be Used ……………………………………………    8

Section 7:  Programming Languages …………………………………………………….     9

Section 8:  Testing Requirements ………………………………………………………..     9

Section 9:  Supporting Documents Required …………………………………………….     9

Section 10:  Manner of Demonstration and Delivery ……………………………………      9

Section 11:  Sources of Information………………………………………………………9

 

Appendix:

 

Section 1:  Glossary of Terms..………………………………………………..…………10

Section 2:  Team Resumes…....………...……………………………..…………...…11-16


1.1 Problem Definition:

 

With the growth of Transmission Control Protocol/ Internet Protocol (TCP/IP), many do not understand how various types of information are stored in packets.  Our client, Mr. Ken Swarner, has requested the enhancement of existing colorful web-based applications that were previously created by Mirage Inc. and Blue Technologies.  Our objective is to enhance this program to make a better graphical interface using the high points of both the existing ones.  Our client, Mr. Ken Swarner, likes the readability of Blue Technologies, but prefer the layout of Mirage.  We will need to combine them into one.  In addition to the changes with the interface, our clients would like us to enhance the program so that a packet can be clicked on and it will automatically load it into the program.  The packet is provided in a text file from an external program, such as Ethereal.  Also, if the packet is corrupt, we should be able to determine that and give a message.  

 

1.2 System Justification:

 

The purpose of our software is to allow the students of our client, Mr. Swarner, and also those of Dr. Lederman, to have a better understanding of what is contained in such packets as TCP and IP.  Different packets are composed of other packets, and our software will allow users to clearly see this.  Users will also learn what is within each packet and what each field does.  This will enhance students’ exposure to difficult material and will reinforce the current textbook models available to the students.

 

1.3:  Goals for the Project

 

The goal of the project is to enhance a Graphical User Interface (GUI), which deciphers TCP/IP and several other types of networking information packets.  The GUI will take a single packet from the database and convert each part of it from binary to a user-friendly readable version.

 

As a team, our goal is to become further acquainted with TCP/IP and other network packets.  We will gain knowledge of how information is represented within a packet.  We will solve our client’s problem by deploying the necessary software engineering techniques in a working environment.

 

We are excited as a team to face challenges of reading text files into the GUI and combining the two present interfaces into one improved interface.

 

1.4:  Constraints on the Project

 

The software client must be able to function on both a Linux and a Windows platform.  Secondly, the software must be web-based and be able to read into a Hypertext Transfer Markup Language (HTML) format.  Third, the different packets will be created in Ethereal.  Finally, the deadline for this project is April 2005.

 

1.5:  Functions to be Provided

 

1)      The GUI will import packets from the text files and will convert them from binary into a user-friendly language.  By clicking on specific pieces of the packet, we will get an in-depth view of the IP packet or its related structures;

2)      When importing text files, we will be able to refresh information to show new packets and their corresponding information;

3)      There will be radio buttons to allow user to change bases of a number on a specific section within the packet;

4)      We will keep documentation on all meetings with Mr. Swarner and post them on our website for referral.

 

1.6:  User Characteristics

 

The main users will be Mr. Swarner and Dr. Lederman.  Mr. Swarner will be using this to investigate the structure of TCP/IP packets and Dr. Lederman will be using this as a teaching model to explain how TCP/IP packets are structured and how each field functions.  Since this software will be web-based, users will be required to use Internet Explorer and/or Netscape.

 

1.7:  Development/Operating/Maintenance Environments

 

The system will be developed on the Siena College Software Engineering workstations.  The operation of this system will be available on any computer system with Internet connections such as Internet Explorer and Netscape, for the program will be web-based.  The maintenance of this system will be determined at a later date.

 

1.8: Solution Strategy

 

Our team will use the Linear Sequential Model to develop our client’s requested system; specifically the Classic Waterfall Method.  This model consists of the following stages:

 

1)      Software Plan: In this stage, the team determines the problem that the client is requesting to be solved;

2)      Analysis: The team meets with the client to gather a comprehensive view of the requirements of the program to be designed;

3)      Preliminary Design: The team translates the system requirements into software requirements;

4)      Detailed Design: The team translates those software requirements into machine code and tests the code to correct errors.  This stage of the project will take place in the Spring 2005 semester;

5)      Acceptance Test: The software is installed and documentation is provided to the client to assist the use of the program.  This stage will occur in the Spring 2005 semester.

 

 

 

1.9 Priorities of System Feature

 

A key feature of our system is user-friendliness.  Currently, Mr. Swarner is using a graphical interface that needs enhancements to improve its usability. He would like the interface to allow a user to click on a section of the packet to display the information associated with it. This information will be uploaded using text files.  Previously, there were options to choose the base to display the values within the packet by either choosing binary, hexadecimal or any other base.  We will be enhancing this feature to allow a user to change bases within a section of a packet at their convenience. 

 

1.10:  System Acceptance Criteria

 

The web-based program will allow for a number of online activities and will, at minimum, allow:

 

1)      Users to see the contents of a packet not in binary form;

2)      Users to see model in a clear, precise manner;

3)      Users to see the decomposition of a packet;

4)      Users to pick apart the packet and see what is inside;

5)      Users to access a menu containing a description of what each field does;

6)      Access to everyone with a web application;

7)      Users to see new information when a new packet is loaded and how the information changes;

8)      Users to see when a file is corrupt and the application cannot decipher meaning.

 

1.11:  Sources of Information

 

The major source of information for this segment of the project resulted from meetings with our client, Mr. Swarner.  Other sources of information include Dr. Lederman’s class lectures, the Software Engineering class textbook Software Engineering: A Practioner’s Approach by Roger S. Pressman, and previous Software Engineering teams’ projects, specifically “Mirage Inc.” and “Blue Technologies”.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.1: Life-Cycle Model: Linear Sequential Method (Classic Waterfall)

 

 

 

Software Plan

The purpose of the software plan is to define the problem and steps that will be taken to solve the problem.

 

Analysis

Before the software can be developed, the software engineers must understand all information regarding the required function, behavior, performance, and interface of the software as stated by the client. 

 

Preliminary Design

Software design is a multi-step process that focuses on four distinct attributes of a program: data structure, software architecture, interface representations and procedural or algorithmic detail.  The design process translates requirements into a representation of the software that can be evaluated for quality before the beginning of the coding process.

 

Detailed Design

During this phase of the model, the design is translated into a machine-readable code.

 

Acceptance Test

After code has been generated, testing begins.  The testing process focuses on all aspects of the software, ensuring that all statements have been tested.  That way, errors may be corrected and it can be established that defined input will produce actual results that agree with the required results.

 

Support

Software support and maintenance allows changes and adaptations to be made.  For example, a client may require functional or performance enhancements.  Support reapplies each of the preceding phases to an existing program rather than a new one.

 

2.2: Organizational Structure

 

EdgeTech Development is comprised of the following members:

 


Name

Matt DeCrescente

Eric Fish

Jill Foster

John Mooney

Das Nobel

E-mail Address

matthew.decrescente@students.siena.edu

eric.fish@students.siena.edu

jill.foster@students.siena.edu

john.mooney@students.siena.edu

dasnobel@yahoo.com

 

Phone Number

(518) 782-6365

(518) 469-0351

(518) 782-5872

(518) 782-5584

(518) 229-6350          


EdgeTech Development is organized as follows for the TCP/IP Project:

 

                        Matt DeCrescente – Team Leader

                        Eric Fish – Systems Administrator

                        Jill Foster – Librarian

                        John Mooney– Team Member

                        Das Nobel – Webmaster

 

The team structure of EdgeTech Development is democratic decentralized.  Decisions on problems and approaches are made by group consensus.  There will be no hierarchy.

 

The work assignment for each member is as follows:

     

      Team Leader – Organizes meetings and interviews for the team, as well as between the team and the client; guides the team throughout the semester.

 

            Systems Administrator – Maintains the team users’ accounts and is responsible for         software administration.

 

            Webmaster – Creates and maintains the project web page.

 

            Librarian – Maintains all team documents and records of all team meetings.

 

 

2.3: Preliminary Staffing and Resource Requirements

 

Our required software resources will include a database management system such as Oracle and a web page editor such as Dreamweaver, as the application will be web-based.  We may also use a Hypertext Preprocessor (PHP) editor, JavaScript, Visual C++, Visual Basic, and Adobe Photoshop.  The hardware resources we require include computer systems, printers, and services.  Our primary resources include those directly involved with the project: Mr. Ken Swarner of the Siena College Computer Science Department, Dr. Timoth Lederman, our Software Engineering professor, and the two programs provided by Mirage Inc. and Blue Technologies.

 

2.4:  Preliminary Development Schedule

 

 

2.5:  Project Monitoring and Control Mechanisms

 

In addition to the bi-weekly client interviews, the project team members will meet as necessary to discuss where the project stands and to decide on the appropriate next steps for each member.  The project team will assess the client’s responses to the evolving Problem Definition/Project Plan, Software Requirements Specifications and Preliminary Design to verify that the ideas of EdgeTech Development correspond with the client’s needs.  Throughout our development, we will be continually testing our system.  If at any time either the project team or the client establishes that the program is not meeting the necessary needs, the project team will take the proper steps in correcting the problem. 

 

2.6 Tools and Techniques to be Used:

 

Computers with Dreamweaver, Microsoft Project, and Microsoft Office will be used. Our team will be using Dreamweaver and PHP to develop our web application, and C++ for the software that the web application will run from. Models provided by Mr. Swarner along with software engineering techniques will be used throughout the process of creating our system.  

 

2.7: Programming Languages

 

For the development of the TCP/IP project, we will be using Microsoft Visual Basic, C++, Perl, PHP, and for our website we will use JavaScript and HTML.

 

2.8:  Testing Requirements

 

There will be a thorough testing of this system throughout the development process.  Team members as well as other students will also aid in the testing.

 

2.9: Supporting Documents Required

 

Supporting documentation will be provided to our client on the following dates:

 

1)      Problem Definition/Project Plan – September 28, 2004

2)      Software Requirements Specifications – November 1, 2004

3)      Preliminary Design – December 6, 2004

 

2.10:  Manner of Demonstration and Delivery

 

There will be many presentations given throughout the development process.  This process will consist of PowerPoint presentations, speeches, demonstrations, and handouts.  The purpose of our presentations will be to make sure our client’s goals are being met, and to show what we have completed to date.  Dates of presentations are as follows:

 

1)      Presentation: Problem Definition/Project Plan – October 1, 2004

2)      Presentation: Software Requirements Specifications – November 3, 2004

3)      Presentation: Preliminary Design – December 8, 2004

 

2.11: Sources of Information

 

The major source of information for this segment of the project resulted from meetings with our client, Mr. Swarner.  Other sources of information include Dr. Lederman’s class lectures, the Software Engineering class textbook Software Engineering: A Practioner’s Approach by Roger S. Pressman, and previous Software Engineering teams’ projects, specifically “Mirage Inc.” and “Blue Technologies”.

 


3.1:  Glossary of Terms

 

GUI:

Graphical User Interface: A user interface based on graphics (icons, pictures, and menus) instead of text; uses a mouse as well as a keyboard as an input device.

 

Gantt Chart:

A chart that depicts progress in relation to time, often used in planning and tracking a project

 

HMTL:

Hypertext Transfer Markup Language: A markup language used to structure text and multimedia documents and to set up hypertext links between documents, used extensively on the World Wide Web.

 

Linear Sequential Model:  

Sometimes called the classic life cycle or the waterfall model, this model suggests a systematic, sequential approach to software development that begins at the system level and progresses through analysis, design, coding, testing, and support.

 

Linux:

A trademark for an open-source version of the UNIX operating system.

 

Network: 

An openwork fabric or structure in which cords, threads, or wires cross at regular intervals.

 

PHP: 

Hypertext Preprocessor (server-side scripting language)

 

Packet:

The unit of data sent across a network. "Packet" is a generic term used to describe a unit of data at any layer of the OSI protocol stack, but it is most correctly used to describe application layer data units ("application protocol data unit", APDU).

 

Protocol:

A standard procedure for regulating data transmission between computers.

 

Software:

Written programs, procedures, or rules and associated documentation pertaining to the operation of a computer system and that are stored in read/write memory.

 

TCP/IP:

Transmission Control Protocol/Internet Protocol: A protocol for communication between computers, used as a standard for transmitting data over networks and as the basis for standard Internet protocols.