1. Trang chủ
  2. » Giáo án - Bài giảng

Introduction Software Engineering by Ian Sommerville

1,4K 296 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Introduction to Software Engineering
Tác giả Ian Sommerville
Trường học Open University
Chuyên ngành Software Engineering
Thể loại Textbook
Năm xuất bản 2000
Thành phố Milton Keynes
Định dạng
Số trang 1.373
Dung lượng 3,4 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

FAQs about software engineeringEngineering engineering?... Software engineering is part of thisprocess specification, architectural design, integration anddeployment... What is a softwar

Trang 1

l Getting started with software

engineering

Trang 2

to explain why they are of concern to softwareengineers

Trang 3

Topics covered

Trang 4

l The economies of ALL developed nations are

dependent on software

methods and tools for professional softwaredevelopment

significant fraction of GNP in all developedcountries

Software engineering

Trang 5

l Software costs often dominate system costs The

costs of software on a PC are often greater thanthe hardware cost

develop For systems with a long life,maintenance costs may be several timesdevelopment costs

cost-Software costs

Trang 6

FAQs about software engineering

engineering and computer science?

engineering and system engineering?

Trang 7

FAQs about software engineering

Engineering)

engineering?

Trang 8

What is software?

documentation

particular customer or may be developed for ageneral market

• Generic - developed to be sold to a range of different customers

• Bespoke (custom) - developed for a single customer according

to their specification

Trang 9

What is software engineering?

which is concerned with all aspects of softwareproduction

organised approach to their work and useappropriate tools and techniques depending on theproblem to be solved, the development constraintsand the resources available

Trang 10

What is the difference between software

engineering and computer science?

fundamentals; software engineering is concernedwith the practicalities of developing and

delivering useful software

insufficient to act as a complete underpinning forsoftware engineering

Trang 11

What is the difference between software

engineering and system engineering?

of computer-based systems developmentincluding hardware, software and processengineering Software engineering is part of thisprocess

specification, architectural design, integration anddeployment

Trang 12

What is a software process?

or evolution of software

• 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

Trang 13

What is a software process model?

presented from a specific perspective

• Workflow perspective - sequence of activities

• Data-flow perspective - information flow

• Role/action perspective - who does what

• Waterfall

• Evolutionary development

Trang 14

What are the costs of software engineering?

40% are testing costs For custom software,evolution costs often exceed development costs

developed and the requirements of systemattributes such as performance and systemreliability

model that is used

Trang 15

What are software engineering methods?

which include system models, notations, rules,design advice and process guidance

Trang 16

What is CASE (Computer-Aided

Software Engineering)

automated support for software process activities.CASE systems are often used for method support

• Tools to support the early process activities of requirements and

design

• Tools to support later activities such as programming,

debugging and testing

Trang 17

What are the attributes of good software?

functionality and performance to the user and

should be maintainable, dependable and usable

Trang 18

What are the key challenges facing

software engineering?

increasing diversity and coping with demands forreduced delivery times

Trang 19

Professional and ethical responsibility

responsibilities than simply the application oftechnical skills

ethically responsible way if they are to berespected as professionals

the law

Trang 20

Issues of professional responsibility

l Confidentiality

• Engineers should normally respect the confidentiality of their

employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.

l Competence

• Engineers should not misrepresent their level of competence.

They should not knowingly accept work which is outwith their competence.

Trang 21

Issues of professional responsibility

l Intellectual property rights

• Engineers should be aware of local laws governing the use of

intellectual property such as patents, copyright, etc They should

be careful to ensure that the intellectual property of employers and clients is protected.

l Computer misuse

• Software engineers should not use their technical skills to

misuse other people’s computers Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say)

to extremely serious (dissemination of viruses).

Trang 22

ACM/IEEE Code of Ethics

cooperated to produce a code of ethical practice

code of practice when they join

behaviour of and decisions made by professionalsoftware engineers, including practitioners,

educators, managers, supervisors and policymakers, as well as trainees and students of the

Trang 23

Code of ethics - preamble

• The short version of the code summarizes aspirations at a high

level of the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.

• Software engineers shall commit themselves to making the

analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession.

Trang 24

Code of ethics - principles

• Software engineers shall act consistently with the public

interest.

• Software engineers shall act in a manner that is in the

best interests of their client and employer consistent with the public interest.

• Software engineers shall ensure that their products and

related modifications meet the highest professional

Trang 25

Code of ethics - principles

• Software engineers shall maintain integrity and

independence in their professional judgment.

• Software engineering managers and leaders shall

subscribe to and promote an ethical approach to the management of software development and maintenance.

• Software engineers shall advance the integrity and

Trang 26

Code of ethics - principles

• Software engineers shall be fair to and supportive of their

colleagues.

• Software engineers shall participate in lifelong learning

regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

Trang 27

Ethical dilemmas

senior management

releases a safety-critical system without finishingthe testing of the system

weapons systems or nuclear systems

Trang 28

Key points

l Software engineering is an engineering discipline which is

concerned with all aspects of software production.

l Software products consist of developed programs and

associated documentation Essential product attributes are maintainability, dependability, efficiency and usability.

l The software process consists of activities which are involved

in developing software products Basic activities are software specification, development, validation and evolution.

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

Trang 29

Key points

l CASE tools are software systems which are designed to

support routine activities in the software process such as editing design diagrams, checking diagram consistency and keeping track of program tests which have been run.

l Software engineers have responsibilities to the engineering

profession and society They should not simply be concerned with technical issues.

l Professional societies publish codes of conduct which set out

the standards of behaviour expected of their members.

Trang 30

Systems Engineering

deploying and operating systems which include hardware, software and people

Trang 31

broader system engineering issues

properties such as reliability and security

considered in the system design process

procurement processes

Trang 32

Topics covered

Trang 33

What is a system?

working together towards some common objective

electrical and electronic hardware and be operated

Trang 34

Problems of systems engineering

'wicked' problems

co-ordination across disciplines

• Almost infinite possibilities for design trade-offs across

Trang 35

Software and systems engineering

Software-driven general purpose electronics isreplacing special-purpose systems

problems of software engineering

in systems engineering Many large system projectshave been delayed because of software problems

Trang 36

Emergent properties

properties that can be derived from the properties ofcomponents of a system

relationships between system components

once the components have been integrated into asystem

Trang 37

Examples of emergent properties

• This is an example of an emergent property that can be computed

from individual component properties.

• This depends on the reliability of system components and the

relationships between the components.

• This is a complex property which is not simply dependent on the

Trang 38

Types of emergent property

• These appear when all the parts of a system work together to

achieve some objective For example, a bicycle has the functional property of being a transportation device once it has been assembled from its components.

• Examples are reliability, performance, safety, and security These

relate to the behaviour of the system in its operational environment They are often critical for computer-based systems

as failure to achieve some minimal defined level in these

Trang 39

l Because of component inter-dependencies,

faults can be propagated through the system

unforeseen inter-relationships betweencomponents

possible component relationships

System reliability engineering

Trang 40

l Hardware reliability

• What is the probability of a hardware component failing and how

long does it take to repair that component?

• How likely is it that a software component will produce an

incorrect output Software failure is usually distinct from hardware failure in that software does not wear out.

• How likely is it that the operator of a system will make an error?

Influences on reliability

Trang 41

Reliability relationships

are outside the range of inputs expected by thesoftware

which cause operator stress and lead to operatorerrors

affect its reliability

Trang 42

The ‘shall-not’ properties

be measured

system should not exhibit

• Safety - the system should not behave in an unsafe way

• Security - the system should not permit unauthorised use

Trang 43

Systems and their environment

environment

e.g system may require electrical supply from itsenvironment

environment may be important

Trang 44

System hierarchies

Security system

Heating system

Lighting system

Power system

Waste system

Water system

Town

Street

Building

Trang 45

Human and organisational factors

• Does the system require changes to the work processes in the

environment?

• Does the system de-skill the users in an environment or cause them to

change the way they work?

• Does the system change the political power structure in an

Trang 46

System architecture modelling

the sub-systems making up a system

sub-systems

component in the model

Trang 47

Intruder alarm system

Alarm contr oller

Voice synthesizer

Movement

sensors

Siren

Door sensors

Telephone caller

External control centre

Trang 48

Component types in alarm system

Trang 49

Da ta comms.

system

Transponder system

Radar

system

Aircraft comms.

Telephone system

Flight plan database

Backup position processor

Controller consoles

ATC system architecture

Trang 50

Functional system components

Trang 51

System components

• Collect information from the system’s environment e.g radars in

an air traffic control system

• Cause some change in the system’s environment e.g valves in a

process control system which increase or decrease material flow in

a pipe

• Carry out some computations on an input to produce an output e.g.

Trang 52

System components

• Allow system components to communicate with each other e.g.

network linking distributed computers

• Co-ordinate the interactions of other system components e.g.

scheduler in a real-time system

Trang 53

Component types in alarm system

Trang 54

The system engineering process

need for parallel development of different parts ofthe system

• Little scope for iteration between phases because hardware

changes are very expensive Software may have to compensate for hardware problems

disciplines who must work together

• Much scope for misunderstanding here Different disciplines use a

different vocabulary and much negotiation is required Engineers

Trang 55

The system engineering process

System integration

Sub-system development

System design

Requirements

definition

System installation

System evolution

System decommissioning

Trang 56

Inter-disciplinary involvement

ATC systems engineering

Electronic engineering

Electrical engineering

User interface design

Mechanical engineering

Architecture

Structural engineering

Software engineering

Civil engineering

Trang 57

System requirements definition

• Abstract functional requirements System functions are defined in

an abstract way

• System properties Non-functional requirements for the system in

general are defined

• Undesirable characteristics Unacceptable system behaviour is

specified

for the system

Trang 58

System objectives

• To provide a fire and intruder alarm system for the building which

will provide internal and external warning of fire or unauthorized intrusion

• To ensure that the normal functioning of work carried out in the

building is not seriously disrupted by events such as fire and unauthorized intrusion

Trang 59

System requirements problems

developments over the lifetime of the system

(particularly) without an impression ofcomponent structure of the system

Trang 60

The system design process

• Causes particular problems when COTS are integrated

Trang 61

The system design process

Partition

requirements

Identify sub-system s

Assign requirements

to sub-systems

Specify sub-system functionality

Define sub-system

interfaces

Trang 62

System design problems

software and human components may involve a lot

of negotiation

readily solved using software

software requirements so software must compensatefor this

Trang 63

Sub-system development

hardware, software and communications

Off-the-Shelf) systems procurement

teams

proposing system changes means that the

Trang 64

l The process of putting hardware, software and

people together to make a system

are integrated one at a time

found at this stage

of system components

System integration

Trang 65

l Environmental assumptions may be incorrect

a new system

systems for some time

cabling problems)

System installation

Trang 66

l Will bring unforeseen requirements to light

not anticipated by system designers

other systems

• Physical problems of incompatibility

• Data conversion problems

• Increased operator error rate because of inconsistent interfaces

System operation

Trang 67

System evolution

evolve to meet changing requirements

• Changes must be analysed from a technical and business

perspective

• Sub-systems interact so unanticipated problems can arise

• There is rarely a rationale for original design decisions

• System structure is corrupted as changes are made to it

Ngày đăng: 12/05/2014, 11:09

TỪ KHÓA LIÊN QUAN