What you will study
Computers are now such an integral part of most organisations and they are critically dependent on the software. You will study how complex software systems fit into organisations, from procurement to maintenance and development. You will also gain an understanding of the business context of any proposed software, in order to elicit and analyse software requirements.
The module is divided into four blocks.
Block 1: Software in context
The first block considers that working in an organisation involves working with software, and how it is important to understand the relationships between the software, the organisation it serves, and its wider environment or context. Software embodies part of the knowledge of the organisation and enables other knowledge management processes. Contacts between the enterprise and the external world are often mediated by software, and the enterprise has a responsibility to the wider community that may be served by, or jeopardised by, this software. This wider community is also discussed, including, the professional bodies and trade unions to which the employees may belong, with their codes of ethics; the standardisation bodies, with their standards; and the law, which may restrict or mandate particular practices.
Block 2: Software engineering process
In Block 2 you’ll investigate the various approaches to software engineering. Software systems may be ‘bespoke’ (whether in-house, outsourced or offshored), or acquired off the shelf as either a complete solution that is used ‘as is’ or with some limited customisation, or as a number of partial solutions that need to be integrated. Within these options, the process of software development is considered and approaches ranging from waterfall to agile methodologies are discussed. This part also considers the management processes that play an important role in software engineering. In particular you will learn techniques for estimating the cost of the software and scheduling its development or adaptation in the context of available personnel. Additionally, you will cover issues of risk management associated with software engineering, as well as the important area of software quality assurance.
Block 3: Software evolution
Block 3 examines the pressures on organisations, the software and their environments to adapt to change. In particular, you’ll explore how these pressures lead to the maintenance process and to the challenges of continual software ‘evolution’.
Block 4: Requirements engineering
In the final block you will cover the essential principles and practices of requirements engineering. This includes techniques for eliciting requirements for real world business problems; identifying the stakeholders of a business problem and its solution, and understand how to manage stakeholder conflicts; specifying requirements and determining the qualities of a set of requirements and making them measureable; and communicating a set of requirements to a variety of stakeholders. Additionally, this part will explore the connection between requirements engineering and design, as well as situating the requirements engineering process and outputs within the context of the software engineering processes presented in the previous parts of the module.
During the module, you will have an opportunity to use a number of different software engineering tools, including process simulation tools, configuration management systems and requirements recording tools to address the software engineering challenges associated with realistic business problems. While some of these activities will be undertaken individually, there will also be elements that involve you working with others to produce a requirements specification.
This module is delivered entirely online and makes extensive use of a range of media and resources to support your learning.