Like many other kinds of businesses, a landscaping business needs a billing system. As is often the case, billing systems require an incredible level of customization thanks to the various intricacies of most companies' pricing structures. Designing a billing system to fit the specific needs of an individual organization is a lengthy process. The Software Development Life Cycle (SDLC) is a size step process that takes the developer from burgeoning idea to full-fledged application. The SDLC consists of the following phases: problem recognition, requirements gathering, software design, development, implementation, and evaluation and evolution (Senn, 2004).

Problem Recognition

The first step in the SDLC is the recognition and understanding of the problem. It is not always the case that a programmer is presented with a detailed list of instructions describing how the final application should operate. Instead, a programmer is often approached when an organization senses that something is wrong, but does not quite know where the problem lies. During the problem recognition phase, the programmer uses research and investigation to more narrowly define the problem that must be addressed (Senn, 2004).

Requirements Gathering

In order to design an application that fits the needs of the user, the programmer must understand the inputs and outputs the user expects the application to perform. These inputs and outputs are known as requirements. Requirements are features that the user must have in the application that is being developed. It is often helpful for programmer and user to work together to develop a list of requirements. The programmer often has a better understanding of the technology necessary to develop the required list of features and can make recommendations that may improve on a user's expectations (Kingsley-Hughes & Kingsley-Hughes, 2005).

Software Design

A design describes how the software will satisfy the requirements agreed upon by the programmer and the user. Software design tools, such as Unified Modeling Language (UML), to translate the spoken language requirements into something that can be turned into computer software. The software design phase consists of three steps. The preliminary design step begins to flesh out the major characteristics of the application. The next step, prototyping, builds a working model of the application. It is not the intention of the prototype to fulfill the design requirements, but instead to give the user an idea of how the application will operate. The final step in the design phase is the detailed design. The detailed design is the definitive documentation of how the application will be implemented and operate. It defines the inputs the application expects and the outputs it generates (Senn, 2004).

A Word About UML

The Unified Modeling Language (UML) was created to provide a language that could be easily understood by users and programmers. The UML is a standards-based modeling language that uses shapes to diagram high-level processes so that details can be hidden and functionality highlighted. The heart of the UML is its 13 diagram types which can be divided into 3 broad categories: structure diagrams, behavior diagrams, and interaction diagrams. Structure diagrams define things in the application. Behavior diagrams describe what happens in the application. Finally, interaction diagrams define the flow of data among the structures in the application (Farrell, 2008).


The development phase is when the application is coded. The detailed design generated during the software design phase is used to create the application. Few programs are completely built from the ground up. During this phase, the programmer may acquire pre-built libraries or modules to implement standardized pieces of the new application. No matter how comprehensive the libraries or modules may be, some amount of programming will be necessary to satisfy the specific requirements of the user. Finally, it is necessary to perform testing during this phase to ensure the application is bug free (Senn, 2004).


An application is useless if it is never implemented. The implementation phase of the SDLC includes installing the new application and preparing the user base to use it. If the application is significantly complicated, the users may need to be trained in its operation. At the very least, documentation should be provided to answer commonly asked questions. Some applications may require a change in the equipment at the user's location. For example, new database servers may be necessary, or the application may require more memory or faster CPUs in user workstations. Finally, if the application is replacing an existing application, a conversion strategy must be put into place to migrate from one application to another (Senn, 2004).

Evaluation and Evolution

The final phase of the SDLC is to measure the effectiveness of the application and evaluate potential enhancements. Most enterprise applications are in production for several years. During this time, the application must evolve to meet the changing requirements of the enterprise. For example, a landscaping business may decide to expand into sprinkler system installation. If the billing application developed for the landscaping business does not have the ability to handle the new product line, it must be modified. This evolution of the application will continue until it is finally replaced by a new application (Senn, 2004).


Farrell, J. (2008). Programming logic and design, comprehensive (5th ed.). Boston: Thomson Course Technology.

Kingsley-Hughes, A. & Kingsley-Hughes, K. (2005). Beginning programming. Indianapolis: John Wiley & Sons.

Senn, J. A. (2004). Information technology: Principles, practices, opportunities (3rd ed.). Upper Saddle River, NJ: Pearson.