EVALUATION OF THE QUALITY OF THE SOFTWARE

Degree course: 
Corso di Second cycle degree in INFORMATICA
Academic year when starting the degree: 
2016/2017
Year: 
1
Academic year in which the course will be held: 
2016/2017
Course type: 
Supplementary compulsory subjects
Credits: 
6
Period: 
First Semester
Standard lectures hours: 
48
Detail of lecture’s hours: 
Lesson (48 hours)
Requirements: 

Students are required to have good knowledge about software products and artifacts produced during software development.
The knowledge of the English language, both written and oral, is required, so the students can take full advantage of the course material made available by the instructor or generally available online and of the textbooks

Final Examination: 
Orale

The students’ learning extent is assessed via a written test and an individual project, autonomously developed by each student. A mid-term and a final tests are carried out during the course. Students that pass both are exempted from taking the written exam.

The goal of the written test (as well as the mid-term and final tests) is to assess the learning degree and the understanding of the elements related to software quality evaluation from both a theoretical and an application (on problems of limited complexity) points of view. Written test (as well as the mid-term and final tests) consist of:
• exercises for the assessment of the students’ understanding and knowledge about software verification and validation techniques;
• exercises for the assessment of the students’ understanding and knowledge about software product measures;
• exercises for the assessment of the students’ ability to lay down measurement plans for industrial environments;
• questions on the conceptual aspects.

The project allows the students to use their skills and knowledge for the building of software quality estimation models. The project presentation has the goal of assess the students’ communication skills in two areas: 1) the students’ their technical competencies and use of the correct terminology; 2) the student’s skills for communicating a complete and organized view of the work they carried out.

The grade of the written test (as well as the mid-term and final tests) and of the project is in thirtieths. The overall grade is determined by the grade of the written part with a variation of at mos

Assessment: 
Voto Finale

The course presents the most important conceptual and application elements related to the verification, validation, evaluation, estimation, and prediction of the quality of software systems. The primary goal of the course is to provide students with the necessary knowledge for the definition of verification, validation and measurement plans and their introduction in industrial settings. The students also develop the ability of analyzing existing software projects, so as to evaluate them and modify them, if needed. In addition, the students develop the ability of identifying strengths and weaknesses of the existing techniques of measurement, evaluation, and prediction of software qualities.

At the end of this course, the students:
• know the conceptual foundations of software verification and validation;
• know the most important software verification and validation techniques;
• know the conceptual foundations of software quality evaluation;
• know the most important software quality evaluation measures and techniques;
• are able to correctly apply measurement to evaluate software systems and predict their qualities.

Knowledge and understanding

At the end of the course, the students have the necessary knowledge and understanding skills to analyze a software system from the point of view of its quality and to identify the techniques and measures that are the most rigorous ones from a conceptual point of view.

Applying knowledge and understanding

At the end of the course, the students are able to apply both the general principles of software verification, validation, and measurement and specific techniques. In addition, the students are able to introduce measurement programs in software organizations even fairly complex ones.

Judgment autonomy

At the end of the course, the students have acquired enough knowledge to be able to autonomously judge software quality and the existing measurement techniques, not all of which are theoretically well-founded, nor easily applicable, nor validated as practically useful. Thus, the students are able to select the ones that are actually useful to reach the goals of the specific application cases they need to deal with.

Communication Skills

At the end of the course, the students are able to use the correct terminology for the characteristics of software measures and the quality-related techniques. In addition, the students can receive and interpret indications coming from the developers, to build and present a plan for software quality measurement and evaluation that addresses the developers’ needs. Finally, the course has the goal of making the students aware of and used to the technical language of the discipline, especially with reference to English terminology.

Prerequisits

Students are required to have good knowledge about software products and artifacts produced during software development.
The knowledge of the English language, both written and oral, is required, so the students can take full advantage of the course material made available by the instructor or generally available online and of the textbooks.

Course Topics
Topic Lectures
Introduction to software quality. 2
Testing and debugging 6
Static analysis and Inspections 4
Quality models. The ISO9126 quality model. 2
Measurement Theory. 4
Axiomatic Approaches. 4
Product measures. 6
Function Points. 6
The Goal/Question/Metric paradigm. 6
Data analysis techniques. 8
Total 48

The slides used during classes can be found on the University’s e-learning web site (http://elearning2.uninsubria.it/), where the students can find further materials and links to relevant websites.

Reference books:
Fenton e Bieman, Software Metrics: A Rigorous and Practical Approach, Third Edition, Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series, 2014.
Garmus e Herron, Function Point Analysis: Measurement Practices for Successful Software Projects, Addison-Wesley Professional, 2000.
Wohlin et al., Experimentation in Software Engineering, Springer, 2012.
Pezzè e Young: Software Testing and Analysis: Process, Principles and Techniques, Wiley, 2007.

Convenzionale

Course Format
Lectures (48 hours):
• Learning of the techniques used for software verification and validation.
• Learning of the techniques used for the measurement of the qualities of software and all artifacts produced during software development.
• Illustration of measurement foundations, for a correct use of measures.
• How to introduce measurement programs in industrial environments.

Professors

Borrowers