Software Engineering: What is That?

Post on 13-Apr-2017

481 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

Transcript

Software Engineering: what is that?

Henry Muccini henry.muccini@univaq.it

SEA Group

The material in these slides may be freely reproduced

and distributed, partially or totally, as far as an explicit

reference or acknowledge to the material author is

preserved.

Henry Muccini

SEA Group

Welcome to the Software Engineering Course

Software Engineering: what is that?

o how it relates to previous courses?

o What «Software Engineering» means?

Course Objective

Course plan

SEA Group

WELCOME

SEA Group

Henry Muccini, Ph.D.Prof. in Computer ScienceInternational aspects

My Research in Software Engineering:

o Software Architecture

o Software Testing

o Model Driven Engineeering

o Mobile Computing

Teaching:

o Software Engineering

o Software Architecture

o Progettazione UML per il Web (MWT)

SEA Group

SEA Group

Tell me something about you

SEA Group

Phrase of the day

� Take Notes, Take Notes, Take Notes

� You are not anymore used to take notes!!

� Most of the material comes from experience, not from

books

� Ask questions, Ask questions, Ask questions

� That is the main way to interact

� This is not high school

SEA Group

SOFTWARE ENGINEERING:

WHAT IS THAT?

SEA Group

Algorithms

Operating

systems

Data

Structures

Programming

Languages

DatabasesComputer

Architecture

Math

SEA Group

Let us put the pieces together, on…

SEA Group

Discussion:

On the relationship between SE

and Computer Science

SEA Group

There is much more:

http://www.boeing.com/commercial/aeromagazine/a

ero_05/textonly/ps02txt.html#table1

SEA Group

discussion

SEA Group

SEA Group

SEA Group

There are 100s definitions!!!

“Application of a systematic, disciplined, quantifiable

approach to the development, operation, and

maintenance of software; that is, the application of

engineering to software” (IEEE 1990)

“The application of a systematic, disciplined,

quantifiable approach to the development, operation,

and maintenance of software, and the study of these

approaches; that is, the application of engineering to

software” (Wikipedia)

SEA Group

Set of automated methods

to systematically develop quality software

that fulfils customer needs

while satisfying existing constraints

discussion

SEA Group

SEA Group

SEA Group

SEA Group

SEA Group

o The final Software doesn´t fulfill

the needs of the customer

o Hard to extend and improve:

if you want to add a functionality

later is mission impossible

o Bad documentation

o Bad quality: frequent errors, hard

to use, ...

o More time and costs than

expected

o Social aspects of teamwork

SEA Group

o It does what expected by the customer/user +

o It implements the «wanted» qualities +

o It satisfies existing constrains +

o It can be easily revised, extended, evolved …

o … and more!

SEA Group

discussion

SEA Group

Therac-25 safety failure:

•approximately 100 times the intended dose of

radiation

•3 people died, and 6 got injured

see article at: http://sunnyday.mit.edu/papers/therac.pdf

Factors:

•Overconfidence in

Software

•Confusing reliability

with safety

•Lack of defensive Design

•Failure to eliminate

fault causes

•Inadequate software

engineering practices

•…

SEA Group

http://www.devtopics.com/20-famous-software-disasters/

SEA Group

Field of computer science dealing with software systems

that are:

• large and complex =complex? large?

• built by teams =people!, communication, …

• exist in many versions =version control

• last many years =engineered to be sustainable

• Undergo changes =evolves

SEA Group

Requirements/User

stories

Software Design

Implementation

Testing

Maintenance

Sw

Process

Quality

Assurance

Human

Aspects

Activities

SEA Group

Preface @ «Object-Oriented Software Engineering –

using UML, Patterns, and Java», by Bernd Bruegge and

Allen H. Dutoit

SEA Group

COURSE ORGANIZATION

SEA Group

Lectures

Labs

Projects

Exams

SEA Group

Software Design (with the UML)

Requirements Engineering (with the UML)

(RUP and Agile) Software Development Process

Software Testing

Collaboration&Communication

SEA Group

Sw Design

Introduction

UML for sw Design

Sw Requirements

Requirements Elicitation

UML for Sw Requirements

Software Process

RUP vs Agile

Software Testing

Black box, white box

Collaboration and Communication

SEA Group

Course Web Site

CODE:

C44F3-XV3JT

https://app.schoology.com/course/383003107/

https://goo.gl/sV211p

SEA Group

Bernd Bruegge, Allen H. Dutoit

Object-Oriented Software

Engineering: Using UML,

Patterns and Java, 3rd Edition

Publisher: Prentice Hall, Upper

Saddle River, NJ, 2009;

ISBN-10: 0136061257

ISBN-13: 978-0136061250

Additional readings will be added during the lectures.

SEA Group

Practical projects covering the material

discussed in class

Ora examination

SEA Group

top related