Está en la página 1de 11

TRABAJO DE: Ingeniera Del Software.

CONTENIDO: Gua Didctica De Ingeniera Del Software I DOCENTE: lvaro Meja VI AO DE: Ingeniera en Computacin y Sistemas. ALUMNA: Martha Cecilia Rodriguez Hernndez.

FECHA DE ENTREGA: Mircoles 30de octubre del 2013.

UNIVERSIDAD PAULO FREIRE


GUA DIDCTICA DE INGENIERA DEL SOFTWARE I Docente: ALVARO MEJIA

I-

De la informacin contenida en los materiales proporcionados en la clase anterior acerca de las actividades genricas del proceso del software, detalle las afirmaciones o puntos que considera que son bsicos a tomar en cuenta ante cualquier experiencia de desarrollo de software.

R= En lo personal han sido de gran ayuda para nosotros toda la documentacin porque nos explica bsicamente todo lo que se refiere al software y sus procesos. 1- DEFINICIN: Esta fase se centra sobre el QU? , el que desarrollador del software intenta identificar: abcdefQu informacin ha de ser procesada? Qu funcin y rendimiento se desea? Qu comportamiento tendr el sistema? Qu interfaces van a ser establecidas? qu restricciones de diseo existen? Qu criterios de validacin se necesitan para definir un sistema correcto? Por lo tanto, han de identificarse los requisitos clave del sistema y del software. Aunque los mtodos aplicados durante la fase de definicin varan dependiendo del paradigma de ingeniera del software (o combinacin de paradigmas) que se aplique, de alguna manera tendrn lugar tres tareas principales: ingeniera de sistemas o de informacin, planificacin del proyecto de software y anlisis de los requisitos. 2-DESARROLLO: Esta fase se centra en el CMO? Es decir, durante el desarrollo un ingeniero del software intenta definir: a- Cmo han de disearse las estructuras de datos? b- Cmo ha de implementarse la funcin dentro de una arquitectura de software? c- Cmo han de implementarse los detalles de los procedimientos? d- Cmo han de caracterizarse interfaces? e- Cmo ha de traducirse el diseo en un lenguaje de programacin (o lenguaje no procedimental)? f- Cmo ha de realizarse la prueba? Los mtodos aplicados durante la fase de desarrollo varan, aunque las tres tareas especficas tcnicas deben ocurrir siempre: diseo del software, generacin de cdigo y prueba del software.

3-MANTENIMIENTO: Esta fase se centra en el CAMBIO que va asociado a la correccin de errores, a las adaptaciones requeridas a medida que evoluciona el entorno del software y a cambios debidos a las mejoras producidas por los requisitos cambiantes del cliente. Durante la fase de mantenimiento se encuentran cuatro tipos de cambios: aCorreccin: Incluso llevando a cabo las mejores actividades de garanta de calidad, es muy probable que el cliente descubra los defectos en el software. El mantenimiento correctivo cambia el software para corregir los defectos. Adaptacin: Con el paso del tiempo, es probable que cambie el entorno original (por ejemplo: CPU, el sistema operativo, las reglas de empresa, las caractersticas externas de productos) para el que se desarroll el software. El mantenimiento adaptativo produce modificacin en el software para acomodarlo a los cambios de su entorno externo. Mejora: Conforme se utilice el software, el cliente-usuario puede descubrir funciones adicionales que van a producir beneficios. El mantenimiento perfectivo lleva al software ms all de sus requisitos funcionales originales. Prevencin: El software de computadora se deteriora debido al cambio, y por esto el mantenimiento preventivo tambin llamado reingeniera del software, se debe conducir a permitir que el software sirva para las necesidades de los usuarios finales. En esencia, el mantenimiento preventivo hace cambios en programas de computadora a fin de que se puedan corregir, adaptar y mejorar ms fcilmente. 4-ACTIVIDADES PROTECTORAS: Las fases y los pasos relacionados descritos en nuestra visin genrica de la ingeniera del software se complementan con un nmero de actividades protectoras entre estas estn: abcdefghSeguimiento y control del proyecto de software. Revisiones tcnicas formales. Garanta de calidad del software. Gestin de configuracin del software. Preparacin y produccin de documentos. Gestin de reutilizacin. Mediciones. Gestin de riesgos. 5-SE NOS EXPLICA LA DIFERENCIA ENTRE LOS TIPOS DE FALLAS A LA HORA DE USAR LA INGENIERA DE SOFTWARE DEFECTO, FALLA, ERROR: Defecto: se encuentra en un artefacto y puede definirse como una diferencia entre la versin correcta del artefacto y una versin incorrecta . (imperfeccin".).

b-

c-

d-

Falla: Es la discrepancia visible que se produce al ejecutar un programa con un defecto, el cual es incapaz de funcionar correctamente (no sigue su curso normal). Error: es una equivocacin cometida por el desarrollador. Ejemplos de errores: un error de digitacin, una malinterpretacin de un requerimiento o de la funcionalidad de un mtodo. (una idea falsa o equivocada"). Debido a que un programa no puede tener o estar en un error, ya que los programas no tienen ideas, las ideas las tienen las personas. 6- LOS TIPOS DE PROBLEMAS QUE PUEDE PRESENTAR EL SOFTWARE a- La planificacin y estimacin de costos frecuentemente son imprecisas. b- La calidad del software a veces no es aceptable c- Problemas en la Gestin de proyectos en ingeniera de software: (Deteccin sistemtica de errores de software, Tendencia estadstica del proyecto a alargarse en el tiempo ms de lo planeado y a excederse del presupuesto). d- Problemas de Complejidad de programacin:(Complejidad actual de muchas aplicaciones, al extremo que empresas que desarrollan software pueden fracasar cuando los programadores se van, debido a que no hay nadie ms que entienda lo que ellos han hecho, La calidad del software es normalmente cuestionable, El mantenimiento de software es muy costoso y no se le ha considerado un aspecto importante). 7-LAS DEFICIENCIAS DEL SOFTWARE: a-Retraso en la entrega B-Falta de fiabilidad c-Coste excesivo D-Ineficiencia e-Mantenimiento problemtico F-Falta de adaptabilidad G-Escasa portabilidad h-Carencia de documentacin 8-LOS DESAFOS DE LA INGENIERA DEL SOFTWARE: Los desafos clave con los que se enfrenta la ingeniera del software son: a-Calidad: Desarrollar SW de alta calidad es un desafo fundamental. B-Funcionalidad: Capacidad de proveer funciones que cumplen las necesidades establecidas o implicadas. C-Confiabilidad: Capacidad de realizar las funciones requeridas bajo las condiciones establecidas durante un tiempo especfico. D-Usabilidad: Capacidad de ser comprendido, aprendido y usado. e-Eficiencia: Capacidad de proveer desempeo apropiado relativo a la cantidad de recursos usados. F-Mantenibilidad: Capacidad de ser modificado con el propsito de corregir, mejorar, o adaptar.

G-Portabilidad: Capacidad de ser adaptado a distintos entornos sin aplicar otras acciones que las provistas a este propsito en el producto. H-Heterogeneidad: desarrollo de tcnicas para construir software que puedan utilizar plataformas y entornos de ejecucin heterogneos (compuesto de partes de diversas naturalezas). I-Entrega: desarrollo de tcnicas que lleven a una entrega de software ms rpida. j-Confianza: desarrollo de tcnicas que demuestren que los usuarios pueden tener confianza en el software.

II- En sesiones anteriores, hemos abordado temas sobre Los Ciclos de Vida del Software, donde consolidamos que El ciclo de vida es el conjunto de fases por las que pasa el sistema que se est desarrollando, desde que nace la idea inicial hasta que el software es retirado o remplazado (actualizado).Actualmente estamos abordando el Proceso de desarrollo de software, el cual entendemos como fases sucesivas compuestas por tareas que se pueden/deben planificar o como Qu se debe hacer?, quin lo debe hacer?, y cundo y cmo se debe hacer? durante el proceso de desarrollo R= Ciclo de vida del desarrollo de software: es una estructura aplicada al desarrollo de un producto de software. Hay varios modelos a seguir para el establecimiento de un proceso para el desarrollo de software, cada uno de los cuales describe un enfoque diferente para diferentes actividades que tienen lugar durante el proceso. Qu se debe hacer durante el proceso de Desarrollo del Software? R= La importante tarea a la hora de crear un producto de software es obtener los requisitos o el anlisis de los requisitos. Los clientes suelen tener una idea ms bien abstracta del resultado final, pero no sobre las funciones que debera cumplir el software. Una vez que se hayan recopilado los requisitos del cliente, se debe realizar un anlisis del mbito del desarrollo. Este documento se conoce como especificacin funcional. Requiere llevar a cabo numerosas tareas agrupadas en etapas: a- Anlisis de requisitos: Se extraen los requisitos de un producto de software es la primera etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere habilidad y experiencia para reconocer requisitos incompletos, ambiguos o contradictorios.

B-Especificacin: La especificacin de requisitos describe el comportamiento esperado en el software una vez desarrollado. Gran parte del xito de un proyecto de software radicar en la identificacin de las necesidades del negocio (definidas por la alta direccin), as como la interaccin con los usuarios funcionales para la recoleccin, clasificacin, identificacin, priorizacin y especificacin de los requisitos del software. c-Arquitectura: Es La integracin de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas gerenciales, requieren de capacidad y liderazgo para poder ser conceptualizados y proyectados a futuro, solucionando los problemas de hoy, la arquitectura de sistemas en general, es una actividad de planeacin, ya sea a nivel de infraestructura de red y hardware, o de software. D-Programacin: Reducir un diseo a cdigo puede ser la parte ms obvia del trabajo de ingeniera de software, pero no necesariamente es la que demanda mayor trabajo y ni la ms complicada. La complejidad y la duracin de esta etapa est ntimamente relacionada al o a los lenguajes de programacin utilizados, as como al diseo previamente realizado e-Prueba: Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificacin del problema. Una tcnica de prueba es probar por separado cada mdulo del software, y luego probarlo de forma integral, para as llegar al objetivo. Se considera una buena prctica el que las pruebas sean efectuadas por alguien distinto al desarrollador que la program, idealmente un rea de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas. F-Mantenimiento: Fase dedicada a mantener y mejorar el software para corregir errores descubiertos e incorporar nuevos requisitos. Esto puede llevar ms tiempo incluso que el desarrollo del software inicial. Alrededor de 2/3 del tiempo de ciclo de vida de un proyecto est dedicado a su mantenimiento. Una pequea parte de este trabajo consiste eliminar errores (bugs); siendo que la mayor parte reside en extender el sistema para incorporarle nuevas funcionalidades y hacer frente a su evolucin. Quin lo debe hacer? En la ingeniera del software la responsabilidad ser compartida por un grupo grande de personas, que comprende desde el ingeniero de requisitos, hasta el arquitecto software, y contando con el diseador, o el encargado de realizar las pruebas. Por encima de todos ellos destaca el director del proyecto. El software demanda una clara distribucin de la responsabilidad entre los diferentes roles que se dan en el proceso de produccin. El ingeniero del software tiene una responsabilidad moral y legal limitada a las consecuencias directas.

Cundo y cmo se debe hacer? El proceso de desarrollo se debe de realizar cuando est todo listo desde las tareas de administracin, tcnico, gestin y el gerenciamiento. Pero, casi rigurosamente se pueden resumir de la siguiente manera: a-Captura, licitacin especificacin y anlisis de requisitos (ERS) B-Diseo c-Codificacin d.Pruebas (unitarias y de integracin) e-Instalacin y paso a produccin f-Mantenimiento Tal como lo describe IanSommerville1 y Roger S. Pressman2 el ciclo de vida del software contiene en s mismo un proceso de desarrollo; por lo tanto los modelos de ciclo de vida del software que con anterioridad hemos estudiado son considerados igualmente modelos de Proceso de desarrollo de software Son Modelos porque se encargan de Codificar y Fijar los procesos a desarrollar, estos pueden ser: a-Modelo en cascada o Clsico (modelo tradicional) b- Modelo de prototipos c-Modelo en espiral d-Desarrollo por etapas e-Desarrollo iterativo y creciente o Iterativo e Incremental f-RAD (Rapid Application Development) g-Desarrollo concurrente h-Proceso Unificado i-RUP (Proceso Unificado de Rational)

1 2

Ingeniera del software - Sptima edicin Ingeniera del software, un enfoque prctico - Quinta edicin

A parte de estos modelos, investigue sobre otros Modelos de Proceso de desarrollo de Software propuestos

Modelo en cascada: Es un enfoque metodolgico que ordena rigurosamente las etapas del ciclo de vida del software, de forma que el inicio de cada etapa debe esperar a la finalizacin de la inmediatamente anterior. El modelo en cascada es un proceso de desarrollo secuencial, en el que el desarrollo se ve fluyendo hacia abajo (como una cascada) sobre las fases que componen el ciclo de vida Modelo en V :El modelo en v se desarroll para terminar con algunos de los problemas que se vieron utilizando el enfoque de cascada tradicional. Los defectos estaban siendo encontrados demasiado tarde en el ciclo de vida, ya que las pruebas no se introducan hasta el final del proyecto. Modelo iterativo: Es un modelo derivado del ciclo de vida en cascada. Este modelo busca reducir el riesgo que surge entre las necesidades del usuario y el producto final por malos entendidos durante la etapa de recogida de requisitos. Modelo de desarrollo incremental: El modelo incremental combina elementos del modelo en cascada con la filosofa interactiva de construccin de prototipos. Se basa en la filosofa de construir incrementando las funcionalidades del programa. Este modelo aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un incremento del software. Consiste en la iteracin de varios ciclos de vida en cascada. Modelo en espiral: El desarrollo en espiral es un modelo de ciclo de vida desarrollado por Barry Boehm en 1985, utilizado de forma generalizada en la ingeniera del software. Las actividades de este modelo se conforman en una espiral, cada bucle representa un conjunto de actividades. Las actividades no estn fijadas a priori, sino que las siguientes se eligen en funcin del anlisis de riesgos, comenzando por el bucle anterior.

Modelo de prototipos: El paradigma de construccin de prototipos comienza con la recoleccin de requisitos. El desarrollador y el cliente encuentran y definen los objetivos globales para el software, identifican los requisitos conocidos y las reas del esquema en donde es obligatoria ms definicin. Entonces aparece un diseo rpido. El diseo rpido se centra en una representacin de esos aspectos del software que sern visibles para el usuario/cliente. El diseo rpido lleva a la construccin de un prototipo. El prototipo lo evala el cliente/usuario y se utiliza para refinar los requisitos del software a desarrollar. La iteracin ocurre cuando el prototipo se pone a punto para satisfacer las necesidades del cliente, permitiendo al mismo tiempo que el desarrollador comprenda mejor lo que se necesita hacer.

III- Cul es el objetivo de la Ingeniera Web?, Qu sucesos en el mundo y qu razones actuales han hecho surgir este concepto y aplicacin de ingeniera?, En qu se centra la ingeniera web? Cul es el objetivo de la ingeniera web? R= Es la aplicacin de metodologas sistemticas, disciplinadas y cuantificables al desarrollo eficiente, operacin y evolucin de aplicaciones de alta calidad en la World Wide Web. Qu sucesos en el mundo y que razones actuales han hecho surgir este concepto y aplicacin de la ingeniera? R=La ingeniera web se debe al crecimiento desenfrenado que est teniendo la Web est ocasionando un impacto en la sociedad y el nuevo manejo que se le est dando a la informacin en las diferentes reas en que se presenta ha hecho que las personas tiendan a realizar todas sus actividades por esta va. Desde que esto empez a suceder el Internet se volvi ms que una diversin y empez a ser tomado ms en serio, ya que el aumento de publicaciones y de informaciones hizo que la Web se volviera como un desafo para los (Ingeniera del software) ingenieros del software, a raz de esto se crearon enfoques disciplinados, sistemticos y metodologas donde tuvieron en cuenta aspectos especficos de este nuevo medio.

En qu se centra la ingeniera web? R= Uno de los aspectos ms tenidos en cuenta, en el desarrollo de sitios web es sin duda alguna el diseo grfico y la organizacin estructural del contenido. En la actualidad la web est sufriendo grandes cambios, que han obligado a expertos en el tema a utilizar herramientas y tcnicas basadas en la ingeniera del software, para poder garantizar el buen funcionamiento y administracin de los sitios web. Para garantizar el buen funcionamiento y mantenimiento de los sitios web, este debe contar con ciertos atributos y caractersticas que en conjunto forman un concepto muy importante, para alcanzar el xito en cualquier organizacin, herramienta, y todo aquello que se pueda considerar como servicio. Dicho concepto es la calidad, que con atributos como, usabilidad, navegabilidad, seguridad, Mantenibilidad, entre otros, hace posible por un lado la eficiencia del artefacto web y por ende la satisfaccin del usuario final. Pero para tener artefactos de calidad, a esa misma se le debe planificar, programar y controlar, es decir la calidad no podr ser agregada a un artefacto web o a cualquier otro producto, al final del proceso de desarrollo, si no que se deber implementar durante todo el ciclo de vida del desarrollo. Para finalizar el resultado de un proceso de calidad, podra arrojar recomendaciones para introducir mejoras, y la decisin final podra consistir en lanzar una nueva

versin del sitio web o en modificar algunos atributos ausentes o pobremente diseados. Cabe destacar que la ingeniera de la web hace una diferencia entre un webSite y una aplicacin, ya que la ingeniera de la web no se dedica a la construccin de sitios web si no a la construccin de aplicaciones web la principal caracterstica que los distingue (aplicaciones de sitios web) es que los sitios web son sitios en la web en donde se publica contenido generalmente esttico o un muy bajo nivel de interactividad con el usuario, mientras que las aplicaciones son lugares con alto contenido de interactividad y funcionalidades que bien podran ser de un software convencional, la aplicacin web ms sencillo seria uno que contenga formularios y subiendo de nivel encontramos los que realizas conexin con bases de datos remotas, y administradores de contenidos entre otras. Entonces la ingeniera de la Web es la aplicacin de metodologas sistemticas, disciplinadas y cuantificables al desarrollo eficiente, operacin y evolucin de aplicaciones de alta calidad en la World Wide Web. En este sentido, la ingeniera de la Web hace referencia a las metodologas, tcnicas y herramientas que se utilizan en el desarrollo de aplicaciones Web complejas y de gran dimensin en las que se apoya la evaluacin, diseo, desarrollo, implementacin y evolucin de dichas aplicaciones.

De la informacin proporcionada hacer un resumen de PROBLEMAS DEL SOFTWARE, y explicar cada uno de ellos. PROBLEMAS DEL SOFTWARE I. 1-Gestin de proyectos en ingeniera de software: a-Lista de anti patrones, los cuales se conciben como manifestaciones de mala prctica, en contraste con la lista de patrones de diseo. b- Relacin pobremente predecible entre duracin del proyecto y funcionalidad del programa. c- Deteccin sistemtica de errores de software. d- Tendencia estadstica del proyecto a alargarse en el tiempo ms de lo planeado y a excederse del presupuesto. e- Agregar mano de obra adicional a un proyecto de software que est retrasado (en especial en las ltimas partes del proyecto) puede causar un posterior desprendimiento del plan debido al sobrecosto experimentado durante la integracin de nuevos empleados. 2-Complejidad de programacin: a-En general, la complejidad actual de muchos lenguajes de programacin B-Complejidad actual de muchas aplicaciones, al extremo que empresas que desarrollan software puede fracasar cuando los programadores se

van, debidos a que no hay nadie ms que entienda lo que ellos han hecho. 3-Estndares (software): a- La implementacin en forma no convencional de estndares o especificaciones por parte de mltiples organizaciones da como resultado un requerimiento de cdigo especfico de implementacin y de excepciones en casos especiales, como una necesidad para que haya interoperabilidad entre distintas plataformas. Ejemplos notorios en la actualidad son la compatibilidad de los navegadores web y la interoperabilidad de servicios web. b- Arbitrariedad de muchos conceptos de software, lo cual est relacionado con la implementacin de hardware y software, la falta de estndares comunes a nivel mundial, y con presiones econmicas .