Information Technology Reference
In-Depth Information
The basic goal of software engineering should be to minimize costly and error-
prone human tasks and replace them with automated tasks made possible by com-
binations of standard patterns and certified reusable components.
So long as software is custom designed and coded by hand, it will always
be slow, expensive, risky, and subject to serious security vulnerabilities. Custom
designs and hand-coding are intrinsically error prone, and no known methodology
can do anything other than make comparatively small improvements.
To make really big improvements, software needs to begin to use proven archi-
tectures and design patterns, certified reusable code, and certified ancillary materi-
als such as reusable test cases and reusable user documents. Reusable data samples
are also needed.
The software engineering community should also move toward professional
licenses and board certification. Although it is theoretically possible to achieve
these goals by the end of this decade, it is more likely that they won't occur for
perhaps another 25 years.
Near-term goals that might be accomplished by the end of the decade are more
modest and can focus on improving a number of areas that are currently done
poorly, such as quality control and change control.
Possible Software Engineering Improvements in the 2010s
Software productivity and quality will evolve slowly and sometimes in the fashion
of a drunkard's walk, with progress and regressions both occurring more or less at
the same time.
In order to make really major improvements, a number of chronic software en-
gineering problems need to be solved:
• Productivity and quality measures are poorly done and usually inaccurate
even today. Lines of code and cost per defect both violate the principles of
standard economics. Function point metrics are the most accurate for eco-
nomic studies, but they have been so slow and expensive that they have
not achieved more than about a 10% penetration of software projects.
Hopefully, the emergence of high-speed, low-cost function points such as
those in Software Risk Master (SRM) will make this metric a standard
economic tool for software productivity and quality studies.
• Repositories of certified reusable components need to enter the main-
stream. Custom design and custom code, even with Agile, are inefficient.
Only construction from certified reusable components can achieve high
Search WWH ::




Custom Search