An Introduction to Reverse Engineering

January 20, 2010

Reverse engineering is a process of analysing a subject system to identify the system’s components and their interrelationships and to create representations of the system in another form or at a higher level of abstraction.

Read the full article →

What Not To Do When Maintaining Software Applications

January 20, 2010

“Software maintenace: it’s a dirty job; but someone’s gotta do it”
Anonymous Software Maintainer, 2010.
Software maintenance is a task often off-loaded to junior developers, while in theory, the repercussions and difficulties associated with maintenance suggest it should be performed by the most capable of programmers. A skilled programmer can transform a project whereas a copy-pasta [...]

Read the full article →

Program Comprehension Strategies

January 18, 2010

Our understanding of something depends on our ability to form a mental representation, which serves as a working model.
The concept of a thing being understood is termed the target system and its mental representation is termed a mental model.
The completeness and accuracy of a model depends on the users information and experience.

Read the full article →

An Introduction to Program Comprehension

January 18, 2010

Program comprehension during software maintenance involves the acquisition of knowledge about programs, as well as accompanying documentation and operating procedures.
The costs of performing program comprehension have been widely cited as being between 50-90% of overall cost of performing maintenance [Standish84], i.e. that much time is spent on understanding the code rather than just making [...]

Read the full article →

Tips for Critiquing Journal Articles

January 17, 2010

I found these tips for critiquing journal articles, which may or may not be of use to anyone else:

Read the full article →

Static and Dynamic Program Slicing

January 16, 2010

Static slices depend on data flow control possibilities….
All the possible executions are captured and sometimes this is too much information, especially when debugging.

Read the full article →

An Introduction to Program Slicing

January 16, 2010

Program Slicing is a software debugging technique used to isolate only those statements that are related to a particular statement under inspection.

Read the full article →

Software Evaluation – Case Studies

January 15, 2010

A case study is an empirical enquiry that investigates a contemporary phenomenon within its real-life context.

Read the full article →

Software Evaluation – Quasi-Experiments & Interviews

January 15, 2010

A quasi-experiment is similar to a laboratory experiment but always lacks random assignment to treatment.

Read the full article →

Software Evaluation – Experiments

January 15, 2010

Experiments are used to provide a means of investigating a cause and effect relationship between a factor and observed outcomes.
“A controlled experiment in software engineering is a randomised or quasi-experiment, in which individuals or teams (the study units) conduct one or more software engineering tasks for the sake of comparing different populations, processes, methods, techniques, [...]

Read the full article →