Archive for the 'Software Engineering' Category

Software Development Appreciation

April 30th, 2010 Posted in Software Engineering | Comments »

I recently finished reading Applied Software Project Management by Andrew Stellman and Jennifer Greene. Stellman and Greene’s book has motivated me to read CMMI for Development, Version 1.2. Since CMMI is a model for process improvement, Stellman and Greene’s book has also encouraged me to get books on processes such as Rational Unified Process and […]

Problem Reports

March 31st, 2010 Posted in Software Engineering, Team Management | Comments »

The responsibility of a project’s outcome is shared between developers and managers. Developers depend on managers to effectively manage projects, and managers depend on developers to provide reports that serve as the basis of project management decisions. Possibly due to insufficient transparency, a problem may be detected after attempting to use a fully implemented and […]

Increasing Module Cohesion

November 16th, 2009 Posted in Software Engineering | Comments »

When thinking about software modules as service providers and consumers, from time to time, a situation occurs where a service provider and a consumer communicate through a common or shared buffer. In the sockets API, the consumer of a service provides the buffers from which write() sends and to which recv() receives. This can be […]

Questioning the Dependence on Third-Party Service Providers

July 26th, 2008 Posted in IT Administration, Software Engineering, Web Development | Comments »

According to this Amazon.com S3 Team write up on the loss of their S3 service’s availability, “very few requests were completing successfully” during an availability event. The service’s problems seem to have started at 08:40, and the service’s error rates did not fall back to normal, acceptable levels in the United States until 16:02pm. The […]

Data Hiding in C

March 2nd, 2008 Posted in C++, Software Engineering | 4 Comments »

Object-oriented programming languages are described as supporting encapsulation, polymorphism, and data hiding. They provide powerful features that allow software components to be designed and implemented for change. Observing the mechanisms in an object-oriented programming language can potentially lead to a parallel implementation in a procedural language. This allows some object-oriented design knowledge that has been […]