Software Development Methodologies
  Lecture 2
  Software Development Methodologies Home - Lecture Support -  Lecture 2

Quick Links

Worksheet »



 

The software lifecycle is a framework to move from the problem domain to a solution

The software lifecycle is a mechanism to guide software developers through a series of stages which initially assist in mapping a problem domain through to its refinement into a solution (requirements -> specification -> design -> implementation -> integration and testing -> release).


The scope of a system must be established

Throughout the development process, decisions must be made between different alternatives.  In order to make such decisions, the scope of the system must be established.  This will guide analysts and developers in deciding the relevance of requirements and design alternatives. 


Getting the requirements correct is critical, but not always possible to achieve first-time

It is important to get requirements correct as early as possible in the development process.  However, it is typical that users do not necessarily know what they want- only by developing, releasing and using a new system do users develop their own real, expectations of a system and understand their real needs.  Therefore the system development process must take account of this and develop system which are suitable for easy refinement, extension and change.


Testing is essential to ensure product quality

Testing is designed to highlight a range of problems, including miscoding of an implementation, poor design and missing or misunderstood requirements.  It is important to note however that testing does not necessarily remove all errors (typically less than 50%).


Maintenance has different forms and will be an essential part of the overall software lifetime process

Although software maintenance (changes to a software system) may arise through poor or inadequate testing, maintenance may also legitimately occur because user requirements change as a result of a changing business environment.  System must therefore be design to accommodate future change.


Methods are implementations of the software lifecycle

The software lifecycle is a generic scheme for the production of software.  A software development method however is the implementation of the lifecycle.  A variety of methods exist because each focuses on specific issues in the development process- some methods are better for producing information systems, whilst others are better for producing embedded, real-time, process control systems.


Models are the deliverables from each stage of the software lifecycle/ method step

A model is a structured representation of a set of facts about a problem domain or proposed system.  Throughout the software lifecycle, a series of models are produced, initially focusing on describing the problem to be addressed, then establishing what needs to be produced and finally how the needs are to be implemented.  Each model will typically include more detail than the previous, as the lifecycle moves towards a system implementation.


Abstraction is the primary mechanism for handling complexity in system descriptions

Abstraction is concerned with deliberately omitting particular detail to enable users and developers to focus on the most important issues in the development process.  For example, a map does not necessarily show all roads, footpaths, utility distribution systems (gas, water, electricity) and telephone network.  Detail is excluded depending upon the purpose of the map. 


There has been an evolution of approaches from structured through to object oriented 

A variety of approaches to software development exist, starting with those focused on simple issues of system input and output, through to those which sought to manage system complexity through functional decomposition (dividing a problem into sub-problems, and then refining each sub-problem into successive levels of detail), through to the object oriented approach which seeks to identify key data structures and the processes which can operate upon those data structures. 

Quick Tips

Tips for revision »

Tips for answering questions »

Worked exam examples »

Examinations feedback »


Details correct as on 8th March 2016
(c) C. Tjortjis 2016

Home | Contact Us| Legal