SE reading group


SE reading group16 Sep 2005 11:36 pm

Based on the 6th edition of ‘Software Engineering’ by Ian Sommerville, published by Addison Wesley. (amazon.com, amazon.co.uk)

Computer-based system engineering is introduced by Sommerville as a discipline sitting above software engineering and encompassing hardware systems to take a whole system perspective. The introduction of hardware systems bring in a number of aspects such as the physical environment of the system, which need to be considered and controlled. Another key aspect is the consideration of system properties which exist within the system as a whole (emergent properties). Sommerville provides some examples these emergent properties, such as the overall weight of a system (which could be computer from the weights of all the subsystems), and the usability of the system (which would have complex dependencies on the hardware, software the system’s environment and indeed the system’s users).

Though it’s not actually relevant, I’ll wander off on that last point as I’ve always been quite interested in usability (being a Mac user). Simplistic views of usability have always really frustrated me. I remember once reading a really high level requirements specification written by a client which said something along the lines of ‘The system should be user friendly - what more is there to say?’. Actually, there’s a lot. Who are these users? Can we assume they can use a computer? If not, maybe I should be getting out of the way so someone can design a paper based system. What are the usage patterns in the system? A system which users will work on without any training needs to be designed very differently to a system people will use day in and day out. In the end, what the client really meant here was that usability was an important factor for the system, which I would agree with whole heatedly, but downplaying the complexity of usability just makes it more difficult to allocate the time it requires.

(more…)

SE reading group19 Jul 2005 11:14 am

Based on the 6th edition of ‘Software Engineering’ by Ian Sommerville, published by Addison Wesley. (amazon.com, amazon.co.uk)

This chapter is basically a high level introduction of the rest of this software engineering text, and so I’m not entirely sure it deserves quite the same treatment as the rest. To get myself into the swing of things, however, I’ll just forge ahead regardless and see how things go.

There are a number of interesting points in the introduction to the introduction. Any discussion of software engineering always seems to start out with a mention of the term ‘software crisis‘ which described the collapse of informal software development processes when faced with the demands brought on by the ever increasing power of computer hardware. This idea always seems to be trotted out to explain why we need software engineering, but I’ve never really experienced it. Perhaps it’s just that by the time I was developing any systems of significant size, enough software engineering techniques had become common place that the study of software engineering ceased to be a solution to a crisis so much as a way to improve the acceptable processes already in place. Sommerville ends the introduction on this, more positive note, noting software engineering’s achievements (space travel, the internet, telecommunications systems) and the possibilities for the future.

(more…)