software engineering 1 basic information lesson 1

30
ftware Engineering 1 Software Engineering Software Engineering Basic Information Lesson 1

Upload: clinton-blair

Post on 13-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Software Engineering 1

Software EngineeringSoftware Engineering

Basic InformationLesson 1

Software Engineering 2

Software Engineering

Basic Information

• Your Instructors • Goal of the Course• Material• Modalities of Examination

Software Engineering 3

Basic Information

Your InstructorFausto Giunchiglia(http://www.dit.unitn.it/~fausto)

Software Engineering 4

Basic Information

Your Lab Instructors

Alessandro Tomasi(http://www.dit.unitn.it/~tomasi)

Adolfo Villafiorita(http://sra.itc.it/people/adolfo)

Antonio Zandonai

Software Engineering 5

Goal of the Course

• Fundamentals of Software Engineering

• Software Development Process

• Introduction to Rational Rose (in lab)

• Fundamentals of Unified Modeling Language (in lab)

Software Engineering 6

Material

Internet (slides, exercises, …):

• http://www.didatticaonline.unitn.it/sci_cl_infor.asp

Software Engineering 7

Material

Suggest textbooks for the theory:• Ingegneria del software. Progettazione, sviluppo e verifica by A. Fuggetta, C. Ghezzi, S. Morasca, A. Morzenti, M. Pezzè. Mondadori Informatica, 1996• Principi di Ingegneria del Software by Roger S. Pressman. Mc Graw Hill, 1997

Suggest textbooks for the laboratory:• UML Distilled: A Brief Guide to the Standard Objectc Modeling Language (Second Edition) by Martin Fowler with Kendall Scott. Addison-Wesley, 1997 ed 2000 (ISBN 0-201-65783-X)

Software Engineering 8

Modalities of Examination

Written Exam:theory, Case Studiesand Laboratory (UML Diagrams)

Software Engineering 9

Groups

First Group (Monday14.30 – 16.30):Students of the first and second groups of the course “Programmazione 1” by prof. Roberto Sebastiani

Second Group (Tuesday 16.30 – 18.30):Students of the third groups of the course

“Programmazione 1” by prof. Roberto Sebastianiand students of degree course in Mathematics

Third Group (Thursday 14.30 – 16.30):Students of the second year of degree course in CS

Software Engineering 10

Software EngineeringSoftware Engineering

Software Development ProcessLesson 1

Software Engineering 11

The Code is only a little step of the Software Development Process

Sw Development Process

BUT

The Software Development Process isn’t only the writing of the program (the Code)

Software Engineering 12

Sw Development Process

Software Development Process

1. Analysis

2. Coding

3. Maintness

Software Engineering 13

Sw Development Process

1. Analysis: understand what we have to develop

2. Coding: write the code

3. Maintness: fix bugs in the code and insert other functionalities

Software Engineering 14

Sw Development Process:the cost

Analysis

Coding

Maintness

Software Engineering 15

Sw Development Process

More than 60% of theSoftware Development Process fails for a poor analysis!!!

25% of the Software Development Process time have to be for the Analysis

Software Engineering 16

Sw Development Process

The software:

• should deliver the required functionality

• should deliver the performance

• should be maintainable

• should be dependable

• should be usable (in particular for Web Services)

• should be reliable

Software Engineering 17

Sw Development Process

The goal of this course:a method to develop software

Software Engineering 18

Sw Development Process

This course is about:• Fundamentals of Sw Engineering (first five lessons)• Software Development Processes with some Case Studies (other lessons)• UML with Rationale Rose (in laboratory)

Software Engineering 19

Software EngineeringSoftware Engineering

History of SoftwareDevelopmentLesson 1

Software Engineering 20

History

1945 – 1960:Software as Art• numerical data

• users developers

• small programs (< 1000/2000 lines)

• low level languages (assembler)

• software doesn’t survive

• progammer is self-taught

• unstructured process (developing of sw NOT scalable)

Software Engineering 21

History

1945 – 1960:Software as Art: architecture

Several “super” computer cut off from the others

Software Engineering 22

History

1960 – 1980:Software as craftsmanship• alphabetical data

• users developers

• users aren’t software experts

• more complex programs (> 2000 lines)

• high level languages (C, C++)

• software have to be scalable

Software Engineering 23

History

1960 – 1980:Software as craftsmanships

SoftwareHouse

ElectronicData

Processing

Software Engineering 24

History

1960 – 1980:Software as craftsmanships: architectureClients connected to anElectoronic Data Processing Center

Software Engineering 25

History

1960 – 1980:Software as craftsmanships

• Software House develops software (Informatica Trentina, Delta Informatica, …)

• Electronic Data Processing supports users of software (in the University of Trento there are 70 technicians for EDP)

Software Engineering 26

History

1980 – 2000:Industrial Software• developers must almost always work within a team

• developers often change

• developers are part of a larger environment of customers, team members, and managers

• software must be certified

Software Engineering 27

History

1980 – 2000:Industrial Software

Software Factory

Software Engineering 28

Every computers are connected themselves:

1980 – 2000:Industrial Software

History

Software Engineering 29

History

2000 - now:System Integration• cost and complexity of software projects are much larger

• time span of software projects is much smaller

• poor performance means losing your job

• software must evolve to meet changing needs

• software must be used again

• users are “the man in the street” (Web Services)

• outsourcing

Software Engineering 30

History

2000 - now:System Integration

Everything is connected