Professional Documents
Culture Documents
Este trmino fue introducido a finales de los 60 a raz de la crisis del software. Esta crisis fue el resultado de la introduccin de la tercera generacin del hardware. El hardware dejo de ser un impedimento para el desarrollo de la informtica; redujo los costos y mejoro la calidad y eficiencia en el software producido La crisis se caracterizo por los siguientes problemas: Imprecisin en la planificacin del proyecto y estimacin de los costos. Baja calidad del software. Dificultad de mantenimiento de programas con un diseo poco estructurado, etc. Por otra parte se exige que el software sea eficaz y barato tanto en el desarrollo como en la compra. Tambien se requiere una serie de caractersticas como fiabilidad, facilidad de mantenimiento y de uso, eficiencia, etc. Objetivos de la ingeniera de software En la construccin y desarrollo de proyectos se aplican mtodos y tcnicas para resolver los problemas, la informtica aporta herramientas y procedimientos sobre los que se apoya la ingeniera de software. mejorar la calidad de los productos de software aumentar la productividad y trabajo de los ingenieros del software. Facilitar el control del proceso de desarrollo de software.
Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente. Definir una disciplina que garantice la produccin y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado. Objetivos de los proyectos de sistemas Para que los objetivos se cumplan las empresas emprenden proyectos por las siguientes razones: Las cinco C Capacidad Los sistemas de informacin mejoran esta capacidad en tres formas.
Los sistemas basados en computadora pueden ser de ayuda para eliminar la necesidad de clculos tediosos y comparaciones repetitivas. Un sistema automatizado puede ser de gran utilidad si lo que se necesita es un procesamiento acelerado.
Aumento en el volumen:
La incapacidad para mantener el ritmo de procesamiento no significa el abandono de los procedimientos existentes. Quiz stos resulten inadecuados para satisfacer las demandas actuales. En estas situaciones el analista de sistemas considera el impacto que tiene la introduccin de procesamiento computarizado, si el sistema existente es manual. Es poco probable que nicamente el aumento de la velocidad sea la respuesta. El tiempo de procesamiento por transaccin aumenta si se considera la cantidad de actividades comerciales de la empresa junto con su patrn de crecimiento.
Las organizaciones almacenan grandes cantidades de datos, por eso, debe tenerse en cuenta donde almacenarlos y como recuperarlos cuando se los necesita. Cuando un sistema se desarrolla en forma apropiada, se puede recuperar en forma rpida la informacin.
Costo
Para determinar si la compaa evoluciona en la forma esperada, de acuerdo con lo presupuestado, se debe llevar a cabo el seguimiento de los costos de mano de obra, bienes y gastos generales. La creciente competitividad del mercado crea la necesidad de mejores mtodos para seguir los costos y relacionarlos con la productividad individual y organizacional.
Reduccin de costos:
Los diseos de sistemas ayudan a disminuir los costos, ya que toman ventaja de las capacidades de clculo automtico y de recuperacin de datos que estn incluidos en procedimientos de programas en computadora. Muchas tareas son realizadas por programas de cmputo, lo cual deja un nmero muy reducido de stas para su ejecucin manual, disminuyendo al personal. Control
La ingeniera del software trata con reas muy diversas de la Informtica y de las Ciencias de la Computacin,tales como construccin de compiladores, sistemas operativos o desarrollos de Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de informacin y aplicables a una infinidad de reas tales como: negocios, investigacin cientfica, medicina, produccin, logstica, banca,
Herramientas Case
Las herramientas CASE (Computer Aided Software Engineering, Ingeniera de Software Asistida por Ordenador) son diversas aplicaciones informticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el coste de las mismas en trminos de tiempo y de dinero. Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseo del proyecto, calculo de costes, implementacin de parte del cdigo automticamente con el diseo dado, compilacin automtica, documentacin o deteccin de errores entre otras. Objetivos 1. Mejorar la productividad en el desarrollo y mantenimiento del software. 2. Aumentar la calidad del software. 3. Mejorar el tiempo y coste de desarrollo y mantenimiento de los sistemas informticos. 4. Mejorar la planificacin de un proyecto 5. Aumentar la biblioteca de conocimiento informtico de una empresa ayudando a la bsqueda de soluciones para los requisitos. 6. Automatizar, desarrollo del software, documentacin, generacin de cdigo, pruebas de errores y gestin del proyecto. 7. Ayuda a la reutilizacin del software, portabilidad y estandarizacin de la documentacin 8. Gestin global en todas las fases de desarrollo de software con una misma herramienta. 9. Facilitar el uso de las distintas metodologas propias de la ingeniera del software. Clasificacin Aunque no es fcil y no existe una forma nica de clasificarlas, las herramientas CASE se pueden clasificar teniendo en cuenta los siguientes parmetros: 1. Las plataformas que soportan.
2. Las fases del ciclo de vida del desarrollo de sistemas que cubren. 3. La arquitectura de las aplicaciones que producen. 4. Su funcionalidad. La siguiente clasificacin es la ms habitual basada en las fases del ciclo de desarrollo que cubren: Upper CASE (U-CASE), herramientas que ayudan en las fases de planificacin, anlisis de requisitos y estrategia del desarrollo, usando, entre otros diagramas UML. Middle CASE (M-CASE), herramientas para automatizar tareas en el anlisis y diseo de la aplicacin.
La Ingeniera del Software, trmino utilizado por primera vez por Fritz Bauer en la primera conferencia sobre desarrollo de software patrocinada por el Comit de Ciencia de la OTAN celebrada en Garmisch, Alemania, en octubre de 1968, puede definirse segn Alan Davis como la aplicacin inteligente de principios probados, tcnicas, lenguajes y herramientas para la creacin y mantenimiento, dentro de un coste razonable, de software que satisfaga las necesidades de los usuarios El trmino ingeniera del software empez a usarse a finales de la dcada de los sesenta, para expresar el rea de conocimiento que se estaba desarrollando en torno a las problemticas que ofreca el software en ese momento. En esa poca, el crecimiento espectacular de la demanda de sistemas de computacin cada vez ms y ms complejos, asociado a la inmadurez del propio sector informtico (totalmente ligado al electrnico) y a la falta de mtodos y recursos, provoc lo que se llam la crisis del software (en palabras de Edsger Dijkstra) entre los aos 1965 y 1985. Durante esa poca muchos proyectos importantes superaban con creces los presupuestos y fechas estimados, algunos de ellos eran tan crticos (sistemas de control de aeropuertos, equipos para medicina, entre otros) que sus implicaciones iban ms all de las prdidas millonarias que causaban. La crisis del software pas, no tanto por la mejora en la gestin de los proyectos, sino en parte porque no es razonable estar en crisis ms de veinte aos, y en
parte porque se estaban haciendo progresos en los procesos de diseo y metodologas. As pues, desde 1985 hasta el presente, han ido apareciendo herramientas, metodologas y tecnologas que se presentaban como la solucin definitiva al problema de la planificacin, previsin de costes y aseguramiento de la calidad en el desarrollo de software. Entre las que se encuentran la programacin estructurada, la programacin orientada a objetos, a los aspectos, las herramientas CASE, el lenguaje de programacin ADA, la documentacin, los estndares, CORBA, los servicios web y el lenguaje UML (entre otros) fueron todos anunciados en su momento como la solucin a los problemas de la ingeniera del software, la llamada bala de plata (por silver bullet). Y lo que es ms, cada ao surgen nuevas ideas e iniciativas encaminadas a ello. En combinacin con las herramientas, tambin se han hecho esfuerzos por incorporar los mtodos formales al desarrollo de software, argumentando que si se probaba formalmente que los desarrollos hacan lo que se les requera, la industria del software sera tan predecible como lo son otras ramas de la ingeniera.
Poca productividad Elevadas cargas de mantenimiento Demandas cada vez ms desfasadas con las ofertas Baja calidad y fiabilidad del producto Dependencia de los realizadores esto es lo que se ha denominado comnmente como crisis del software Cmo se define crisis?
La palabra crisis se defien en el diccionario como un punto decisivo en el curso de algo; momento, etapa, o evento decisivo o crucial. Sin embargo para el software no ha habido ningn punto crucial, slo una lenta evolucin. La crisis en la industria del software ha permanecido durante muchos aos, lo cual parece una contradiccin par el trmino. Lo que si se podra decir es que hay un problema crnico en el desarrollo de software. Ello ha venido originado por una falta de:
Formalismo y metodologa
Muchas de las causas de la crisis del software pueden ser encontradas en una mitologa que surge durante los primeros aos del desarrollo del software Los mitos del software propagaron informacin errnea y con fusin - Los mitos del software tienen varios atributos que los hacen insidiosos: Aparecen como declaraciones responsables de hechos Tuvieron un sentido intuitivo Frecuentemente fueron promulgados por expertos que estaban al da Surgen en los primeros aos del desarrollo _____________ | | | Coste | | | | | | del | | 60 | | __________ | | Cam | ___________ | | | 100x | bio | | 1x | | 1,5 6x | | | |__|_________|__|________|____|___________|_______ Definicin Desarrollo Mantenimiento Si se pone atencin en dar la definicin inicial,los cambios solicitados pueden pronto acomodarse facil ente, con relativamente poco coste Cuando los cambios se solicitan durante el diseo diseo del software, el impacto en el coste crece rpidamente. Cuando se solicita al final de un proyecto, los cam bios pueden producir un orden de magnitud ms caro que el mismo cambio pedido al principio. Mitos_de_Gestin Los gestores estn normalmente bajo la presin de cumplir presupuestos, hacer que no se retrase el proyecto y mejorar la calidad. El gestor se agarra a un mito del software aun que tal creencia slo disminuya la presin temporalmente Mito: Porqu debemos cambiar nuestra forma de desarro llar el Software? Estamos haciendo el mismo tipo de programacin a hora que hace diez aos Realidad: Aunque el dominio de la aplicacin puede ser el
mismo, la demanda de una mayor productividad y calidad, y el papel critico del software en obje tivos comerciales estratgicos, ha aumentado sus tancialmente Mito : Tenemos un libro que est lleno de estandares y procedimientos para construir software Realidad: Pero se usa?,conocen los trabajadores su existencia?,refleja las practicas modernas en desarrollo del software?,es completo?. En muchos casos la respuesta a todas estas preguntas es no Mito : Nuestra gente dispone de las herramientas de desarrollo de software ms avanzadas, despus de todo les compramos las computadoras mas nuevas Realidad: Se necesita mucho ms que el ltimo modelo de computadora, herramientas de software, las cua les son mucho mas importantes que el hardware para conseguir buena calidad y productividad. Mitos_de_los_realizadores Los mitos en los que an creen muchos programadores se han fomentado durante cuatro dcadas de cultura Informtica Las viejas formas y actitudes tardan en morir Mito: No hay realmente ningn metodo para el anlisis,dise o y prueba que funcione bien, yo simplemente me voy a mi terminal y comienzo a codificar Realidad: Existen en la industria mtodos comprobados para el diseo,anlisis y prueba, ninguno es infali ble, pero el uso de una metodologa para el de sarrollo del software est implcito en todos ellos Mito: Una vez que escribimos el programa y hacemos que fun cione, nuestro trabajo ha terminado. Realidad: Mientras ms pronto se comience a escribir cdigo ms se tarda en terminarlo El desarrollo del software abarca tres actividades Definicin Desarrollo Mantenimiento Adems los datos industriales indican que entre el 50% y 70% de todo el esfuerzo dedicado a un programa se realizara despus de que se le haya entregado al cliente por primera vez.
*Facilidad de modificacin *Confiabilidad La Tecnologia Orientada a Objetos ha demostrado ser una excelente herramienta para resolver problemas de gran envergadura y complejidad, permitiendo obtener sistemas interoperables, modulares, evolutivos y con alto ndice de reusabilidad. La reutilizacin conduce a un desarrollo ms rpido y programas de mejor calidad. Las tcnicas orientadas a objetos combinadas con otras herramientas como las CASE (ingeniera de software asistida por coputadora), programacin visual, generadores de cdigo, metodologas basadas en depositos, bases de datos, bibliotecas de clases que maximicen la reutilizacin, tecnologa cliente servidor, etc.; pueden proporcionar la magnitud de cambio necesario para lograr ese salto anteriormente mencionado. En este captulo se describen los principales factores que determinan la calidad del software y se introducen los principios y conceptos y conceptos bsicos en que se basa para producir software de alta calidad y confiabilidad Ingeniera de software es la disciplina o rea de la informtica que ofrece mtodos y tcnicas para desarrollar y mantener software de calidad. Esta ingeniera trata con reas muy diversas de la informtica y de las Ciencias de la Computacin, tales como construccin de compiladores, Sistemas Operativos, o desarrollos Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de Sistema de Informacin y aplicables a infinidad de reas (negocios, investigacin cientfica, medicina, produccin, logstica, banca, control de trfico, meteorologa, derecho, Internet Intranet, etc.).