Software

Embed Size (px)

Citation preview

Diapositiva 1

softwareHISTORIA

CRISIS

METODOLOGA DE DESARROLLO

HISTORIALa historia del software como se ha visto, no surge con los equipos electrnicos, esta, est presente desde el empleo de bacos o sumadoras mecnicas. Sin embargo, en estos casos, el software no se encuentra incorporado en el equipo. Es aportado por el operario. La mquina analtica de Charles Babbage, incidentalmente, tuvo su software, y fue una amiga de ste, la legendaria lady Lovelace, quien aport el software que no se lleg a usar, dado que la mquina nunca se complet. En el ENIAC el control de las operaciones estaba parcialmente integrado en el equipo. Dicho control era realizado por un circuito que requera un alambrado especfico para cada aplicacin. Imaginemos lo engorroso que resultaba realambrar el circuito cada vez que cambiaba el uso del ENIAC.Hasta este momento, no se perciba una diferencia sustancial entre el equipo y el control de las operaciones. El concepto de programa de control almacenado en memoria, aportacin popularmente atribuida a John Von Neumann, precipit el desarrollo de software. En ste se perfilaron dos tendencias de desarrollo: los programas de aplicacin y los de servicio. Estos ltimos tenan como propsito facilitar el desarrollo de programas a partir de programas. Algunos programas de servicio fueron simples cargadores que permitieron emplear notaciones como el octal o hexadecimal ms compactas que el binario. Otros como los ensambladores simplificaron ms el proceso al reemplazar las notaciones numricas con los smbolos mnemnicos que aportaron para describir a cada instruccin de la mquina. El siguiente paso significativo fue la traduccin de frmulas, que permiti el desarrollo de la historia del software y la descripcin de los algoritmos con el empleo de expresiones algebraicas.

Dicha traduccin se realiza con programas que se denominan compiladores, generan programas que al ejecutarse producen los resultados. Es importante destacar que en tanto los programas de aplicacin saturaron los recursos de los equipos, imponiendo sus requerimientos en cuanto a velocidad, precisin en la aritmtica y capacidad en los almacenamientos; los programas de servicio repercutieron en la evolucin de la arquitectura de los equipos (hardware). Entre las aportaciones ms notables, podemos citar el empleo de pilas y el reemplazo de referencias fsicas por lgicas. Con la pila (Push Down List), se da lugar al manejo recursivo de los procesos. Por ejemplo, esto ocurre en una oficina administrativa, cuando se pospone la solucin de un problema para resolver otro de mayor exigencia. El problema original se suspende y se aborda nuevamente cuando el de mayor exigencia ya ha sido resuelto. Con el reemplazo de referencias fsicas por lgicas, se obtuvo un incremento ms real que virtual de los recursos disponibles. Almacenamientos secundarios, registros operacionales, memoria virtual, memoria cache e hizo translapes (overlay), son algunas de las tcnicas que emplean este concepto. El efecto es similar al de las operaciones bancarias nominales con que las instituciones de crdito prestan varias veces su capital. Los elementos aportados por los programas de servicio, al interrelacionarse configuran el sistema operativo con el cual se administran los recursos disponibles en las computadoras y se establecen lneas de produccin para el proceso de programas con una mnima participacin del operario: la automatizacin de la automatizacin. En los principios de la historia del software, los sistemas operativos brotan como extensiones de los lenguajes. Posteriormente, el fenmeno se invierte de modo que los sistemas operativos configuren el ambiente en el que se desempean las aplicaciones y los programas de servicio.

CRISIS DEL SOFTWARELa crisis del software se fundament en el tiempo de creacin de software, ya que en la creacin del mismo no se obtenan los resultados deseados, adems de un gran costo y poca flexibilidad.Es un trmino informtico acuado en 1968, en la primera conferencia organizada por la OTAN sobre desarrollo de software, de la cual naci formalmente la rama de la ingeniera de software. El trmino se adjudica a F. L. Bauer, aunque previamente haba sido utilizado por Edsger Dijkstra en su obra The Humble Programmer.Bsicamente, la crisis del software se refiere a la dificultad en escribir programas libres de defectos, fcilmente comprensibles, y que sean verificables. Las causas son, entre otras, la complejidad que supone la tarea de programar, y los cambios a los que se tiene que ver sometido un programa para ser continuamente adaptado a las necesidades de los usuarios.Adems, no existen todava herramientas que permitan estimar de una manera exacta, antes de comenzar el proyecto, cul es el esfuerzo que se necesitar para desarrollar un programa. Este hecho provoca que la mayora de las veces no sea posible estimar cunto tiempo llevar un proyecto, ni cunto personal ser necesario. Cuando se fijan plazos normalmente no se cumplen por este hecho. Del mismo modo, en muchas ocasiones el personal asignado a un proyecto se incrementa con la esperanza de disminuir el plazo de ejecucin.

Por ltimo, las aplicaciones de hoy en da son programas muy complejos, inabordables por una sola persona. En sus comienzos se valor como causa tambin la inmadurez de la ingeniera de software, aunque todava hoy en da no es posible realizar estimaciones precisas del coste y tiempo que necesitar un proyecto de software.Englob a una serie de sucesos que se venan observando en los proyectos de desarrollo de software:Los proyectos no terminaban en plazo.Los proyectos no se ajustaban al presupuesto inicial.Baja calidad del software generado.Software que no cumpla las especificaciones.Cdigo inmantenible que dificultaba la gestin y evolucin del proyecto.Aunque se han propuesto diversas metodologas para intentar subsanar los problemas mencionados, lo cierto es que todava hoy no existe ningn mtodo que haya permitido estimar de manera fiable el coste y duracin de un proyecto antes de su comienzos.

METODOLOGA DEL DESARROLLOCONCEPTOS GENERALES

HISTORIA

CARACTERSTICAS ESENCIALES

CLASIFICACIN

CONCEPTOS GENERALESMetodologa: Conjunto de procedimientos, tcnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software.

Tarea: Actividades elementales en que se dividen los procesos.

Procedimiento: Definicin de la forma de ejecutar la tarea.

Tcnica: Herramienta utilizada para aplicar un procedimiento. Se pueden utilizar una o varias.

Herramienta: Para realizar una tcnica, podemos apoyarnos en las herramientas software que automatizan su aplicacin.

Producto: Resultado de cada etapa.

HISTORIAAOMETODOLOGA1968Conceptos sobre la programacin estructurada de DIJKSTRA1974Tcnicas de programacin estructurada de WARNIER y JACKSON1975 Primeros conceptos sobre diseo estructurado de MYERS y YOURDON1977 Primeros conceptos sobre anlisis estructurado GANE y SARSON1978Anlisis estructurado: DEMARCO y WEINBERG. Nace MERISE1981 SSADM (versin inicial) Information Engineering (versin inicial)1985Anlisis y Diseo estructurado para sistemas de tiempo real deWARD y MELLOR1986SSADM Versin 3

AOMETODOLOGA1987Anlisis y Diseo estructurado para sistemas de tiempo real deHATLEY y PIRHBAY1989METRICA (versin inicial)1990SSADM Versin 41993METRICA Versin 21995METRICA Versin 2.1

CREACIN DE METODOLOGADesarrollo Convencional (Sin Metodologa)

Desarrollo Estructurado

Los resultados finales son impredeciblesNo hay forma de controlar lo que est sucediendo en el ProyectoLos cambios organizativos afectan negativamente al proceso de desarrollo

Programacin estructuradaDiseo estructuradoAnlisis estructuradoEspecificaciones funcionales:GrficasParticionadasMnimamente redundantes

DESARROLLO DE METODOLOGAS OOLa esencia del desarrollo orientado a objetos es la identificacin y organizacin de conceptos del dominio de la aplicacin y no tanto de su representacin final en un Lenguaje de programacin.CARACTERSTICASSe eliminan fronteras entre fases debido a la naturaleza iterativa del desarrollo Orientado al objeto.Aparece una nueva forma de concebir los lenguajes de programacin y su uso al Incorporarse bibliotecas de clases y otros componentes reutilizables.Hay un alto grado de iteracin y solapamiento, lo que lleva a una forma de trabajo muy Dinmica.ASPECTOS POSITIVOSSon interactivas e Incrementales.Fcil de dividir el sistema en varios subsistemas independientes.Se fomenta la reutilizacin de componentes.

CARACTERSTICAS ESENCIALESExistencia de reglas predefinidas

Cobertura total del ciclo de desarrollo

Verificaciones intermedias

Planificacin y control

Comunicacin efectiva

Utilizacin sobre un abanico amplio de proyectos

Fcil formacin

Herramientas CASE

Actividades que mejoren el proceso de desarrollo

Soporte al mantenimiento

Soporte de la reutilizacin de software

CLASIFICACINEstructuradasO. DatosJerrquicasNo JerrquicasMixtasOrientadas a ObjetosPara Sistemas de Tiempo RealO. Procesos

ESTRUCTURADAOrientada a ProcesosEspecificacin:Diagramas de Flujo de DatosDiccionario de DatosEspecificaciones de procesosFASES DEL ANLISIS ESTRUCTURADOMtodo de DeMarcoMtodo de Gane y Sarson1. Construir el modelo fsicoactual (DFD fsico actual)2. Construir el modelo lgicoactual (DFD lgico actual)3. Crear un conjunto de modelosfsicos alternativos4. Estimar los costes y tiemposde cada opcin5. Seleccionar un modelo6. Empaquetar la especificacin1. Construir el modelo lgico actual(DFD lgico actual)2. Construir el modelo del nuevosistema: elaborar una especificacinestructurada y construir un modelolgico de datos en tercera formanormal que exprese el contenido delos almacenes de datos.3. Seleccionar un modelo lgico4. Crear el nuevo modelo fsico delsistema5. Empaquetar la especificacin

Metodologa de Yourdon/ConstantineRealizar los DFD del sistemaRealizar el diagrama de estructurasEvaluar el diseoPreparar el diseo para la implantacin

ESTRUCTURADAOrientada a DatosJERARQUICOS La estructura de control del programa debe ser jerrquica y se debe derivar de la estructura de datos del programa El proceso de diseo consiste en definir primero las estructurasde los datos de entrada y salida, mezclarlas todas en una estructura jerrquica de programa y despus ordenardetalladamente la lgica procedimental para que se ajuste a esta estructura El diseo lgico debe preceder y estar separado del diseo fsicoNO JERARQUICOS(Ingeniera de la Informacin)Planificacin: construir una arquitectura de la Informacin y una estrategia que soporte los objetivos de la organizacinAnlisis: comprender las reas del negocio y determinar los requisitos del sistemaDiseo: establecer el comportamiento del sistema deseado por el usuario y que sea alcanzable por la tecnologaConstruccin: construir sistemas que cumplan los tres niveles anteriores

Orientada a objetosRevolucionarios o purosSintetistas o evolutivosSISTEMAS DE TIEMPO REALManejo de interrupcionesComunicacin y sincronizacin entre tareasGestin de procesos concurrentesRespuesta oportuna ante eventos externosDatos continuos o discretos