Department of Computer ScienceThis document identifies the main areas we are interested in, and provides a general framework for the course contents
SDD mainly concerned with software aspects of computer-based systems.
Producing (software) systems has many similarities with, and many differences from, other production activities.
A Baked Bean Factory
There are many inter-related, coordinated activities needed to produce baked beans successfully.
We identify four main categories into which these might be grouped:
Production Activities
what is produced? what gets done in the production process?
investigate (create?) market
set up production line
buy beans/buy cans/cook beans/fill cans/ship beans...
Phasing of Production Activities
when do things get done? ordering of activities in 1.
Quality-assurance Activities
are we making the right product (do customers want it)?
are we making it to an adequate standard?inspection of raw materials, and of finished product
fault reporting and monitoring
measurement of fault rates, times to respond, etc.
Management Activities
planning (of production, and development of new products)
estimate resources required for above
acquire resources needed
manage individuals and teams involved in all this
Software Production
Production Activities
what gets done in production process?
- find out user requirements
- analyse user requirements
- decide on system high-level design/architecture
- produce detailed design of program(s)/modules
- code the modules
- unit test the modules
- integrate and system test
- release/sell to customers
- provide post-release support/maintenance
- write user documentation
what is produced? software, obviously!
- code (programs, modules, units, components, classes, clusters....)
- user documentation (User Guide, Help, etc)
- technical documentation (for maintenance, etc...)
- development documentation
We can regard all of these products as models of different aspects of the problem and/or solution, produced for different "users" of the software.
One major strand of SDD is modelling of software systems.
Phasing of Production Activities
when do things get done? ordering of activities in 1.
Not necessarily a single, ordered pass through the activities listed in 1. (i.e. not necessarily a "waterfall").
Different process models ("lifecycles") for software production.
A second major strand of SDD is process models
Quality-assurance Activities
are we making the right product (do customers want it)? - validation
are we making it to an adequate standard? - verificationas above (inspection, testing, verification, metrics), plus
document control (versioning of models and code)
configuration management
A third major strand of SDD is "engineering practices" in software development.
Management Activities
estimation, planning, team formation and leadership
A final major strand of SDD is project management.
A wide-ranging course, but focus is technical, rather than corporate - some, but not too much, overlap with Software Quality and Business Issues courses.
Last Updated: 09/10/98 by M.Wood@herts.ac.uk
© University of Hertfordshire Higher Education Corporation (1998)