Title: CSEM01 SE Evolution
1CSEM01 SE Evolution ManagementAnne
ComerHelen Edwards
Introduction
2Introduction
- Module housekeeping (i.e. details)
- Module web page
- Staff
- Teaching learning
- Assessment
- Why this module?
3Introduction
- Module web page Go there for
- module handbook
- Lecture PowerPoint's
- Downloads
- Assignments
- Updates/News
4Introduction
- Teaching Team Members
- Anne Comer,
- anne.comer_at_sunderland.ac.uk
- Prof. Helen Edwards,
- helen.edwards_at_sunderland.ac.uk
- The majority of lectures will be given by Anne
Comer. Both Anne Comer and Prof. Edwards will be
on-hand during the tutorials. - See module handbook for further details
5Introduction
- Teaching and Learning
- Lectures 18 hours, Tutorials 24 hours
- Assignment 40 hours, Self study 70 hours
-
- Students will be required to adopt an
experiential and reflective learning approach, to
critique software engineering approaches -
evaluating the strength of evidence supporting
claims made by proponents of the approaches and
reflecting these against their experiences in
their project.
6Introduction
- Assessment -
- Purely coursework, two parts (60, 40),
- 60 - project work in a small team, and
personal project management - 40 - one critical review (including
presentation)
7Why this module?
- Software costs more to maintain than it does to
develop. For systems with a long life,
maintenance costs may be several times
development costs - Software engineering is concerned with
cost-effective software development sound
project management is essential - The evolution of software displays a number of
general principles across many different projects
those principles need to be studied.
8Why this module? again.
the complexity of practice has always dwarfed
the simplicity of theory - Robert Britcher,
Limits of Software, 1999, A-Wesley. The FAA
terminated its Advanced Automation System after
expenditure of approximately 2 billion, based on
the judgement that it could not be
accomplished. On the maiden flight of the Ariane
5 it crashed about after 40 secs. The amount lost
was 500 million (1996). It was a reuse error
a module was reused from Ariane 4 (10yr-old
software). There was a complete absence of any
kind of precise specification associated with a
reusable module.
9Objectives
- To introduce software engineering and to explain
its importance - To set out the answers to key questions about
software engineering, particularly with respect
to software evolution and s.e. management.
10Software engineering
- More and more systems are software controlled
- Software engineering is concerned with theory
and practice, paradigms of development (methods,
tools and procedures), and empirical assessment
and validation, - for professional software
development.
11Software costs
- Software costs more to maintain than it does to
develop. For systems with a long life,
maintenance costs may be several times
development costs - Software engineering is concerned with
cost-effective software development
12What is software?
- Computer programs and associated documentation
- Software products may be developed for a
particular customer or may be developed for a
general market - Software products may be
- Generic - developed to be sold to a range of
different customers - Bespoke (custom) - developed for a single
customer according to their specification
13What is software engineering?
- Software engineering is an engineering discipline
which is concerned with all aspects of software
production - Software engineering is concerned with the
practicalities of developing and delivering
useful software - Software engineers should adopt a systematic and
organised approach to their work and use
appropriate tools and techniques depending on the
problem to be solved, the development constraints
and the resources available
14What is a software process?
- A set of activities whose goal is the development
or evolution of software - Generic activities in all software processes are
- Specification - what the system should do and its
development constraints - Development - production of the software system
- Validation - checking that the software is what
the customer wants - Evolution - changing the software in response to
changing demands
15What is a software process model?
- A simplified representation of a software
process, presented from a specific perspective - Examples of process perspectives are
- Workflow perspective - sequence of activities
- Data-flow perspective - information flow
- Role/action perspective - who does what
- Generic process models
- Waterfall
- Evolutionary development
- Formal transformation
- Integration from reusable components
16What are the costs of software engineering?
- Roughly 60 of costs are development costs, 40
are testing costs. For custom software, evolution
costs often exceed development costs - Costs vary depending on the type of system being
developed and the requirements of system
attributes such as performance and system
reliability - Distribution of costs depends on the development
model that is used
17What are software engineering methods?
- Structured approaches to software development
which include system models, notations, rules,
design advice and process guidance - Model descriptions - Descriptions of graphical
models which should be produced - Rules - Constraints applied to system models
- Recommendations - Advice on good design practice
- Process guidance - What activities to follow
18What are the attributes of good software?
- The software should deliver the required
functionality and performance to the user and
should be maintainable, dependable and usable - Maintainability - software must evolve to meet
changing needs - Dependability - software must be trustworthy
- Efficiency - software should not make wasteful
use of system resources - Usability - software must be usable by the users
for which it was designed
19What are the key challenges facing software
engineering?
- Coping with legacy systems, coping with
increasing diversity and coping with demands for
reduced delivery times and higher quality. - Legacy systems - old, valuable systems must be
maintained and updated - Diversity - systems are often distributed and
include a mix of hardware and software components - Delivery - there is increasing pressure for
faster delivery of software - Quality stricter adherence to both explicit and
implicit requirements coupled with rigorous
process visibility and process improvement
20Key points
- Software engineering is an engineering discipline
which is concerned with all aspects of software
production. - Software products consist of developed programs
and associated documentation. Essential product
attributes are maintainability, dependability,
efficiency and usability. - The software process consists of activities which
are involved in developing software products.
Basic activities are software specification,
development, validation and evolution. - Methods are organised ways of producing software.
They include suggestions for the process to be
followed, the notations to be used, rules
governing the system descriptions which are
produced and design guidelines.