Project Description:

The modern business environment demands an unprecedented level of communication. Today's dynamic marketplace forces companies to adapt and evolve to continue to offer a competitive advantage. Even commodity products such as carbonated beverages are defined not so much by the product but rather by complex marketing efforts which must stay relevant as well as in sync with the larger cultural dynamic. With many businesses driven by technology, large engineering and organizational efforts are commonly a necessity. Before the pace of business life accelerated, meetings and telephone conversations sufficed to need the business world's need to communicate. Today email has largely replaced traditional communication with a more efficient, but less rich and engaging alternative. Members of a meeting, for instance, are much more engaged in their experience than people in an email thread because they don't loose the temporal sense of the conversation. When one reads an email, the level of commitment the other participants have put into the thread is unknown. It's quite possible that the majority of the participants have not even seem the email yet so it may be questionable how to respond. Email conversations also tend to diverge and stray from the main topic, which is not a problem in itself, so much as the fact that the divergence is done without the proper people knowing about it. Additionally, email introduces random temporal displacement in a conversation that prevents true engagement. A technology known as instant messaging relives many of these problems while still keeping the key advantages of electronic communication over a physical meeting. Participants in an instant messaging conversation know exactly what level of awareness the others have because everyone has seen the latest message. It works more closely to face-to-face conversations than email. There is little or no temporal displacement because of the instant nature of the medium. Most instant messaging technology, however, is inadequate for business needs for various reasons. Most notably, IM conversations are not persistently stored in a way that's easily accessible. Some IM solutions offer a history, but it is often a far cry from the capabilities of modern email software. Also, relevant content from an IM conversation cannot easily be organized, categorized or transferred. The modern world needs IM solutions that retain the power of instant messaging while also adding support for archiving and richly organizing the content securely. The B.I.M. package consists of a Web message board and an integrated instant messenger which both have extensive archiving functionality. These products have been designed from the ground up to tackle the aforementioned problems that plague small and large companies alike in the modern business environment. The web forum can be used for messages that are traditionally sent by email without making people read or view messages they are not interested in, while the instant messenger allows for dynamic and instant conversations on topics that are of immediate concern. Due to the fact that both systems are tightly integrated it is possible to view conversations on the instant messenger in the web forum or to send messages to the web forum from the instant messenger. The software is modeled after popular software applications and thus the targeted audience should understand the user interface metaphors with very little difficulty. Since most modern relational database management systems support archiving of data, it should be noted that archiving should be done once the amount of storage space on the host machine is nearing its limits. Also storage media can be arrayed together to simulate a giant hard drive to give the illusion of even more space.

Project Schedule:

Task

Aug 28

Sep 4

Sep 11

Sep 18

Sep 25

Oct 2

Oct 9

Oct 16

Oct 23

Oct 30

Nov 6

Nov 13

Nov 20

Dec 4

Requirements

Elicitation

X

X

 

 

 

 

 

 

 

 

 

 

 

 

Research

 

X

X

 

 

 

 

 

 

 

 

 

 

 

Product Design

 

 

X

X

 

 

 

 

 

 

 

 

 

 

Software development

 

 

 

X

X

X

X

X

 

 

 

 

 

 

Debugging and Testing

 

 

 

 

 

 

 

X

X

X

X

X

X

 

Module integration

 

 

 

 

 

 

 

 

 

X

X

 

 

 

Customer testing

 

 

 

 

 

X

 

 

 

 

 

X

 

 

Prototyping

 

 

 

 

 

X

 

 

 

 

 

 

 

 

Customer Training

 

 

 

 

 

 

 

 

 

 

 

 

 

X

Final Presentation

 

 

 

 

 

 

 

 

 

 

 

 

 

X

The above schedule details activities that will be performed by various team members during the semester. Description of activities
a.)Requirements Elicitation:
This is the process of creating and refining a requirements document based on discussions with the client. This process should generate a Software Requirements Specification as well as a Testing Plan.
b.)Research:
This is where various team members will brush up on aspects of the technology that they are not familiar with. Specifically Dare will brush up on C++, ODBC and ADO, Sanjay on XSL, Andrew on sockets and networking, while Dmitri reads up on various aspects of Windows programming.
c.)Product Design:
This is where the flowcharts, object models, state-transition diagrams and other aspects of the products design will be hashed out. This process should generate a Software Design Specification.
d.)Software development:
This involves writing code to based on the design specified in the Software Design Specification.
e.)Debugging and Testing:
A software testing is done based on specifications in the Testing Plan and bugs are fixed.
f.)Module Integration:
The disparate pieces that encompass the entire B.I.M. package are combined as a whole in this phase.
g.)Customer Testing:
The customer will test the application and give feedback during this process.
h.)Prototyping:
An unfinished implementation of the application will be created and presented to the customer.
i.)Customer Training:
Here the customer will be shown how to use the application to best serve the needs of the business.
j.)Final Presentation:
The finished product will be demonstrated in class and to the customer.

Project Roles:

1.)Database Designer and Administrator:
This individual is responsible for selecting which database software best satisfies the needs of the product, creating and maintaining the database during development, creating APIs that will enable other developers to access the database transparently as well as optimize the database for speed. Dare Obasanjo
2.)Web Interface Designer:
This individual will create the web forums via using current dynamic web content delivery technologies. Sanjay Bhatia
3.)Network Infrastructure Architect:
This individual is responsible for the design and implementation of a robust communication architecture between the instant messenger and the server where the message database will be housed. Dmitri Alpevoritch
4.)Client GUI Developer:
This individual will develop the Graphical User Interface and the core functionality of the instant messenger. Andrew Hilton
5.)Project Leader:
Responsible for making sure the project is on schedule and keeping the rest of the team focused. Dare Obasanjo
6.)Technical Writers:
Most of the documentation of distinct modules will be done by the developer that created the module so this task will be performed by everyone.

Risk Analysis

Customer Risks

1. Customer Backs Out The customer may back out for a variety of reasons including
    a.) Inability to afford database software and a machine to host the server software. b.) Lack of a system administrator capable of managing the software package including database maintenance. c.) Worries about who will maintain the software once the class is completed.
2. Software fails If the software is poorly designed and contains fatal flaws, this will be catastrophic to the customer because it means there is a chance that vital information may be lost and/or vital communications channels severed at inopportune moments during the course of using the software.

Project Risks

1. Team member leaves If a team member leaves by dropping the class prior to drop day, it will a difficult task to divide the person's work into manageable slices for the other team members to work on without compromising the project. 2. Team member falls behind schedule Due to the loosely integrated nature of the application, it is possible for a team member to be late on his aspect of the project and not affect the other team members adversely if the delay is not for a considerable amount of time. 3. Project is too ambitious It is possible that some aspects of this project will be too complex to be completed by the team in the allotted time. For this reason, we have devised a system of tiers and will determine certain base functionality must be implemented and will then vary the amount of features that will be added in each tier up to the highest tier, which will contain features usually described as wish list features.