TEMA 7: INGENIERIA DEL SOFTWARE.



Documentos relacionados
Propósitos del software

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 6: INTRODUCIÓN A LA INGENIERÍA DEL SOFTWARE

Tecnología hardware y software

ANÁLISIS DE SISTEMAS. Prof. Eliz Mora

Ingeniería de Software: Y eso qué es?

Comunicación Hombre Máquina

Perfil Profesional en formato de la SETEC

PATRONES DE DISEÑO FRAMEWORKS

Procesos de Software

Presentado por: Josué Andino Denis Flores Jorge Luis Pontón Diego Soria. Andino, Flores, Pontón, Soria 1

Universidad Autónoma del Estado de México. Facultad de Ingeniería. Ingeniería en Computación

SISTEMAS DE INFORMACIÓN I TEORÍA

Ingeniería del Software 2

MANUAL DE TALLERES INGENIERÍA DE SOFTWARE

Fundamentos de Informática 3. Construcción de Software

M. C. Felipe Santiago Espinosa

Interfaz Humano Computadora DRA. LETICIA FLORES PULIDO PRIMAVERA 2012

octubre de 2007 Arquitectura de Software

Fase de Pruebas Introducción.

Ingeniería del Software. Tema 5: Control y garantía del software

BUENAS PRACTICAS EN DESARROLLO DE SOFTWARE APUNTES DE UNA EXPERIENCIA

Programación de Ordenadores

Ingeniería del Software Herramientas CASE Que es CASE? Ingeniería de sistemas asistida por computadoras (Computer-aised system engineering, o CASE)

MODELOS PRESCRIPTIVOS

Interacción Persona - Ordenador

INGENIERIA DE SOFTWARE. Dr. Mario Rossainz López Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera 2017

Implementacion y prueba de unidades. Figura 2.1. El ciclo de vida del software. 1

Tema 2 Introducción a la Programación en C.

Capítulo 6 Pruebas y Resultados

UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL CARRERA DE INGENIERÍA DE SOFTWARE

Unidad V. UML. Tema I. Conceptos Básicos Tema II. Definición de UML. Vocabulario Tema III. Elementos UML Tema IV. Diagramas.

Unidad 2 Modelos de proceso de software

INGENIERÍA DE SOFTWARE. Sesión 2: Procesos de ingeniería del software

ESCUELA DE INGENIERÍA DE SISTEMAS Y SEGURIDAD INFORMÁTICA.

Ciclos, Procesos y Metodologías de Desarrollo de Software. Análisis y Diseño de Sistemas de Información UNIDAD 2

Proceso de diseño. Programador. Requerimientos. Analista DIS03: Matriz componentes vs.

TEMA 2.1 TIPOS DE PRUEBAS DEL SOFTWARE

Instrucción 1 Criterios, Convenciones y recomendaciones para utilizar este instructivo

ARQUITECTURA Y DISEÑO DE SISTEMAS CONCEPTOS GENERALES

Programación de Ordenadores. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Facultad de Ingeniería Carrera de Ingeniería de Software

Capítulo VI. 1. Aportaciones. 2. Líneas futuras

Ingeniería de Software

Lenguajes y Compiladores 2007 M. en C. Eduardo René Rodríguez Ávila

Protocolos de Telecomunicaciones Capa Física y Capa de Enlace de datos. Semana 2

METRICA VERSION MÉTRICA versión 3. Metodología de Planificación, Desarrollo y Mantenimiento de Sistemas de Información

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Pruebas de Software. Agenda. Pruebas de Programas Los Niveles de Prueba Diseño de Casos de Prueba

INGENIERIA DE SOFTWARE

Aplicación web para informes de trabajo en grupo

2.0 Metodología de desarrollo

Objetivo: Contenido

Metodología para la solución de problemas programables

Capítulo 4: Prueba y validación de los objetos modelo.

DESARROLLO DE SISTEMAS DE INFORMACIÓN POR INTERNET (PLANIFICACIÓN EN PROJECT 2007)

Adquisición de TIC - Código Abierto

Los modelos de proceso que se discuten en este capítulo son:

INTRODUCCION 1. GESTION DE LA CONFIGURACION DEL SOFTWARE (GCS)

INNOVACIÓN : CAMBIO Y CREACIÓN

BACHILLERATO TÉCNICO VOCACIONAL EN DESARROLLO DE SOFTWARE. Módulo 2.3: Programación de Componentes de Base de Datos

Programación en lenguajes estructurados de aplicaciones de gestión. Código: J62.13 Nivel: 3

Cap. 4 de Whitten y Cap. 8 de Kendall SESION 4. Ana Mercedes Cáceres Año 2006

INSTITUTO TECNOLÓGICO

Un diagrama de flujo es un dibujo que utiliza símbolos estándar de diagramación de algoritmos para computadora, en el que cada paso del algoritmo se

Programación en Lenguajes Estructurados de Aplicaciones de Gestión. Certificados de profesionalidad

CRISIS DEL SOFTWARE. CRISIS: un punto decisivo en el curso de algo, momento, etapa o evento decisivo o crucial

IFCD0111 Programación en Lenguajes Estructurados de Aplicaciones de Gestión

RECURSOS DIGITALES EXPERIENCIAS DEL USUARIO (UX) Maestro: Carlos Alberto Rodríguez. Alumno: Ana Cristina Maldonado Rodríguez Matricula:

Figure 12-1: Phase D: Technology Architecture

Capítulo 3 CICLO DE VIDA DE UN PROGRAMA. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

CAPÍTULO III CASE INTEGRADOS

CONCLUSIONES. En el presente trabajo de investigación se logro alcanzar el objetivo

Capítulo 3. Métricas y la Confiabilidad en la Ingeniería del

Tipos Abstractos de Datos (TAD) Lección 1

Concepto. Ventajas. Abstracción, Encapsulamiento, Interfaz e Implementación. Tipos de unidades. Creación y uso de unidades para implementar TADs.

Capítulo 3. Metodología

ALGORITMO. Podemos encontrar muchas definiciones de algoritmo en los textos de programación, todas ellas muy similares:

METODOLOGÍAS DE DESARROLLO DE SOFTWARE SEMANA 02 DIFERENCIA LAS METODOLOGÍAS PESADAS DE DESARROLLO DE SOFTWARE (PROCESOS, MÉTODOS, Y HERRAMIENTAS)

ELABORACIÓN DE PIEZAS MECÁNICAS CON UNIGRAPHICS NX 4

Evaluación de las modificaciones de un sistema existente

2.1 METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS

Ingeniería del Software de Gestión

Contenido: Nº Tema Imagen Descripción 1 Capas de la arquitectura de un ordenador

INGENIERÍA DE SOFTWARE. Sesión 6: Construcción y pruebas del software

Gestión de Recursos para la Información.

Introducción a la Ingeniería de Software

Computación Avanzada. Ing. Daniel Capriles M.

PROYECTO DOCENTE ASIGNATURA: "Diseño de Computadores: Síntesis Lógica"

METODOLOGÍAS DE DESARROLLO DE SOFTWARE SEMANA 01 INTRODUCCIÓN - PARADIGMAS DE DESARROLLO DE SOFTWARE

Tema 1 Introducción a la Ingeniería del Software. Marcos López Sanz Ingeniería del Software de Gestión

PROCESOS PARA LA INGENIERÍA DE SOFTWARE. Facultad de Estadística e Informática

INGENIERÍA MECATRÓNICA EN COMPETENCIAS PROFESIONALES

PRUEBAS DE SISTEMAS. Hungría Berbesí UNEFA Ingeniería de Sistemas

INGENIERÍA DE SOFTWARE. Sesión 8: Tipos de diagramas

Ingeniería de Software

Creador de dibujos sobre ruedas en movimiento a través de LEDs RGB

Transcripción:

TEMA 7: INGENIERIA DEL SOFTWARE. 7.1. Definición de software 7.2. Características del software 7.3. Componentes del software 7.4. Ciclo de vida 7.4.1. Análisis de requisitos 7.4.2. Diseño 7.4.3. Implementación 7.4.4. Pruebas 7.4.5. Mantenimiento 1

7.1. Definición de software El software es: 1. instrucciones (programas de computadora) que cuando se ejecutan proporcionan una función y el rendimiento deseados, 2. estructuras de datos que permiten a los programas manipular adecuadamente la información y 3. documentos que describen la operación y el uso de programas. 7.2. Características del software Cuándo se construye hardware, el proceso humano (análisis, diseño, construcción, prueba) se traduce finalmente en una forma física. Si construimos una nueva computadora, nuestro boceto inicial, diagramas formales de diseño y prototipo de prueba, evolucionan hacia un producto físico. El software es un elemento del sistema que es lógico, en lugar de físico. Así el software tiene unas características considerablemente distintas a las del hardware: 1. El software se desarrolla, no se fabrica en un sentido clásico. En ambas actividades la buena calidad se adquiere mediante un buen diseño, pero la fase de construcción del hardware puede producir problemas de calidad que no existen en el software. Los costes del software se centran en la ingeniería. 2. El software no se estropea. En la figura 1 se muestra, para el hardware, la proporción de fallos con respecto al tiempo. Es la denominada curva de bañera, indica que el hardware tiene relativamente muchos fallos al principio de su vida (por defectos de diseño o fabricación); una vez se han corregido los defectos, la tasa de fallos cae hasta un nivel estacionario donde permanece un tiempo. Sin embargo, conforme pasa el tiempo, los fallos vuelven a presentarse a medida que los componentes del hardware se estropean por el motivo que sea. El software no es susceptible a los males del entorno que hacen que el hardware se estropee. Por tanto la curva de fallos para el software sería la de la figura 2. Los defectos no detectados harán que falle el programa durante las primeras etapas de su vida. Sin embargo una vez que se corrigen, la curva se aplana. Esto es una simplificación porque el software no se estropea pero se deteriora! Esto es debido a que el software sufre cambios (mantenimiento) durante su vida. Conforme se hacen los cambios, es probable que se introduzcan nuevos defectos, haciendo que la curva de fallos tenga picos, como muestra la figura 3. Antes de 2

que la curva pueda volver a su estado estacionario original, se solicita otro cambio, provocando un nuevo pico. Lentamente el nivel mínimo de fallos comienza a crecer; el software se va deteriorando debido a los cambios. Fallos Curva de bañera (fig.1) Tiempo Fallos Curva ideal del software (fig.2) Tiempo Fallos Curva real del software (fig.3) Cambio Curva real Curva ideal Tiempo Otro aspecto de ese deterioro ilustra la diferencia entre hardware y software. Cuando un componente hardware se estropea, se sustituye por una pieza de repuesto. No hay piezas de repuesto para el software. Cada fallo en el software 3

indica un error en el diseño o en el proceso mediante el que se tradujo el diseño a código máquina ejecutable. Por tanto el mantenimiento del software es más complejo que el del hardware. 3. La mayoría del software se construye a medida, en vez de ensamblar componentes existentes. Para construir cualquier hardware, por ejemplo un circuito electrónico se hace un esquema y después se eligen las piezas y se ensamblan. Esto no lo pueden hacer los diseñadores de software. 7.3. Componentes del software A medida que la disciplina del software evoluciona, se crea un grupo de componentes de diseño estándar, (por ejemplo tornillos y circuitos en hardware). Los componentes reutilizables se han creado para que un ingeniero se pueda concentrar en elementos verdaderamente innovadores de un diseño. En el mundo software es algo que se tiene que lograr en una escala amplia. La reutilización del código es una característica importante para un componente de software de alta calidad. El componente debe diseñarse e implementarse para que pueda volver a ser reutilizado en muchos programas diferentes. Hay creadas bibliotecas que reutilizan de forma efectiva algoritmos bien definidos. Pero no solo esto, también hay estructuras de datos, partes de interfaces interactivas (ventanas, menús, etc.). 7.4. Ciclo de vida Un ciclo de vida se considera desde que un elemento nace o se imagina se desarrolla y finalmente muere o cae en desuso. El ciclo de vida de un elemento software es a grandes rasgos: - Nace la idea - Diseño - Desarrollo - Mantenimiento - Cae en desuso 4

Esto nos lleva a los siguientes pasos a la hora de desarrollar un programa: 1. Análisis de requisitos 2. Diseño 3. Implementación (codificación) 4. Pruebas 5. Mantenimiento 7.4.1. Análisis de requisitos El ingeniero o analista debe conocer el dominio del software a desarrollar, a quién va dirigido (cuáles serán sus usuarios), qué debe hacer y cuáles serán las limitaciones físicas que pueda tener. En esta parte de la ingeniería el analista ha de reunirse con el personal al que va dirigido el programa y ha de saber hacer las preguntas adecuadas para tener las respuestas correctas. 7.4.2. Diseño El diseño es realmente un proceso de muchos pasos. El diseño traduce requisitos en una representación del software que se pueda evaluar antes de que comience la generación del código. Va a ser donde se especifique cómo se tienen que realizar los procesos, las acciones Tanto el análisis de requisitos como el diseño hay que documentarlos y se hace parte de la configuración del software. Un buen diseño es aquel que crea módulos reutilizables y además separa la capa de la interfaz de usuario de la capa de proceso (cómo se realizan los procesos). Esto facilita las modificaciones posteriores. 7.4.3. Implementación El diseño se debe traducir de forma legible por la máquina. Si se lleva a cabo el diseño de forma detallada, la generación de código se realiza mecánicamente. 7.4.4. Pruebas Una vez generado el código, comienzan las pruebas del programa. Hay que comprobar que todo funciona y lo hace de la forma deseada. Si se encuentra algún error al solventarlo habrá que volver a realizar los todos los pasos anteriores y las pruebas. 5

7.4.5. Mantenimiento El software sufrirá cambios después de ser entregado al cliente, ya sea porque se han encontrado errores o porque el cliente quiere que el software se adapte a cambios en el entorno. El diseño de esos cambios volverá a pasar por todos los pasos anteriores. Estos cinco pasos han de estar documentados, tiene que haber un documento en el que se expliquen los requisitos, todos los esquemas de diseño que se consideren necesarios, las pruebas que se han realizado y su resultado y un seguimiento del mantenimiento y modificaciones que se realicen. Por otra parte, el código ha de estar comentado, para facilitar el mantenimiento. 6