SOFTWARE ENGINEERING
cod. 06015

Academic year 2007/08
3° year of course - First semester
Professor
Academic discipline
Informatica (INF/01)
Field
Formazione informatica
Type of training activity
Characterising
48 hours
of face-to-face activities
6 credits
hub:
course unit
in - - -

Learning objectives

Students should be already able to program with object-oriented approach.<br />Main course goal is to make them able to manage on their own small software project with also the project phase.<br />Students must acquire the capability <br /><br /><br />to collect project requirements<br />to define analysis<br />to complete project phase<br />to implement the modules defined in project phase<br />to define the complete context to install the software made.Moreover students must know the general methodology of Software Engineering <br />and the rules to work in a development team and to control projects, small<br />or complex.<br /><br />

Prerequisites

Fondamenti di Programmazione<br />Metodologie di Programmazione<br />(strongly reccomended)

Course unit content

<br />Software development process: the economical, organizational and methodology items;<br />software product and process; life cycle of software systems; waterfall and tradictional model; <br />evolution model and fountain model; Analysis and software requirements; models and<br />languages for specifications; UML and its use.<br />Projecting software systems: principles and methods for projecting; modularity and encapsulation principles;<br />object-oriented software design; "design patterns" and their use;multi-tier and Web architectures.<br />Building of software systems and object-oriented programming languages;Java programming language; Java2 architecture;<br />Java and object properties; multi-tier systems in Java; Web systems in Java; C# language and .NET architecture.<br />Operating project management: goal definition; constraint analysis; instrument and architecture choice; team work; regression test; partial development and partial test; aggregation test, realistic data test; final test; production phase; ordinary and evolution maintenance; case study.<br />Software project management techniques; metrics and useful diagrams (Gantt, Perth, ...); CASE instruments;documentation problem; inter-team and extra-team communication; evolution and system maintenance. 

Full programme

- - -

Bibliography

Reccomended Book:<br />W. Zuser, S. Biffl, T Grechenig, M. Kohle<br />Ingegneria del Software con UML e Unified Process<br />Ed McGraw-Hill - 2004<br />ISBN 8838661553<br />A Java handbook with also servlet is reccomended.<br />Suggested:<br />Deitel Harvey M., Deitel Paul M.<br />Java Tecniche avanzate di programmazione - seconda edizione<br />Ed. Apogeo, 2004<br />ISBN 8850320973<br />or<br />Herbert Schildt<br />JAVA 2 LA GUIDA COMPLETA - QUINTA EDIZIONE<br />Ed. McGraw-Hill, 2003<br />ISBN 8838643083<br /><br />

Teaching methods

Main course focus is about the deep analysis of historical and modern Software Engineering methodologies, together with complete examples from real practical experiences. But course integrates also theory with laboratory sessions, applying with practical examples principles of projecting and creating modular and well divided software components.<br />In laboratory section  Java is the language most used, both for its similarity with C++, already known by students from previous courses, both for its diffusion in the market. Also some news about Microsoft C# and .NET platform are considered, since also these environment are growing in the market.<br />Evaluation of students is based on a project, in which candidate must demonstrate to have correctly applied analysis, project and modular system subdivision principles, and on an oral examination in which theory and its application into the project are discussed.<br />Final mark results from both components of exam.<br /><br />

Assessment methods and criteria

- - -

Other information

- - -