Técnicas de Calidad del Software Agosto-Diciembre 2007 Sesión # 2
Proyecto Integrador Estudiantes buscando equipo? Equipos buscando nuevos miembros?
Conceptos Clave Calidad Aseguramiento de la calidad del software (SQA) Evaluación de la calidad de proyectos y productos de software
Calidad “Es la totalidad de propiedades y características de un producto o servicio que le confieren la capacidad de satisfacer las necesidades expresas o implícitas...con oportunidad, a un costo razonable y, que de tal forma entusiasmen al cliente, para que éste se convierta en nuestro mejor vendedor” (J. S. Sarazen, Quality Progress, Dic-1987)
Aseguramiento de la calidad del software (SQA) Actividades para: Prevenir la inyección de defectos Remover los defectos inyectados Durante todo el proyecto Ejemplos?
Aseguramiento de la calidad del software (SQA) Software reviews Informales Formales Formal technical reviews (FTR) Identificar errores Entrenar nuevos ingenieros
Aseguramiento de la calidad del software (SQA) Un programa formal de SQA involucra: Un enfoque de administración de la calidad Herramientas de ingeniería de software Procesos de pruebas y verificación Control de la documentación del software Estrategias de medición y evaluación (Pressman, 1997)
Detailed Design Planning Construction Requirements Development Architecture Management Quality Assurance and Testing User Documentation Software Development Process (McConnell, 1998) Time
Detailed Design Planning Construction Requirements Development Architecture Management Quality Assurance and Testing User Documentation Software Development Process (McConnell, 1998) Time
Software Development Process Planning & Management: Product manager Project manager Client Requirements development: IT/IS specialist(s) Information specialist(s)
Software Development Process Architecture: Systems architect(s) Information architect(s) Detailed design: Usability specialist(s) Graphic designer(s)
Software Development Process Construction: Developer(s) Tester(s) Usability specialist(s)
Software Development Process Quality Assurance and Testing: SQA Leader Developer(s) Tester(s) User(s) Usability specialist(s)
Software Development Process User documentation: Developer(s) Technical writer(s) Usability specialist(s)
Evaluating the Software Development Process To assess the quality of the software development process: verify compliance with project schedule and budget verify compliance with initial requirements identify process metrics (SEI) coding testing
Evaluating Software Quality “The working software is a more accurate status report than any paper report could ever be” (p.55) (McConnell, 1998)
Evaluating Software Quality To assess the quality of a software product: verify compliance with functional requirements (verification) validate compliance with customer requirements (validation) assess product performance Black-box testing White-box testing
Evaluating Performance Software quality criteria Operations Transition Testing Portability Reusability Interoperability Maintainability Flexibility Modularity Accuracy Reliability Integrity (Pressman, 1993)
Evaluating Functionality System features Customer communication Phone Operating System Support OS X Windows XP Windows Vista UNIX Linux Database support Oracle MS SQL Etc…
Evaluating Usability Usability criteria: Consistency Navigation model Online help Online tutorials Icon design Graphic design Terminology Etc…
Para la próxima sesión Individual: buscar en biblioteca digital (ACM o IEEE) dos artículos que hablen de actividades o proyectos de SQA. Entregar: una hoja con tu análisis de los artículos, y citas bibliográficas completas (título, autor, publicación, páginas).