Lecture 1: Software Engineering: Introduction - PowerPoint PPT Presentation

1 / 30
About This Presentation

Lecture 1: Software Engineering: Introduction


Software: any computer instructions written to be executed on hardware, ... What is Software Engineering? ... Lecture 1. Valentina Plekhanova. 8 ... – PowerPoint PPT presentation

Number of Views:145
Avg rating:3.0/5.0
Slides: 31
Provided by: plekhanova


Transcript and Presenter's Notes

Title: Lecture 1: Software Engineering: Introduction

Lecture 1 Software Engineering Introduction
  • Dr Valentina Plekhanova
  • University of Sunderland, UK

Background 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.

Background 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!

Background and Definitions
  • Software any computer instructions written to be
    executed on hardware, including operating
    systems, utility programs, and application
  • Academic Press Dictionary of Science and

Software 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
  • ..

Software Applications
  • The methods, techniques and tools for software
    development can vary considerably between
    application domains.

What 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
  • 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?

An 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?

The 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.

The 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.

Software Characteristics
  • Software is logical rather then physical
    (though there are physical representations of the
  • 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.

Software 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
  • Lack of good spatial representations for
  • Most software is custom built, rather than being
    assembled from standard components.

Software 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.

Software Myths Pressman, R.S., 2000
  • Myths or attitudes to software development
  • 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

Software 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.

Software 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.

Software 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

Software 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

Software 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

Software 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

Software Engineering Definitions
  • We consider software engineering as the
    application of mathematical techniques and
    rigorous engineering methods to software
  • 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

Software 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

  • Reason
  • reliability,
  • efficiency,
  • high-quality,
  • software/systems,
  • reduce cost/time,
  • increase productivity.

  • 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

Common 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.

Generic View of Software Engineering
  • Engineering is the analysis, design,
    construction, verification, and management of
    technical (and social) entities.

Three generic phasesPressman, R.S., 2000
  • Definition phase - focus on what
  • Systems engineering
  • Project planning/scheduling
  • Requirements analysis.

Three generic phases
  • Development phase - focus on how
  • Software Design
  • Implementation (Code generation)
  • Testing.

Three generic phases
  • Maintenance phase - focus on change
  • modification
  • Correction
  • Adaptation
  • Enhancement
  • Prevention.

Week 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.
Write a Comment
User Comments (0)
About PowerShow.com