Analysis of Software Artifacts
1
2019-2020
02008452
Computer Science
English
Face-to-face
SEMESTRIAL
7.0
Compulsory
2nd Cycle Studies - Mestrado
Recommended Prerequisites
Not applicable.
Teaching Methods
Methodologies defined and implemented by CMU professors. The evaluation includes tests; project presentations; midterm exam, final exam, and homework assignments.
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.
Learning Outcomes
This course focuses on analysis of software artifacts primarily code, but also including analysis of designs, architectures, and test suites. In order to illustrate core analysis concepts in some depth, the course centers on static program analysis, but it also includes a breadth of techniques such as testing, model checking, theorem proving, dynamic analysis, and type systems. 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.
Work Placement(s)
NoSyllabus
Introduction to quality and verification; Inspection; Test domain modeling; Adequacy criteria; Structural testing; Combinatorial testing; Framework Design Presentations; Random & Mutation testing; Analysis; Formal verification; Architectural analysis / DSMs; Algorithm analysis and/or profiling; Queueing theory; Queueing theory exercise / Security; Security.
Head Lecturer(s)
Henrique Santos do Carmo Madeira
Assessment Methods
Assessment
Tests; project presentations; midterm exam, final exam, and homework assignments: 100.0%
Bibliography
Design Patterns Explained;
Buechner, Test Case Design Using the Classification Tree
Method; Conrad, A Systematic Approach to Testing Automotive Control Software