Skip to main content
CODE 111102
ACADEMIC YEAR 2024/2025
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

Software engineering is the branch of computer science that creates practical, cost-effective solutions to computing and information processing problems.  This course will study a collection of methods that embody an "engineering" approach to the development of computer software. We will study methods for analysis, design, testing, and implementation of large, complex software systems. The major work of the course is a group project.

AIMS AND CONTENT

LEARNING OUTCOMES

Software Engineering is a discipline that rules every aspect of the software development process. In other word is the application of Engineering to the Software. It is concerned with requirement specification, design, models, writing documentation and also writing unit tests, not just coding. Moreover it also provide metrics to quantify the quality of the product, i.e. the software developed. Software Development Templates, Requirement Analysis, UML Modeling Systems, Design Patterns, Verification and Validation, Time Template Specification Languages, Temporary Property Verification Algorithms, Modeling and Case Resolution using Model Checkers "

AIMS AND LEARNING OUTCOMES

At the end of the course students should be able:

  1. To understand principles, concepts, methods, and techniques of the software engineering approach to producing quality software (particularly for large, complex systems).
  2. To manage a medium-sized software development project, including project plans, documentation, and schedule.
  3. To compile Software Engineering Documents such as User Requirement Documents or Testing Plan
  4. To use tools for cooperative working, such as git/github

PREREQUISITES

There are no specific requisites. I am assuming that students are familiar with programming languages and Data Structures. This course demands both independent and cooperative work.  The implementation language used during the lessons is Java. Java programming experience is not a prerequisite, because it is assumed that as a software professional, students have the ability to learn new languages and tools quickly. 
 

TEACHING METHODS

During the course, lectures are alternated with practical demonstrations of the teaching concepts. For each argument, a  set of slides are available on the main site of the course (aulaweb).  Moreover also a set of practical example are used during the lessons and available on github.

Finally teacher and students together during the course will collaborate to solve a practical example.

 

 

SYLLABUS/CONTENT

A (tentative) list of topics is:

  1. Introduction to Software Engineering
  2. Software Development life cycles: Process Models and Solution Life Cycle Phases,Traditional Life Cycle Models, CBSE, Agile
  3. Version control using Git & GitHub
  4.  ​UML diagramming
  5. Requirement Engineering (User Requirement and Requirement Engineering for Critical Systems) 
  6. User Requirement Specification Document
  7. Design Requirement Specification Document
  8. Coding Standards  and best practices to follow in the development process
  9. Presenting software demonstration
  10. Software testing, Unit, and Functional Testing
  11. How to Plan the development phase

RECOMMENDED READING/BIBLIOGRAPHY

Possible reading books to go into mode details:

  1. R. MartinAgile Software Development, Principles, Patterns, and Practices, Prentice Hall, 2002 (ISBN: 0-135-97444-5).
  2. C. Atkinson et alComponent-Based Product Line Engineering with UML, Addison-Wesley, 2001, (ISBN 0-201-73791-4).
  3. A. Cockburn, Writing Effective Use Cases, Addison Wesley, 2000 (ISBN: 0-201-70225-8).
  4. M. Fowler and K. ScottUML Distilled: A Brief Guide to the Standard Object Modeling Language2nd Edition, Addison Wesley, 2002 (ISBN: 0-201-65783-X).
  5. I. Jacobson, G. Booch, and J. RumbaughUnified Software Development Process, Addison Wesley, 1999, (ISBN: 0-201-57169-2).
  6. Software Engineering, Ian Sommerville, Pearson Editor

TEACHERS AND EXAM BOARD

Exam Board

MASSIMO NARIZZANO (President)

ENRICO GIUNCHIGLIA

ARMANDO TACCHELLA (President Substitute)

LESSONS

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

Student assesment will be given by evaluating a group project, that follows the rules detailed below:

  1. A pull of external companies and University labs propose a set of group projects
  2. During the first two weeks of the course, projects are presented by external companies.
  3. After that, each student can choose up to five proposals that he is willing to do as a group project.  
  4. Each student can choose also one or more colleagues to form a group. 
  5. After that, the instructor will create teams (two people per group) and will assign a project to each team, matching, as much as possible, the group preferences.
  6. We are expected that each project is carried out by the groups in a team. 
  7. Group projects are expected to be developed in parallel to the course. Each project will terminate when all the requirements will be satisfied. More information will be given by the instructor during the lessons.  
  8. A tutor (either from the company or University) is assigned to each project

ASSESSMENT METHODS

The grade of the exam will be given by evaluating the project in the following compositions:

50%: of the vote will be assigned by evaluating how well the software satisfies the user's requirements. It is usually assessed by the company/university mentor

50% of the vote will be assigned evaluating the quality of the software produced, from the point of view of software engineering practices. Usually this will be assessed by the Course Instructor.​

Students with certification of Specific Learning Disabilities (SLD), disabilities, or other special educational needs must contact the instructor at the beginning of the course to agree on teaching and examination methods that, while respecting the course objectives, take into account individual learning styles and provide appropriate compensatory tools. It is reminded that the request for compensatory/dispensatory measures for exams must be sent to the course instructor, the School representative, and the “Settore servizi per l'inclusione degli studenti con disabilità e con DSA” office (dsa@unige.it) at least 10 working days before the test, as per the guidelines available at the link: https://unige.it/disabilita-dsa

 

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Quality education
Quality education
Gender equality
Gender equality
Decent work and economic growth
Decent work and economic growth
Industry, innovation and infrastructure
Industry, innovation and infrastructure