66858 - Software Engineering

Academic Year 2020/2021

  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Computer Science (cod. 8009)

Learning outcomes

The course has the goal to teach the basics of software systems construction: agile methods and tools for analyzing, designing and developing software products. The student will be able to develop a specification starting from some requirements written in natural language. The student will be able to describing a software system using UML and to develop the code using an object oriented language like Java, C++ or C#

Course contents

The business of software. Software life cycles. Agile methods of software development. Requirements specifications. Design patterns. Software modeling with UML. Software development tools for agile. Project management of software projects. Measuring the quality of software. Software maintenance.

Readings/Bibliography

Jacobson, The essentials of modern software engineering, ACM Books 2019

Sommerville, Software Engineering, 10th ed., Pearson 2017


Teaching methods

Lectures, exercises, scientific paper reading and reporting.

Assessment methods

Project (in team), oral exam on a scientific paper chosen by the student.

Teaching tools

Slides (in italian). Exercises; online tests (Kahoot). 

Links to further information

http://www.cs.unibo.it/~cianca/wwwpages/labisw

Office hours

See the website of Paolo Ciancarini

SDGs

Quality education Industry, innovation and infrastructure Responsible consumption and production

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.