Title: Lecture 1: Software Engineering: Introduction
1Lecture 1 Software Engineering Introduction
- Dr Valentina Plekhanova
- University of Sunderland, UK
http//www.cet.sunderland.ac.uk/cs0vpl/SE-Com185.
htm
2Background and Definitions
- What is Software?
- Could say software is
- instructions (programs) to provide desired
function and performance - data structures that enable the program to
manipulate information - documents that describe the operation and use of
the programs.
3Background and Definitions
- Can also look at software characteristics and
application domains to get a better idea of what
software is -
- Software is more than code!
4Background and Definitions
- Software any computer instructions written to be
executed on hardware, including operating
systems, utility programs, and application
programs. - Academic Press Dictionary of Science and
Technology
5Software Applications Pressman, R.S., 2000
- The characteristics of software vary with the
- application domain. Some examples
- Real-time Software
- Business Software
- Engineering and Scientific Software
- Embedded Software
- Personal Computer (consumer) software
- AI Software
- ..
6Software Applications
- The methods, techniques and tools for software
development can vary considerably between
application domains.
7What is ? Sommerville
- What is Engineering?
- Engineers try to discover the problems and
find/develop apply appropriate theories,
methods, and tools to the solutions to these
problems. - What is System Engineering?
- (Computer-based) System engineering is concerned
with hardware development and evolution of
complex systems policy, process design and
system deployment as well as software engineering
- What is Software Engineering?
8An Engineering Approach considers the following
Pressman, R.S., 2000
- What is the problem to be solved?
- What are the characteristics of the entity that
are used to solve the problem? - How will the entity (and solution) be realised?
- What approach will be used to uncover errors in
the design and construction of the entity? - How will the entity be maintained - corrections,
adaptations and enhancements requested by users
of the entity?
9The Software Crisis
- The development of software engineering tools and
methods began in the late 1960s, largely in
response to what many authors have termed the
software crisis. - The "software crisis" refers to the inability of
developers to deliver reliable software, within
cost and schedule.
10The Software Crisis
- This crisis arose from the rapid increase in the
size and complexity of computer applications. - Systems became much too large and complicated to
be performed by one individual or two people
instead, large project teams were required.
11Software Characteristics
- Software is logical rather then physical
(though there are physical representations of the
software). - Software is developed or engineered, it is not
manufactured in the classical sense. - Nearly all the software costs are in the
engineering, rather than manufacture. - Classical project management for engineering
projects do not map directly to software projects.
12Software Characteristics
- Lack of visibility of software.
- Complexity of software projects not linear with
size - projects do not scale up well as larger
projects much more complex. - Software subject to frequent change to
requirements. - Lack of good spatial representations for
software. - Most software is custom built, rather than being
assembled from standard components.
13Software Characteristics
- Ideal does not occur because
- Software is always subject to changes in
requirements or the operating environment. - Fixing errors in software is not the same as
fixing errors in hardware. Dont just replace
component, but change the system. This can
introduce new errors.
14Software Myths Pressman, R.S., 2000
- Myths or attitudes to software development
include - Management Myths, e.g.
- Have standards and procedures for building
software - what more do we need? - My programmers have state of the art s/w
development tools - we buy them the newest
computers.
15Software Myths Pressman, R.S., 2000
- If we get behind schedule, we can add more
programmers and catch up. - A general statement of objectives is sufficient
to begin writing programs - we can fill in the
details later.
16Software Myths Pressman, R.S., 2000
- Customer Myths, e.g.
- Project requirements continually change, but
change can be easily accommodated because
software is flexible. - Practitioner's Myths, e.g.
- Once we write the program and get it to work, our
job is done. - Until I get the program running, I really have no
way of assessing its quality. - The only delivery for a successful project is the
working program.
17Software Engineering Definitions
- There are a large number of definitions of
- software engineering
- The establishment and use of sound engineering
principles in order to obtain, economically,
software that is reliable and works efficiently
on real machines Bauer, 1972
18Software Engineering Definitions
- The process of creating software systems (using)
techniques that reduce high software cost and
complexity while increasing reliability and
modifiability Ramamoorthy and Siyan, 1983
19Software Engineering Definitions
- The technological and managerial discipline
concerned with systematic production and
maintenance of software products that are
developed on time and within cost estimates
Fairley, 1984
20Software Engineering Definitions
- Software engineering the application of the
techniques and disciplines of engineering to the
development of high-quality, large-scale software
systems includes controlled design, structured
program methodology, productivity aids, and
project management tools. - Academic Press Dictionary of Science and
Technology
21Software Engineering Definitions
- We consider software engineering as the
application of mathematical techniques and
rigorous engineering methods to software
development. - We also need to support synthesis of formal
methods and heuristic approaches to engineering
tasks, which ensures managerial support for the
evaluation, comparison, analysis, evolution and
improvement of resources. - We need to use heuristic approaches where
heuristics can be defined as reasonable/effective
and supportive tool for decision making.
Plekhanova, 1997
22Software Engineering Definitions
- Software Engineering A systematic approach to
the analysis, design, implementation and
maintenance of software. It usually involves the
use of CASE tools. There are various models of
the software life-cycle, and many methodologies
for the different phases. http//sting.web.cern.ch
/sting/glossary.html
23 Keywords
- Reason
- reliability,
- efficiency,
- high-quality,
- software/systems,
- reduce cost/time,
- increase productivity.
24Keywords
- Application of methods/techniques/tools the
techniques and disciplines of engineering
mathematical techniques and rigorous engineering
methods synthesis/integration of formal methods
and heuristic approaches to engineering tasks,
CASE tools
25Common factors to these definitions include
- Software Engineering is concerned with software
systems built by teams rather than individuals. - Engineering principles are used in the software
development process. - Software Engineering involves both technical and
non-technical considerations.
26Generic View of Software Engineering
- Engineering is the analysis, design,
construction, verification, and management of
technical (and social) entities. -
27Three generic phasesPressman, R.S., 2000
- Definition phase - focus on what
- Systems engineering
- Project planning/scheduling
- Requirements analysis.
28Three generic phases
- Development phase - focus on how
- Software Design
- Implementation (Code generation)
- Testing.
29Three generic phases
- Maintenance phase - focus on change
- modification
- Correction
- Adaptation
- Enhancement
- Prevention.
30Week 4 24.02.03- 28.02.03
- Project Control Session
- Tutorial Time 10 minutes for each Team
- Project Team will present project file Schedule,
any project documentation. - Students will describe where they are in the
project and any problems encountered. - During the discussion reviewers will ask to see
evidence of deliverables for any tasks that are
complete to determine whether they have in fact
been done.