Professional Documents
Culture Documents
Docentes
Bibliografa
2002. Pfleeger Shari Lawrence. Ingeniera de software. Teora y prctica. Prentice Hall. 2005. 2006. Sommerville Pressman Ian. Ingeniera Ingeniera de de software. Addison Wesley. Roger. Software. Un enfoque prctico. Mc Graw
Hill.
Aprobacin de cursada
1 parcial con dos recuperatorios. Opcin a rendir :
1 parcialito (Practica 1 y 2) Si se aprueba, se toma como aprobado el ejerc. del parcial que corresponda a esas prcticas 1 parcialito (Practica 3 y 4) Si se aprueba, se toma como aprobado el ejerc. del parcial que corresponda a esas prcticas
Temas a desarrollar
1
Requerimientos.
Modelos de proceso.
4
Calidad
Qu es ingeniera de software?
El Software
Se diferencia del hardware porque es un elemento lgico, ===> tiene caractersticas diferentes. El software se desarrolla, no se fabrica como otros productos ===> + costo en la ingeniera que en la produccin. A pesar de haber una tendencia importante de construccin por componentes, aun se construyen a medida
El software no sigue una curva clsica de envejecimiento. Es inmune a los males que desgastan al hardware.
Qu es el Software?
Es el producto que disean y construyen los Ingenieros de software . Esto abarca programas que se ejecutan dentro de una computadora , documentacin asociada y datos que se necesitan para que el producto opere de manera correcta. No est restringido por materiales, o gobernado por leyes fsicas o procesos de manufactura.
Desde
Hasta
El software se ha insertado en nuestra vida cotidiana Como profesionales de la computacin, usamos nuestro conocimiento para ayudar a resolver problemas .
Por lo que, es esencial entender la naturaleza del problema que queremos resolver
Productos genricos
Productos personalizad os
Categoras de Software
De sistemas ( sirve a otros programas) De gestin ( proceso de informacin comercial ) Cientfico (algoritmos de manejo de nmeros) Empotrado ( reside en memoria) De tiempo real ( coordina/analiza/controla sucesos del mundo real ) Basados en la Web ( sitios) De Inteligencia artificial ( uso de algoritmos no numricos para resolver problemas complejos)
(1950-60) Hardware de propsito general, con continuos cambios. Software a medida.. Procesamiento batch. Desarrollo sin planificacin => DOCUMENTACION INEXISTENTE.
(1960-70) Multiprogramacin Multiusuario Minicomputadoras. Tiempo real. Bases de datos. Lenguajes. Nace el producto software" => "MANTENIMIENTO DE SOFT"
IBM 360
Minicomputadoras
(1970-90) Complejidad. .Microprocesadores. Redes. Procesos distribuidos. PC. Software de aplicacin en todas las reas. Baja espectacular del costo del hardware => PRODUCTIVIDAD
(1990-2000) Tecnologas O.O. Procesamiento paralelo. Recurso de procesamiento ilimitado. Capacidad de aprendizaje del usuario es un lmite => "INGENIERA". (2000-act) Aplicaciones WEB. Sistemas Expertos. Reconocimiento de Patrones. Redes Neuronales. Cdigo abierto. => COMUNICACION Y DISTRIBUCION
Fallas
Fallas
Explosin del Arianne 5. Explota a poco de salir por prdida total de informacin de guiado y altitud. El origen es un error de especificacin y diseo en el software del sistema de referencia inercial. Falla del misil Patriot. Mal clculo del tiempo desde el comienzo debido a errores aritmticos. En unas 100 horas acumulaba 0.34 segundos de error. Platforma Sleipner A. Produca petroleo y gas en el Mar del Norte. Una falla en las paredes submarinas originada en un error en anlisis de elementos finitos e insuficiente refuerzo.
Mitos
Mitos
M Mi gente dispone de las herramientas de
Mitos
M Si
R El desarrollo de software no es un
proceso mecnico como la fabricacin: Brooks dice aadir gente retrasa mas
Mitos
M Una declaracin general de los objetivos es suficiente para comenzar a escribir los programas. Podemos dejar los detalles para mas adelante.
Mitos
M Los
requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fcilmente, ya que el software es flexible.
Mitos
M Una vez que escribimos el programa y
en terminarlo.
Mitos
M Hasta que no tengo el programa
Mitos
M Lo nico que se entrega al terminar el
Qu es la Ingeniera de Software?
Disciplina de la ingeniera que comprende todos los aspectos de la produccin de software desde las etapas iniciales de la especificacin del sistema incluyendo la evolucin de ste luego que se comienza a ejecutar.
Qu es la Ingeniera de Software?
Disciplina de la ingeniera que comprende todos los aspectos de la produccin de software desde las etapas iniciales de la especificacin del sistema incluyendo la evolucin de ste luego que se comienza a ejecutar.
Qu es la Ingeniera de Software?
Richard Fairley propone:
La Ingeniera de Software es la disciplina tecnolgica y de administracin que se ocupa de la produccin y evolucin sistemtica de productos de software que son desarrollados y modificados dentro de los tiempos y costos estimados.
La Ingeniera de Software surgi como reaccin a las dificultades de desarrollar software sobre la base de habilidad, experiencia o intuicin individuales. La aplicacin de mtodos sistemticos y repetibles permite la produccin y evolucin de software por organizaciones distribuidas geogrficamente y en el tiempo. La aplicacin de estndares facilita la integracin, reusabilidad mantenimiento de los productos.
La cuantificacin rigurosa de recursos, procesos y productos es una precondicin para optimizar productividad y calidad. La metrificacin y el control estadstico de procesos son claves en Ingeniera de Software.
Un Ingeniero de Software debe cumplir contratos en tiempo y costos como es normal en obras de Ingeniera. Ello presupone la capacidad de medir, estimar, planificar y administrar proyectos.
La Ingeniera de Software se ocupa de todo el ciclo de vida de un producto, desde su etapa inicial de planificacin y anlisis de requerimientos hasta la estrategia para determinar cundo y cmo debe ser retirado de servicio.
En los aos 60, con la sofisticacin creciente de los sistemas de software crecieron tambin las dificultades para desarrollarlos o adaptarlos. Las dificultades desbordaban los recursos tcnicos de una heterognea clase profesional. => CRISIS DEL SOFTWARE
El valor estratgico del software llev a la Organizacin del Tratado del Atlntico Norte a organizar conferencias que tuvieron carcter fundacional para la Ingeniera de Software (Garmish 1968 y Roma 1969).
El propsito de estas conferencias fue identificar la raz de los problemas que enfrentaba la incipiente industria del software y sentar las bases de procesos sistemticos, repetibles y confiables. En la reunin de Roma se comenz a utilizar la expresin Ingeniera de Software.
Se estudia cmo explotar la tecnologa para hacer frente a las necesidades funcionales de las organizaciones
Aparece la necesidad de desarrollar software en tiempo, planeado y controlado. Se introduce el modelo de ciclo de vida en fases. La importancia de la productividad en el desarrollo de software se incrementa sustancialmente. Se ponen en prctica varios modelos de costos.
Era de control
Aos 70
Era de costos
Aos 80
Era de calidad
Se intensifica la necesidad de que el producto tenga atributos que satisfagan las necesidades explcitas e implcitas del usuario: mantenibilidad, confiabilidad, eficiencia, usabilidad
El Ingeniero debe poder aplicar metodologas de documentacin, anlisis, especificacin, diseo, implementacin y prueba. Debe conocer las ventajas y limitaciones de cada notacin y cada tcnica. Debe saber cmo y cundo aplicarlas.
El Ingeniero debe conocer las tecnologas y productos: sistemas operativos, lenguajes, herramientas CASE, bases de datos, sistemas generadores de interfaces, bibliotecas de cdigo.
El Ingeniero debe conocer tcnicas de administracin de proyectos: planificacin, anlisis de riesgos, control de calidad, seguimiento de proyectos, control de subcontratistas, etc.
En los ltimos aos se observa una especializacin de los ingenieros de software por dominio de aplicacin o por actividad
Qu es un proceso ?
Cuando se crea un producto o prestamos un servicio, siempre se sigue una secuencia de pasos o tareas para lograrlo. Se puede pensar al conjunto de tareas como un proceso. En general dicho proceso involucra un conjunto de herramientas y tcnicas. Cuando el proceso implica la construccin de algn producto, nos referimos al proceso como un ciclo de vida.
Proceso
Es el conjunto de mtodos, tcnicas y prcticas que guan a los ingenieros de software en el desarrollo y evolucin de software
Especificacin del software Desarrollo del software Validacin del software Evolucin del software
EXISTEN DISTINTOS PARADIGMAS DE DESARROLLO DE SOFTWARE