Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Tema 2.1.- Estándares de Calidad

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 16 Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

Similares a Tema 2.1.- Estándares de Calidad (20)

Anuncio

Más reciente (20)

Anuncio

Tema 2.1.- Estándares de Calidad

  1. 1. ALGORÍTMICA Y PROGRAMACIÓN Unidad 2: Estándares de Calidad en el Diseño de Algoritmos y Construcción de Programas 2.1.- Estándares de Calidad Distinguir las reglas prácticas para el diseño y construcción de algoritmos y programas con calidad y eficiencia Profa. Yenny Salazar
  2. 2. Contenido o Calidad de Software o Estándares de Calidad de Software o Principios de Diseño de Sistemas de Software • Modularidad mediante diseño descendente. • Abstracción y ocultamiento de la información. • Modificabilidad. • Comprensibilidad y fiabilidad. • Interfaces de usuario. • Programación segura contra fallos. • Facilidad de uso. • Eficiencia. • Estilo de programación. • Depuración. • Documentación. o Modelos de Calidad del Software (MCS). o Generalidades. o Actividades. o Referencias.
  3. 3. Calidad de Software La calidad del software es un concepto complejo que no es directamente comparable con la calidad de la manufactura de producto. Los productos de software se han convertido hoy en día en uno de los principales objetivos estratégicos de las organizaciones debido a que, los procesos más importantes de las organizaciones, y por lo tanto su supervivencia, dependen del buen funcionamiento de los sistemas de software. El significado de la palabra calidad genera mucha confusión, quizás por la multidimensionalidad del propio concepto. por lo anterior el glosario de estándares de computación IEEE Std. 610 – 1991, define la calidad del software como “el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario”.
  4. 4. Los estándares de calidad de software hacen parte de la ingeniería de software, utilización de estándares y metodologías para el diseño, programación, prueba y análisis del software desarrollado, con el objetivo de ofrecer una mayor confiabilidad y mantenibilidad, en concordancia con los requisitos exigidos, con esto se eleva la productividad y el control en la calidad de software, parte de la gestión de la calidad se orienta a mejorar su eficacia y eficiencia. Los estándares definen un conjunto de criterios que guían la forma en que se aplican procedimientos y metodologías al software desarrollado, la certificación de calidad permite una valoración independiente de la organización, donde se demuestra la capacidad de desarrollar productos y servicios de calidad. Estándares de Calidad de Software
  5. 5. Principios de Diseño de Sistemas de Software El diseño de sistemas de software de calidad requiere el cumplimiento de una serie de características y objetivos. En un sentido general, los objetivos a conseguir que se consideran útiles en el diseño de sistemas incluyen al menos los siguientes principios: 1. Modularidad mediante diseño descendente. 2. Abstracción y ocultamiento de la información. 3. Modificabilidad. 4. Comprensibilidad y fiabilidad. 5. Interfaces de usuario. 6. Programación segura contra fallos. 7. Facilidad de uso. 8. Eficiencia. 9. Estilo de programación. 10.Depuración. 11.Documentación.
  6. 6. 1. Modularidad mediante diseño descendente: La descomposición del problema se realiza a través de un diseño descendente que a través de niveles sucesivos de refinamiento se obtendrán diferentes módulos. Normalmente los módulos de alto nivel especifican qué acciones han de realizarse mientras que los módulos de bajo nivel definen cómo se realizan las acciones. oConstrucción del programa: La descomposición de un programa en módulos permite que diversos programadores trabajen de modo independiente en cada uno de sus módulos. oDepuración del programa: Se facilita esta tarea al centrarse en la depuración de pequeños programas más fáciles de verificar. oLegibilidad: Los programas modulares son más fáciles de leer. oEliminación de código redundante: Permite identificar operaciones que suceden en muchas partes diferentes del programa y para implementarlos como subprogramas. Esto significa que el código de una operación aparecerá sólo una vez, produciendo como resultado un aumento en la legibilidad y modificabilidad. Principios de Diseño de Sistemas de Software
  7. 7. 2. Abstracción y ocultamiento de la información: La idea es definir una parte de un sistema de modo que puede ser comprendido por sí mismo (como una unidad) sin conoci- miento de sus detalles específicos y sin conocimiento de cómo se utiliza esta unidad a un nivel más alto. Existen dos tipos de abstracciones: procedimental y de datos. oProcedimental: es aquella en que se separa el propósito de un subprograma de su implementación. La modularidad y la abstracción procedimental se complementan entre sí. oDe Datos: su propósito es aislar cada estructura de datos y sus acciones asociadas. Otro principio de diseño es la ocultación de la información. Su propósito es hacer inaccesible ciertos detalles que no afecten a los otros módulos del sistema. La abstracción identifica los aspectos esenciales de módulos y estructura de datos, que se pueden tratar como cajas negras, asegurando que ninguna otra caja negra pueda acceder a estos detalles ocultos. Principios de Diseño de Sistemas de Software
  8. 8. 3. Modificabilidad: Se refiere a los cambios controlados de un sistema dado. Un pequeño cambio en los requisitos en un programa modular normalmente requiere un cambio pequeño sólo en algunos de sus módulos. La modularidad aísla las modificaciones. El uso de procedimientos tiene la ventaja de eliminar código redundante, y hacer al programa más modificable. 4. Comprensibilidad y fiabilidad. Un sistema se dice que es comprensible si refleja directamente una visión natural del mundo. Una característica de un sistema eficaz es la simplicidad. En general, un sistema sencillo puede ser comprendido más fácilmente que uno complejo. Un objetivo importante en la producción de sistemas es el de la fiabilidad. El objetivo de crear programas fiables ha de ser crítico en la mayoría de las situaciones. Principios de Diseño de Sistemas de Software
  9. 9. 5. Interfaces de usuario: En un entorno interactivo se ha de tener en cuenta las preguntas posibles al usuario y sobre todo aquellas que solicitan entradas de usuario. Es conveniente que se realicen eco de las entradas de un programa. Siempre que un programa lee datos, bien de usuario a través de un terminal o de un archivo, el programa debe incluir los valores leídos en su salida. Etiquetar la salida con cabeceras y mensajes adecuados. 6. Programación segura contra fallos: Un programa es seguro contra fallos cuando se ejecuta razonablemente por cualquiera que lo utilice. Para conseguir este objetivo se han de comprobar los errores en datos de entrada y en la lógica del programa. 7. Facilidad de uso: Se refiere a la utilidad del sistema, esta propiedad ha de tenerse presente en todas las etapas del ciclo de vida, pero es vital en la fase de diseño e implementación. Principios de Diseño de Sistemas de Software
  10. 10. 8. Eficiencia: Su objetivo es hacer un uso óptimo de los recursos del programa, lo cual implica recursos de tiempo y espacio. Un sistema eficiente es aquel cuya velocidad es mayor con el menor espacio de memoria ocupada. En tiempos pasados los recursos de memoria principal y de CPU eran factores claves a considerar para aumentar la velocidad de ejecución. Hoy día debe existir un compromiso entre legibilidad, modificabilidad y eficiencia, aunque, con excepciones, prevalecerá la legibilidad y facilidad de modificación. 9. Estilo de programación: Requiere de unas reglas de escritura, que buscan que los programas, no sólo sean legibles y modificables por quienes los han construido, sino también puedan ser leídos y modificados por otros programadores. Las reglas de estilo para construir programas claros, legibles y fácilmente modificables dependerá del tipo de programación y lenguaje. Principios de Diseño de Sistemas de Software
  11. 11. 10. Depuración: Un programa es correcto sólo si se producen resultados correctos para todas las entradas válidas posibles. El proceso de eliminar errores -bugs- se denomina depuración de un programa. Cuando el compilador detecta un error, la computadora visua- liza un mensaje, que indica que se ha producido un error y cuál puede ser la causa posible del mismo. No obstante, los mensa- jes de error son con frecuencia, difíciles de interpretar y son a veces engañosos. Los errores de programación se pueden dividir en tres clases: errores de compilación (sintaxis), errores en tiempo de ejecución y errores lógicos. Principios de Diseño de Sistemas de Software
  12. 12. 11. Documentación: Un programa (paquete de software) de computadora necesita siempre de una documentación que permita a sus usuarios aprender a utilizarlo y mantenerlo. Se produce para dos fines, uno para explicar las características del software y describir cómo utilizarlo; y el otro para describir la composición interna del mismo, de modo que el sistema pueda ser mantenido a lo largo de su ciclo de vida. La primera se denomina documentación del usuario y la segunda documentación del sistema. La documentación del usuario está diseñada para ser leída por el usuario del software, tiende a ser no técnica. La documentación del sistema es más técnica, uno de sus componentes es la versión fuente de todos los programas del sistema, para lo que se requiere un buen uso de la sintaxis y de la gramática del lenguaje de programación. Así mismo se requiere seguir convenios de notación, indentación, estándares para los nombres de variables, constantes, objetos, clases, etc. Principios de Diseño de Sistemas de Software
  13. 13. Modelos de Calidad del Software (MCS) Son aquellos documentos que integran la mayor parte de las mejores prácticas, proponen temas de administración en los que cada organización debe hacer énfasis, integran diferentes prácticas dirigidas a los procesos clave y permiten medir los avances en calidad. Esto permite evaluar el sistema, bien sea cualitativa o cuantitativamente, y de acuerdo con esta evaluación la organización podrá proponer e implementar estrategias que permitan la mejora del proceso dentro de las etapas de análisis, diseño, desarrollo y pruebas del software. Los modelos de calidad de software se clasifican de acuerdo con el enfoque de evaluación, ya sea a nivel de proceso, producto o calidad en uso.
  14. 14. Generalidades El desarrollo de un buen producto software se realiza durante el ciclo de vida. Razón por la cual, los aspectos relacionados con la calidad deben tomarse en cuenta desde que se tiene la idea principal del sistema hasta la entrega del producto final. Diferentes herramientas ayudan al programador a escribir códigos de calidad, como lo son: el diseño descendente, la modularidad, la abstracción, la ocultación de información, entre otros. Durante la fase de diseño, la abstracción es uno de los medios más importantes con los que se intenta hacer frente a la complejidad; así como el uso de lenguajes modernos, los cuales facilitan la implementación de abstracciones de datos. Gracias a los estándares de calidad para el desarrollo de software se puede facilitar la realización de los proyectos, haciéndolos más eficientes y más fáciles de desarrollar, para así lograr satisfacer las necesidades del cliente. Los estándares permite mejorar y unificar la forma en que se trabaja y que el software desarrollado sea de calidad.
  15. 15. o Explicar brevemente el significado de los siguientes términos: • Ciclo de vida de desarrollo de sistemas. • Ingeniería de software. • Usuario. • Caja negra. o Establecer semejanzas y diferencias entre: programa, sub-programas, módulos, rutinas y procedimientos. o Describir y diferenciar entre errores de compilación (sintaxis), errores en tiempo de ejecución y errores lógicos. o Investigar los enfoque de evaluación de un modelo de calidad de software: a nivel de proceso, nivel de producto y calidad en uso). o Realizar un cuadro comparativos de los Modelos de Calidad de Software: CMMI, PSP y ISO 15504. Actividades
  16. 16. Corona, M. y Ancona M. 2011. Diseño de algoritmos y su codificación en lenguaje C. McGraw-Hill. México. Joyanes, L. y Zahonero, I. 2002. Programación en C. Metodología, algoritmos y estructura de datos. McGraw-Hill. Joyanes, L. 2008. Fundamentos de Programación, Algoritmos, Estructura de Datos y Objetos. Cuarta edición. McGraw-Hill. López, J. Algoritmos y Programación. 2009. Segunda Edición. Eduteka. Referencias Profa. Yenny Salazar

×