software engineering concepts

You are currently browsing articles tagged software engineering concepts.

A spreadsheet may have the following types of user: A Viewer looks at the results, but makes no changes. A Viewer may never see the actual spreadsheet, but only printouts of selected parts, but they are still using the spreadsheet. A Player changes input cell values, but doesn’t change formulae and layouts. They may execute […] Read more

Tags: ,

In computing parlance, unlike normal life, bugs and viruses have nothing to do with each other. A bug is simply a fault, or error, while a virus is a malicious program that propagates from computer to computer by hiding itself inside another program or document. Legend has it that the term bug was invented by […] Read more

Tags: , ,

Think about it for a moment. Do 10% of spreadsheets contain errors? Or 20% (for the pessimists among you)? These rates are high, and should be enough to make alarm bells ring, but the actual rates are probably far higher. A few years ago Professor Ray Panko, at the University of Hawaii, pulled together the […] Read more

Tags: , ,

There are many reports of extremely high occurrence rates for bugs in spreadsheets. From reading them, you might think that very few spreadsheets are error-free. However, many people who are aware of the likelihood of errors in spreadsheets go to great lengths to find and remove them. I have found few significant errors in the […] Read more

Tags: ,

What is the difference between good software and bad software? It is reasonably easy to recognise the extremes when we encounter them, but there is a set of criteria that can be used to explain the differences. These criteria are also useful when building or modifying software, as they can be used to help make […] Read more

Tags: ,

User-developed software is, as its name suggests, software that is developed by users rather than by specialist developers. It includes spreadsheets, parameter driven financial models, personal databases, VB code, and so on. Caution: user-developed systems may be hazardous to your organization Davis, 1981 User-developed software has many advantages, and can really leverage the expertise of […] Read more

Tags: ,

Modularity

Modular systems are usually easier to maintain and update, as well as being faster to develop in the first place. So what is modularity? A modular system is one that consists of a number of small, coherent, chunks (or modules) each of which is self-contained and has a well-defined interface. Modularity is the single attribute […] Read more

Tags: ,

The notion of abstraction is extremely important for writing good programs or designing good systems. Basically, the idea is that you want to avoid getting hung up on the details: you want to separate the things that change from those that don’t. In Excel spreadsheets the easiest example of abstraction is the use of names. […] Read more

Tags: ,