Software Waterfall Life Cycle Concept Exploration Prototype Requirements Design Construction Testing The term software construction refers to the detailed creation of working, meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging. Delivery and Installation Operations and Maintenance
Spiral Model
www.extremeprogramming.org
Software Construction Standards for Construction Team coding and documentation standards File and variable naming standards Tool standards Web standards, accessibility standards Check-in, check out, version control standards From SWEBOK 2004
Software Construction Goal is to Minimize complexity Use standards Abstraction, low coupling, high cohesion Encapsulation, information hiding Separation of interface from implementation Anticipate change No literal values in code (control access to data) Incremental development Facilitate testing Code reviews, unit testing, automated testing The number of functional requirements for medium sized software projects can be hundreds. For large systems, it can be thousands. Each requirement is implemented in code, resulting in complex, hard to understand, error-prone code. For successful software projects, you need to minimize the complexity that any one person has to handle at any one time.
Code Complete http://www.cc2e.com/ Key Decisions Choice of programming language Programming conventions Your location on the technology wave Selection of major construction practices Version control tool and integration procedure IDE and tool set Pair programming versus individually Test-driven development versus traditional Unit testing tool Formal reviews Programmers more productive using a familiar language Programmers more production with high-level languages Some languages are better with specific types of problems
Construction Measurement Measuring progress Number of classes finished, LOC, test cases Number of requirements implemented Code metrics Complexity measures Code inspections Errors detected and fixed