Faculdade de Ciências e Tecnologia

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

Courses