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 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
- 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
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.
Ricevimento: Friday Morning From 10:00 till 12:00 o su appuntamento.
MASSIMO NARIZZANO (President)
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.
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.