software engineering 1 basic information lesson 1
TRANSCRIPT
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 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 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 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