Introduction
Most developers know that quality software is produced when a well-documented and well-proven software process is followed without deviation. We know from experience that deviation from the process leads to sloppy, error-prone code that somehow misses the mark when compared to quality code. It is our intention to provide AppFuse team members with good documentation that describes the software process. This process is a series of sequential operations or phases as described by Maven
. This document will describe two contexts that represent the software process model. One model is the project itself and the phases of development that the project will experience. This model will be maintained using Maven
. The second and parallel model of the software process is a higher level context that represents this project too but models AppFuse in a more virtual manner where many tools and resources are involved. This model can be thought of as AppFuse itself.
Development
Software is developed to application requirements. These requirements are either functional or technical in nature. The evolution of AppFuse has been very technical in nature because AppFuse has consisted of example best-practice usages of the latest Java open source technologies. There are functional requirements, however, these requirements are defined more by the project team lead than the open source community as a whole. AppFuse features, requirements, and issues are tracked using JIRA
At a very high level, the development process will be to write the software, test the software, and release the software. Maven
will help us do that. Maven was created by Jason Van Zyl as a tool to assist during the development of Apache projects. Maven is a command-line project management tool that is used throughout the software development lifecycle. We all know that code, test, and release is an oversimplification of what we do as developers, but Maven
was created to simplify the difficult phases of a complex software project. And, for every software project, there are difficult areas and phases that could use the help of Maven
.
The Maven
build lifecycle is defined as follows:
- validate
- generate-sources
- process-sources
- generate-resources
- process-resources
- compile
- process-classes
- generate-test-sources
- process-test-sources
- test-compile
- test
- package
- pre-integration-test
- integration-test
- post-integration-test
- verify
- install
- deploy
Testing
Quality Assurance
Release Process
Community Support