unidad5-121209151600-phpapp01

36
Unidad 5 Calidad del software

Upload: frank-jairo-castillo-padilla

Post on 02-Dec-2015

212 views

Category:

Documents


0 download

DESCRIPTION

PROCESOS DE CALIDAD EN EL SOFTWARE

TRANSCRIPT

Unidad 5Calidad del software

Índice5.1. Definición de calidad y calidad del software.5.2. Importancia de la calidad.5.3. La calidad y la globalización.5.4. Aseguramiento de la calidad del software

(SQA): definición y propósito del SQA, problemas que resuelve el SQA, roles y responsabilidades de los equipos de desarrollo, habilidades y capacidades del personal del SQA, Actividades del SQA.

5.5. Derecho informático aplicado al software: piratería y falsificación, autoría y creación, contratos y licencias.

5.1. Definición de calidad y calidad del software.

CalidadCalidad significa que un producto debe cumplir con sus especificaciones es la totalidad de aspectos y características de un producto o servicio que se refieren a su capacidad para satisfacer necesidades dadas en la adecuación de sus objetivos (ISO) concordancia del software producido con los requerimientos explícitamente establecidos, con los estándares de desarrollo prefijados y con los requerimientos implícitos no establecidos formalmente que desea el usuario (Pressman).

Calidad de Software

Puede medirse después de elaborado el producto. Pero esto puede resultar muy costoso si se detectan problemas deriva dos de imperfecciones en el diseño, por lo que es imprescindible tener en cuenta tanto la obtención de la calidad como su control durante todas las etapas del ciclo de vida del software.

Un software elaborado para el control de naves espaciales debe ser confiable al nivel de "cero fallas"; un software hecho para ejecutarse una sola vez no requiere el mismo nivel de calidad; mientras que un producto de software para ser explotado durante un largo período (10 años o más), necesita ser confiable, mantenible y flexible para disminuir los costos de mantenimiento y perfeccionamiento durante el tiempo de explotación.

Es medible y varía de un sistema a otro o de un programa a otro.

Conjunto de cualidades que lo caracterizan y que determinan su utilidad y existencia. La calidad es sinónimo de eficiencia, flexibilidad, corrección, confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad.

5.2. Importancia de la calidad

La calidad del software puede parecer un

concepto alejado de la vida diaria de la mayoría

de las personas, pero nada más lejos de la realidad.; Ejemplo: cuando en un

restaurante se bloquea el sistema de cobro, estamos

ante un problema de calidad del software.

Es probable que se haya sufrido los efectos de estos problemas de calidad en forma de

retrasos, pérdidas de tiempo o dinero, etc. Estos

problemas pueden ser mucho más graves cuando

afectan graves pérdidas económicas o problemas ambientales o sociales.

Los fallos de software afectan a todos los

sectores y a todos los países, actualmente se

desarrolla software fiable y correcto a un costo

razonable. Los auténticos profesionales y las

empresas bien organizadas son

prudentes y saben que deben aplicar distintas técnicas de control y

prevención, además de un buen proceso de

desarrollo.

Administración de la calidad del software

Se refiere a lograr un nivel

de calidad requerido en

el producto de software

Involucra a la definición de estándares de

calidad apropiados y

procedimientos que permitan asegurar que

estos se cumplan.

Debe llevar a desarrollar

una cultura de calidad en donde la

calidad es responsabilida

d de todos

Comprobación independiente

de los procesos de desarrollo

Los productos resultantes de los procesos se introducen en el proceso de

administración de la calidad

para asegurar su

consistencia con

estándares y objetivos de

calidad

Equipo de aseguramiento

y control: independiente

s de los equipos de desarrollo

Responsabilidad de la

administración de la calidad

Visión objetiva del proceso

Informan de problemas y dificultades a

los administradores principales

de la organización

5.3. La calidad y la globalización

Los humanos por otra parte tuvieron la necesidad de aprender a comunicarse con los de su misma especie a partir de eso tuvieron que desarrollar más conocimientos es de ahí donde viene los grandes inventos, las grandes empresas y empiezan a surgí, y la calidad se hace presente cada vez más en el mundo para poder tener liderazgo ante otros productos y satisfacer al consumidor.

Ya que la calidad como lo marcan algunos autores es la capacidad de hacer cosas distintas a las que se les debe mejorar para que puedan competir en el mercado, pero no solo en productos se puede hablar de calidad si también en los seres humano y el medio ambiente ya que los seres humanos, animales y plantas ha venido evolucionando para mejorar la calidad de vida para poder afrontar un mundo más diferente como el de hace años.

La calidad y la globalización son palabras que no podemos ni debemos de hacer a un lado, en un mundo tan competitivo como el de estos tiempos.

La calidad está mejorando poco a poco mediante van evolucionando las habilidades de la especie humana, como podemos ver en la actualidad; ya que la globalización sobre pasa las fronteras nacionales es así como los consumidores se hacen cada vez más exigentes ante sus necesidades y es donde se tiende a perfeccionar cada cosa para poder satisfacer al consumidor, así como para poder permanecer en la línea de liderazgo empresarial.

Podemos decir que el hombre ha desarrollado su calidad desde tiempos lejanos ya que buscaba la perfección de las cosas haciéndolas más cómodas y prácticas para su supervivencia.

5.4. Aseguramiento de la calidad del software (SQA): definición y propósito del SQA, problemas que resuelve el SQA, roles y responsabilidades de los equipos de desarrollo, habilidades y capacidades del personal del SQA, Actividades del SQA.

5.4.1: definición y propósito del SQA

• SQA es un set de actividades sistemáticas que aseguran que el proceso del software y productos conformados por requerimientos, estándares, y procedimientos.

• Los procesos incluyen todas las actividades involucradas en el diseño, codificación, pruebas y mantenimiento; Los productos incluyen software, datos asociados, documentación, y toda la documentación para soporte y reportes.

Definición:

• Proporcionar visibilidad sobre los procesos utilizados por el proyecto de software y sobre los productos que genera.

Propósito:

5.4.2: problemas que resuelve el SQALa obtención de un software de calidad

implica la utilización de metodologías o procedimientos estándares para el análisis, diseño, programación y prueba del SW que permitan uniformar la filosofía de trabajo.

5.4.2: problemas que resuelve el SQA (cont.)

La adopción de una buena política o metodología

contribuye en gran medida a lograr la calidad del SW pero no

la asegura. Esta política debe estar sustentada en 3 principios

básicos. • Tecnológico: define las

técnicas a utilizar en el proceso de desarrollo de SW.

• Administrativo: contempla las funciones de planificación y control del desarrollo de SW, así como la organización del ambiente o centro de ingeniería del SW.

• Ergonómico: define la interfaz entre el usuario y el ambiente automatizado.

Para controlar la calidad del SW, es necesario definir los

parámetros, indicadores o criterios de medición. Las

cualidades para medir la calidad del SW se definen en 2

categorías: • Complejidad de programa o

código. • Complejidad de sistema o

estructura.

5.4.2: problemas que resuelve el SQA (cont.)

Define un plan de monitoreo del proceso de desarrollo del software (ciclo de vida)

Verifica que los estándares sean aplicados correctamente

Ayuda a definir los parámetros de medición de la calidad del software

Aumenta las posibilidades de el éxito final del proyecto

5.4.3: roles y responsabilidades de los equipos de desarrollo

Describir los diferentes roles que puede jugar el equipo de SQA

en una organización nos dará una visión

clara de las funciones que puede llevar a

cabo.

“Como policía del proceso”: el trabajo del

equipo de SQA es asegurar que el desarrollo sigue

el proceso establecido. Entre sus

funciones en este rol se

encuentran:

Auditar los productos del trabajo para identificar

deficiencias.

Determinar el cumplimiento del

plan de desarrollo del proyecto y del

proceso de desarrollo de

software.

Juzgar el proceso y no el producto.

“Como abogado del cliente”: el

trabajo del equipo de SQA es

representar al cliente.

5.4.3: roles y responsabilidades de los equipos de desarrollo (cont.)

Entre sus funciones en este rol se encuentran:

Identificar la funcionalidad que al cliente le gustaría

encontrar.

Ayudar a la organización a

sensibilizarse con las necesidades del

cliente.

Actuar como un cliente de prueba para obtener una

alta satisfacción del cliente.

“Como analista” el trabajo del equipo de SQA es recabar

información. Entre sus funciones en este rol se encuentran:

Juntar muchos datos sobre todos los aspectos del producto y del

proceso.

Con esta información

ayudar a mejorar los procesos y los

productos.

“Como proveedor de información” el trabajo del equipo de SQA es revisar qué es lo que esté hecho y decir cuáles objetivos técnicos realmente están cumplidos para que la gerencia pueda tomar mejores decisiones de negocios.

Entre sus funciones en este rol se encuentran: • Proveer información técnica objetiva para que la

gerencia pueda usarla para tomar mejores decisiones.

• Proveer información apropiada de las clases de productos y de los riesgos asociados con estos.

• Concentrarse más en la reducción de los riesgos que en el cumplimiento del proceso.

“Como responsable de la elaboración del

proceso”El trabajo del equipo de SQA es participar en la definición de los planes, procesos, estándares y

procedimientos para asegurar que se ajustan a las necesidades del

proyecto y que pueden ser usados para realizar las evaluaciones de SQA y cumplir los requerimientos del proyecto y las políticas de la

organización.

Para cumplir este rol el aseguramiento de la calidad

debería comenzar en las fases tempranas del proyecto”.

Aquí conviene aclarar que no necesariamente las personas que definen la metodología a seguir pertenecen al equipo de SQA.

Definir la metodología puede llegar a ser o no una actividad del equipo de SQA.

Una estructura posible en el proceso de mejora del software puede ser contar con un SEPG (software engineering process group) totalmente independiente del equipo de SQA, encargado de definir la metodología mientras que el equipo de SQA se limita a verificar que se cumpla dicha metodología.

5.4.4: habilidades y capacidades del personal del SQA

Las revisiones del grupo de SQA proyectan las actividades y revisan el producto de trabajo de SW, además de proveer a la gerencia la posibilidad de saber si el proyecto está de acuerdo a los planes estándares y procedimientos establecidos

El equipo ayuda a asegurar que se cumplan con las necesidades del proyecto y verifica que sean usables para realizar revisiones e intervenciones durante todo el ciclo de vida.

Participa en establecer los planes, estándares y procedimientos.

El equipo de SQA trabaja con la gerencia de proyectos durante los inicios del desarrollo para establecer los planes, estándares y los procedimientos que agregarán valor al proyecto de SW y satisfacer los problemas del proyecto y de las políticas de la organización.

5.4.4: habilidades y capacidades del personal del SQA

El grupo encargado de SQA.

Trabaja con el equipo del proyecto desde el inicio.

Debe ser objetivo e independiente.

Ayuda al proyecto, más que controlar sus actividades.

5.4.4: habilidades y capacidades del personal del SQA

La actividad de SQA es el proceso de verificación de que los estándares sean aplicados correctamente.

En los proyectos pequeños esto se puede realizar por el equipo de desarrollo, pero en proyectos grandes, un grupo específico se debe dedicar a este rol.

5.4.5: Actividades del SQAEstablecimiento de un plan de

calidad para un proyecto. Evaluaciones a realizar Auditorías y revisiones a realizar Estándares que se pueden aplicar

al proyecto Procedimientos para información

y seguimiento de errores. Documentos producidos por el

grupo de SQA Retroalimentación al equipo del

proyecto Participación en el desarrollo de

la descripción del proceso de software del proyecto.

Revisión de las actividades de ingeniería del software para verificar su ajuste al proceso de software definido.

Auditoría de los productos de software designados para verificar el ajuste con los definidos como parte del proceso de software.

Asegurar que las desviaciones del trabajo y los productos del software se documenten y se manejen de acuerdo con el procedimiento establecido.

Registrar e informar lo que no se ajuste a los requisitos.

5.5. Derecho informático aplicado al software:piratería y falsificación, autoría y creación, contratos y licencias

Piratería de Software

Las aplicaciones muy especializadas o complejas pueden constar varios miles de dólares.

Muchos programas de software comercial, software que debe comprarse antes de usarlo, cuesta poco, de 20 a 50 dólares, pero la mayor de las aplicaciones cuestan entre 100 y 500 dólares.

Los piratas de software renuncian al derecho de recibir actualizaciones y soporte técnico, pero obtienen el uso del programa sin pagar por él.

En la mayor parte de los casos, robar un programa no es más difícil de lo que es grabar un disco compacto de música que le ha pedido prestado a un amigo.

La piratería es un problema enorme debido a que es muy fácil de hacer.

El problema legal más grande que afecta a la industria de las computadoras es la piratería de software, la cual consiste en la copia o uso ilegal de los programas.

Falsificación de software

Compartir software en forma ilegal con amigos o dentro de una

compañía es un problema.

La falsificación descarda con la

intención de vender es otro problema por

completo.

Este concepto es similar a

vender ropa o mercancía de

piel con etiquetas de diseñador cuando en

realidad son imitaciones

baratas.

Copiar software, sin embargo, es mucho más

fácil que copiar ropa del

diseñador.

Aunque nuevos tratados

agresivos están obligados a los

países a conceder más

protección contra la

piratería y la falsificación de

software, la falsificación es

un gran negocio en

algunas partes del mundo, de manera más notable en

Europa y Asia.

En muchos países, los

productos de software y otros

tipos de propiedad

intelectual no disfrutan de las

mismas protecciones de

derechos de autor o marca

registrada como otros

tipos de productos.

AuditoriaLa auditoría informática es un proceso llevado a cabo por profesionales

especialmente capacitados para el

efecto, y que consiste en recoger, agrupar y

evaluar evidencias para determinar si un sistema

de información salvaguarda el activo

empresarial, mantiene la integridad de los datos, lleva a cabo eficazmente

los fines de la organización, utiliza eficientemente los

recursos, y cumple con las leyes y regulaciones

establecidas.

Permiten detectar de forma sistemática el uso

de los recursos y los flujos de información dentro de

una organización y determinar qué

información es crítica para el cumplimiento de

su misión y objetivos, identificando necesidades, duplicidades, costes, valor

y barreras, que obstaculizan flujos de

información eficientes.

Auditoria (cont.)

Auditar consiste principalmente en estudiar los mecanismos de control que

están implantados en una empresa u organización, determinando si los

mismos son adecuados y cumplen unos determinados objetivos o estrategias,

estableciendo los cambios que se deberían realizar para la consecución

de los mismos.

Los mecanismos de control pueden ser directivos, preventivos, de detección,

correctivos o de recuperación ante una contingencia.

Auditoria (cont.)

Generalmente se puede desarrollar en alguna o combinación de las siguientes áreas:

Gobierno corporativo Administración del ciclo de vida de los sistemas

Servicios de entrega y soporte Protección y seguridad

La auditoría informática sirve para mejorar ciertas características en la empresa como:

Desempeño Fiabilidad Eficacia Rentabilidad Seguridad Privacidad

Los objetivos de la auditoría informática son:

El control de la función informática

El análisis de la eficiencia de los sistemas informáticos

La verificación del cumplimiento de la

normativa en este ámbito

La revisión de la eficaz gestión de los recursos

informáticos.

Creación de softwareSe define como proceso al conjunto ordenado de pasos a seguir para llegar a la solución de un problema u obtención de un producto, en este caso particular, para lograr la obtención de un producto software que resuelva un problema.

El proceso de creación de software puede llegar a ser muy complejo, dependiendo de su porte, características y criticidad del mismo.

Por ejemplo la creación de un sistema operativo es una tarea que requiere proyecto, gestión, numerosos recursos y todo un equipo disciplinado de trabajo.

Creación de software (cont.)En el otro extremo, si se trata de un sencillo programa (por ejemplo, la resolución de una ecuación de segundo orden), éste puede ser realizado por un solo programador (incluso aficionado) fácilmente.

Es así que normalmente se dividen en tres categorías según su tamaño (líneas de código) o costo: de pequeño, mediano y gran porte.

Existen varias metodologías para estimarlo, una de las más populares es el sistema COCOMO que provee métodos y un software (programa) que calcula y provee una estimación de todos los costos de producción en un «proyecto software» (relación horas/hombre, costo monetario, cantidad de líneas fuente de acuerdo a lenguaje usado, etc.).

Considerando los de gran porte, es necesario realizar complejas tareas, tanto técnicas como de gerencia, una fuerte gestión y análisis diversos (entre otras cosas), por lo cual se ha desarrollado una ingeniería para su estudio y realización: es conocida como ingeniería de software.

Contratos y licencias

En ningún momento un

usuario compra un programa o se convierte

en propietario

de él

Sólo adquiere su derecho de uso, aunque pague por

él.

Las licencias,

son contratos suscritos entre los

productores de software

y los usuarios.

Derechos que se

conceden a los usuarios

software libre,

restricciones de uso software

propietario.

El software se rige por licencias de utilización

Tipos de licenciamiento: •Software cerrado, donde el dueño controla su desarrollo y no divulga sus especificaciones. •Es el producido principalmente por las grandes empresas, tales como Microsoft, adobe, Corel y muchas otras. •Antes de utilizarlo se debe pagar por su licencia. •Normalmente se tiene derecho a utilizarlo en una sola computadora, un solo usuario y a realizar una copia de respaldo.

•En este caso la redistribución o copia para otros propósitos no es permitida.

Software propietario:

•Comúnmente llamado software demo. •No hay que confundir el software shareware con el software de demostración •Son programas que de entrada no son 100% funcionales o dejan de trabajar al cabo de cierto tiempo. •Suelen conseguirse en los kioscos de periódicos y revistas. •Similar al software shareware por la forma en que se distribuye, pero es sólo software propietario limitado.

Software de demostración:

•Es software libre que tiene como particularidad la ausencia de copyright. Es decir, software libre sin derechos de autor.

•En este caso los autores “renuncian” a todos los derechos que les puedan corresponder

Software de dominio público:

•Para la FREE SOFTWARE FOUNDATION es software que posee las libertades del software libre, pero sólo se puede usar para fines sin ánimo de lucro, por lo cual lo cataloga como software no libre.

Software semilibre:

•Llevar tu software a otro equipo más poderoso, afectaría la licencia •Microsoft y otras empresas de software propietario lo están flexibilizando •Nuevo tipo de licenciamiento aun en análisis

Software para virtualización: