Professional Documents
Culture Documents
Ingeniera de Software
Diapositiva 1
Objetivos
Definir la Ingeniera de Software y explicar su importancia. Discutir los conceptos de producto de software y proceso de software. Discutir los conceptos de responsabilidad profesional y principios de la IS Discutir los conceptos asociados a los diferentes enfoques de IS
Ingeniera de Software
Diapositiva 2
Ingeniera de Software
Ingeniera de Software Productos de Software Proceso de Software Qu es IS? Principios de la IS Modelos o Enfoques genricos de desarrollo de SW Resumen
Ingeniera de Software
Diapositiva 3
Ingeniera de Software
Las economas de los pases desarrollados dependen en gran parte del software. Mas y ms sistemas son actualmente controlados por software. La Ingeniera de Software concierne a teoras, mtodos y herramientas para el desarrollo profesional de software. El gasto en La Ingeniera de Software, representa un alto porcentaje del PIB de los pases desarrollados.
Ingeniera de Software
Diapositiva 4
Que es el Software
software es un programa que hace que un computador cumpla una tarea, cualquiera esta sea
dimensiones
es cdigo de algn lenguaje de programacin que puede ser intervenido por un programador es un proceso que se est ejecutando y que es "manipulado" por un usuario y ste interacta con l a travs de la interface la pantalla, los listados- de hecho esto es para el usuario el software.
As, la pregunta por el software no tendra una nica respuesta y quiz tenga tantas como puntos de vista se considere, no es una pregunta fcil de dilucidar.
Ingeniera de Software
Diapositiva 5
Primeros aos
hardware sufri continuos cambios El software se vea simplemente como un aadido. La programacin era un arte, para el que existan pocos mtodos sistemticos El desarrollo de software se realizaba sin ninguna planificacin La mayora del software se desarrollaba y utilizaba por la misma persona u organizacin. La misma persona lo escriba, lo ejecutaba y si fallaba lo depuraba. Baja movilidad en el trabajo El diseo era un proceso implcito, ejecutado en la cabeza de alguien, y la documentacin no exista normalmente.
El software, en esta primera etapa, se vea como un apndice del hardware y la evolucin de este impeda pensar en el software como algo ms all que un programa. El software es cdigo, es un programa que alguien desarrollaba para que a travs de l se realizara una tarea simple y rutinaria.
Ingeniera de Software
Diapositiva 6
El software continua siendo un programa, quiz ms complejo, pero, adems, adquiere dimensiones de producto. El software es desarrollado, no es fabricado en un sentido clsico.
Ingeniera de Software
Diapositiva 7
La cuarta era en software est ahora empezando...Ya, las tcnicas de la cuarta generacin para el desarrollo de software estn cambiando la forma en que algunos segmentos de la comunidad informtica construyen los programas de computadora. .
Se hace muy difcil seguir sustentando conceptos en que el software pueda ser visto exclusivamente como programa o como producto. la visin de software se ampla a la de una suerte de modelo del ambiente en que est inserto, ms an en muchos casos es un modelador de ese ambiente y en ese sentido esta visin es ms amplia que las anteriores.
Ingeniera de Software
Diapositiva 8
Productos de Software
Productos genricos.
Productos que son producidos por una organizacin para ser vendidos al mercado. Sistemas que son desarrollados bajo pedido a un desarrollador especfico .
La mayor parte del gasto del software es en productos genricos, pero hay ms esfuerzo en el desarrollo de los sistemas hechos a medida.
Ingeniera de Software
Diapositiva 9
Mantenibles.
Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones. El software no debe causar danos fsicos o econmicos en el caso de fallos. El software no debe desperdiciar los recursos del sistema. El software debe contar con una interfaz de usuario adecuada y su documentacin.
Confiabilidad.
Eficiencia.
Utilizacin adecuada.
Ingeniera de Software
Diapositiva 10
La importancia relativa de las caractersticas depende en el tipo de producto y en el ambiente en el que ser utilizado. En algunos casos, algunos atributos pueden dominar.
En sistemas de seguridad crticos de tiempo real, los atributos clave pueden ser la confiabilidad y la eficiencia.
Los costos tienden a crecer exponencialmente si son requeridos altos niveles de alguna caracterstica.
Ingeniera de Software
Diapositiva 11
Costes de Eficiencia.
Costos
Eficiencia
Ingeniera de Software
Diapositiva 12
El Proceso de Software
Las actividades varan dependiendo de la organizacin y del tipo de sistema a desarrollarse. Debe estar explcitamente modelado si va a ser bien administrado.
Ingeniera de Software
Diapositiva 13
Entendible
Se encuentra el proceso bien definido y es entendible ?. El proceso es visible al exterior ?. Puede el proceso ser soportado por herramientas CASE ?. El proceso es aceptado por aquellos involucrados en el ?. Los errores del proceso son descubiertos antes de que se conviertan en errores del producto ? . Puede continuar el proceso a pesar de problemas inesperados ?. Puede el proceso evolucionar para cumplir con los objetivos organizacionales ?. Que tan rpido puede producirse el sistema ?.
Visible
Soportable
Aceptable
Confiable
Robusto
Mantenible
Rapidez
Ingeniera de Software
Diapositiva 14
Especificacin - establecer los requerimientos y restricciones del sistema Diseo - Producir un modelo en papel del sistema Manufactura - construir el sistema Prueba - verificar que el sistema cumpla con las especificaciones requeridas Instalacin - entregar el sistema al usuario y asegurar su operacionalidad Mantenimiento - reparar fallos en el sistema cundo sea descubiertos
Ingeniera de Software
Diapositiva 15
Normalmente, las especificaciones son incompletas o anmalas No existe una distincin precisa entre la especificacin, el diseo y la manufactura Solo hasta que el sistema se ha producido se puede probar El software no se puede remplazar siempre durante el mantenimiento
Ingeniera de Software
Diapositiva 16
Qu es Ingeniera de Software
Ingeniera de Software
Diapositiva 17
Qu es Ingeniera de Software
Bsicamente la Ingeniera de Software es la aplicacin de la Ingeniera sus mtodos y tcnicas- al proceso de produccin de software. De acuerdo con Boehm, la ingeniera de Software incluye la aplicacin prctica del conocimiento cientfico en el diseo y construccin de programas para computadoras y la documentacin asociada requerida para desarrollarlos, operarlos y mantenerlos. Segn el libro de IEEE titulado "Standar Glossary of Software Engineering Terminology", en el cual se define como el enfoque sistemtico para el desarrollo de operacin, mantenimiento y eliminacin del software donde software se define como aquellos programas, procedimientos, reglas y documentacin posible asociada con la computacin, as como los datos pertenecientes a la operacin de un sistema de cmputo. La Ingeniera de Software es una disciplina pragmtica que confa en las ciencias de la computacin para obtener los fundamentos cientficos de la misma manera que las ramas de la ingeniera tradicional, como las ingenieras elctrica y qumica se valen de la fsica y de la qumica
Ingeniera de Software Diapositiva 18
Qu es Ingeniera de Software
La Ingeniera de Software surge como disciplina a fines de la dcada de los sesenta, cuando se hace presente los graves problemas existente en la produccin y, sobre todo, mantencin de software, situacin que se conoce como la "crisis del software". Las prcticas "artesanales" de programacin y la nula documentacin que se utilizaban en ese entonces hicieron crisis y determinaron que se pensara en el software como un problema que necesariamente debera ser abordado de manera ms sistemtica. El modelo bsico de esta sistematizacin corresponde a una variacin de un modelo desarrollado en la dcada de los treinta en los Laboratorios Bell, mtodo que en el mbito del software se conoce como el ciclo de vida tradicional.
Ingeniera de Software
Diapositiva 19
Rigor y Formalidad
Siendo el desarrollo de software una actividad creativa, la tendencia natural es a la informalidad de las soluciones, siguiendo las corazonadas que surgen en cada momento. Pero, por otra parte el desarrollo de software es una actividad que exige un alto grado de rigurosidad en el resultado final, rigurosidad que si se pasa por alto puede llevar a que los resultados sean pobres
Separacin de intereses
Entre ms y mejores sean los puntos de vista que se considere para el desarrollo de un producto software, mejor sern las posibilidades de que ese producto sea adecuado en la solucin del problema Las personas involucradas en el uso del software tendrn visiones distintas, que de alguna manera deben ser analizadas separadamente con el fin de que la posterior integracin refleje aspectos propios de cada visin o, en caso de que no lo haga, la no inclusin de aquellos aspectos est claramente justificada.
Modularidad
La modularidad es un principio bsico que se utiliza en el diseo y construccin de cualquier producto de ingeniera. Para el caso del software tambin es un principio bsico El proceso de modularizacin busca alcanzar tres objetivos bsicos: capacidad de descomposicin de un sistema complejo; composicin a partir de componentes existentes y; comprensin del sistema, mirndolo en partes.
Ingeniera de Software
Diapositiva 20
Abstraccin y Representacin
El mecanismo fundamental para el desarrolle de software es el dado por la dualidad de abstraccin y representacin. La abstraccin consiste en el proceso mediante el cual es posible identificar los aspectos importantes de un fenmeno ignorando los detalles y la representacin es el proceso que permite describir sobre algn formalismo estos aspectos importantes. El criterio que permite decidir que elementos deben ser considerados importantes depende del por qu se est realizando tal abstraccin
Anticipacin al cambio
El desarrollo como la posterior implantacin de software conlleva una dinmica de redefiniciones que afecta el sentido mismo del ambiente en que el software ha sido implantado aumentando, por lo mismo, la distancia entre la realidad y el modelo propuesto por el software lo que desactualiza a este ltimo aumentando la presin por modificaciones que permitan acortar esta distancia.
Generalidad
Esto corresponde a determinar, para cualquier problema, soluciones que no slo resuelvan el problema propuesto sino una clase de problemas similares. Es decir, mediante este tipo de solucin no slo resolvemos el problema especfico original, sino tambin podemos resolver, sin mayor costo, variaciones de aquel. La ventaja de esta forma general radica en que puede ser ms fcilmente reutilizada en otras aplicaciones
Incrementabilidad
Generalmente en el desarrollo de software los objetivos propuestos no pueden ser alcanzados directamente, ellos se van logrando mediante aproximaciones sucesivas, las cuales corresponden a incrementos realizados sobre la aproximacin anterior
Ingeniera de Software Diapositiva 21
Responsabilidad profesional
Los Ingenieros de software no solo deben considerar aspectos tcnicos. Deben tener una visin mas amplia, en lo tico, social y profesional. No existe estatutos para ninguno de estos aspectos.
Desarrollo de sistemas militares. Piratera. Que es mejor para la profesin de Ingeniero de Software.
Ingeniera de Software
Diapositiva 22
Aspectos ticos
Ingeniera de Software
Diapositiva 23
Aceptar la responsabilidad de tomar decisiones ingenieriles que sean consistentes con la seguridad, la salud y el bienestar pblico, y para detectar rpidamente los factores que puedan poner en peligro al pblico o al medio ambiente; evitar conflictos de inters, reales o percibidos, siempre que sea posible, y a comunicarlos a las partes afectadas cuando existan; ser honrado y realista definiendo exigencias o estimaciones basadas en los datos disponibles; rechazar sobornos en todas sus formas; mejorar la comprensin de la tecnologa, su uso apropiado, y las consecuencias potenciales;
Ingeniera de Software
Diapositiva 24
mantener y mejorar nuestra competencia tcnica y slo emprender tareas tecnolgicas para otros si estamos calificados a travs del entrenamiento o la experiencia, o despus de la comunicacin completa de nuestras limitaciones; buscar, aceptar, y ofrecer una crtica honesta al trabajo tcnico, para reconocer y corregir errores, y para acreditar apropiadamente las contribuciones de otros;
tratar a todas las personas justamente sin tener en cuenta los factores como raza, religin, gnero, invalidez, edad, o nacionalidad;
evitar daos a otros, sus propiedades, reputaciones, o empleo por acciones falsas o malvolas; ayudar a los colegas y colaboradores en su desarrollo profesional y apoyarlos siguiendo este cdigo de tica.
Ingeniera de Software
Diapositiva 25
Modelo de Cascada
Prototipado
Desarrollo Evolutivo
Transformacin Formal
Ingeniera de Software
Diapositiva 26
Especificacin de requerimientos.
Permite entregar una visin de alto nivel sobre el proyecto, poniendo nfasis en la descripcin del problema desde el punto de vista de los clientes y desarrolladores. Tambin se considera la posibilidad de una planificacin de los recursos sobre una escala de tiempos.
Especificacin funcional.
Especifica la informacin sobre la cual el software a desarrollar trabajar.
Diseo.
Permite describir como el sistema va a satisfacer los requerimientos. Esta etapa a menudo tiene diferente niveles de detalle. Los niveles ms altos de detalle generalmente describen los componentes o mdulos que formarn el software a ser producido. Los niveles ms bajos, describen, con mucho detalle, cada mdulo que contendr el sistema.
Ingeniera de Software
Diapositiva 27
Integracin.
Es la fase donde todos los subsistema codificados independientemente se juntan. Cada seccin es enlazada con otra y, entonces, probada. Este proceso se repite hasta que se han agregado todos los mdulos y el sistema se prueba como un todo.
Validacin y verificacin.
Una vez que el sistema ha sido integrado, comienza esta etapa. Es donde es probado para verificar que el sistema es consistente con la definicin de requerimientos y la especificacin funcional. Por otro lado, la verificacin consiste en una serie de actividades que aseguran que el software implementa correctamente una funcn especfica. Al finalizar esta etapa, el sistema ya puede ser instalado en ambiente de explotacin.
Mantencin.
La mantencin ocurre cuando existe algn problema dentro de un sistema existente, e involucrara la correccin de errores que no fueron descubiertos en las fases de prueba, mejoras en la implementacin de las unidades del sistema y cambios para que responda a los nuevos requerimientos. Las mantenciones seSoftware puede clasificar en: correctiva, adaptativa, perfectiva y Ingeniera de Diapositiva 28 preventiva.
Ingeniera de Software
Diapositiva 29
Ingeniera de Software
Diapositiva 30
Ingeniera de Software
Diapositiva 31
Ingeniera de Software
Diapositiva 32
Ingeniera de Software
Diapositiva 33
Modelo Prototipo
Las ventajas : reduccin de la incertidumbre y del riesgo, reduccin de tiempo y de costos, incrementos en la aceptacin del nuevo sistema, mejoras en la administracin de proyectos, mejoras en la comunicacin entre desarrolladores y clientes, etc. Desventajas : la dependencia de las herramientas de software para el xito ya que la necesidad de disminucin de incertidumbre depende de las iteraciones del prototipo, entre ms iteraciones existan mejor y esto ltimo se logra mediante el uso de mejores herramientas lo que hace a este proceso dependiente de las mismas. Tambin, no es posible aplicar la metodologa a todos los proyectos de software y, finalmente, la mala interpretacin que pueden hacer los usuarios del prototipo, al cual pueden confundir con el sistema terminado. Problemas Poca visibilidad en el proceso Los sistemas estn pobremente especificados Se requieren habilidades especiales. Aplicabilidad Para sistemas interactivos pequeos o medianos. Para partes de sistemas grandes (p.ej. la interfaz de usuario). Para sistemas de corta vida.
Modelo Evolutivo
Ingeniera de Software
Diapositiva 34
Los sistemas grandes estn hechos usualmente de varios subsistemas. No es necesario utilizar el mismo modelo de proceso para todos los subsistemas. El prototipado es recomendado cuando existen especificaciones de alto riesgo. El modelo de cascada es utilizado en desarrollos bien comprendidos.
Ingeniera de Software
Diapositiva 35
REVISIN
Prototipo Prototipo 3 2
Prototipo Operacional
Requeri Diseo Diseo mientos de del Detallado SW Plan de Validacin de Producto Codificacin Desarrollo Requerimientos Prueba de Unidades Plan de Integracin Diseo Prueba de y Prueba V &V Prueba de Integracin Desarrolla y verifica Aceptacin el siguiente nivel Servicio del producto Ingeniera de Software Diapositiva 36
Planteamiento de Objetivos
Los riesgos clave se identifican y analizan, y la informacin sirve para minimizar los riesgos.
Desarrollo y Validacin.
Planeacin.
Ingeniera de Software
Diapositiva 37
Visibilidad de Procesos
Los sistemas de software son intangibles por lo que los administradores necesitan documentacin para identificar el progreso en el desarrollo. Esto puede causar problemas..
El tiempo planeado para entrega de resultados puede no coincidir con el tiempo necesario para completar una actividad. La necesidad de producir documentos restringe la iteracin entre procesos. .El tiempo para revisar y aprobar documentos es significativo.
Ingeniera de Software
Diapositiva 38
Resumen
La Ingeniera de software concierne a las teoras, mtodos y herramientas para el desarrollo, administracin y evolucin de productos de software. Los productos de software consisten de programas y documentacin. Los atributos de los productos son, mantenabilidad, dependabilidad, eficiencia y usabilidad. El proceso de software consiste en aquellas actividades involucradas en el desarrollo de software.
Ingeniera de Software
Diapositiva 39
Resumen
El modelo de cascada considera cada actividad del proceso como una actividad discreta. El modelo de desarrollo evolutivo considera actividades del proceso en forma concurrente. El modelo de espiral se basa en anlisis de riesgos. La visibilidad del proceso involucra la creacin de documentos o resultados de las actividades. Los Ingenieros de software deben tener responsabilidades ticas, sociales y profesionales.
Ingeniera de Software
Diapositiva 40