Hello World Project Deliverables

Project Plan

  • Purpose
    A software application is desired that can display a friendly greeting to the user.  
  • Background
    This simple application that can be used to verify that the Java Virtual Machine is correctly installed, or similar system integration checks.
  • Process
    For such a small application, the traditional waterfall process will suffice, because all the requirements are known in advance and are not expected to change.
  • Subsystems and planned releases
    A single release is planned with full functionality.
  • Risks and challenges
    The only anticipated challenge is separating the user input/output from the domain model.  Object oriented design will address this by putting the domain model in a separate class.
  • Tasks
    Create feasibility prototype.
    Create SRS.
    Create UI prototype.
    Create Subversion Repository.
    Configure individual development environment.
    Create High Level Design.
    Create Detailed Design.
    Inspect Design.
    Write system test cases.
    Create system test scripts.
    Write JUnit tests.
    Configure defect tracking system.
    Implement source code.
    Write user documentation.
    Write build and deploy scripts.
    Run Tests.
    Track and repair defects.
    Deploy system.
    Facilitate customer acceptance tests.
  • Cost estimates
    Work breakdown and estimates: Total 220 minutes
  • Team
    Single developer.
  • Schedule and milestones
    Day 1: Planning and Analysis
    Day 2: Design
    Day 3: Implementation and Testing
    Day 4: Deployment

Feasibility Prototype

The key technical issue in this application is output to standard out.  The prototype will demonstrate how to achieve that in Java.


/**
 * Feasibility Prototype
 */
public class Prototype
{
    public static void main(String[] args)
    {
        System.out.println("it works");
    }
}

Software Requirements Specification (SRS)

  1. Problem
    A software application is desired that can display a friendly greeting to the user.
  2. Background
    It is likely that this application will be expanded in the future, so Java was selected for the implementation because it is easily ported from desktop to the web or mobile applications.
  3. Environment and System Models
    The application will run on a consumer-grade desktop workstation and has no interfaces to any other systems.
  4. Functional Requirements
    A. Inputs - There are no external inputs to the application.
    B. Outputs - The phrase "Hello, World." is displayed on standard output.
    C. Functions - Display "Hello, World.".
  5. Quality, Platform, and process requirements
    Maintainability is prioritized over efficiency.  It is likely that the application will be enhanced for different display styles, so the design should be easy to modify to accommodate different user interfaces.
    Choosing Java as implementation language allows for platform independence.

User Interface Prototype

When the application begins, a single phrase appears on the console.
Hello, World.

High Level Design

  • Purpose
  • General Priorities
    Maintainability is prioritized over efficiency.  It is likely that the application will be enhanced for different display styles, so the design should be easy to modify to accommodate different user interfaces.  This is addressed by separating the user input/output from the domain model. 
  • Design Overview
    The application is comprised of two classes.  FriendlyPhrase is the domain model that represents the underlying text.   HelloWorldApp is the entry point for the application and also the user interface. FriendlyPhrase is then a reusable component that can easily be used in applications with different user interfaces.
  • UML Class Diagram
    UML
  • Javadoc for class skeletons
  • Design Issues
    #1 Should we decompose the design into UI and domain model?
    Pro: Makes it easier to unit test, makes it easier to use alternate UI in the future.
    Con: Such a simple application doesn't need two classes.
    Decision: #1 is chosen since this is a demonstration project.

Detailed Design

  • Pseudocode is linked from the javadoc.

System Test Cases

Purpose:

  1. The application will display "Hello, World."

Requirement Traceability:

SRS 4C

Setup:

Open a terminal window.

Test Data:

Action Input Expected Output

At the command prompt, type
java HelloWorldApp Hello, World.

Source code

User Documentation

Deliverable Product