Salta al contenuto principale della pagina

SOFTWARE ENGINEERING

CODE 80154
ACADEMIC YEAR 2022/2023
CREDITS
  • 9 cfu during the 1st year of 11160 COMPUTER ENGINEERING (LM-32) - GENOVA
  • SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
    LANGUAGE English
    TEACHING LOCATION
  • GENOVA
  • SEMESTER 2° Semester
    TEACHING MATERIALS AULAWEB

    OVERVIEW

    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. 
     

    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

    The course aims to provide students

    • with the basics of the software development process
    • with the basics of the process of static and dynamic software verification and validation
    • with in-depth knowledge on Requirements Analysis, starting from the requirement elicitation up to the requirement specification 
    • with the basics of the UML design language
    • with the software guidelines for writing programs
    • with the basics of the software verification through testing 

    Teaching should also enable students to acquire skills on how to write development process documentation

    At the end of the course the student should be able to:

    • analyze a software and specify its requirements
    • gather requirements by interacting with various stakeholders
    • write a user requirement specification document (URS) using templates
    • write a system requirement specification document (SRS) using templates
    • draw up a software design specification document (SDS) using UML diagrams
    • develop a software from a SDS using software development guidelines
    • design both structural and functional tests for the dynamic verification of the software

    SYLLABUS/CONTENT

    • Software Development Process
    • Elicitation, Analysis and Specification of Software Requirements
    • Requirement Analysis in Cyber Physical Systems 
    • Unified Modelling Language (UML)
    • How to structure your code, software guidelines for writing programs, automatic document generation
    • Program Verification and Validation  through testing: Structural Testing, Functional Testing, Coverage Analysis
    • Graphical User Interfaces development
    • Tools and technologies to support the software development process
    • Use of Control Versioning systems, such as git / svn
       

    RECOMMENDED READING/BIBLIOGRAPHY

    During the course part of the following books are used: Software Engineering – I. Sommerville ‐ Pearson, Writing Effective Use Cases – A. Cockburn – Pearson, UML Distilled – M. Fowler – Pearson, Principles of Model Checking ‐ Cristel Baier, Joost‐Pieter Katoen – MIT Press, Foundations of Software Testing – A.P. Mathur – Pearson.

    TEACHERS AND EXAM BOARD

    Exam Board

    MASSIMO NARIZZANO (President)

    ENRICO GIUNCHIGLIA

    ARMANDO TACCHELLA (President Substitute)

    LESSONS

    Class schedule

    All class schedules are posted on the EasyAcademy portal.

    EXAMS

    EXAM DESCRIPTION

    In order to pass the exam the student must develop a software using the most appropriate software development methodology.
    The student must delivery five different documents:

    • The user requirement specification document (URS)
    • The Software Requirement Specification Document(SRS)
    • The Design Requirement Specification document (DRS)
    • The software source code. The software must be executable on the virtual machine provided by the teacher.
    • A Functional Test Suite and a Structural Test Suite

    Furthermore, each student will be asked to analyze one or more documents written by their colleagues for the purpose of increasing from one side the skills of the student, and on the other the quality of the developed products.
    Finally, the student must present the work done in front to a commission that will evaluate its work.
    Please also note that the delivery of these documents will take place in itinere with fixed deadlines.

    ASSESSMENT METHODS

    The evaluation of the project therefore will take into account:

    • How much the project is compliance with its requirements
    • The Customer Satisfaction
    • The project quality, i.e. how the student applied concepts exposed by the teacher, care in the development of the project, quality of the proposed solutions

    Please notice that students will not receive grades for the intermediate documents.

    Exam schedule

    Date Time Location Type Notes