Aseguramiento de la Calidad del Software SQA M

  • Slides: 137
Download presentation
Aseguramiento de la Calidad del Software (SQA) M. C. Juan Carlos Olivares Rojas

Aseguramiento de la Calidad del Software (SQA) M. C. Juan Carlos Olivares Rojas

Agenda • Conceptos básicos. • Relación de la Ing. de Software con SQA. •

Agenda • Conceptos básicos. • Relación de la Ing. de Software con SQA. • Definición y propósito del SQA. • Problemas que resuelve la SQA. • Calidad del software en el ciclo de vida del mismo.

Agenda • Roles y responsabilidades de los equipos de desarrollo. • Habilidades y capacidades

Agenda • Roles y responsabilidades de los equipos de desarrollo. • Habilidades y capacidades del personal del SQA. • Actividades del SQA. • Métodos y herramientas.

Conceptos básicos • Los errores del software le salen muy caros a Estados Unidos:

Conceptos básicos • Los errores del software le salen muy caros a Estados Unidos: 59 500 millones de dólares al año. • 50% de los fallos corresponde a los usuarios el resto a los programadores y vendedores. • Las pruebas al inicio del ciclo reducirían los costos por fallos en 22 200 millones de dólares.

Calidad del Software • 80% de los costos de desarrollo de programas se dedican

Calidad del Software • 80% de los costos de desarrollo de programas se dedican a detectar y corregir defectos. • La Academia de Ciencias de Estados Unidos pidió al Congreso una ley que atribuya a las casas de software una responsabilidad civil por daños y perjuicios a las empresa.

Calidad del Software • La industria del software presenta algunas deficiencias como: • Falta

Calidad del Software • La industria del software presenta algunas deficiencias como: • Falta de competitividad • Débil gestión administrativa • No se aplican estándares internacionales

Concepto popular de calidad • Calidad para la mayoría de las personas: • Producto

Concepto popular de calidad • Calidad para la mayoría de las personas: • Producto bueno • Sinónimo de bien construido o fabricado • “Lo mejor” • Lo contrario de engaño • La tienen las cosas caras

Calidad del software • La calidad es un concepto muy asbtracto de definir. Generalmente,

Calidad del software • La calidad es un concepto muy asbtracto de definir. Generalmente, es transparente cuando está presente, pero fácilmente reconocible en su ausencia. • Algunas definiciones básicas de calidad: • Cualidad o conjunto de cualidades de una persona o cosa que permiten compararla con otras de su especie

Calidad Software “I do not worry whether something is cheap or expensive. I only

Calidad Software “I do not worry whether something is cheap or expensive. I only worry if it is good. If it is good enough, the public will pay you back for it” Walt Disney

Calidad del Software • Adecuación (del producto) al uso (Juran) • Conformidad con requisitos

Calidad del Software • Adecuación (del producto) al uso (Juran) • Conformidad con requisitos y confiabilidad en el funcionamiento (Deming) • Cero defectos (Crosby) • Pérdida económica que un producto supone para la sociedad desde el momento de su expedición (Taguchi)

Calidad del Software • Grado en el que un conjunto de características inherentes cumple

Calidad del Software • Grado en el que un conjunto de características inherentes cumple con los requisitos (ISO 9000: 2000). • Un buen producto no es el que cumple con una determinada especificación, sino el que es bien recibido por el cliente (Drucker) • La calidad no es absoluta, es multidimensional.

Calidad del Software • Tipos de calidad GESTIÓN DE LA CALIDAD

Calidad del Software • Tipos de calidad GESTIÓN DE LA CALIDAD

Calidad del software • Algunos ejemplos de falta de calidad en el software: •

Calidad del software • Algunos ejemplos de falta de calidad en el software: • El programa no está probado • El sistema operativo está incompleto • No están escritos los requisitos • Estamos fuera de tiempo en un proyecto

Calidad del software • En el pasado las empresas veían a la calidad como

Calidad del software • En el pasado las empresas veían a la calidad como un gasto. • Cada vez más, las empresas se dan cuenta de que invertir en calidad es una de las inversiones más rentables que pueden hacer • “Cuesta mucho menos que no hacer nada”.

Calidad del Software • Se tienen creencias erróneas de Calidad: • Analogía de la

Calidad del Software • Se tienen creencias erróneas de Calidad: • Analogía de la calidad con el sexo (Crosby): • Todo el mundo es partidario • Todo el mundo cree que la entiende • Todo el mundo cree que los problemas en esta área son culpa de otros

Calidad del Software • No puede medirse / Puede medirse su economía • La

Calidad del Software • No puede medirse / Puede medirse su economía • La calidad cuesta / Retorno de inversión favorable • Los problemas los provocan los empleados / Todo el mundo está implicado • La calidad se origina en el Departamento de Calidad / Todos deben colaborar

Calidad del software • Una mejor definición de calidad es: “grado en que un

Calidad del software • Una mejor definición de calidad es: “grado en que un conjunto de características inherentes cumplen con unos requisitos. ” • En pocas palabras: SATISFACER NECESIDADES Y EXPECTATIVAS DE LOS CLIENTES • Calidad = cliente satisfecho

Calidad del Software • Sólo el 10 - 15 % de las compañías miden

Calidad del Software • Sólo el 10 - 15 % de las compañías miden la satisfacción de sus clientes. El resto mide la insatisfacción: quejas, reclamaciones, devoluciones, reparaciones, etc.

CICLO (Deming) DE LA CALIDAD CICLO DE LA MEJORA CONTINUA PLANEAR DEFINIR METAS ACTUAR

CICLO (Deming) DE LA CALIDAD CICLO DE LA MEJORA CONTINUA PLANEAR DEFINIR METAS ACTUAR DE FORMA CORRECTIVA DEFINIR METODOS VERIFICAR LOS RESULTADOS EDUCAR Y ENTRENAR EJECUTAR LA TAREA COMPROBAR HACER

Conceptos básicos • El objetivo fundamental del Desarrollo Estructurado de Proyectos es lograr la

Conceptos básicos • El objetivo fundamental del Desarrollo Estructurado de Proyectos es lograr la calidad del software. • Por calidad se entienden muchas cosas. Para nuestro curso lo entenderemos como realizar 100% bien las cosas en el menor tiempo posible.

Calidad de Software • La calidad hace referencia intrínseca a eficacia y eficiencia. •

Calidad de Software • La calidad hace referencia intrínseca a eficacia y eficiencia. • ¿Qué tiene más calidad un “Vochito” o un BMV? • Los dos tienen igual calidad si cumplen con los requerimientos (checklist).

Calidad del Software • La calidad es relativa a las personas, a su edad,

Calidad del Software • La calidad es relativa a las personas, a su edad, a las circunstancias de trabajo, el tiempo… • Un caramelo para un niño. • El tiempo varia las percepciones. • La calidad tiene diferentes perspectivas.

Calidad del Software • Perspectivas de la caldad Oportunidad Co st o Funcionalidad

Calidad del Software • Perspectivas de la caldad Oportunidad Co st o Funcionalidad

Calidad del Software • Vistas de la calidad, Garvin (1984): • Transcedental (calidad =

Calidad del Software • Vistas de la calidad, Garvin (1984): • Transcedental (calidad = excelencia innata) • Basada en el usuario (adecuación al propósito) • Basada en el fabricante (conformidad con requisitos)

Calidad del Software • Basada en el producto (económica) • Basada en el valor

Calidad del Software • Basada en el producto (económica) • Basada en el valor (precio asequible)

Calidad de Software • En general la Ing. Sw tiene los objetivos de que

Calidad de Software • En general la Ing. Sw tiene los objetivos de que el software sea correcto, utilizable y costoefectivo. • Sinónimos de calidad es que esté libre de errores. Muchas de las metodologías de software actuales se basan en esta premisa.

Calidad de Software • ¿Por qué es difícil lograr la calidad del software? •

Calidad de Software • ¿Por qué es difícil lograr la calidad del software? • El software es un producto intangible el cual se logra a través de un proceso creativo ya que programar es un arte, el cual no puede ser sistematizado del todo.

Calidad de Software

Calidad de Software

Calidad de Software • ¿Por qué es importante el Desarrollo de Proyectos de forma

Calidad de Software • ¿Por qué es importante el Desarrollo de Proyectos de forma Metodológica? El software es cada vez más complejo y costosos que se compara construir un edificio. • En 1968 se da un hito importante al ocurrir la “crisis del software” y definirse la Ingeniería de Software como tal.

Construcción de una casa para “wendo” Puede hacerlo una sola persona Requiere: Modelado mínimo

Construcción de una casa para “wendo” Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples

Construcción de una casa Construida eficientemente y en un tiempo razonable por un equipo

Construcción de una casa Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas

Construcción de un rascacielos No cualquier persona o grupo de persona lo realiza. Imposible

Construcción de un rascacielos No cualquier persona o grupo de persona lo realiza. Imposible sin técnicas de Ingeniería

Calidad del Software • Para lograr la calidad de un producto de desarrollo de

Calidad del Software • Para lograr la calidad de un producto de desarrollo de software se necesita que la organización se gestione de forma sistemática y transparente. Para ello, ha surgido lo que se conoce como Sistema de Gestión de Calidad (SGC). • Tarea: ¿En qué consiste el SGC del Tecnológico de Morelia? próximo jueves. En equipos de dos personas presentar un resumen (abstract).

Calidad del Software en México • De acuerdo con cifras oficiales, el gasto total

Calidad del Software en México • De acuerdo con cifras oficiales, el gasto total en productos de software y tecnologías de información en México durante 2008 fue cercano a los 1, 000 millones de dólares; sin embargo, sólo una fracción de esta demanda fue satisfecha por empresas nacionales.

Calidad del Software en México • Las elevadas importaciones se deben, en parte, al

Calidad del Software en México • Las elevadas importaciones se deben, en parte, al alto número de empresas consultoras de origen extranjero. • Las empresas filiales de compañías extranjeras representan alrededor del 30 por ciento de sus asociados pero concentran alrededor del 75 por ciento de las ventas.

Calidad del Software en México • El perfil actual de la industria nacional resulta

Calidad del Software en México • El perfil actual de la industria nacional resulta mayoritariamente de micro y pequeñas empresas (83%). • Las empresas desarrolladoras de software (definición del PROSOFT), son de un tamaño muy inferior al promedio internacional que es de 250 empleados.

Calidad del Software en México • Clasificación de empresas desarrolladoras de software: Número de

Calidad del Software en México • Clasificación de empresas desarrolladoras de software: Número de Porcentaje Empleados Empresas Micro 1 a 10 619 41% Pequeña 11 a 50 629 42% Mediana 51 a 100 130 9% Grande Más de 100 114 8%

Calidad del Software en México • Factores críticos de éxito de la industria de

Calidad del Software en México • Factores críticos de éxito de la industria de software en México: • México cuenta con buena dotación de capital humano e infraestructura tecnológica, pero la calidad de la mano de obra y el costo de acceso a la infraestructura son un freno para la competitividad de la industria.

Calidad del Software en México • Puntos Fuertes: • La matrícula en áreas de

Calidad del Software en México • Puntos Fuertes: • La matrícula en áreas de TI crece de manera exponencial. • Se tiene la mejor infraestructura tecnológica en latinoamérica después de Brasil.

Calidad del Software en México • Puntos débiles: • Existe poca investigación y falta

Calidad del Software en México • Puntos débiles: • Existe poca investigación y falta de acceso a créditos. • La mano de obra es calificada pero requiere de mucho tiempo de entrenamiento. • A pesar de que se cuenta con mucha infraestructura de TI, el uso de ésta es cara.

Calidad del Software en México • La oferta de la industria está muy orientada

Calidad del Software en México • La oferta de la industria está muy orientada a la provisión de servicios. • Las servicios con mayor contribución a la oferta son: • Desarrollo e Integración • Mantenimiento y Soporte de Software • Consultoría

Calidad del Software en México • En México como en muchos países subdesarrollados la

Calidad del Software en México • En México como en muchos países subdesarrollados la brecha digital es muy marcada. • ¿por qué los Estadounidenses y Canadienses prefieren la mano de obra Hindú si al final de cuentas en México se tienen muchos factores críticos de éxito como: la cercanía, afinidad cultural, menores costos de mano de obra y fácil traslado?

Calidad del Software en México • Análisis FODA de la industria del software en

Calidad del Software en México • Análisis FODA de la industria del software en México FORTALEZAS • Uso horario similar • Afinidad cultural • Proximidad y fácil traslado • Menores costos de mano de obra • Buena infraestructura aunque más costosa • TLCAN • Estabilidad política • Bajo riesgo geopolítico DEBILIDADES • Oferta limitada de mano de obra calificada • Escaso manejo del inglés • Niveles de certificación de las empresas mexicanas • Estructura de la industria de TI • Temas de seguridad y corrupción • Falta de experiencia de las empresas en proyectos grandes de México • Acceso a capital • Carga y legislación laboral OPORTUNIDADES • Asociación con jugadores globales de desarrollo de TI canadienses • Amplio espacio para el apoyo efectivo del gobierno • Generar una masa crítica de mano de obra calificada AMENAZAS • Alta competencia de países emergentes en el mercado de TI (Brasil, Rusia, China y Filipinas) • Incrementos en el costo de la mano de obra • Constante innovación tecnológica

Calidad de Software en México • Investigación sobre parques tecnológicos en México. • Análisis

Calidad de Software en México • Investigación sobre parques tecnológicos en México. • Análisis FODA del Cluster. TIM (Parque tecnológico de Tres Marías en Morelia, Michoacán). Para mañana viernes. En papel de rotafolio. Equipos de dos personas. • A continuación se muestra una radiografía de la industria del software en México.

Tipos de Organización 6. 70% 9. 30% 8. 40% 1. 30% 26. 80% Área

Tipos de Organización 6. 70% 9. 30% 8. 40% 1. 30% 26. 80% Área de Sistemas Proveedor de Servicios 47. 40% Canal/Distribuidor ISV (Independent Software Vendor) Servicios Educativos Otros

Esquema de Contratación 6. 30% 24. 10% 3. 40% Nómina Honorarios Independiente Otro 66.

Esquema de Contratación 6. 30% 24. 10% 3. 40% Nómina Honorarios Independiente Otro 66. 20%

Edad 1. 50%0. 20% 8. 60% 37. 70% 16. 40% 18 -24 25 -29

Edad 1. 50%0. 20% 8. 60% 37. 70% 16. 40% 18 -24 25 -29 30 -39 40 -49 35. 60% 50 -59 60 -X

Escolaridad 0. 90% 1. 20% 2. 70% 16. 70% 4. 80% 47% Preparatoria 26.

Escolaridad 0. 90% 1. 20% 2. 70% 16. 70% 4. 80% 47% Preparatoria 26. 70% Técnica Universidad sin Titular Universidad Titulado Posgrado Maestría Doctorado

Género 14. 30% Femenino Masculino 85. 70%

Género 14. 30% Femenino Masculino 85. 70%

Antigüedad 8. 90% 22. 40% 16. 00% 14. 30% 38. 40% <1 año 1

Antigüedad 8. 90% 22. 40% 16. 00% 14. 30% 38. 40% <1 año 1 -3 años 3 -5 años 5 -10 años >10 años

Salarios 3. 00%2. 00% 1. 70% 7. 90% 9. 60% 12. 10% 17. 50%

Salarios 3. 00%2. 00% 1. 70% 7. 90% 9. 60% 12. 10% 17. 50% 3. 60% <4000 8. 20% 4 -6 mil 7 -10 mil 11 -15 mil 14. 90% 16 -20 mil 21 -25 mil 26 -30 mil 18. 50% 31 -40 mil 41 -50 mil 51 -60 mil 61 -80 mil

Salarios 12, 133 13, 571 11, 993 9, 054 25, 068 15, 857 16,

Salarios 12, 133 13, 571 11, 993 9, 054 25, 068 15, 857 16, 147 16, 224 18, 538 18, 788 16, 630 NL DF QRO MEX 24, 742 AGS MOR 23, 523 JAL CHI 21, 247 TAB BC GTO MICH PUE 18, 847 SIN VER

Población 2. 80% 3. 10% 2. 90% 1. 90% 2. 50% 3. 30% 1.

Población 2. 80% 3. 10% 2. 90% 1. 90% 2. 50% 3. 30% 1. 70% 2. 00% 8. 20% 1. 50% 2. 70% 7. 40% 2. 80% 9. 10% NL DF QRO MEX AGS MOR JAL 35. 10%CHI TAB BC GTO MICH PUE SIN VER

Salario Internacional 10, 625 12, 000 10, 500 9, 000 15, 278 15, 917

Salario Internacional 10, 625 12, 000 10, 500 9, 000 15, 278 15, 917 18, 944 26, 864 27, 000 EU Chile 62, 727 Guatemala España Argentina Colombia 33, 500 Perú Ecuador Venezuela Bolivia Uruguay

Salario Tipo de Organización 22, 500 19, 900 13, 700 Educación Distribuidor 15, 800

Salario Tipo de Organización 22, 500 19, 900 13, 700 Educación Distribuidor 15, 800 ISV Área de Servicios Proveedor de Servicios 19, 200

Salario por Función 9, 800 40, 800 12, 700 Soporte 13, 000 Docencia Webmaster

Salario por Función 9, 800 40, 800 12, 700 Soporte 13, 000 Docencia Webmaster 13, 500 Redes 16, 200 DBA 27, 500 Desarrollo Calidad 27, 100 Seguridad 23, 900 16, 600 Consultoría 22, 30021, 500 Ventas 17, 300 Project Managment Arquitectura Dirección

Salario por Rango Edad 10, 100 30, 200 16, 000 38, 900 35, 700

Salario por Rango Edad 10, 100 30, 200 16, 000 38, 900 35, 700 18 -24 25 -29 23, 600 30 -39 40 -49 50 -59 60 -X

Salario Grado de Estudios 14, 700 31, 900 26, 600 25, 300 16, 400

Salario Grado de Estudios 14, 700 31, 900 26, 600 25, 300 16, 400 Preparatoria Universidad Sin Titular Universidad Titulado Postgrado 19, 300 Maestría Doctorado

Conocimiento y Habilidades 26% 17, 000 33% 20, 800 PHP VB 37%Delphi 18, 800

Conocimiento y Habilidades 26% 17, 000 33% 20, 800 PHP VB 37%Delphi 18, 800 C ASP JSE 28% 20, 500 20% 19, 500 9% 18, 900

Conocimiento y Habilidades 4% 29, 800 Ajax 22% Flex 20, 900 Perl JME. NET

Conocimiento y Habilidades 4% 29, 800 Ajax 22% Flex 20, 900 Perl JME. NET COBOL 16% 24, 500 6% 21, 300 4% 22, 000 2% 21, 100

Plataformas 6% 24, 200 9% 21, 800 4% 28% 32, 400 25, 800 89%

Plataformas 6% 24, 200 9% 21, 800 4% 28% 32, 400 25, 800 89% 19, 800 13% 17, 300 DOS 39% Linux 19, 500 Apple Win CE 7% AS 400 19, 600 Unix Mainframe

BD 6% 8% 24, 60025, 300 13% 26, 100 2% 15, 700 40% 23,

BD 6% 8% 24, 60025, 300 13% 26, 100 2% 15, 700 40% 23, 300 61% 20, 200 41% Firebird 17, 600 My. SQL Postgre. SQL Server Oracle 11% Sybase 18, 800 Informix DB 2

Otras habilidades 3% 31%31, 700 24, 900 20% 23, 600 58% 21, 800 25%

Otras habilidades 3% 31%31, 700 24, 900 20% 23, 600 58% 21, 800 25% 21, 800 21% 15, 600 Diseño Gráfico 35% Redes 17, 500 UML BI ERP 45% 21, 000 Testing Mejora de Procesos EDI

Certificaciones 17, 800 28, 500 24, 100 23, 600 23, 200 Cisco 19, 100

Certificaciones 17, 800 28, 500 24, 100 23, 600 23, 200 Cisco 19, 100 Linux MS Professional 20, 500 Sun-Java OMG-UML MS DBA 22, 900 MS Solution Dev Novell

Certificaciones 40, 300 33, 900 33, 200 30, 200 29, 500 28, 600 Oracle

Certificaciones 40, 300 33, 900 33, 200 30, 200 29, 500 28, 600 Oracle Sw. Quality Eng. 29, 000 Solaris MS System 29, 100 Eng. SEI IBM DB 2 x 29, 200 SAP 29, 500 Seguridad IBM Websphere PMI

Calidad del Software a gic oló nte cn Te am e ón inu sti

Calidad del Software a gic oló nte cn Te am e ón inu sti nt Ge co R VA NO IN mi ma ra l. C LIE NT E • Los tres pilares de la gerencia moderna: LIDERAZGO Gestión de Recursos Humanos estimular al PERSONAL

Gestión de la Calidad • Conjunto de actividades y medios necesarios para definir e

Gestión de la Calidad • Conjunto de actividades y medios necesarios para definir e implementar un sistema de la calidad, por una parte y responsabilizarse de su control, aseguramiento y mejora continua, por otra. • La calidad total no sólo va enfocado en el producto sino también en todas y cada una de las partes del proceso.

Gestión de la Calidad • Estructura organizativa, procedimientos, procesos y recursos necesarios para llevar

Gestión de la Calidad • Estructura organizativa, procedimientos, procesos y recursos necesarios para llevar a cabo la gestión de la calidad. • ¿Qué se debe de hacer para lograr la calidad de un proceso? • Identificar los procesos críticos. • Encontrar la mejor forma de hacerlo • Llegar a acuerdos

Gestión de la Calidad • Se deben fijar políticas de calidad que deben de

Gestión de la Calidad • Se deben fijar políticas de calidad que deben de ser cumplidas. Por ejemplo: el cliente siempre tiene la razón, el 95% de los trenes llegan con un retraso de 3 minutos. • Un sistema de calidad consta de dos partes. • La primera parte es la Documentación y se incluyen elementos como manuales, procedimientos y formas de registro.

Gestión de la Calidad • La segunda parte es la actividad práctica consistente en

Gestión de la Calidad • La segunda parte es la actividad práctica consistente en aspectos físicos como herramientas, computadoras, etc. ; y aspectos humanos: formación del equipo de trabajo. • Los factores de calidad pueden ser internos y externos dependiendo del grado de requerimientos si estos son funcionales o no funcionales.

Gestión de la Calidad ISO 9000 PARTICIPACION DEL PERSONAL ENFOQUE DE PROCESO ENFOQUE DE

Gestión de la Calidad ISO 9000 PARTICIPACION DEL PERSONAL ENFOQUE DE PROCESO ENFOQUE DE SISTEMA PARA LA GESTION MEJORA CONTINUA LIDERAZGO ENFOQUE AL CLIENTE ALIDAD RELACIONES MUTUAMENTE ENFOQUE BASADO EN BENEFICIOSAS CON EL HECHOS PROVEEDOR PARA LA TOMA DE DECISION

¿Por qué usar Mejores Prácticas? • Nos orientan hacia mejores resultados

¿Por qué usar Mejores Prácticas? • Nos orientan hacia mejores resultados

Sistema de Gestión de Seguridad de la Información

Sistema de Gestión de Seguridad de la Información

Estd. de Seguridad Informática • ISO 17799 - ISO 27001 – Política de seguridad

Estd. de Seguridad Informática • ISO 17799 - ISO 27001 – Política de seguridad – Aspectos organizativos para la seguridad – Clasificación y control de activos – Seguridad ligada al personal – Seguridad física y del entorno – Gestión de comunicaciones y operaciones – Control de accesos – Desarrollo y mantenimiento de sistemas – Gestión de incidentes de seguridad – Gestión de continuidad de negocio – Conformidad

Seguridad Informática • La seguridad es un proceso. Se necesita de un Sistema de

Seguridad Informática • La seguridad es un proceso. Se necesita de un Sistema de Gestión de Seguridad de la Información (SGSI). • La información es un recurso vital en el mundo globalizado de hoy en día.

Seguridad Informática • SSE/CMM (Systems Security Engineering/ Capability Maturity Model) define: • Nivel 0:

Seguridad Informática • SSE/CMM (Systems Security Engineering/ Capability Maturity Model) define: • Nivel 0: Nada de seguridad • Nivel 1: Prácticas de seguridad realizadas de manera informal • Nivel 2: Planificación y seguimiento de las prácticas de seguridad

Seguridad Informática • Nivel 3: Definición y coordinación de las políticas y procedimientos de

Seguridad Informática • Nivel 3: Definición y coordinación de las políticas y procedimientos de seguridad. • Nivel 4: Seguridad controlada a través de distintos controles y objetivos de calidad. • Nivel 5: Implantación de un proceso de mejora continua.

Seguridad Informática • Se tiene una jerarquía de seguridad informática: • CIA • Políticas

Seguridad Informática • Se tiene una jerarquía de seguridad informática: • CIA • Políticas • Planes • Procedimientos • Tareas y Operaciones • Registros y Evidencias.

Seguridad Informática • Ejemplo de seguridad CIA • Política: protección del servidor Web de

Seguridad Informática • Ejemplo de seguridad CIA • Política: protección del servidor Web de la organización contra accesos no autorizados. • Procedimiento 1: Actualización del software del servidor Web. • Tarea 1: Revisión diaria de los parches publicados por el fabricante.

Seguridad Informática • Tarea 2: Seguimiento de las noticias sobre posibles fallos de seguridad.

Seguridad Informática • Tarea 2: Seguimiento de las noticias sobre posibles fallos de seguridad. • Procedimiento 2: Revisión de los registros de actividad en el servidor. • Tarea 1: revisión semanal de los “logs” del servidor para detectar anomalías.

Seguridad Informática • Tarea 2: Configuraciones de alertas de seguridad que permitan reaccionar de

Seguridad Informática • Tarea 2: Configuraciones de alertas de seguridad que permitan reaccionar de forma urgente ante determinados tipos de ataques e intentos de intrusión. • Inventario de soportes físicos. Destructor de Discos Duros

SGSI • Un SGSI se encuentra estandarizado en la norma ISO 27001: 2005. •

SGSI • Un SGSI se encuentra estandarizado en la norma ISO 27001: 2005. • La ISO 17799: 2005 define buenas prácticas de SI pero en si no es certificable como tal. Se utilizó hasta antes de definirse el ISO 27001: 2005 • Está basado en la norma británica BS 7799 utilizada en seguridad de SI.

SGSI • A continuación se muestran las principales versiones del estándar: • ISO 27000

SGSI • A continuación se muestran las principales versiones del estándar: • ISO 27000 Vocabulario y Glosario • ISO 27001 Estándar certificable • ISO 27002 Relevo del ISO/IEC 17799: 2005

SGSI • ISO 27003 Guía de implantación • ISO 27004 Métricas e indicadores •

SGSI • ISO 27003 Guía de implantación • ISO 27004 Métricas e indicadores • ISO 27005 Gestión de Riesgos • ISO 27006 Requerimientos para entidades de auditoría y certificación. las

SGSI • Se basa en la metodología de Dewey (Plan, Do, Check, Act). La

SGSI • Se basa en la metodología de Dewey (Plan, Do, Check, Act). La cual quedaría definida así: • Plan: Establecer el SGSI • Do: Implantar y Operar el SGSI • Check: Monitorear y Revisar el SGSI

SGSI • Act: Mantener y mejorar el SGSI • Otras actividades: • • Control

SGSI • Act: Mantener y mejorar el SGSI • Otras actividades: • • Control de Documentos Capacitación Acción Correctiva Acción preventiva

SGSI • Se clasifican cada uno de los activos, se determinan amenazas, vulnerabilidades, riesgos

SGSI • Se clasifican cada uno de los activos, se determinan amenazas, vulnerabilidades, riesgos basándose en una escala de 1 (muy bajo) a 5 (muy alto). • Se debe realizar un Plan de Continuidad del Negocio, el cual puede contener: • DRP Disaster Recovery Planning

SGSI • BRP Business Resumption Planning • COOP Continuity Operations Planning • CP Contingence

SGSI • BRP Business Resumption Planning • COOP Continuity Operations Planning • CP Contingence Planning • ERP Emergency Response Planning

SGSI • Pirámide Documental: • Manual de Seguridad • Procedimientos • Instrucciones de Trabajo

SGSI • Pirámide Documental: • Manual de Seguridad • Procedimientos • Instrucciones de Trabajo • Documentos

Calidad del Software (SEBOK)

Calidad del Software (SEBOK)

Problema • El profesor se encuentra actualmente ante una necesidad de extrema importancia. Necesita

Problema • El profesor se encuentra actualmente ante una necesidad de extrema importancia. Necesita realizar una corbata para ir a una junta en donde se encontrarán altos empresarios del sector informático, el detalle es que no sabe a ser un nudo de corbata • ¿Cómo podría resolver el problema?

Problema • La solución más fácil es realizar outsorcing (que lo hagan otros). •

Problema • La solución más fácil es realizar outsorcing (que lo hagan otros). • Sino se puede, se deberá realizar en base a tres formas básicas de solución de problemas: • Conocimiento • Experiencia • Sentido Común

Problema • La forma más fácil es a través de una metodología para realizar

Problema • La forma más fácil es a través de una metodología para realizar nudos de corbatas como la planteada en http: //www. nudo-decorbata. com/ • Lo primero que se tiene que saber es si debe ser un tipo especial de corbata o no. Los tipos pueden ir desde nudo de corbata simple, doble, windsor, medio windsor, nudo pequeño.

Simple

Simple

Doble

Doble

Windsor

Windsor

Medio Windsor

Medio Windsor

Nudo pequeño.

Nudo pequeño.

Nudo Cruzado

Nudo Cruzado

Problema • Las metodologías son un conjunto de mejores prácticas que si no se

Problema • Las metodologías son un conjunto de mejores prácticas que si no se llevan a la práctica o se hacen a medias es muy difícil que se tenga calidad. • Aun siguiendo las recomendaciones, una metodología no garantiza que un producto tenga calidad.

Discusión • ¿El software libre tiene calidad? La mayoría de la industria dice que

Discusión • ¿El software libre tiene calidad? La mayoría de la industria dice que no. • Defender una postura argumentada al respecto. Traer la evidencia que sustente dicha postura. • Sugerencia: lectura del Artículo: “La Catedral y el Bazar” de Eric S. Raymond. De forma personal escribir los tres principios que más llamaron mi atención.

Relación de la Ing. de Software con SQA • SQA forma parte fundamental de

Relación de la Ing. de Software con SQA • SQA forma parte fundamental de los procesos de la Ing. de Software. • El proceso de aseguramiento de calidad se da en cada uno de los procesos de la Ingeniería de Software.

Definición y propósito del SQA • El Software Quality Assurance tiene como objetivo el

Definición y propósito del SQA • El Software Quality Assurance tiene como objetivo el lograr la calidad del software. • SQA se define por un conjunto de mejores prácticas que llevan la verificación y validación del software desarrollado. • El proceso de SQA aunque se enfoca más en la medición y control del código fuente tiene que ver con las demás áreas del proceso.

Problemas que resuelve la SQA • El SQA logra resolver la mayoría de los

Problemas que resuelve la SQA • El SQA logra resolver la mayoría de los errores que se podrían presentar en el software, asegurando que este sea confiable, usable y costo-efectivo. • SQA se compone de muchas actividades pero la primera de ellas es el proceso de planeación. Otras actividades son las siguientes:

Actividades SQA • Participación en el desarrollo de la descripción del proceso de software

Actividades SQA • Participación en el desarrollo de la descripción del proceso de software del proyecto • Revisión de las actividades de ingeniería de software para verificar su ajuste al proceso de software

Actividades SQA • Auditoria de los productos de software designados para verificar el ajuste

Actividades SQA • Auditoria de los productos de software designados para verificar el ajuste con los definidos como parte del proceso del software. • Asegurar que las desviaciones del trabajo y los productos de software se documentan y se manejan de acuerdo con un procedimiento establecido • Registrar lo que no se ajusta a los requisitos e informar a los superiores

Objetivo 1 • Se verifica objetivamente la correspondencia de los productos y actividades SW

Objetivo 1 • Se verifica objetivamente la correspondencia de los productos y actividades SW con estándares, procedimientos y requisitos Plan de SQA (Ac 2) El grupo SQA (Ab 1) revisa actividades de ISW para cumplimiento Ac 4 Grupo SQA: Cumplimiento productos designados Ac 5 El grupo SQA (Ab 1) participa y revisa plan del proyecto Ac 3 SDP Pro cs. estado desviaciones Producto para entregar reqs stds. , procs. SDP

Objetivo 2 • Las personas y los grupos afectados son informados de las actividades

Objetivo 2 • Las personas y los grupos afectados son informados de las actividades y resultados del SQA. Estatuto de SQA El grupo de SQA informa periódicamente de los resultados Ac 6 El grupo de SQA revisa periódicamente sus actividades y hallazgos con SQA del cliente Ac 8 Grupo de ISW Plan de SQA

Objetivo 3 • Problemas de incumplimiento no resueltos dentro del proyecto se escalan a

Objetivo 3 • Problemas de incumplimiento no resueltos dentro del proyecto se escalan a la alta dirección. Proc. - resueltas a nivel de responsable o PM - “g & c” - escaladas al director y revisadas hasta su resolución Desviaciones en actividades, productos, son documentadas y tratadas Ac 7 Desviaciones responsables de tarea, mandos intermedios SW, PM no resueltas director designado

Calidad del software en el ciclo de vida del mismo • La calidad se

Calidad del software en el ciclo de vida del mismo • La calidad se logra desde el inicio y el inicio se da a través de la organización de un equipo de desarrollo por medio de la persona. • Existen metodologías que se enfocan al desarrollo de las actividades de la persona como PSP, en equipos de trabajo como TSP y a nivel organizativo CMMI.

Calidad del Software dentro del Ciclo de Vida • Tarea: para el jueves, desarrollo

Calidad del Software dentro del Ciclo de Vida • Tarea: para el jueves, desarrollo de un portafolio de proyectos de manera personal. Deberá ser multimedia (powerpoint, flash, video) se deberán dar datos básicos y enfocarse en describir proyectos realizados profesionalmente o académicamente. La presentación deberá ser autodescriptiva y mencionar las TICs y habilidades que se dominan.

Calidad del Software dentro del Ciclo de Vida • Ejemplo: una de las primeras

Calidad del Software dentro del Ciclo de Vida • Ejemplo: una de las primeras actividades al momento de realizar cualquier desarrollo de software es la Ingeniería de Requerimientos. • Una técnica de obtención de requerimientos así como de verificación son las rúbricas

Rúbrica • Una rúbrica es un elemento que nos permite definir en forma tabular

Rúbrica • Una rúbrica es un elemento que nos permite definir en forma tabular los requisitos que debe tener un producto en general y evaluarlos en base a un criterio determinado.

Ejemplo de Rúbrica de Presentación Escolar

Ejemplo de Rúbrica de Presentación Escolar

Actividad • Definir una rúbrica para evaluar una clase de galletas de chispa de

Actividad • Definir una rúbrica para evaluar una clase de galletas de chispa de chocolates, definir al menos 5 características, ubicar porcentajes a cada una. Tiempo 10 minutos. • Evaluar al menos tres tipos de gomitas. Distribuir la rúbrica a sus demás compañeros para que puedan evaluar y sacar un promedio de las especificaciones.

Roles y responsabilidades de los equipos de desarrollo • El desarrollo de software es

Roles y responsabilidades de los equipos de desarrollo • El desarrollo de software es una actividad que requiere de roles y de responsabilidades, esas responsabilidades deben estar bien delimitadas. • Los roles y responsabilidades varían de empresa a empresa y están dados por las metodologías y características de los equipos de trabajos.

Roles y Responsabilidades • Ejemplos típicos de personal involucrado en equipos de desarrollo: gerente

Roles y Responsabilidades • Ejemplos típicos de personal involucrado en equipos de desarrollo: gerente o líder de proyecto, analista, programador, diseñador, tester, SQA. • ¿Qué diferencia existe entre un programador junior y senior? • Salario • Conocimientos • Experiencia (índices de productivad, tiempos)

Habilidades y capacidades del personal del SQA • Para ser SQA se debe cumplir

Habilidades y capacidades del personal del SQA • Para ser SQA se debe cumplir preferentemente con las siguientes características: • Conocimiento de todo el proceso de desarrollo de software • Experiencia en varios roles dentro de la organización • Ser proactivo

Perfil del personal de SQA • Capacidad de seguimiento de actividades • Capacidad de

Perfil del personal de SQA • Capacidad de seguimiento de actividades • Capacidad de trato con la gente.

Métodos y herramientas • Existen una infinidad de herramientas de calidad: • • •

Métodos y herramientas • Existen una infinidad de herramientas de calidad: • • • Básicas De gestión De creatividad Estadísticas De diseño De medición

Herramientas Básicas • Diagrama de flujo • Diagrama causa-efecto • Diagrama de Pareto •

Herramientas Básicas • Diagrama de flujo • Diagrama causa-efecto • Diagrama de Pareto • Hoja de chequeo • Grafo de control • Histograma • Diagrama de dispersión

Herramientas Básicas • Diagramas de Causa-Efecto 1. 2. 3. 4. Definir el efecto que

Herramientas Básicas • Diagramas de Causa-Efecto 1. 2. 3. 4. Definir el efecto que se quiere analizar Determinar causas/subcausas (5 M: Método, Material, Maquinaria, Mano de obra, Medio ambiente) Revisar causas y su interacción Seleccionar las causas según su grado de contribución al efecto

Herramientas de Calidad • Algunos ejemplos de herramientas de calidad aplicadas al software más

Herramientas de Calidad • Algunos ejemplos de herramientas de calidad aplicadas al software más específicos son: • Auditorías (revisión en la parte del proceso) • Control estadísticos de errores de codificación (dinámica: realizar un programa que permita realizar operaciones aritméticas entre números complejos).

Herramientas de Calidad • Se deberá tener una clase complejo que tenga como métodos

Herramientas de Calidad • Se deberá tener una clase complejo que tenga como métodos las propiedades solicitadas. • El programa será dado en modo texto o bien con JOption. Pane.

Herramientas de Calidad • Control estadístico: tomar el tiempo en que se empieza a

Herramientas de Calidad • Control estadístico: tomar el tiempo en que se empieza a programar, contabilizar el número de intentos de compilación, contabilizar el número de corridas incorrectas. • Encuestas • Benchmarking • Realización de pruebas de escritorio.

Concentrado de Tiempos • ¿cuánto tiempo total te llevó terminar el programa? • ¿cuántas

Concentrado de Tiempos • ¿cuánto tiempo total te llevó terminar el programa? • ¿cuántas líneas de código (LDC) efectivas realizadas por ti hiciste? • Calcula tu productividad dividiendo el número de líneas entre el tiempo para sacar un estadístico de LDC/hora

 • Public int suma(int a, int b) { return a +b; } •

• Public int suma(int a, int b) { return a +b; } • No: • Declaracion de variables o atributos • Ni inicializacion • Si: • Llamadas a métodos

Actividad • Traer impresa al menos dos hojas en formato horizontal de 80 columnas

Actividad • Traer impresa al menos dos hojas en formato horizontal de 80 columnas x 25 Filas.

Actividad

Actividad

Actividad

Actividad

Actividad • Desarrollar un programa en Java que permita calcular las raíces de una

Actividad • Desarrollar un programa en Java que permita calcular las raíces de una ecuación de segundo grado utilizando fórmula general. • El programa deberá de validar las entradas, indicando si las raíces obtenidas son imaginarias o reales. • Dicho programa se hará en la hoja tabular y se probará a lápiz y papel.

Actividad • Revisa tu código. Intenta hacer una corrida de escritorio (o en papel)

Actividad • Revisa tu código. Intenta hacer una corrida de escritorio (o en papel) antes. • Toma el tiempo que te llevo hacer la codificación (inicio-fin). • Intercambia tu hoja de codificación con un compañero. Codifica su programa y ejecútalo. Sino compila hazle modificaciones para que corra. Comienza con el primer error y contabiliza los errores.

Actividad • Si compila el programa pero no funciona bien (investiga casos tipo para

Actividad • Si compila el programa pero no funciona bien (investiga casos tipo para probarlo) se tendrá que modificar. Documenta todas las modificaciones realizadas. • No olvidar tomar tiempos de inicio y fin de las actividades.

Referencias • Roger S. Pressman, Ingeniería de software un enfoque práctico. Ed. Mc. Graw

Referencias • Roger S. Pressman, Ingeniería de software un enfoque práctico. Ed. Mc. Graw Hill. • • Piattini M. G. y F. O, Calidad en el desarrollo y mantenimiento del software. Ed. RAMA. • • Hernández Ballesteros, J. F. Y Minguet Melían J. La calidad del software y su medida, Ed. CERASA.

Referencias • IEEE Std. 730, IEEE Standard for Software Quality Assurance Plans, New York,

Referencias • IEEE Std. 730, IEEE Standard for Software Quality Assurance Plans, New York, IEEE Computer Society, 1989 • IEEE Std. 1059, IEEE Guide for Software Verification and Validation Plans, New York, IEEE Computer Society, 1993 • IEEE Std. 1074, Standard for Developing Software Life Cycle Processess, New York, IEEE Computer Society, 1991

¿Preguntas?

¿Preguntas?