Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Captulo 1. Introduccin
un poco de historia
primeras dcadas:
desarrollar el hardware reducir costes de procesamiento y almacenamiento desarrollo de la microelectrnica mayor potencia de clculo y reduccin de costes
1959 - 1965
Orientacin por lotes Distribucin limitada Software a medida
1975 - 1989
Sistemas distribuidos Inteligencia Artificial Hardware de bajo coste Impacto en el consumo Redes area local y global Gran demanda
1989 Potentes sistemas de sobremesa Tecnologa de objetos Sistemas expertos Redes neuronales Cliente/servidor Tecnologas de Internet.
Subexplotacin del potencial del hardware Incapacidad de atender a la demanda Incapacidad de mantener el software existente
Sin tiempo para recoger datos histricos Planificacin y estimaciones imprecisas Insatisfaccin del cliente Calidad Dificultad de mantener el software existente Baja productividad
MITOS DE LOS DESARROLLADORES - Programa funcionando = fin del trabajo - Calidad = el programa se ejecuta sin errores - Entrega al cliente: programa funcionando
MITOS DEL CLIENTE - Requisitos establecidos como una declaracin general de objetivos - Flexibilidad del software ante los cambios
definiciones establecimiento y uso de principios de ingeniera robustos, orientados a obtener software econmico, fiable, eficiente y que satisfaga las necesidades del usuario disciplina que comprende todos los aspectos de la produccin de software, desde las etapas iniciales hasta el mantenimiento:
disciplina de ingeniera : aplicacin de teoras, mtodos y herramientas para solucionar problemas, y teniendo en cuenta restricciones financieras y organizativas todos los aspectos de produccin : comprende procesos tcnicos del desarrollo y actividades como la administracin de proyectos, desarrollo de herramientas, mtodos y teoras modelado solucin de problemas adquisicin de conocimiento dirigida por una fundamentacin
actividad de
herramientas para automatizar los mtodos filosofa de coordinacin, control y buena gestin
modelado
modelos
SISTEMA SOFTWARE
PROGRAMA
PROYECTO SOFTWARE
PRODUCTO SOFTWARE + Requisitos + Arquitectura + Interfaces e integracin + Algoritmos y estructuras de datos +
Origen: desconocido
2. El software
Programas de computador, procedimientos, y, posiblemente, la documentacin asociada y los datos pertenecientes a las operaciones de un sistema de computacin"
Instrucciones que, cuando se ejecutan, proporcionan la funcionalidad deseada. Estructuras de datos, que facilitan a las instrucciones manipular adecuadamente la informacin. Base de datos, que registra la informacin que maneja el sistema. Documentos, que describen el desarrollo, uso, instalacin y mantenimiento de los programas.
Mayoritariamente cerrado:
tradicionalmente, usado todo o nada tradicionalmente, poco ensamblaje de componentes
Dcada 1990-00
Generalizacin POO Programacin visual Tecnologa de componentes Interoperabilidad (CORBA) Nuevas plataformas (Java, .NET) Anlisis/Diseo OO
Dcada 1960-70:
Software como producto Primeras aplicaciones complejas Dcada lenguajes y compilacin Crisis del software
Dcada 1970-80:
Programacin estructurada Modelo relacional Primeras etapas Ingeniera del Software Primeros mtodos estructurados Modelado de datos
Dcada 2000-10
Generalizacin comercio electrnico Web 2.0 Desarrollo web Seguridad Arquitecturas basadas en servicios (SOA) Mtodos giles GSD: Global Software Development Desarrollo open source MDE: Model-Driven Engineering
Dcada 1980-90:
Programacin OO 4GLs C/S Tecnologa de SGBDs, SOs Mtodos estructurados Primeros mtodos OO Tecnologa CASE (1 generacin)
(Thayer 2002)
Portable
Capaz de integrarse en entornos distintos con el mnimo esfuerzo.
Fiable
Capacidad de ofrecer los mismos resultados bajo las mismas condiciones.
Adaptable (extensible)
Modificar alguna funcin sin que afecte a sus actividades.
No Errneo
No existe diferencia entre los valores reales y los calculados
Inteligible
Diseo claro, bien estructurado y documentado.
Eficiente
Utilizacin ptima de los recursos de la mquina.
Reutilizable
El software puede ser usado con facilidad en nuevos desarrollos.
Robusto
No poseer un comportamiento catastrfico ante situaciones excepcionales (tolerante a fallos).
100 80 60 40 20 0
60 70 80
aos
Hardware Software
Algunas causas
Naturaleza no fsica de la programacin. El sw es la parte ms maleable del sistema Problemas de comunicacin con los clientes. Problemas derivados de la intervencin de grupos. Problemas de gestin.
Planificaciones optimistas, plantillas poco cualificadas...
Poco esfuerzo en anlisis y diseo. Difusin limitada de las nuevas tcnicas, mtodos y herramientas.
(Brooks 87)
herramientas 4 gen.
lenguajes no procedimentales para consulta a BDs generadores de pantallas, generadores de cdigo, generadores de informes
Ms definiciones de ISW...
La ISW es el establecimiento y uso de principios slidos de ingeniera, orientados a obtener software econmico que sea fiable y trabaje de manera eficiente en mquinas reales (Fritz Bauer). ISW: (1) La aplicacin de un enfoque sistemtico, disciplinado y cuantificable para el desarrollo, la operacin y el mantenimiento del software; es decir, la aplicacin de la ingeniera al software; (2) El estudio de enfoques como en (1) (Glosario Estndar de Trminos de Ingeniera del Software de IEEE, 1998). Una disciplina que comprende todos los aspectos de la produccin de software desde las etapas iniciales de la especificacin del sistema, hasta el mantenimiento de ste despus de que se utiliza (Sommerville 2002).
Sin embargo, ms all de las tecnologa, si miramos los procesos de ingeniera del software, desgraciadamente muchas cosas permanecen igual.
El modelo en cascada sigue siendo utilizado por ms del 40% de las empresas (IEEE Software, Dic. 2003), a pesar de que sus serios problemas fueron identificados hace 20 aos. La prueba es la tcnica de validacin predominante, a pesar de que otras tcnicas, como la inspeccin de programas, han sido usados ms eficientemente desde los aos 70. Las herramientas CASE son todava simplemente editores de diagramas con algunas funcionalidades de chequeo y generacin de cdigo. Todava muchos proyectos terminan tarde, exceden el presupuesto o no entregan el software que esperaban los clientes.
Localizacin
Deben estar agrupados todos aquellos elementos que estn afectados por un mismo hecho.
Uniformidad
Tdos los mdulos deben tener una notacin similar.
Completitud
Deben estar desarrollados todos los aspectos del sistema.
Validacin y Verificacin
El producto final debe ser fcilmente validable y verificable:
Modularidad
Sirve para parcelar la solucin en mdulos independientes con fuerte cohesin interna.
Definicin
Qu debe hacer el sistema?
funcionalidad del sistema informacin que ha de manejar necesidades de rendimiento restricciones de diseo interfaces del sistema con los usuarios y con otros sistemas criterios de validacin
Documentos de requisitos del sistema (SyRS, System Requirements Specification) (en su caso) y del software (SRS, Software Requirements Specification)
Desarrollo
Cmo construir el sistema?
Se disean las estructuras de datos y los programas
cmo realizar el paso del diseo al lenguaje de programacin, cmo ha de realizarse la prueba,
Mantenimiento
Comienza una vez construido el sistema, cuando se pone en explotacin. Se centra en el cambio. El software es sometido a reparaciones y modificaciones cada vez que se detecta un fallo o se necesita cubrir una nueva necesidad de los usuarios. En esta fase recae el mayor porcentaje del coste de un sistema.
Mantenimiento (II)
Un buen sistema no es slo un conjunto de programas que funcionan.
Tipos de mantenimiento
Correctivo: un programa no realiza
correctamente la aplicacin para la que ha sido diseado, y, por tanto, debe ser modificado
DESARROLLO
Fallos de definicin
MANTENIMIENTO
Errores
Modificaciones y adaptaciones
(Pressman)
Est cobrando ms inters en los ltimos aos. Los ingenieros de software tienen responsabilidades frente a la profesin y la sociedad. Su responsabilidad no es exclusivamente tcnica. Deben comportarse de forma tica y moralmente responsable si quieren ser respetados como profesionales. Un ingeniero de software no debera comportarse de manera deshonesta o de una forma que perjudique a la profesin.
Es preciso aceptar dicho cdigo para poder ser miembro de estas organizaciones.
El Octavo Principio establece como obligacin el aprendizaje continuo a travs de toda la vida profesional.