h1

PRChat Development Overview Document

Introduction

Planetary Resources, Inc., a large mining and natural resources company, has decided that due to federal regulations they need to move away from the usual chat applications that they are currently using.  These chat applications are used to do a great deal of their internal communication.  They have approached Mighty Corp, your employer, to produce a chat application that will meet their use and regulatory needs.

Application Requirements (From Planetary Resources)

The system must send messages immediately to the recipient if they have the system running on their computer.

All messages must be timestamped with the time they are initially sent.

All messages must be stored in a searchable fashion in a centralized location.

If the system is not running on the destination individual’s computer then all unsent messages must be sent when they start they start the system.

All messages to an individual must be viewable only by them and yet be able to receive messages from anyone.

It must be easy to use since most users have business but not technical computer skills and their is no time for extensive training.

To cut cost, Planetary Resources has requested that open source tools be used where reasonable since they are free.

Mighty Corp Management’s Position

Your company, Mighty Corp, may need to outsource some of the development to companies in India or other parts of the world where labor is much cheaper to be competitive in their bid. To mitigate the risk of working with diverse groups in different locations, time zones and cultural differences management has dictated that the team develop and follow a well documented software development process. Techniques such as Team Programming, highly dynamic work assignments, and a requirement by development management to dramatically increase the quality of the software as compared to previous applications released have been mandated by management. This quality is to be easily maintainable throughout the life cycle of the product. To accomplish this without dramatically increasing development time and hopefully to decrease it there is to be unit, module, and integration testing in some automated fashion.

The better the development process and the testing, the more profitable your company will be both now and in the future. A good development process will ensure that the code relates to the design and that the design satisfies the requirements. The development process and tools set chosen can greatly effect  productivity and quality of code developed.

The design and implementation of the software must be easy to debug, fix and maintain not only for the first iteration of the product, but all subsequent iterations, versions, and releases in the future. Management has dictated that anything that has worked in previous versions not be broken by later fixes or enhancements. This must be done in a provable, reproducible, and in an easy to use and implement fashion.Additionally, as users report defects and they are fixed, it is required that each of these fixes be retested to prove that subsequent versions of the software are not adversely affected.

The customer has declared that Hibernate is to be used for all database interaction and MySQL is to be used as the database for this application.

Multiple developers will be working on the application at the same time, and in the future there will be several version of the application that will need to be maintained. In the past this has been a problem because two developers would be working on the same code at the same time and would end up wiping out changes that the other had made. In addition, as enhancements are made to the application in new versions or releases, fixes need to be made to multiple versions of code. Often changes were made to the wrong version or did not get updated and tested in the newer versions. Management has told the team that they must adopt tools or a methodology so to solve this problem.

Your company has the following resources currently at their disposal: a single small Linux or Windows based server (your choice). All members of the team will have their own desktop or laptop machine. These machines may have several different Linux distributions, WinXP, and OSX for the primary system. Any development tools must work on all of these operating systems or there must be a set of like tools for each operating system.

One comment

  1. [...] work in this class is driven by this document.  Read it and understand it well. Business is an amazing and interesting world.  This course is [...]



Leave a Comment