Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Carrera de Ingeniera de Sistemas - UPS Ingeniera de Software - 2012 Ing. Mauricio Ortiz Ochoa mortizo@ups.edu.ec
08/03/2012
Objetivos
Introducir los conceptos sustanciales del software y su relacin con los procesos de desarrollo Introducir los elementos distintivos de la ingeniera de software
Conceptos a presentar
Software Representaciones de software Conocimiento de Ingeniera de software (SE) Conocimiento del dominio de software Carcter nico del software Cualidades del software Proceso de Software Tcnica / mtodo / herramienta Ingeniera de software
Software e Ingeniera de Software 4
08/03/2012
Temario
Concepto de Software Caractersticas del Software Proceso de Software Ingeniera de Software
1. 2. 3. 4.
CONCEPTO DE SOFTWARE
08/03/2012
Qu es el software?
El software es ms que programas. Lo primero que se debe entender es que el software es un sistema.
Qu es el software?
Lo importante no es qu es el software, sino:
Cmo se piensa sobre l (qu imagen se tiene) Qu papel juega en un contexto mayor
08/03/2012
El software es
Alma y cerebro de una computadora Corporizacin de las funciones de un sistema El conocimiento capturado acerca de un rea de aplicacin Coleccin de los programas y datos necesarios para convertir a una computadora (de propsito general) en una mquina de propsito especial diseada para una aplicacin particular. Informacin (documentacin) producida durante el desarrollo de un sistema software-intensivo
Ing. Mauricio Ortiz Software e Ingeniera de Software 9
Resumiendo
El software es muchas cosas, pero todos son aspectos de la informacin En definitiva es una cuestin de semntica:
Si software es solo programas ejecutables
Excluimos una cantidad de informacin que debemos llamar de alguna manera
Esto es crucial para un desarrollo exitoso, pues si no se hace, la informacin se pierde o altera introduciendo errores
Ing. Mauricio Ortiz Software e Ingeniera de Software 10
08/03/2012
11
08/03/2012
08/03/2012
15
Producto o conocimiento?
Software como Producto
A medida que los computadores extendieron su mbito de aplicacin se los vio como procesadores simblicos, de all que no se viera al software como producto Desde los 60 (separacin Sw y Hw) comenz a constituirse como producto El software es tanto un producto como un objeto tcnico, esto es: conocimiento empaquetado
16
08/03/2012
De qu estamos hablando?
El software es muchas cosas, y cosas que difieren:
segn el tiempo segn la gente de que se trate segn lo que se intente hacer
Para entender la naturaleza esencial de la actividad, la visin del software como conocimiento es la ms idnea
17
Productos de software
Part of a system that can be encoded to execute on a computer as a set of instructions; it includes all the associated documentation necessary to understand, transform and use that solution the collection of computer programs, procedures, rules, and associated documentation and data (IEEE)
Ing. Mauricio Ortiz Software e Ingeniera de Software 18
08/03/2012
1. 2. 3. 4.
19
10
08/03/2012
Ejercicio 01.01
Objetivos del ejercicio
Revisar el concepto de software
Tipo de ejercicio
Ejercicio en clase Ejercicio grupal
Entregable de ejercicio
Comunicar resultado Discusin en clase
El ejercicio consiste en completar las columnas del cuadro de la siguiente presentacin En la primara columna se encuentran las caractersticas del software segn Cochran En las siguientes columnas se encuentran diferentes tipos de proyectos Se pide completar las columnas correspondientes con los otros procesos de produccin
21
Ejercicio 01.01
22
11
08/03/2012
23
Caractersticas conceptuales
Objetivo de la ingeniera: construccin de producto.
Ingeniera Software: sistemas de software
Principal diferencia del software es maleable. Existe la idea que los cambios en el soft son fciles. En este punto debe pensarse a los productos de soft de otra forma:
Un cambio en el soft debe ser visto como un cambio en el diseo ms que en el cdigo
Ing. Mauricio Ortiz Software e Ingeniera de Software 24
12
08/03/2012
Caractersticas conceptuales
Su produccin es humano-intensiva: requiere ms ingeniera que manufactura. El proceso de produccin de software se vincula ms con el diseo e implementacin que con la manufactura. Tradicionalmente en la ingeniera el ingeniero dispone de herramientas para describir el producto que son distintas del producto, no es as en la Ingeniera Software. Las cualidades del producto de software estn a menudo entremezcladas en especificaciones con las cualidades del diseo
25
26
13
08/03/2012
Productor
Verificable Mantenible Portable Extensible
27
Ejercicio 01.02
Objetivos del ejercicio
Revisar el concepto de cualidades de software
Cualidades de software
Las cualidades de software tienen relaciones entre ellas. Por ejemplo todos los softwares que son confiables (porqu?) Para dos cualidades Qi y Qj. Establecer cual de las siguentes relaciones se verifica:
Qi -> Qj Qj -> Qi Qi es idependiente de Qj
Tipo de ejercicio
Ejercicio en clase Ejercicio grupal
Entregable de ejercicio
Entregar Discusin en clase
28
14
08/03/2012
A
Correccin funcional Confiabilidad Robustez Performance "Amistosidad Verificabilidad Mantenibilidad Reusabilidad Portabilidad Comprensibilidad Interoperatividad Productividad Oportunidad Visibilidad
A B C D E F G H I J k L M N
29
15
08/03/2012
1. 2. 3. 4.
PROCESO DE SOFTWARE
31
Proceso de software
IEEE: Una secuencia de pasos ejecutados para un propsito dado
Se ajusta a las prcticas especficas de las distintas ingenieras Dos componentes: acciones y propsito; La meta le da al proceso una serie de cualidades
Pfleeger: Podemos pensar al conjunto ordenado de tareas como un proceso: una serie de pasos que involucran actividades, restricciones y recursos que producen una determinada salida esperada Basili: Los procesos de ingeniera de software son especficos. Importante: El proceso est conformado por los pasos que se dan, no por su descripcin
Ing. Mauricio Ortiz Software e Ingeniera de Software 32
16
08/03/2012
33
34
17
08/03/2012
35
36
18
08/03/2012
37
Ejercicio 01.03
Objetivos del ejercicio
Aplicar el concepto de proceso de software
Niveles de proceso
Siguiendo el ejemplo de los diferentes niveles de proceso a la entrevista de un usuario, aplicarlo al caso de especificacin de programas. Armar una matriz con los diferentes niveles de proceso del caso de la especificacin de programas.
38
Tipo de ejercicio
Ejercicio en clase Ejercicio grupal
Entregable de ejercicio
Comunicar resultado Discusin en clase
19
08/03/2012
1. 2. 3. 4.
INGENIERA DE SOFTWARE
39
Ingeniera de software
Fairley
La Ingeniera 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
Ghezzi
Ingeniera Software es el campo de la ciencia de la computacin que trata con la construccin de sistemas de software que son tan grandes o complejos que son construdos por un equipo o equipos de ingenieros
IEEE
1. 2. El uso de mtodos sistemticos, disciplinados y cuantificables para el desarrollo, operacin y mantenimiento de software, es decir, la aplicacin de prcticas de Ingeniera Software. el estudio de tcnicas relacionadas con (1.)
40
20
08/03/2012
Panorama de la SE
Conocimientos requeridos
Principios tericos de representacin y computacin.
Aplicacin de mtodos formales Uso de notaciones de modelizacin, especificacin, diseo, programacin.
Perspectivas
Evolucin histrica:
expansin de la esfera de competencia formalizacin de procesos y productos mecanizacin de operaciones mayor nivel profesional y de conocimiento
Presiones actuales:
reduccin en el ciclo de vida de productos personalizacin de productos reduccin de Costos calidad y certificacin de procesos
41
Desafos de la SE
Calidad Retorno de la inversin Mejora de proceso Mtricas y mediciones Confusin de estndares Interoperabilidad de estndares Software heredado Criterio de detencin del testeo Interoperabilidad y capacidad de componer Perfiles operacionales Disear en calidad Certificacin de productos Servicio
Software e Ingeniera de Software 42
21
08/03/2012
Puntos clave
El software es conocimiento empaquetado Una serie de caractersticas lo hace nico Se necesita un concepto amplio de software El objetivo de la ingeniera de software es producir sistemas de software Las cualidades del software como producto y proceso son similares La ingeniera de software abarca el ciclo completo del software: desarrollo, mantenimiento, operacin La disciplina enfrenta desafos y nuevas demanadas
Ing. Mauricio Ortiz Software e Ingeniera de Software 43
Referencias
Arango, G., Qu es la Ingeniera de Software?, Noticiero SADIO, ao 25, 1 (marzo-abril) 1993, 7-11. Ghezzi, C., Jazayeri, M., Mandrioli, D., Fundamentales of Software Engineering, Prentice-Hall International, Englewood Cliffs, 1991. Freeman, P., Psst, What Is Software, Anyway?, en Software Perspectives. The System is the Message, Addison-Wesley, Reading Mass, 1987. Captulo 1, pp 3-28. Glass R, Software Creativity, Prentice Hall, 1995 McConnell, S. Who needs software engeniering? IEEE software jan-feb 2001 Pfleeger, S. L., Ingeniera de software. Teora y prctica, 2002
Ing. Mauricio Ortiz Software e Ingeniera de Software 44
22
08/03/2012
Prxima clase
BROOKS, F. "No Silver Bullet Essence and Accident in Software Engineering". Proceedings of the IFIP Tenth World Computing Conference: 10691076
45
23