Resumen de Ingeniería del Software: Un Enfoque Práctico PDF
Document Details
Uploaded by LeadingField
Universidad Nacional de La Rioja
Daniel Fernandez
Tags
Summary
Este documento resume los conceptos básicos de la Ingeniería de Software, incluyendo su introducción, definición y las diferentes categorías de aplicaciones de software. Explica las diferencias entre software y hardware, y analiza varios dominios de aplicación, como sistemas, aplicaciones, ingeniería y ciencia. El documento está dirigido a estudiantes de ingeniería.
Full Transcript
lOMoARcPSD|3706559 Capitulo 1 - Resumen INGENIERIA DEL SOFTWARE: UN ENFOQUE PRACTICO Ingeniería en Software (Universidad Nacional de La Rioja) StuDocu no está patrocinado ni avalado por ningún colegio o universidad. Descargado por Daniel Fe...
lOMoARcPSD|3706559 Capitulo 1 - Resumen INGENIERIA DEL SOFTWARE: UN ENFOQUE PRACTICO Ingeniería en Software (Universidad Nacional de La Rioja) StuDocu no está patrocinado ni avalado por ningún colegio o universidad. Descargado por Daniel Fernandez ([email protected]) lOMoARcPSD|3706559 1 CAPITULO 1 EL SOFWARE Y LA INGENIERIA DE SOFWARE INTRODUCCION: “El software ha muerto” Se refiere al viejo concepto de software en que se lo compra , se lo posee y solo hay que administrarlo, esto es lo que ha llegado a su fin, lo que murió, porque ahora veremos una generación de software que se distribuirá por internet y que aunque estará instalado en un servidor remoto será como si lo estuviera en el equipo de cada usuario, y cada modificación o actualización será recibida al instante por el usuario, también los errores y este es el desafío de hacerlo rápido por el fuerte aceleramiento que sufrió el mercado pero debemos hacerlo “rápido y bien” y para ello necesitamos ingeniería en Sw. Este libro describe una estructura que puede ser usada porpersonas que hacen software de cómputo y que incluye proceso, métodos y herramienta a las que llamaremos ingeniería en software. El software tiene un papel dual, es producto y es vehículo : Producto: brinda el potencial de cómputo incluido en el hardware de cómputo o en una red de computadoras a las que se accede por medio de un hardware local. Vehículo: el software distribuye el producto más importante que es la información. Definición de Software: Si bien muchos creen saber que es para este texto seria: Instrucciones (programas de computo) que al ejecutarlos proporcionan la función y el desempeño buscado. 1. Estructuras de datos para que los programas puedan manipular la información. 2. Información descriptiva sobre la operación y uso de los programas. Para entender mejor todo esto debemos entender las características del software que lo diferencias de otros objetos que construye el hombre. El software en un elemento del sistema lógico no físico, y esto lo hace distinto al hardware, porque: a) El software se desarrolla y modifica con el intelecto no se manufactura: hay algunas similitudes entre el desarrollo del Sw y la fabricación del Hw, ambos logran la calidad por medio de un buen diseño, pero la manufactura (construcción) del Hw presenta problemas de calidad que no existen o se corrigen fácilmente en el software. Ambas actividades depende de personas que construyen un producto, pero los enfoques son diferentes. b) El software no se desgasta: par entender esto debemos hablar de “curva de tina” que indica que el Hw tiene una tasa de fallas elevada al principio de su vida, ya sea por defectos de diseño o manufactura, estos se corrigen y la tasa de fallas se estabiliza por cierto tiempo. Pero al pasar el tiempo esas fallas aumentan porque los componentes del HW se ven afectados por la suciedad, altas temperaturas es decir el “Hardware se desgasta”. Al Sw no lo afectan los inconvenientes ambientales, es decir no se desgasta. Entonces esta curva de fallas toma la forma de “curva idealizada”, pero hay defectos ocultos que elevaran las fallas al comienzo de la vida de un programa, pero se corrigen y la curva se aplana, es decir, “el Software no se desgasta pero se de deteriora” porque en su vida sufre cambios que hacen que la tasa de fallas suba, y esos errores piden otro cambio que puede dar otro error y la tasa vuelva a subir y así el software se va deteriorando por tantos cambios. Cuando el Hw se desgasta es refaccionado, el Sw no se refacciona. c) La industria construye basada en componentes, los software se construyen para uso individual: Descargado por Daniel Fernandez ([email protected]) lOMoARcPSD|3706559 2 DOMINIOS DE APLICACIÓN DE SOFWARE Hoy son 7 las categorías de SW de computadora que plantean retos a Ing. de software: 1. S. de sistema: son programas escritos para servir a otros programas. Ej.: compiladores, SO, manejadores, Sw de redes, etc. El área de Sw de sistemas se caracteriza por su gran interacción con el Hw de la computadora. 2. S. de aplicación: programas aislados para resolver necesidades especificas de negocios. Estas aplicaciones procesan datos comerciales o técnicos para facilitar las operaciones de los negocios. Este SW controla funciones de negocio en tiempo real. Ej.: procesamiento de transacciones en puntos de venta, o de procesos de manufactura en tiempo real. 3. S de Ingeniería y ciencia : se caracterizan por algoritmos “devoradores de Nº” Ej.: aplicaciones usadas en astronomía, análisis de tensiones de autos, actividades espaciales, biología, etc. Aunque las ciencias de la ing. Moderna están abandonando estos algoritmos ya que el diseño asistido por computadoras, simulación de sistemas, etc. se comenzaron hacer en tiempo real o han tomado características del Sw sistemas. 4. S incrustado: reside dentro de un producto o sistema, implementa y controla características para el sistema en si y para el usuario final. Ej.: control del tablero de un horno de microondas. 5. S. de línea de Producto: se diseña con capacidad para el uso de diferentes consumidores, Ej.: control de inventario de productos, procesamiento de textos, hojas de calculo, entretenimientos, aplicaciones para financias, etc. 6. Aplicaiones Web: llamado webapps”, esta centrado en redes y agrupa una gama amplia de aplicaciones. En su forma más sencilla webapps son poco mas que un conjunto de archivos de hipertexto vinculados, pero con el surgimiento de Web 2.0 están evolucionando a ambientes de computo mas sofisticados como base de datos corporativos y aplicaciones de negocios. 7. S de inteligencia artificial: usa algoritmos no numéricos para resolver problemas complejos, no fáciles de tratar computacionalmente o con análisis directo. Ej.: robótica, sistemas expertos, demostración de teoremas, juegos, etc. Millones de ing. En el mundo trabajan en proyectos de Sw de distintas categorías ya sea elaborando sistemas nuevos o corrigiendo y adaptando aplicaciones ya existentes a veces un Ing. Joven lo hace en programa que ya tienen muchos años y esto es gracias a la herencia, el legado que cada generación de ingenieros va dejando. Pero a pesar de ello nuevos desafíos ha aparecido, como: a) Computación en un mundo abierto: el gran crecimiento de las redes inalámbricas quizás pronto de lugar a la verdadera computación ubicua y distribuida y ese es el reto de los ing. En Sw desarrollar Sw de sistemas y aplicaciones que permitan a dispositivos móviles, PC , etc. comunicarse a través de enormes redes. b) Construcción de redes: la www, se esta convirtiendo en el motor de la computación y un proveedor de contenidos, el desafío de los Ing. En SW es hacer arquitecturas sencillas que beneficien a los usuarios finales del mundo. c) Fuente abierta: distribución de código fuente para aplicaciones de sistemas. Ej.: SO, base de datos, etc, para que mucha gente pueda contribuir a su desarrollo. El desafío de los Ing. Es elaborar códigos descriptivos y técnicas que permitan a los consumidores saber cuales son los cambios hechos y como se manifiestan dentro de Sw. Todos estos cambios y obedeciendo a la ley de la “consecuencias imprevistas tendrán efectos que hoy no se pueden predecir, pero los Ing. En Sw deben reparase desarrollado procesos agiles, adaptables para que acepten los cambios profundos de la década. NATURALEZA UNICA DE LAS WEBAPPS Entre los años 90 y 95 los sitios web eran conjuntos de archivos de hipertexto vinculados que informaban con textos y graficas limitadas, pero con el aumento de HTML y por el desarrollo de herramientas (XML, java) , permitió a los Ing. De la Web brindar capacidad de computo y contenido Descargado por Daniel Fernandez ([email protected]) lOMoARcPSD|3706559 3 de información, habían nacido los “sistemas y aplicaciones basados en la Web” denominados webapps que en la actualidad son herramientas sofisticadas que no solo brindan funciones aisladas al usuario final sino que integra base de datos corporativas y aplicaciones de negocio. Podríamos argumentar que los webapps son diferentes, Powel dice que son una mezcla de entre publicaciones y desarrollo de Sw, mercadotecnia y computación, arte y tecnología. Atributos de Webapps Uso intensivo de redes: porque reside en una red y atiende las necesidades de una comunidad diversa de clientes, con accesos y comunicaciones mundiales como internet o acceso y comunicaciones limitadas como intranet. Concurrencia: pueden acceder gran número de usuarios. Carga impredecible: el nro. de usuarios cambia de un día para el otro. Rendimiento: si un usuario deba esperar demasiado para entrar puede irse a otra parte. Disponibilidad: aunque no es razonable que sea del 100% los usuarios demandan acceder las 24 hs. Y los 365 dias. Del año. Orientadas a los datos: la función principal de los webapps es el uso de hipermedios para brindar al usuario contenidos en forma de textos, graficas, audio y video. También se los usa para acceder a bases de datos que no son parte integral de la Web, como comercio electrónico y aplicaciones financieras. Contenido sensible: la calidad de webapps esta dada por la calidad y estética del contenido. Evolución continua: no es raro que el contenido de ciertos webapps se actualicen minuto a minuto, ya que las aplicaciones de web evolucionan en forma continua a diferencia de Sw convencionales. Inmediatez. Aunque es necesario que el software llegue rápido al mercado es frecuente que los webapps tarden días o semanas en llegar al mercado. Seguridad: como están disponibles al acceder a una red es difícil o imposible limitar el acceso de usuarios, por lo cual hay que implementar medidas estrictas de seguridad por medio de infraestructura de apoyo de webapp y en la aplicación misma. Estética: lo atractivo de webapp es su apariencia y percepción que tienen tanto que ver como el diseño técnico. Para elaborar Sw que puedan enfrentar los retos de siglo XXI se debe tener en cuenta algunas realidades: Debe hacerse un gran esfuerzo para entender el problema antes de desarrollar una aplicación de sofware ya que el Sw se ha incrustado en casi todos los aspectos de nuestra vida. el diseño es una actividad crucial, porque los requerimientos tecnológicos de la información demandada por personas, negocios, gobierno cada vez son mas complejos, por lo cual un programa de computo que antes era creado por una persona hoy necesita de grandes equipos y una cuidadosa interacción de los elementos del sistema. El Sw debe tener alta calidad: porque las fallas del mismo pueden producir inconvenientes menores o catastróficos ya que hoy individuos, empresas y gobiernos dependen del Sw para sus operaciones y decisiones estratégicas. Sw fácil de mantener: cuanto mas aumente el valor de una aplicación, su base de datos y longevidad será mayor y por lo tanto también crecerán las demandas para mejorarla y adaptarla Conclusión: debe hacerse ingeniería de Sw en todas sus formas y a través de todo su dominio de aplicación. Definición de Ing. En Software es: la aplicación de enfoques sistemáticos, disciplinado y cuantificable al desarrollo operación y mantenimiento de Sw, o sea aplicación de la ingeniería al Sofware. La ingeniería de software es una tecnología en varias capas: El fundamento de la Ing. En Sw es el compromiso con la calidad La administración total de la calidad para algunos filósofos alimenta la Descargado por Daniel Fernandez ([email protected]) lOMoARcPSD|3706559 4 cultura de mejoras continuas, y es esta cultura la que lleva al desarrollo de enfoques cada vez más eficaces. El fundamento par la Ing. En Sw es la capa proceso: el proceso dela Ing. En Sw es el aglutinante que une las capad de la tecnología para un desarrollo oportuno del Sw de computo. El proceso de Sw forma la base pare el control de la administración de proyectos de Sw estableciendo el contexto en el que se aplican métodos técnicas. Los métodos de Ing. de Sw: proporcionan la experiencia técnica para elaborar Sw, se basan en principios que gobiernan c/ área de la tecnología incluyendo modelos y técnicas descriptivas. Las herramientas: es el apoyo semi o automatizado para el proceso y los métodos, cuando se integran las herramientas para que la información creada por una pueda ser utilizada por otra, estableciendo se así la “ingeniería de Sw asistido por computadora que apoya el desarrollo de l Sw.” EL PROCESO DEL SOFWARE En el contexto de Ing. de Sw un proceso no es una prescripción rígida de cómo elaborar Sw de cómputo, es un enfoque adaptable que permite que el equipo de Sw busque y elija el conjunto apropiado de tareas para el trabajo Una estructura de proceso general para Ing. De Sw consta de 5 actividades: 1) Comunicación: antes de iniciar cualquier trabajo técnico es importante comunicarse con el cliente para definir las características y funciones del sw. 2) Planeación: es importante crear un “mapa” que guie al equipo, eso se llama “plan de proyecto de software” y define el trabajo del Ing. De Sw ya que describe técnicas, riesgos, recurso y producto a obtener. 3) Modelado: como en cualquier actividad se crea un bosquejo o modelo para entender mejor los requerimientos del Sw y el diseño que les agradara. 4) Construcción: esta actividad combina generación de códigos (manual o automática) y pruebas para detectar los errores en el Sw. 5) Despliegue: El sw se entrega al cliente que lo evalúa y que le da retroalimentación basada en dicha evaluación. Estas actividades estructurales se aplican en forma iterativa mientras avanza el proyecto, cada iteración produce un incremento del Sw que lo hace mas completo. Estas actividades se complementan con cierto nro. de actividades sombrilla que son las que ayudan a administrar, controlar el avance, calidad, riesgos del proyecto, etc. Activides sombrillas comunes: a) Seguimiento y control del proyecto de SW : permite que el equipo evalué el progreso, lo compare con el plan del proyecto y tome las acciones que considere necesarias. b) Administración del riesgo: que pueda afectar el resultado o la calidad del producto. c) Aseguramiento de la calidad del Sw: define y garantiza la calidad del Sw. d) Revisiones técnicas: evalúa el producto para describir errores y eliminarlos antes que se propaguen a la siguiente actividad. e) Medición: del proceso para ayudar al equipo a entregar el Sw que satisfaga las necesidades. f) Reutilización: define criterios para volver a usar el producto, estableciendo mecanismos para obtener componentes reutilizables. g) Preparación y producción del producto del trabajo: son las actividades para crear productos, como modelos, documentos, registros, listas, etc. Descargado por Daniel Fernandez ([email protected])