
Software Quality
Code
11170
Academic unit
Faculdade de Ciências e Tecnologia
Department
Departamento de Informática
Credits
6.0
Teacher in charge
Ana Maria Diniz Moreira, Miguel Carlos Pacheco Afonso Goulão
Weekly hours
4
Teaching language
Português
Objectives
Knowledge:
- Elements of a Software Quality Management (SQM) system
- Software Quality Models and evaluation
- Verification and Validation
- Principles, Concepts, and Aims of Software Reengineering
- Legacy Software Systems
- Techniques and Tools for Reverse Engineering
- Program Reengineering and Refactoring
Skills and competencies:
- Reify an SQM for software development projects
- Define a software quality model
- Select and use adequate verification and validation techniques
- Critical evaluation of the coverage achieved by verification and validation techniques
- Analyze existing, non-trivial, software systems
- Extract high-level information from legacy systems
- Diagnostic reporting
- Master techniques for software system reengineering
Soft skills:
- Teamwork
- Public defense of points of view
Prerequisites
Software Engineering, Software Development Methods
Subject matter
1. Introduction to software quality
2. Software Quality Models and Standards
2.1 Process Quality Models
2.2 Product Quality Models
3. Software Verification and Validation
3.1 Reviews (walkthroughs, inspections, demonstrations, audits)
3.2 Reading techniques (ad-hoc, checklist-based, defect-based reading, perspective-based reading)
3.3 Costs and benefits analysis of reviews
3.4 Software testing (fundamentals, black-box testing, white-box testing)
4. Software evolution
4.1 Laws of Software Evolution
4.2 Software ageing
5. Mining software repositories
5.1 Reverse engineering of software systems
5.2 Software metrics
5.3 Software visualization
6. Reengineering of software systems
6.1 Reengineering fundamentals
6.2 Refactoring
6.3 Traceability
7. Software reuse
7.1 Software families
7.2 Libraries of Reusable Components
Bibliography
Chikofsky, E.J., Cross II, J.H. Reverse Engineering and Design Recovery: a Taxonomy. IEEE Software 7(1), pp.13-17, IEEE Computer Society Press, January 1990.
Lanza M.; Marinescu R. Object-Oriented Metrics in Practice. Springer-Verlag 2006. ISBN-10 3-540-24429
Fowler M. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999. ISBN:0-201-48567-2