+ All Categories
Home > Documents > Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK...

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

Date post: 31-Mar-2015
Category:
Upload: rene-spurrell
View: 216 times
Download: 1 times
Share this document with a friend
Popular Tags:
30
Lecture 1 Lecture 1 : : Software Software Engineering: Engineering: Introduction Introduction Dr Valentina Plekhanova Dr Valentina Plekhanova University of Sunderland, University of Sunderland, UK UK http://www.cet.sunderland.ac.uk/~cs0vpl/SE- http://www.cet.sunderland.ac.uk/~cs0vpl/SE- Com185.htm Com185.htm
Transcript
Page 1: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1Lecture 1:: Software Engineering: Software Engineering: IntroductionIntroduction

Dr Valentina PlekhanovaDr Valentina Plekhanova

University of Sunderland, UK University of Sunderland, UK

http://www.cet.sunderland.ac.uk/~cs0vpl/SE-Com185.htmhttp://www.cet.sunderland.ac.uk/~cs0vpl/SE-Com185.htm

Page 2: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 2

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

Page 3: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 3

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

Page 4: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 4

Background and DefinitionsBackground 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]

Page 5: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 5

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

Page 6: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 6

Software ApplicationsSoftware Applications The methods, techniques and tools for

software development can vary considerably between application domains.

Page 7: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 7

What is … ? What is … ? [Sommerville][Sommerville]

What is Engineering?What is Engineering? Engineers try to discover the problems and find/develop Engineers try to discover the problems and find/develop

& apply appropriate theories, methods, and tools to the & apply appropriate theories, methods, and tools to the solutions to these problems.solutions to these problems.

What is System Engineering?What is System Engineering? (Computer-based) System engineering is concerned with (Computer-based) System engineering is concerned with

hardware development and evolution of complex systems; hardware development and evolution of complex systems; policy, process design and system deployment as well as policy, process design and system deployment as well as software engineering …software engineering …

What is Software Engineering? …What is Software Engineering? …

Page 8: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 8

An Engineering Approach considers An Engineering Approach considers the following 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?

Page 9: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 9

The Software CrisisThe Software Crisis The development of software engineering

tools and methods began in the late 1960’s, 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.

Page 10: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 10

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

Page 11: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 11

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

Page 12: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 12

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

Page 13: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 13

Software CharacteristicsSoftware Characteristics Ideal does not occur because: Software is always subject to changes in Software is always subject to changes in

requirements or the operating environment.requirements or the operating environment. Fixing errors in software is not the same as fixing Fixing errors in software is not the same as fixing

errors in hardware. Don’t just replace component, errors in hardware. Don’t just replace component, but change the system. This can introduce new but change the system. This can introduce new errors.errors.

Page 14: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 14

Software MythsSoftware Myths [Pressman, R.S., 2000]

Myths or attitudes to software development include:

Management Myths, e.g.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.   

Page 15: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 15

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

Page 16: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 16

Software Myths Software Myths [Pressman, R.S., 2000]

Customer Myths, e.g.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.

Page 17: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 17

Software Engineering: DefinitionsSoftware 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]

Page 18: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 18

Software Engineering: DefinitionsSoftware Engineering: Definitions The process of creating software systems

(using) techniques that reduce high software costcost and complexity while increasing reliability and modifiability [Ramamoorthy and Siyan, 1983]

Page 19: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 19

Software Engineering: DefinitionsSoftware 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]

Page 20: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 20

Software Engineering: DefinitionsSoftware 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]

Page 21: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 21

Software Engineering: DefinitionsSoftware Engineering: Definitions “We consider softwaresoftware engineeringengineering 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 We need to use heuristic approaches where heuristics can be defined as reasonable/effective and supportive tool for be defined as reasonable/effective and supportive tool for decision makingdecision making.” [Plekhanova, 1997]

Page 22: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 22

Software Engineering: DefinitionsSoftware Engineering: Definitions Software Engineering: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

Page 23: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 23

KeywordsKeywords ReasonReason: :

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

Page 24: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 24

KeywordsKeywords 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

Page 25: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 25

Common factors to these definitions Common factors to these definitions includeinclude Software Engineering is concerned with Software Engineering is concerned with

software systems built by teams rather than software systems built by teams rather than individualsindividuals.

Engineering principles are used in the software development process.

Software Engineering involves both technical and non-technical considerations.

Page 26: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 26

Generic View of Software EngineeringGeneric View of Software Engineering Engineering is the analysis, design,

construction, verification, and management of technical (and social) entities.

 

Page 27: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 27

Three generic ‘phases’Three generic ‘phases’[Pressman, R.S., 2000]:

Definition phase - focus on ‘what’: Systems engineering; Project planning/scheduling; Requirements analysis.

Page 28: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 28

Three generic ‘phases’:Three generic ‘phases’:

Development phase - focus on ‘how’: Software Design; Implementation (Code generation); Testing.

Page 29: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 29

Three generic ‘phases’Three generic ‘phases’:

Maintenance phase - focus on change &

modification: Correction; Adaptation; Enhancement; Prevention.

Page 30: Lecture 1: Software Engineering: Introduction Dr Valentina Plekhanova University of Sunderland, UK cs0vpl/SE-Com185.htm.

Lecture 1 Valentina Plekhanova 30

Week 4: 24.02.03- 28.02.03Week 4: 24.02.03- 28.02.03 Project Control SessionProject Control Session Tutorial Time: 10 minutes for each Team 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.


Recommended