Course teached as: B003372 - INGEGNERIA DEL SOFTWARE 3-years First Cycle Degree (DM 270/04) in COMPUTER ENGINEERING
Teaching Language
Italian, with teaching materials in English
Course Content
4 lectures of introduction to java basics [1].
1 lecture on UML diagrams in the implementation and specification perspectives, with just a mention of the conceptual perspective [2].
2,3 lectures on effective idioms in the usage of Java [3].
1 lecture on the Java collections framework, the interface Comparable and Iterator pattern;
3,4 lectures on a selected subset of design patterns [4][5]
2,3 lessons on Structured Development: structuring elements of the c language, structured programming; Structured Design, structured chart, cohesion, coupling; Structured Analysis, Data Flow Diagrams, transform analysis [8][9];
1 more lecture on the conceptual differences between Structured and Object-Oriented Development.
3,4 lectures on Object Oriented Analysis with: basics of Object Oriented Analysis [7]; abstraction based on Accountability and ObservationAndMeasurement patterns [8].
2 more lectures on UML diagrams for requirement analysis: "use case diagrams and templates", "activity diagrams and process analysis".
2 lectures on the organization of the SW lifecycle, with reference to Waterfall and V-Model, Unified process, eXtreme Programming.
Slides: "Il ciclo di vita dei sistemi SW", "SRS Template".
[0] Slides of all the lectures.
[1] DavidFlanagan, "Java in a Nutshell". (first two chapters on "Java syntax from the Ground Up" (alias "How Java differs from c") and "Object Oriented programming in Java" (alias "Classes and objects in Java")).
[2] Martin Fowler, "UML distilled".
[3] Joshua Bloch, "Effective Java". (selected items, as documented in the slides)
[4] Erich Gamma, Richard Helm, Ralph Jonson, John Vlissides, "Design patterns, elements of reusable obect oriented design".
[5] Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann, "Pattern Oriented Software Architecture, a system of patterns". (my original intention was to say something at least about "Model View Controller", "event-channel", "Reflection; yet, in the past year time was not enough to do so).
[6] James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen, "Object-oriented Modeling and design," Prentice Hall, 1991.
[7] Martin Fowler, "Analysis Patterns", di cui in particolare conto di sviluppare i patterns "observation and measurement" e "accountability".
[8] T.De Marco, "Structured Analysis and System specification", Yourdon Press, Englewood Cliffs, New jersey, 1979.
[9] E.Yourdon, L.Constantine, "Structured design: fundamentals of a discipline of Computer programming and system design," Prentice Hall, September 1986.
Learning Objectives
Knowledge and understanding:
Java language, idioms, and design patterns;
Driving principles of OO design;
Integration of UML in the practice of SW development;
Requirements analysis, OO analysis and formalization based on UML;
Fundamental lifecycle models, Waterfall, VModel, UP, XP.
Applying Knowledge and understanding:
Java language, idioms, and design patterns;
Driving principles of OO design;
Integration of UML in the practice of SW development;
Requirements analysis, OO analysis and formalization based on UML.
Formulating judgements:
Java language, idioms, and design patterns;
Driving principles of OO design;
OO analysis;
Communication skills:
describing the intent and approach of a software design;
describing any content of the course.
Learning abilities:
autonomous practice in software development, OO analysis, UML modeling.
Prerequisites
this class assumes a good mastering of the c language. Experience with Java or c++ will largely help, but they are not assumed as necessary
Teaching Methods
*** Lectures: presentation of contents
*** Exercitation lectures: presentation of practical issues, such as coding or small-grained design examples.
*** Autonomous practice by the students in the elaborarion of concepts presented during lectures.
***
Small-sized assignment: autonously selected and developed by the student.
Further information
http://www.dsi.unifi.it/~vicario/Teaching/SW_Engineering/sw_engineering.html
(where things happen despite UGov and Cineca!)
Type of Assessment
written exam
+ oral exam
+ autonomously selected and developed assignment
Course program
http://www.dsi.unifi.it/~vicario/Teaching/SW_Engineering/sw_engineering.html
(where things happen despite UGov and Cineca!)