I'll talk about a book, related with software construction, its name is "code complete". In first few chapter, the author've made mention of importance of software construction among the other activities in whole developing process. So,before i say what software construction is, i wanna talk about the general sw development process.
Software development process contains several distinct activities:
1)Problem definition2)Requirements development3)Software architecture and high level design4)Construction plan ---- this point is where construction begins5)Coding and debugging6)Unit testing7)Integration of modules, with other's classes and modules8)Integration testing9)System testing10)Corrective maintenanceThese can be divided into more specific parts, but generally it is like that. Some metadologies implement these activities in different way, in different aspects. Iterative, waterfall, agile, top-down, unified processing methods works distinctly from each other, but generally they covers these activities above.
So on,
what is software construction?
It is the central part of the software development. Before the contruction a software product, we design,plan and understand it, so management, requirement gathering, understanding the problem, architecture, UI design, system testing and maintenance are also very important parts of the software development. But, they are non-contructing activities but defines many things about the product.
In summary, after requirements development, high level design and software architecture, before system testing and maintanence process, all the activities forms SW Construction.
Construction covers:
1) Verifying the groundwork has been laid, so the construction can proceed successfully.
2)Determining how your code will be tested
3)Determining how and which classes, modules and routines will be written.
4)Selecting control, data structures and creating them.
5)Unit testing of every unit part.
6)Integration testing.
7)Reviewing other team member's low level designs, having them review your design and implementation.
8)Polish your code with clear commenting and formatting.
9)Integrating software component which are implemented seperately.
10)Tuning code to make it faster and use less resources.
All of them are needs for good quality software constructions. In many informal projects, some of them are omitted but it affects the quality, security..
I've omitted many of them on my informal projects, i have groupped so many activity and merged them mentally, at the end i have finish all of them:)) but good design and plan makes them better, less buggy and on time;)
Why is Construction important?It's the central activitiy of developing product and the only activity which is guaranteed to happen on every project.
The quality of the construction substantially affects the quality of the software product.
In final analysis, contructing software means "coding" or "programming" but requires detailed design, debugging, integration and developer testings..