Learning outcomes of the course unit
Students should be already able to program with object-oriented approach.
Main course goal is to make them able to manage on their own small software project with also the project phase.
Students must acquire the capability
to collect project requirements
to define analysis
to complete project phase
to implement the modules defined in project phase
to define the complete context to install the software made.Moreover students must know the general methodology of Software Engineering
and the rules to work in a development team and to control projects, small
Fondamenti di Programmazione
Metodologie di Programmazione
Course contents summary
Software development process: the economical, organizational and methodology items;
software product and process; life cycle of software systems; waterfall and tradictional model;
evolution model and fountain model; Analysis and software requirements; models and
languages for specifications; UML and its use.
Projecting software systems: principles and methods for projecting; modularity and encapsulation principles;
object-oriented software design; "design patterns" and their use;multi-tier and Web architectures.
Building of software systems and object-oriented programming languages;Java programming language; Java2 architecture;
Java and object properties; multi-tier systems in Java; Web systems in Java; C# language and .NET architecture.
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.
Software project management techniques; metrics and useful diagrams (Gantt, Perth, ...); CASE instruments;documentation problem; inter-team and extra-team communication; evolution and system maintenance.
W. Zuser, S. Biffl, T Grechenig, M. Kohle
Ingegneria del Software con UML e Unified Process
Ed McGraw-Hill - 2004
A Java handbook with also servlet is reccomended.
Deitel Harvey M., Deitel Paul M.
Java Tecniche avanzate di programmazione - seconda edizione
Ed. Apogeo, 2004
JAVA 2 LA GUIDA COMPLETA - QUINTA EDIZIONE
Ed. McGraw-Hill, 2003
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.
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.
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.
Final mark results from both components of exam.