INTRODUCCIÓN A INGENIERÍA DE SOFTWARE
PRODUCTOS DE SOFTWARE
Producto de Software = Programa + Documentación
CARACTERÍSTICAS DE LOS PRODUCTOS
Mantenible: el software se debe mantener en el tiempo y debe cumplir con sus especificaciones
Confiable: el software no debe causar daños físicos o económicos en caso de fallos.
Eficiente: el software no debe desperdiciar los recursos del sistema.
Usable: el software debe contar con una interfaz adecuada y con su documentación.
Estas características dependen del:
Tipo de producto
Ambiente del sistema
Características → + Costo de SW
PROBLEMAS
Podemos llegar a tener diferentes problemas donde necesito tener:
Técnicas de desarrollo que MINIMICEN LAS COMPLEJIDADES del software. (No hay nada que sea fácil cuando hago estos sistemas, por eso necesito esas técnicas)
Técnicas que MINIMICEN LOS EFECTOS DE LAS MODIFICACIONES durante el desarrollo.
Métodos que permita al desarrollador y al cliente EXPLORAR LA NATURALEZA del software (Para poder ver los requerimientos y las necesidades del sistema)
INGENIERO
Def: es aquella personas que construye ARTEFACTOS utilizando su CONOCIMIENTO DE CIENCIA dentro de una LIMITACIÓN DE COSTO (No tenemos todo los recursos del mundo para poder hacerlo).
Ellos deben tener responsabilidades éticas, sociales y profesionales.
INGENIERÍA DE SOFTWARE
Def (NATO ‘68) : es el establecimiento y uso de principios de ingeniería con el objetivo de obtener software económico, confiable y eficiente que trabaje sobre máquinas reales.
Esta es una buena definición pero está incompleta.
Def (Fairley ‘ 85): es una disciplina tecnológica para el desarrollo y mantenimiento de software y con los costos estimados.
Se agrega el término mantenimiento por toda una crisis del software donde el software no se entregaba a tiempo. Además de la Ingeniería de Software tenemos que tener en cuenta la Gestión.
Def (Sommerville 2002): es una disciplina que comprende todos los aspectos de producción de software desde etapas iniciales de especificación del sistema hasta el mantenimiento.
Implica el uso de teorías, métodos y herramientas para el desarrollo de software.
Hoy en la actualidad el software toma bastante importancia en la economía de países desarrollados, donde representa un alto porcentaje del PBI (Producto Bruto Interno).
Antes → costo de HW > costo de SW
Hoy → costo de SW > costo de HW
Cuesta más mantener un sistema que desarrollarlo.
CARACTERÍSTICAS DE INGENIERÍA DE SOFTWARE
Desarrollo de programas grandes
Control de complejidad
Evolución del sistema (mantenimiento)
Muchas personas involucradas
Soporte real a usuarios
Eficiencia en el desarrollo
MODELO DE INGENIERÍA DE SOFTWARE
TÉCNICAS DE INGENIERÍA
El modelado
Un modelo es una simplificación de un objeto del mundo real, pero con suficiente nivel de detalle como para usarse como base en el desarrollo.
Division del Producto
El producto es dividido de modo que cada fragmento lo pueda desarrollar un miembro del grupo.
División del Proceso
El desarrollo del producto está dividido en fases:
Especificación: ¿Qué debemos hacer?
Diseño: ¿Cómo debemos hacerlo?
Realización
Pruebas
Está más relacionado a las metodologías de desarrollo.
IDEAS ABSTRACTAS → SOFTWARE CONCRETO
Proceso de Desarrollo de Software: Consiste en un conjunto estructurado de actividades para poder desarrollar software.
Las actividades dependen de ORGANIZACIÓN y del TIPO DE SISTEMA que se quiere desarrollar.
MODELO DE INGENIERÍA DE LOS PROCESOS
Especificación: Se establecen los requerimientos y las restricciones del sistema
Diseño: Se desarrollan modelos del sistema
Implementación: Se construye el sistema
Pruebas: Se verifica que el sistema cumpla con las especificaciones requeridas.
Instalación: Se entrega el sistema y se asegura su operatividad
Mantenimiento: Se reparan fallos del sistema cuando se descubren.
Tenemos algunos problemas que pueden suceder:
Especificaciones incompletas o anómalas
No tenemos una distinción precisa entre especificación, diseño y manufactura
El sistema debe estar desarrollado para ser probado.
El sistema no se puede modificar en el mantenimiento.
MODELO DE DESARROLLO DE SOFTWARE
VISIBILIDAD DE PROCESOS
Sistemas Software → Es intangible
Documentación → Identifica el progreso del desarrollo y los resultados de las actividades (Tangible)
Hablamos más que nada de la Administración de Proyectos.
Problemas si no documento:
El tiempo planeado para entregar un resultado != El tiempo necesario para completar una actividad.
La necesidad de producir documentación restringe la iteración entre procesos.
El tiempo para revisar y aprobar documentos → significativo
FORMAS DE ORGANIZAR EL TRABAJO
La idea es organizarnos para poder alcanzar un objetivo.
DISEÑO PARA PRODUCCIÓN EN MASA
Son sistemas que sirven para ensamblar un producto o servicio. Está relacionado a economía de escala, es decir máquinas especializadas.
Ejemplo: Autos
DISEÑO PARA PRODUCCIÓN EN LOTES
Son sistemas flexibles que sirven para producir productos similares. Puedo cambiar y recomponer la planta de producción para diferentes series.
Ejemplo: Sillones
DISEÑO PARA ALCANZAR OBJETIVOS NO REPETIDOS (PROYECTO)
Son sistemas para realizar productos una sola vez. Hay que realizar una serie de tareas específicas que no se realizaron antes y que posiblemente no se vuelvan a realizar.
Ejemplo: Torre Eiffel
Un proyecto puede ser:
Trabajo Final de Carrera
Planos y especificaciones
Formas de organizar el trabajo
Comentarios
Publicar un comentario