INTRODUCCIÓN A INGENIERÍA DE SOFTWARE

 PRODUCTOS DE SOFTWARE


Producto de Software =  Programa + Documentación 


Productos Genéricos 

Productos hechos a medida

  • son desarrollados por alguna organización para ser vendidos en el mercado.

  • son desarrollados por alguna organización bajo algún pedido en específico.

  • Tiene más esfuerzo en el desarrollo (A-D-C-P-M), es decir sistemas grandes (Sistemas con KLDC)


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:

  1. Especificación: ¿Qué debemos hacer?

  2. Diseño: ¿Cómo debemos hacerlo?

  3. Realización

  4. 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


Modelo de Proceso

Característica

Modelo de Cascada

Separó en distintas fases de especificación y desarrollo

Desarrollo Evolutivo

Intercalo la especificación y el desarrollo.

Modelo Formal

Un modelo matemático del sistema se transforma en una implementación.


Desarrollo Basado en Reutilización

El sistema es ensamblado a partir de componentes existentes.





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:

  1. El tiempo planeado para entregar un resultado != El tiempo necesario para completar una actividad.

  2. La necesidad de producir documentación restringe la iteración entre procesos.

  3. El tiempo para revisar y aprobar documentos → significativo


Modelo del Proceso

Visibilidad del Proceso

Modelo de Cascada

  • Buena visibilidad

  • Cada actividad genera un documento

Desarrollo Evolutivo

  • Mala visibilidad 

  • Es muy caro generar documento en cada iteración.

Modelo Formal

  • Buena visibilidad

  • Cada fase genera un documento

Desarrollo basado en reutilización

  • Visibilidad moderada

  • Importante contar con documentación de componentes reutilizables.


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:

  1. Trabajo Final de Carrera

  2. Planos y especificaciones

  3. Formas de organizar el trabajo

Comentarios

Entradas populares de este blog