Analysis of Software Artifacts
1
2022-2023
02038930
Informatics
English
Portuguese
Face-to-face
6.0
Compulsory
2nd Cycle Studies - Mestrado
Recommended Prerequisites
Programming.
Teaching Methods
In practice, this course includes theoretical lectures with detailed exposition of concepts, principles and fundamental techniques for analyzing software artifacts, along with practical examples intended to increase students' interest in theoretical concepts and exemplify their application to real situations. The evaluation includes tests; project presentations; exam, and homework assignments.
Learning Outcomes
This course focuses on analysis of software artifacts primarily code, but also including analysis of designs, architectures, and test suites. The course is centered on software quality and non-functional aspects, addressing static and dynamic tecnicas, such as static code analysis, inspections, model checking, different test strategies and benchmarking. The course balances theoretical discussions with lab exercises in which students apply the ideas they are learning to real artifacts. After completing this course, students will: know what kinds of analyses are available and how to use them; understand their scope and power, when they can be applied, and what conclusions can be drawn from their results; have a grasp of fundamental notions sufficient to evaluate new kinds of analysis when they are developed;have some experience in selecting and writing analyzes for a real piece of software, applying them and interpreting the results.
Work Placement(s)
NoSyllabus
Introduction to quality and verification; Inspections; Test domain modeling; model checking; blackbox testing (equivalence class partitioning; boundery values analysis), withbox testing (control flow; data flow), combinatorial testing; Framework; Mutation testing; Analysis; Formal verification; Architectural analysis.
Head Lecturer(s)
Henrique Santos do Carmo Madeira
Assessment Methods
Assessment
Exam: 45.0%
Project: 55.0%
Bibliography
Design Patterns Explained;
Buechner, Test Case Design Using the Classification Tree
Method; Conrad, A Systematic Approach to Testing Automotive Control Software.