Está en la página 1de 3

Definicin de Ingeniera de Software Es el campo de las Ciencias Informticas que se ocupa de los sistemas de software con las siguientes

caractersticas: Grandes y complejos Construidos por equipos Existentes en muchas versiones Con muchos aos en el mercado Que siguen cambiando Rol del Ingeniero de Software (explicar) 1. Para ser Ingeniero de Software, no bastan las habilidades en programacin 2. La IS implica programar en grande: o Entender requerimientos y Escribir especificaciones Definir modelos y razonar sobre ellos o Dominar el software o Operar en distintos niveles de abstraccin o Saber trabajar en equipo Poseer habilidades de comunicacin y manejo de personas Clasificacin de Cualidades del Software (Citar) Externas vs. Internas Externas: Son visibles para los usuarios del sistema Internas: Conciernen a los desarrolladores del sistema

Producto vs. Proceso El objetivo es entregar un producto El Proceso es como se hace ese producto Las cualidades internas repercuten en las Externas La calidad del proceso repercute en la calidad del producto Cualidades Representativas (nombrar y explicar) Exactitud (Correctness) Un producto de Software es exacto cuando satisface las especificaciones de los requerimientos funcionales Si las especificaciones son formales, la Exactitud puede definirse formalmente La correccin establece la equivalencia entre el software y sus especificaciones Puede verificarse por diversos mtodos: Experimental, Analtico... Puede mejorarse utilizando herramientas apropiadas, algoritmos ya probados o libreras o mdulos standard en lugar de inventarlos y especialmente, utilizando metodologas y procesos probados Es una cualidad absoluta (SI/No) No existe el concepto de "grado de Exactitud" Confiabilidad (Reliability) Es una cualidad relativa De una manera informal, significa que el usuario siente que puede depender del software Matemticamente, se puede definir como "la probabilidad de ausencia de fallas durante un periodo de tiempo determinado" Si las especificaciones son correctas, un software correcto ES confiable, pero no al revs

Solidez (Robustness) Un programa es slido cuando se comporta de manera razonable incluso en circunstancias que no fueron anticipadas en la especificacin de requerimientos La cantidad de cdigo que se utiliza para lograr la solidez del programa depender del rea en que se aplique La Solidez y la Exactitud estn estrechamente relacionadas: El cumplimiento de una especificacin, implica Exactitud Si este requerimiento no se encuentra en la especificacin, preverla, implica Solidez Se puede utilizar los trminos Exactitud, Solidez y Confiabilidad tambin en relacin al proceso de produccin de Software Desempeo (Performance) Performance no es igual a Eficiencia o Eficiencia es una cualidad Interna, se refiere la economa en la utilizacin de recursos, por parte del software (memoria, tiempo de procesador, comunicaciones) o Performance es una cualidad externa, basada en los requerimientos del usuario o La Eficiencia afecta la Performance Afecta la Usabilidad del sistema o Sistemas lentos, que ocupan mucho disco o mucha memoria, dificultan el uso Puede afectar la Escalabilidad o Una solucin que funciona en una red pequea, puede no funcionar en una intranet grande Se puede verificar o anlisis de complejidad o evaluacin mediante modelos o simulacin Usabilidad (Usability) Se espera que los usuarios encuentren el sistema fcil de usar Otro trmino sera: "Amigable" Es una cualidad subjetiva, difcil de evaluar Tiene mucho que ver con la Interfaz del usuario visual, texto...

Verificabilidad (Verifiability) Determina cun fcil es verificar las propiedades cualidad ms bien interna, aunque puede ser tambin externa Mantenibilidad (Maintainability) Implica la facilidad de mantenimiento o Mantenimiento: Cambios posteriores a la entrega del producto o correctivo: corrige errores residuales o de adaptacin: ajusta a los cambios de ambiente o de perfeccionamiento: mejoramientos en la calidad o Se descompone en o Reparacin: habilidad para corregir defectos en un tiempo razonable Evolucin: habilidad para adaptar el software a los cambios del ambiente y mejorarlo en un tiempo razonable Reusabilidad (Reusability) o Es utilizar productos (o componentes) existentes, con la menor cantidad de modificaciones, para construir nuevos productos Portabilidad (Portability) Es la capacidad del software de funcionar en diferentes plataformas de Hardware y Software o Es importante en la medida en que se introducen nuevas plataformas y ambientes o Es relevante cuando se trabaja en ambientes de red heterogneos Relacion entre Principios, Metodologa, Metodos, Herramientas y Tcnicas Principios:Son reglas abstractas y generales que describen propiedades deseables del software Mtodos y Tcnicas : o Los Mtodos son guas generales que gobiernan la ejecucin de alguna actividad o Son un enfoque riguroso, sistemtico, disciplinado o Representan el QUE o Las Tcnicas son un enfoque ms tcnico y mecnico, de aplicacin ms restrictiva. o Representan el COMO En general, los Mtodos y las Tcnicas se agrupan en una Metodologa Mtodologa y Herramientas o El propsito de una Metodologa es proveer un enfoque para resolver problemas, preseleccionando los mtodos y tcnicas que sern utilizados. o Para dar soporte a la aplicacin de tcnicas, mtodos y metodologas, se desarrollan Herramientas Principios Clave 1. Rigurosidad y Formalidad 2. Separacin de Actividades 3. Modularidad 4. Abstraccin 5. Anticipacin a los cambios 6. Generalidad 7. Incrementalidad

Explicar los principios Clave 1Rigurosidad y Formalidad o Rigurosidad: Precisin y Exactitud. Es necesaria para lograr el desarrollo de productos confiables, controlar costos e incrementar nuestra propia seguridad en la confiablidad de nuestros productos. Es un complemento necesario para mejorar la actividad creativa de desarrollo de software o Formalidad: El grado ms alto de rigurosidad Requiere que el proceso del software sea conducido y evaluado a travs de leyes matemticas Formalidad implica rigurosidad. 2- Separacin de Actividades Permite lidiar con diferentes aspectos de un problema y concentrarse en cada uno individualmente El objetivo es dominar la complejidad, separando los problemas para concentrarse en uno por vez Las actividades pueden separarse por diferentes criterios: Tiempo en que se desarrollan las actividades Cualidades que se debe conseguir (eficiencia, exactitud) Vistas: flujo de datos o flujo de controles Partes: tamao, mdulos Ventajas desventajas Paralelizar esfuerzos Puede perderse la oportunidad de Separar Responsabilidades optimizacin global Asignar tareas Asignar tareas especficas, solucin: tomar primero y luego a personas con habilidades especificas considerar por separado cada Problema En el Proceso: Modelo en Cascada: separa las actividades en fases, en base al tiempo En el Productos Mantener por separado los requerimientos: Funcionalidades Performance Interfaz de Usuario Usabilidad 3Modularidad Es la divisin de sistemas complejos en partes pequeas denominadas Mdulos

Un sistema compuesto de mdulos se denomina Modular La modularidad sirve de base a la Separacin de Actividades (al trabajar con un mdulo, podemos ignorar detalles de otros mdulos) 4- Abstraccin Es identificar los aspectos importantes de un fenmeno ignorando sus detalles. Es un caso especial de la Separacin de Actividades Qu abstraer y qu considerar depende del propsito Ejemplo: o Los lenguajes de programacin nos permiten concentrarnos en los problemas propios de nuestra aplicacin, ignorar los detalles de implementacin a nivel de lenguaje de mquina de las instrucciones 5Anticipacin a los cambios Es la habilidad de anticipar cambios potenciales en el futuro, para dar soporte a la evolucin del software. Es la base para la Evolucin del Software Ejemplo: o En un sistema comercial, prever la posibilidad de manejar mltiples monedas, si el cliente as lo requiere 6Generalidad Es descubrir si un problema es una instancia de un problema ms general, cuya solucin podra resolverlo. A veces, un problema general es ms sencillo de resolver que un caso especial. Se debe balancear cuidadosamente la Generalidad contra la performance y el costo 7Incrementalidad Avance del proceso en forma escalonada (incremental) Ejemplos: o Entregar partes de un sistema para obtener los comentarios de los usuarios, y luego, agregar incrementalmente nuevas caractersticas, lidiando primero con la funcionalidad, luego con la performance o Entregar un primer prototipo y luego incrementalmente convertir el prototipo en un Producto Definicin de: Diseo de software (pag 4 de ppt) Es la actividad que transforma progresivamente los requerimientos del sistema de un nmero de estados intermedios, hasta un producto final. Es la descomposicin de un sistema en Mdulos Arquitectura de Software (pag 5) Muestra en bruto la estructura y organizacin del sistema a definir Su descripcin incluye: los componentes principales de un sistema la relacin entre dichos componentes las razones para esa descomposicin reglas que deben ser respetadas en cualquier diseo de componentes Gua el desarrollo del diseo Modularizacion (Pag7) Qu es un Mdulo? Es un componente bien definido de un sistema de software Una parte de un sistema que provee un conjunto de servicios a otros mdulos. Los servicios son elementos computacionales que otros mdulos pueden utilizar Al descomponer un sistema en mdulos, se puede describir la estructura general de los mismos y establecer las relaciones entre los mdulos individuales

RELACIN USA Un mdulo USA a otro, si requiere la presencia de este, porque le provee recursos que necesita para completar sus tareas. Por tanto, un mdulo que usa a otro (es decir, accede a un recurso provisto por otro) se convierte en un Cliente. El mdulo proveedor pasa a convertirse en Servidor. Una relacin USA debe ser una Jerarqua. Facilita su comprensin, Facilita su construccin, Facilita las pruebas Explicar diferencia entre: o relacin "USA" y "Es Componente de" relacin usa Ejemplo: A usa B A requiere que B opere correctamente A puede acceder los servicios provistos por B a travs de una interfaz A depende de B para proveer sus servicios A es un cliente de B; B es un servidor Es Componente de Se utiliza para describir que un mdulo de un nivel ms alto est compuesto por un nmero de mdulos de menor nivel A es_componente_de B significa queB est compuesto por varios mdulos, uno de los cules es A B comprende A o interfaz e implementacin Interfaz, es el conjunto de servicios que cada mdulo provee a sus clientes. Los servicios correspondientes son exportados por el mdulo e importados por el cliente. La forma en que se brindan estos servicios es un "secreto" del mdulo, y est embebido en su implementacin. Una clara diferenciacin entre la interfaz de un mdulo y su implementacin, es un aspecto clave de un buen diseo, y es base para el principio de Separacin de Actividades. Hablar sobre: o Arquitectura Cliente-servidor o Middleware o Diseo Orientado a Objetos o Modelo-Vista-Controlador

También podría gustarte