Beruflich Dokumente
Kultur Dokumente
Captulo 1. Introduccin
SISTEMA SOFTWARE
PROGRAMA
PROYECTO SOFTWARE
PRODUCTO SOFTWARE + Requisitos + Arquitectura + Interfaces e integracin + Algoritmos y estructuras de datos +
Carrera profesional
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
Dcada 1960-70:
Generalizacin POO Programacin visual Tecnologa de componentes Interoperabilidad (CORBA) Nuevas plataformas (Java, .NET) Anlisis/Diseo OO
Dcada 1970-80:
Dcada 2000-10
Dcada 1980-90:
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
(Thayer 2002)
Portable
Capaz de integrarse en entornos distintos con el mnimo esfuerzo.
Adaptable (extensible)
Modificar alguna funcin sin que afecte a sus actividades.
No Errneo
Inteligible
Diseo claro, bien estructurado y documentado.
Eficiente Robusto
Reutilizable
El software puede ser usado con facilidad en nuevos desarrollos.
100 80 60 40 20 0
60 70 80
aos
Hardware
Software
Usado despus de cambios ~ 3% Usado tal como se entreg ~ 2% Ao 1979 Total: $6.8 millones Origen: desconocido
Desarrollo inicial
Desarrollo inicial
3/4
1/3
Anlisis y diseo
1/6
codificacin
Mantenimiento
1/2
Validacin y puesta a punto (V/PP)
1/8
V/PP
A/D
3/4
Mantenimiento
VALIDACIN + PP + MANT. = 7/8 (88%) CODIFICACIN = 1/24 (4%) ANLISIS + DISEO = 1/12 (8%)
TOTAL
Le to n ia
23% ,4 28% ,6 19% ,5 21% ,3 34% ,5 25% ,8 32% ,0 24% ,9 44% ,3 24% ,8 17% ,6 36% ,9 35% ,2 33% ,2 18% ,1 32% ,0 32% ,0 27% ,8 27% ,6 29% ,1 21% ,8 27% ,1 27% ,2 30% ,8 32% ,7 28% ,3 28% ,3 31% ,1 30% ,4 28% ,5 35% ,7 30% ,3 29% ,2 23% ,5 21% ,4 42% ,9 30% ,4 30% ,5 29% ,5 49% ,6 42% ,5 28% ,2 49% ,9 43% ,8 50% ,4 42% ,0 62% ,5 71% ,2 68% ,0
75% ,5
En Espaa
17% ,1 14% ,0
G re ci a N o ru eg a Ir la nd a
www.telefonica.es/sociedaddelainformacion/pdf/informes/espana_2007/SIE_2007.pdf
TIC TI
En Espaa (II)
Fuente: AETIC (Asociacin de Empresas de Electrnica, Tecnologas de la Informacin y Telecomunicaciones de Espaa) www.aetic.es
En Espaa (III)
Software de aplicacin a medida. Poco software de base, paquetes integrados. Vigente la situacin general.
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.
Hoy da, Existe un consenso en la importancia de la ISW. Se ha avanzado mucho, pero queda mucho por hacer. Muchos autores comienzan a renegar de la vigencia de la crisis del software, aunque la disciplina todava no es madura.
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:
Estamos desarrollando el programa correcto? Estamos desarrollando correctamente el programa?
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 se caracterizan las interfaces, 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.
Debe ser
fcil de mantener
Tipos de mantenimiento
correctamente la aplicacin para la que ha sido diseado, y, por tanto, debe ser modificado
para conseguir mayor adecuacin a los requisitos, mayor eficiencia, o simplemente recoger nuevas funcionalidades no expresadas en la fase de definicin del sistema
DESARROLLO
Fallos de definicin
MANTENIMIENTO
Errores
Modificaciones y adaptaciones
(Pressman)
60-100x
Mantenimiento
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.