Software construction

Reduced complexity is achieved through emphasizing the creation of code that is simple and readable rather than clever.

Minimizing complexity is accomplished through making use of standards, and through numerous specific techniques in coding.

[2] Systematic reuse can enable significant software productivity, quality, and cost improvements.

Construction planning also defines the order in which components are created and integrated, the software quality management processes, the allocation of task assignments to specific software engineers, and the other tasks, according to the chosen method.

Information hiding proved to be a useful design technique in large programs that made them easier to modify by a factor of 4.

[5] Construction languages include all forms of communication by which a human can specify an executable problem solution to a computer.

The tasks related to reuse in software construction during coding and testing are:[1] The primary techniques used to ensure the quality of code as it is constructed include:[15] Studies have shown that a combination of these techniques needs to be used to achieve a high defect detection rate.

A classic study by IBM found that few error-prone routines of OS/360 were the most expensive entities.

They had around 50 defects per 1000 lines of code and fixing them costs 10 times what it took to develop the whole system.

[1] Object-oriented languages support a series of runtime mechanisms that increase the flexibility and adaptability of the programs like data abstraction, encapsulation, modularity, inheritance, polymorphism, and reflection.

Exception-handling is a programming-language construct or hardware mechanism designed to handle the occurrence of exceptions, special conditions that change the normal flow of program execution.

[23] Fault tolerance is a collection of techniques that increase software reliability by detecting errors and then recovering from them if possible or containing their effects if recovery is not possible.

Internationalization is the technical activity of preparing a program, usually interactive software, to support multiple locales.