Diseño Del Software

19
Diseño del software: El diseño es definido en [IEEE610.12 - 90] como tanto "El proceso de definir la arquitectura, la componentes, interfaces, y las otras características de un sistema o componente" como "El resultado de [eso] se procesa." Visto como un proceso, el diseño de software es la actividad de ciclo de vida de ingeniería de software en la que los requerimientos de software son analizados para causar una descripción de la estructura interna del software que servirá como base para su construcción. Más precisamente, un diseño de software (el resultado) debe describir la arquitectura de software - es decir cómo el software está en estado de descomposición y organizado en los componentes - y las interfaces entre esos componentes. También debe describir los componentes en un nivel del detalle que permiten su construcción. El diseño de software tiene un papel importante en el desarrollo de software, ya que permite que ingenieros de software produzcan modelos distintos que moldean una clase de plano de la solución a ser implementado. Podemos analizar y valorar a estos modelos para determinar cual de estos permitirá o no, cumplir con una gama de requerimientos También podemos revisar y valorar las soluciones alternativas y los intercambios. Definitivamente, se puede usar los modelos para planear las actividades de desarrollo siguientes, además de usarlos como entrada y punto de partida de la construcción y hacer pruebas. En un listado estándard de procesos de ciclo vida de software [IEEE / EIA 12207] como procesos de ciclo vida de software [IEEE12207.0 - 96], el diseño de software consta de dos actividades que son conveniente para el análisis y la construcción de software entre requisitos de software: Diseño arquitectónico del software (algunas veces

description

DISEÑO DEL SOFTWARE

Transcript of Diseño Del Software

Diseo del software:

El diseo es definido en [IEEE610.12 - 90] como tanto "El proceso de definir la arquitectura, la componentes, interfaces, y las otras caractersticas de un sistema o componente" como "El resultado de [eso] se procesa." Visto como un proceso, el diseo de software es la actividad de ciclo de vida de ingeniera de software en la que los requerimientos de software son analizados para causar una descripcin de la estructura interna del software que servir como base para su construccin. Ms precisamente, un diseo de software (el resultado) debe describir la arquitectura de software - es decir cmo el software est en estado de descomposicin y organizado en los componentes - y las interfaces entre esos componentes. Tambin debe describir los componentes en un nivel del detalle que permiten su construccin.El diseo de software tiene un papel importante en el desarrollo de software, ya que permite que ingenieros de software produzcan modelos distintos que moldean una clase de plano de la solucin a ser implementado. Podemos analizar y valorar a estos modelos para determinar cual de estos permitir o no, cumplir con una gama de requerimientosTambin podemos revisar y valorar las soluciones alternativas y los intercambios. Definitivamente, se puede usar los modelos para planear las actividades de desarrollo siguientes, adems de usarlos como entrada y punto de partida de la construccin y hacer pruebas.En un listado estndard de procesos de ciclo vida de software [IEEE / EIA 12207] como procesos de ciclo vida de software [IEEE12207.0 - 96], el diseo de software consta de dos actividades que son conveniente para el anlisis y la construccin de software entre requisitos de software: Diseo arquitectnico del software (algunas veces llamado el diseo de alto nivel): describir las estructura y organizacin del software de alto nivel e identificar los componentes que lo forman. Diseo detallado del software: describe cada componente lo suficientemente para tener en cuenta su construccin.La descripcin de las reas de conocimiento del diseo de software est relacionada especficamente arequerimientos de software, a laconstruccin de software, a la administracin de ingeniera de software, la calidad de software, y las disciplinas relacionadas a la ingeniera de software.

Trazabilidad en proyectos de Software:Trazabilidad:La trazabilidad es la medida en la cual se puede establecer una relacin entre dos productos o ms del proceso de desarrollo.La trazabilidad de requerimientos se refiere a la "habilidad de seguir el ciclo de un requerimiento, tanto para atrs como hacia delante.Tipos:Permite que los usuarios rastreen como se implementa o prueba un requerimiento (o como se lo har).Permite ver donde se origin un requerimiento. En otras palabras, todos los documentos de requerimientos, documentos de diseo, cdigo y guiones de prueba debern apuntar a su fuente de origen.

La trazabilidad softwareEs una antigua buena prctica, recomendada para medianos o grandes desarrollos software, que trata sobre cmo enlazar o relacionar los requisitos con otros elementos del ciclo de vida, principalmente, casos de prueba y cdigo.Y es tan antigua como incomprendida.

Atributos de calidad de software:Los atributos de calidad forman parte de los requerimientos no funcionales de una aplicacin, y como tal deben ser especficos para llenar alguna necesidad dada o llegar a una meta especifica.Se pueden tomar estos atributos de en base a un punto vista definido, por ejemplo a la adecuacin de los requerimientos funcionales o a la satisfaccin de cliente.

Entre los atributos de calidad ms relevantes estn los siguientes:Seguridad:*Se refiere a los permisos de acceder a ciertos procesos de la aplicacin y para eso requiere autenticacin, autorizacin y algn nivel de encriptacin.

*Performance: Generalmente este atributo se puede medir en unidades de rendimiento de procesos (Throughput), tiempo de respuesta y retardos.*Modificalidad:Se refiere a que tan fcil es modificar la aplicacin y con ello cambiar el comportamiento del software. *Disponibilidad:Est relacionada con la confiabilidad por ejemplo cuando una aplicacin no est disponible cuando se necesita no cumple con las expectativas ni los requerimientos funcionales de la misma.*Integracin:Est relacionado a como se puede comunicar y trabajar en conjunto la aplicacin nueva a las aplicaciones que ya se tienen o a nuevas aplicaciones. *Escalabilidad: Como se comporta la aplicacin al momento de aumentar el ambiente de trabajo, por ejemplo ms usuarios ms proceso, ms carga, etc.

Por qu es importante identificarlos?Debemos enfocarnos en establecer bien los alcances y las mediciones de calidad que se espera que tenga el software desarrollado.Es beneficioso tenerlos definidos para que el proyecto no se atrase en las entregas y asegurar que los cambios al momento de la entrega sean mnimos por insatisfaccin del cliente.

En qu riesgos se incurre al no identificarlos?Si estos atributos de calidad no son identificados corremos mucho riesgo de que el producto terminado no cumpla con las expectativas del cliente y en consecuencia en el fracaso del proyecto.Si el software es de mala calidad provoca insatisfaccin en el cliente, as como desconfianza en el cliente y con ello baja de la demanda.Tambin se puede incurrir en atrasos en las entregas de los proyectos, no exponemos a que se realicen muchos cambios debido a que el cliente no est totalmente satisfecho.

Participantes en el diseo del software.Iterador (patrn de diseo):En diseo de software, el patrn de diseo Iterador, define una interfaz que declara los mtodos necesarios para acceder secuencialmente a un grupo de objetos de una coleccin. Algunos de los mtodos que podemos definir en la interfaz Iterador son:Primero(), Siguiente(), HayMas() y ElementoActual().Este patrn de diseo permite recorrer una estructura de datos sin que sea necesario conocer la estructura interna de la misma.Propsito:El patrn Iterador es un mecanismo de acceso a los elementos que constituyen una estructura de datos para la utilizacin de estos sin exponer su estructura interna.

Motivacin:El patrn surge del deseo de acceder a los elementos de un contenedor de objetos (por ejemplo, una lista) sin exponer su representacin interna. Adems, es posible que se necesite ms de una forma de recorrer la estructura siendo para ello necesario crear modificaciones en la clase.La solucin que propone el patrn es aadir mtodos que permitan recorrer la estructura sin referenciar explcitamente su representacin. La responsabilidad del recorrido se traslada a un objeto iterador.El problema de introducir este objeto iterador reside en que los clientes necesitan conocer la estructura para crear el iterador apropiado.Esto se soluciona generalizando los distintos iteradores en una abstraccin y dotando a las estructuras de datos de un mtodo de fabricacin que cree un iterador concreto.

Aplicabilidad:El patrn iterator permite el acceso al contenido de una estructura sin exponer su representacin interna. Adems diferentes iteradores pueden presentar diferentes tipos de recorrido sobre la estructura (recorrido de principio a fin, recorrido con saltos...). Por otro lado los iteradores no tienen por qu limitarse a recorrer la estructura, sino que podran incorporar otro tipo de lgica (por ejemplo, filtrado de elementos). Es ms, dados diferentes tipos de estructuras, el patrn iterador permite recorrerlas todas utilizando una interfaz comn uniforme.

Estructura:

Participantes:Las entidades participantes en el diseo propuesto por el patrn iterador son:Iterador (Iterator) define la interfaz para recorrer el agregado de elementos y acceder a ellos, de manera que el cliente no tenga que conocer los detalles y sea capaz de manejarlos de todos modos.

Iterador Concreto (ConcreteIterator) implementa la interfaz propuesta por el Iterador. Es el que se encarga de mantener la posicin actual en el recorrido de la estructura.

Agregado (Aggregate) define la interfaz para el mtodo de fabricacin de iteradores.

Agregado Concreto (ConcreteAggregate) implementa la estructura de datos y el mtodo de fabricacin de iteradores que crea un iterador especfico para su estructura.

Calidad del 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 dia en uno de los principales objetivos estrategicos de las organizaciones debido a que, cada vez mas, los procesos mas 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 confusin, quizs por la multidimensionalidad del propio concepto. por lo anterior el glosario de estndares de computacin 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.

Calidad del producto software:Norma iso/iecLa norma ISO/IEC 9126 de 1991, es la norma para evaluar los productos de software, esta norma nos indica las caractersticas de la calidad y los lineamientos para su uso,fue desarrollada para dar soporte a aquellas necesidades; las caractersticas de calidad y sus mtricas asociadas, pueden ser tiles tanto como para evaluar el producto como para definir los requerimientos de la calidad y otros usos.Esta norma definida por un marco conceptual basado en los factores tales como Calidad del Proceso, Calidad del Producto del Software y Calidad en Uso; segn el marco conceptual, la calidad del producto, a su vez, contribuye a mejorar la calidad en uso.La norma ISO/IEC 9126 presentan dos modelos de calidad, el primero referido a la calidad interna y externa y el segundo modelo referido a la calidad en uso, a continuacin se describe cada uno de ellos.La calidad externa se define como la totalidad de las caractersticas del producto software desde una perspectiva externa. Es la calidad del software cuando es ejecutado, la cual es tpicamente medida y evaluada mientras se prueba en un ambiente simulado, con datos simulados y usando mtricas externas. Durante las pruebas, muchas fallas sern descubiertas y eliminadas. Sin embargo algunas fallas todava pueden permanecer despus de las pruebas. Como es difcil corregir la arquitectura de software u otros aspectosfundamentales del diseo del software, el diseo fundamental permanece sin cambios a travs de las pruebas.

Figura 1. Imagen tomada de la pgina web:http://www.mginformatica.com.ar/modelo-de-calidad.htm

La norma ISO/IEC 9126 define la calidad en uso como la perspectiva del usuario de la calidad del producto software cuando ste es usado en un ambiente especfico y un contexto de uso especfico. ste mide la extensin para la cual los usuarios pueden conseguir sus metas en un ambiente particular, en vez de medir las propiedades del software en si mismo.

El modelo de la calidad en uso muestra un conjunto de 4 caractersticas: efectividad, productividad, integridad, y satisfaccin.

Figura 2. Imagen tomada de la pgina web:http://olgacarreras.blogspot.com.es/2012/03/estandares-formales-de-usabilidad-y-su.html

NORMA ISO/IEC - 14598El estandar ISO/IEC 14598 es actualmente usado como base metodolgica para la evaluacin del producto software. En sus diferentes etapas, establece un marco de trabajo para evaluar la calidad de los productos de software proporcionando, adems, mtricas y requisitos para los procesos de evaluacin de los mismos.

La norma define las principales caractersticas del proceso de evaluacin Repetitividad. Reproducibilidad. Imparcialidad. Objetividad.Para estas caractersticas se describen las medidas concretas que participan: Anlisis de los requisitos de evaluacin. Evaluacin de las especificaciones. Evaluacin del diseo y definicin del plan de evaluacin. Ejecucin del plan de evaluacin. Evaluacin de la conclusin.La Norma ISO/IEC 14598 define el proceso para evaluar un producto desoftware, el mismo consta de seis partes: ISO/IEC 14598-1Visin General: provee una visin general de las otras cinco partes y explica la relacin entre la evaluacin del producto software y el modelo de calidad definido en la ISO/IEC 9126.

ISO/IEC 14598-2Planeamiento y Gestin: contiene requisitos y guas para las funciones de soporte tales como la planificacin y gestin de la evaluacin del producto del software.

ISO/IEC 14598-3Proceso para desenvolvedores: provee los requisitos y guas para la evaluacin del producto software cuando la evaluacin es llevada a cabo en paralelo con el desarrollo por parte del desarrollador.

ISO/IEC 14598-4Proceso para adquirientes: provee los requisitos y guas para que la evaluacin del producto software sea llevada a cabo en funcin a los compradores que planean adquirir o reutilizar un producto de software existente o pre-desarrollado.

ISO/IEC 14598-5Proceso para avaladores: provee los requisitos y guas para la evaluacin del producto software cuando la evaluacin es llevada a cabo por evaluadores independientes. ISO/IEC 14598-6Documentacin de Mdulos: provee las guas para la documentacin del mdulo de evaluacin.Los servicios relacionados con la evaluacin de software de productos son generalmente adaptados a las necesidades de los usuarios finales individuales o proveedores, en funcin de por qu se pidi la evaluacin. Los servicios de evaluacin de software incluyen: Definicin de perfiles de calidad de referencia de software Evaluacin de acuerdo con los modelos de calidad predefinidos Certificacin de la calidad del software de acuerdo a los modelos de calidad y normas Las comparaciones entre productos La reingeniera del software Servicio de Monitoreo de calidad del producto. NORMA ISO/IEC 25000 (SquaRE)ISO 25000:2005 (SQuaRE -Software Quality Requirements and Evaluation) es una nueva serie de normas que se basa en ISO 9126 y en ISO 14598 (Evaluacin del software). Uno de los principales objetivos de la serie SQuaRE es la coordinacin y harmonizacin del contenido de ISO 9126 y de ISO 15939:2002 (Measurement Information Model). ISO 15939 tiene un modelo de informacin que ayuda a determinar que se debe especificar durante la planificacin, performance y evaluacin de la medicin. Para su aplicacin, cuenta con los siguientes pasos: Recopilar los datos, Preparacin de los datos y Anlisis de los datos.

Su objetivo principal es guiar el desarrollo de los productos de software con la especificacin y evaluacin de requisitos de calidad. Establece criterios para la especificacin de requisitos de calidad de productos software, sus mtricas y su evaluacin. SQuaRE est formada por las divisiones siguientes: ISO/IEC 2500n. Divisin de gestin de calidad. Los estndares que forman esta divisin definen todos los modelos comunes, trminos y referencias a los que se alude en las dems divisiones de SQuaRE. ISO/IEC 2501n. Divisin del modelo de calidad. El estndar que conforma esta divisin presenta un modelo de calidad detallado, incluyendo caractersticas para la calidad interna, externa y en uso. ISO/IEC 2502n. Divisin de mediciones de calidad. Los estndares pertenecientes a esta divisin incluyen un modelo de referencia de calidad del producto software, definiciones matemticas de las mtricas de calidad y una gua prctica para su aplicacin. Presenta aplicaciones de mtricas para la calidad de software interna, externa y en uso. ISO/IEC 2503n. Divisin de requisitos de calidad. Los estndares que forman parte de esta divisin ayudan a especificar los requisitos de calidad. Estos requisitos pueden ser usados en el proceso de especificacin de requisitos de calidad para un producto software que va a ser desarrollado como entrada para un proceso de evaluacin. El proceso de definicin de requisitos se gua por el establecido en la norma ISO/IEC 15288 (ISO, 2003). ISO/IEC 2504n. Divisin de evaluacin de la calidad. Estos estndares proporcionan requisitos, recomendaciones y guas para la evaluacin de un producto software, tanto si la llevan a cabo evaluadores, como clientes o desarrolladores. ISO/IEC 2505025099. Estndares de extensin SQuaRE. Incluyen requisitos para la calidad de productos de software Off-The-Self y para el formato comn de la industria (CIF) para informes de usabilidad.Al igual que la norma ISO/IEC 9126, este estndar define tres vistas diferenciadas en el estudio de la calidad de un producto: Vista interna: esta vista se ocupa de las propiedades del software como: el tamao, la complejidad o la conformidad con las normas de orientacin a objetos. Vista externa: vista que analiza el comportamiento del software en produccin y estudia sus atributos, por ejemplo: el rendimiento de un software en una mquina determinada, el uso de memoria de un programa o el tiempo de funcionamiento entre fallos. Vista en uso: mide la productividad y efectividad del usuario final al utilizar el software.

La primera puede utilizarse desde las primeras fases del desarrollo, permitiendo detectar deficiencias en el software en edades muy tempranas del ciclo de vida del software.

La segunda, sin embargo, necesita que el producto software este completo y se utilizar por tanto en el pase a produccin del producto, siendo muy dependiente de la mquina donde se ejecute.

Por ltimo la tercera vista que tambin estudia el producto software finalizado ser dependiente del usuario y estar condicionada a los factores personales del mismo.

Figura 3.Modelo de Referencia de Medicin de la Calidad del Producto Software, segn la ISO/IEC 25000. Imagen tomada de la pgina web:http://iso25000.com/index.php/25000.html

Repblica Bolivariana de VenezuelaMinisterio del Poder Popular para la Educacin UniversitariaUniversidad Politcnica Territorial del Estado Portuguesa Juan de Jess MontillaPrograma Nacional de Formacin en InformticaGuanare, Estado Portuguesa

Diseo De Software

BACHILLERQUINTERO WILLIAM CI 18.669.424AGUILAR STARLIN CI 25.162.670MENDOZA MARCOS CI 23578453

INFORMATICA SECCION 437

Octubre-2014