Sunday, December 2, 2007

1. SOFTWARE CONSTRUCTION

What does the term Construction mean? In common terms, it is the process of building. The construction process might include some aspects of planning, designing and checking your work, but mostly construction refers to the hands-on part of creating something.

In the software industry, construction is also sometimes known as “coding” or “programming”. “Coding” isn’t really the best word because it implies the mechanical translation of a preexisting design into a computer language; construction is not at all mechanical and involves substantial creativity and judgment.

Here are some of the specific tasks involved in construction:

· Verifying that the groundwork has been laid so that construction can proceed successfully.

· Determine how your code will be tested.

· Designing and writing classes and routines.

· Creating and naming variables and named constants.

· Selecting control structures and organizing blocks of statements.

· Unit testing, integration testing, and debugging your own code.

· Reviewing other team members’ low level designs and code and having them review yours.

· Polishing code by carefully formatting and commenting it.

· Integrating software components that were created separately.

· Tuning code to make it faster and use fewer resources.

Why Construction?

Ø Construction is a large part of software development.

Depending on the size of the project, construction typically takes 30 to 80 percent of the total time spent on a project. Anything that takes up that much time is bound to affect the success of the project.

Ø Construction is the central activity in software development.

Ø With a focus on construction, the individual programmer’s productivity can improve enormously.

Ø Construction’s product, the source code, is often the only accurate description of the software.

Ø Construction is the only activity that’s guaranteed to be done.

The ideal software project goes through careful requirements development and architectural design before construction begins.

Ø Your understanding of how to do construction determines how good a programmer you are.

Building Software:

The term “Building” software is more than that of “Writing” or “Growing” software. Building software implies various stages of planning, preparation, and execution that vary in kind and degree depending on what’s being built.

Building a four-foot tower requires a steady hand, a level surface, and 10 undamaged coke cans. Building a tower 100 times that size doesn’t merely require 100 times as many coke cans. It requires a different kind of planning and construction altogether.

Building a single house and building a 100-storey tower requires altogether different planning.

Treating software construction as similar to building construction suggests that careful preparation is needed and illuminates the difference between large and small projects.