Halloween Costume ideas 2015

Code Complete 2nd Edition



Code Complete 2nd Edition Is a Book Based on The Software Construction

What is software construction ? 



Software Construction is the process which converts Software Design into executable computer programs. This involves tasks like Coding, Testing, Debugging and maintenance of source code. The main goal of the software construction phase is to ensure a consistent style of programming making the programs well structured, having fewer errors and easy to understand and maintain.

It is also a challenge to ensure that the software developers follow the key design principles allowing code reuse, thus decreasing the cycle time and increase in quality and productivity of the developers. We work strictly on an Iterative development approach using Agile development methodology and a strong emphasis on robust coding standards accompanied by code comments and test driven development.

Developers are responsible for the unit tests for the modules developed by them. Hence the modules are tested and ready for Continuous Integration of the project. This leads to short build cycles which in turn allows the stakeholders to review the project at the end of every iteration.

Using the Agile Methodology, we can ensure that:

Active user involvement is carried out for every aspect of the software being developed
Requirements are captured at a high level.
Though the requirements evolve over time, project moves in the right direction.
Development happens in small incremental releases which are iterative.
Developers focus more on frequent deliveries of the project.
Every feature is completed before moving on to the next one.
Testing is an integral part of the development phase, leading to a test driven development.
Software development is carried out in a more collaborative approach with all stakeholders.

1 Perspectives on Programming


Programming is…

a science (Gries)

an art (Knuth)

a process (Humphries)
like writing
Literate Programming (Knuth)
“Plan to throw one away; you will, anyhow.” (Brooks)
like farming (Brooks, Hunt, Thomas)
like oyster farming
like hunting werewolves (Brooks)
like construction (McConnell)

2 Software Construction


from McConnell, Code Complete, 2004, Ch 1
The collection of activities that actually produce the working software.

Coding and debugging at the center, plus supporting activities

Excludes management, reqts. analysis, architectural design, UI design, acceptance testing, maintenance

“the only activity that’s guaranteed to be done” (McConnell)
the fun part!
Importance of Construction

central activity (30-80% of total project effort)

the “climax” of the development project:

everything else builds up to or eases down from construction
The product (source code) is often the only accurate and up-to-date description of the system.
a favorite tenet of agile advocates
Questions

from McConnell, Code Complete, 2004, Ch 1
How would this picture change for incremental / agile projects?

What other changes have been made in last 10-15 years?

3 Key Construction Decisions

Some of the key decisions to be made before entering or during the early part of software construction:

3.1 Choice of Programming Language

What are the factors that would influence this?

Expressiveness & Readability
“You save time when you don’t need to have a rewards ceremony every time a C statement does what it’s supposed to.”

Familiarity
Programmers with 3 or more yrs. experience are 30% more effective than similar programmers working in a new language (Boehm, COCOMO)
Platform & Tool support
Library support
3.2 Programming Conventions

Naming conventions
Documentation conventions
Modularity conventions
Style guides
3.3 Construction Practices

Coding
Up front versus incremental design (& reqts)
Architectural decisions (e.g., error handling)
Teamwork
Team organization & roles
Integration process
Quality Assurance
Testing standards and procedures
Inspections, Pair programming
Who has eyes on the code?
Tools
Version control
Language & compiler choices
language versions & features
Frameworks
Configuration control
Integration tools
4 Looking Ahead

Through the rest of the semester we will look at

Unit testing
Build managers
Version control
Documentation tools
Configuration managers
System & regression test
Code analysis tools

Download Code Complete 2nd Edition

Post a Comment

Contact Form

Name

Email *

Message *

Powered by Blogger.
Javascript DisablePlease Enable Javascript To See All Widget