software engineering: what is that?
TRANSCRIPT
Software Engineering: what is that?
Henry Muccini [email protected]
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