SOFTWARE ENGINEERING

Academic Year 2016/2017 - 2° Year
Teaching Staff: Emiliano Alessio TRAMONTANA
Credit Value: 9
Taught classes: 72 hours
Term / Semester:

Detailed Course Content

Software development processes, such as waterfall, evolutive and agile (spiral, XP and RUP). Projects management: planning and critical path. Requirement engineering: gathering and organising requirements. UML notation: use cases, activities, states, classes, sequences and collaboration diagrams.

Object oriented design, inheritance and polymorphism. Quality issues. Computational reflection. Design Patterns are described by means of objectives, contexts, problems solved, examples, solution with diagrams and code: Singleton, Factory Method, Abstract Factory, Adapter, Bridge, Composite, Decorator, Facade, Chain of Responsibility, Mediator, Observer, State. Concurrency in Java: using threads and synchronization.

Software metrics.
Software validation by means of testing.


Textbook Information

  1. Ian Sommerville. Software Engineering. Pearson Addison-Wesley. 2010.
  2. Gamma, et al. Design Patterns – Elements of Reusable Object-Oriented Software. Pearson Addison-Wesley. 1994.
  3. Martin Fowler. UML Distilled. Pearson. 2003