soft. eng. idr driss kettani1 csc-3324: chapter i introduction and definition reading: i....

25
Soft. Eng. I Dr Driss Kettani 1 CSC-3324: Chapter I Introduction and definition Reading: I. Sommerville, Edition 7, Chap. 1

Post on 19-Dec-2015

220 views

Category:

Documents


3 download

TRANSCRIPT

Soft. Eng. I Dr Driss Kettani 1

CSC-3324: Chapter I

Introduction and definition

Reading: I. Sommerville, Edition 7, Chap. 1

Soft. Eng. I Dr Driss Kettani 2

What is Software Engineering?

What is

it ?

Soft. Eng. I Dr Driss Kettani 3

What is SE ?

Software engineering is concerned with theories,

methods and tools for professional software

development

Analyzing, Designing, Implementing and maintaining

software systems in a formal, transparent,

predictable and cost effective way…

Software + Engineering

Soft. Eng. I Dr Driss Kettani 4

Why do we need Software Engineering?

Why SE ?

Soft. Eng. I Dr Driss Kettani 5

Facts and Statistics…

23% of all projects undertaken by internal information systems organizations are cancelled before their completion

49% of projects cost 189% of their original estimates

Only 28% of projects are completed on time and within budget

Projects completed have 42% of the originally proposed features or functions.

Soft. Eng. I Dr Driss Kettani 6

Facts and Statistics…

A poorly programmed ground-based altitude warning system was partly responsible for the 1997 Korean Air crash in Guam… Causing the kill of 228 people

The US$165M Mars Polar Lander probe was destroyed in its final descent to the planet in 1999, because its software shut the engines off 100 feet above the surface…

Faulty software in anti-lock brakes forced the recall of 39 000 trucks and tractors and 6000 school buses in 2000…

Soft. Eng. I Dr Driss Kettani 7

Facts and Statistics…

$275 Billion Money spent on software development every year in

the US alone (2004) $70 Billion

The economic damage caused by software bugs $25 Billion

The expected sum the industry could save if it used better software infrastructure

Some examples from Morocco (2005): Biometric system: 300MDH (Cogent) + 900MDH

(Thalès) Government: 550MDH

Soft. Eng. I Dr Driss Kettani 8

Why do we need Software Engineering?

The economy of the world is dependent on software... And, Software

engineering expenditure represents a significant fraction of GNP of

many countries…

More and more systems are software controlled...

Many important aspects of YOUR life depend on software

engineering

Why SE ?

Soft. Eng. I Dr Driss Kettani 9

This is your world:

Your Interest as a Programmer

Soft. Eng. I Dr Driss Kettani 10

Your Interest as a Software Engineer

A programmer is part of a subsystem team:

Soft. Eng. I Dr Driss Kettani 11

Your Interest as a Software Engineer

A programmer is part of a subsystem team, which is part of a team:

Soft. Eng. I Dr Driss Kettani 12

Your Interest as a Software Engineer

A programmer is part of a subsystem team, which is part of a team, which is part of a Project/Company:

Soft. Eng. I Dr Driss Kettani 13

Your Interest as a Software Engineer

This is a program:

Soft. Eng. I Dr Driss Kettani 14

Your Interest as a Software Engineer

It is part of a subsystem:

Soft. Eng. I Dr Driss Kettani 15

Your Interest as a Software Engineer

It is part of a subsystem, which is part of a system:

Soft. Eng. I Dr Driss Kettani 16

The main concern of SE ?

Software engineering is concerned with the final

product and the development process…

Soft. Eng. I Dr Driss Kettani 17

What is a software product?

???

Soft. Eng. I Dr Driss Kettani 18

Software product attributes

Maintainability It should be possible for the software to evolve to meet

changing requirements Dependability

The software should not cause physical or economic damage in the event of failure (Reliability, Security and Safety)

Efficiency The software should not make wasteful use of system

resources Usability

Software should have an appropriate user interface and documentation

Soft. Eng. I Dr Driss Kettani 19

What is a software process ?

Structured set of activities (steps) required to

develop a software system...

Activities vary depending on the organization

and the type of system being developed…

Usually: Specifications, Programming, Validation

and Evolution

Models of SE process…

Soft. Eng. I Dr Driss Kettani 20

Process attributes

Understandability: Is the process defined and understandable?

Visibility: Is the process progress externally visible

Supportability: Can the process be supported by CASE tools?

Acceptability: Is the process acceptable to those involved in it?

Reliability:Are process errors discovered before they result in

product errors?

Rapidity: How fast can the system be produced?

Soft. Eng. I Dr Driss Kettani 21

Professional and ethical responsibility

Software engineering involves wider

responsibilities than simply the application of

technical skills.

Software engineers must behave in an honest and

ethically responsible way if they are to be

respected as professionals.

Ethical behaviour is more than simply upholding

the law.

Soft. Eng. I Dr Driss Kettani 22

Issues of professional responsibility

Confidentiality Engineers should normally respect the confidentiality

of their employers or clients irrespective of whether or

not a formal confidentiality agreement has been

signed…

Competence Engineers should not misrepresent their level of

competence. They should not knowingly accept work

which is outwith their competence…

Soft. Eng. I Dr Driss Kettani 23

Issues of professional responsibility

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.

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

Soft. Eng. I Dr Driss Kettani 24

ACM/IEEE Code of Ethics

The professional societies in the US have cooperated to produce a code of ethical practice.

Members of these organisations sign up to the code of practice when they join.

The Code contains eight Principles related to the behaviour of and decisions made by professional software engineers, including practitioners, educators, managers, supervisors and policy makers, as well as trainees and students of the profession.

Soft. Eng. I Dr Driss Kettani 25

Miscellaneous…

Sensors election…

About the projects…

Team composition… Members: 3 to 4 students…

Deadline: Sept. 10th at/before class time

Projects proposal… Around one page that

contains the project title and description and the

client name, address and phone number…

Deadline: Sept. 14th 2007 at/before class time