Programa de Trabajo

I. Datos de la institución
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
FACULTAD DE CONTADURÍA Y ADMINISTRACIÓN
DIVISIÓN SISTEMA UNIVERSIDAD ABIERTA Y EDUCACIÓN A
DISTANCIA
Modalidad: Abierta
Plantel
Grado o
Licenciatura
Licenciatura en Informática
Correo
[email protected]
II. Datos del asesor
Nombre
ESQUIVEL IBAÑEZ JOSE
III. Datos de la asignatura
Nombre
INFORMÁTICA VII (INGENIERÍA
DE SOFTWARE)
Clave
1728
Grupo
9790
Modalidad
Obligatoria
Plan
2012
Fecha de inicio del
semestre
09 de agosto de 2016
Horas de asesoria
semanal
4
Horario
Martes: 20:00 - 22:00 hrs
Jueves: 20:00 - 22:00 hrs
Fecha de término
del semestre
08 de diciembre de 2016
IV. Contenido temático
TEMA
HORAS
Total
Teoría
Práctica
I. Fundamentos de la Ingeniería de Software
12
12
0
II. Software
8
8
0
III. Administración de Proyectos
12
12
0
1 de 10
IV. Verificación y Validación
8
8
0
V. Métricas
8
8
0
VI. Liberación y Mantenimiento
8
8
0
VII. Situación de la Ingeniería de Software en México
8
8
0
V. Presentación general del programa
El alumno integrara los conocimientos previos de análisis y diseño de sistemas para el desarrollo de software de calidad, además de obtener las metodologías, técnicas y herramientas para
desarrollar sistemas informáticos en el tiempo y costo establecidos.
VI. Forma en que el alumno deberá preparar la asignatura
Actividades a realizar
Unidad
Tema
Actividades
2 de 10
1. Historia
1.2. Crisis del software
1.3. ¿Qué es la IS, ciencia, arte, disciplina o proceso?
1.4. Objetivo de IS
1.5. Las cuatro P de la IS
1.6. Proceso de IS
1.7. Relación de la IS con las demás asignaturas de la Licenciatura en Informática
1.8. Sistema y sistema informático
1.9. Metodología, técnicas y herramientas
1.10. Código de ética ACM/IEEE
1.11. Ciclo de vida de Sistemas y Modelos
Realice las actividades y cuestionario.
ACTIVIDAD 1
Lee la versión completa del código de ética de la ACM/IEEE
(http://www.acm.org/about/se-code/). Redacta un reporte de lectura con la opinión sobre las dificultades para la aplicación del código de ética de la ACM/IEEE en el ejercicio
profesional.
ACTIVIDAD 2
I.
Fundamentos de la ingeniería de software
Elabora un cuadro comparativo en la que se identifiquen las ventajas y desventajas de los modelos de ciclo de vida.
ACTIVIDAD 3
Investiga y elabora un cuadro comparativo que permita identificar las características de las diferentes disciplinas computacionales: ciencias de la computación, ingeniería en
computación, informática, ingeniería de software.
ACTIVIDAD 4
Elabora un análisis sobre los retos de la ingeniería de software con respecto a las demás ingenierías
CUESTIONARIO
Tomando como base el contenido de la unidad, contesta el siguiente cuestionario.
1. ¿Qué es la ingeniería de software?
2. ¿Cuándo y en qué contexto surge el término “crisis del software”?
3. ¿Cuál es el objetivo de la ingeniería de software?
4. ¿Cuál es la relación de la ingeniería de software y la informática?
5. ¿Cómo se diferencia un sistema de un sistema informático?
6. ¿Sobre qué elementos se puede apoyar la ingeniería de software para mejorar la calidad del software?
7. ¿Cuáles son los temas que trata el código de ética de la ACM/IEEE?
8. ¿Cuál fue el motivo para crear la ingeniería de software?
9. Menciona cuatro modelos de ciclo de vida de software.
10. ¿Qué es el ciclo de vida de software?
Dichos actividades deberán ser enviados a través de la plataforma (aulas virtuales) en un archivo de Word.
3 de 10
2.1.
2.2.
2.3.
2.4.
2.5.
Concepto
Clasificación
Características
Principios de la IS
Herramientas CASE
Realice las actividades y cuestionario
ACTIVIDAD 1
Elabora un cuadro en el que se presenten las características comunes de cada una de las clasificaciones del software.
ACTIVIDAD 2
Investiga dos modelos de calidad de software y registra las características de calidad que propone cada una
ACTIVIDAD 3
Elabora una lista en la que se detalle los beneficios de las herramientas CASE en pequeños desarrollos.
II.
SOFTWARE
ACTIVIDAD 4
Investiga algún otro principio de IS diferente a los expuestos en esta unidad. Explícalo, no olvides agregar la fuente de donde obtuviste la información.
ACTIVIDAD 5
Busca dos ejemplos de la herramienta CASE con sus respectivas características.
CUESTIONARIO
1. ¿Cuál es la definición de software que consideras más adecuada?, justifica tu respuesta.
2. ¿Por qué resulta difícil obtener una definición de software?
3. ¿Cuál es la finalidad de los principios de IS?
4. ¿Menciona tres características del software?
5. ¿Cuál es el significado de la palabra CASE?
6. ¿Menciona los principios de IS que se vieron en esta unidad?
7. ¿Cuál es la finalidad de las herramientas CASE?
8. ¿En qué clasificación de software entrarían las herramientas CASE?
9. ¿A qué nivel se encuentran planteados los principios de IS?
10. ¿En qué tipo de desarrollos de software son comúnmente utilizadas las herramientas CASE?
Dichos actividades deberán ser enviados a través de la plataforma (aulas virtuales) en un archivo de Word.
4 de 10
3.1.
3.2.
3.3.
3.4.
¿Qué es un proyecto?
Ciclo de vida del proyecto
Oficina de proyectos
PSP
Realice las actividades y cuestionario
ACTIVIDAD 1
Busca algunas causas por las cuales fracasan los proyectos de desarrollo de software, y redacta un informe que no exceda las dos cuartillas
ACTIVIDAD 2
Elabora un esquema en el que identifiques las fases comunes de un proyecto y las actividades asociadas a cada una.
ACTIVIDAD 3
Proporciona tres ejemplos de herramientas de software que se puedan emplear en alguna parte del ciclo de vida de proyectos.
ACTIVIDAD 4
III.
ADMINISTRACIÓN DE PROYECTOS
Elabora un cuadro comparativo de los problemas más comunes presentados en el desarrollo de pequeños programas y de gran escala
ACTIVIDAD 5
Escribe una propuesta de trabajo, con los elementos expuestos en esta unidad, para un área de desarrollo con cuatro personas.
CUESTIONARIO
1. ¿Cuál sería la función principal de una oficina de proyectos?
2. ¿Qué significa PSP?
3. ¿Qué es el ciclo de vida de proyectos?
4. ¿Qué es un proyecto?
5. ¿A qué nivel puede ser empleado el PSP dentro del proceso de desarrollo?
6. ¿Qué elementos puede definir un ciclo de vida de proyectos?
7. ¿Quién define las fases que deberán llevarse a cabo del inicio al final de un proyecto?
8. ¿En qué difiere un proyecto al trabajo operativo?
9. ¿Cuál es la finalidad de dividir el proyecto en fases?
10. ¿A qué tipo de proyectos se puede emplear el PSP?
Dichos actividades deberán ser enviados a través de la plataforma (aulas virtuales) en un archivo de Word.
.
5 de 10
4.1 Un enfoque estratégico para la prueba del software
4.1.1 Verificación y validación
4.1.2 Organización par las pruebas del software
4.1.3 Estrategias de prueba para arquitectura convencionales del software
4.1.4 Estrategias de prueba del software para arquitectura orientadas a objetos
4.1.5 Criterios para completar la prueba
4.2 Aspectos estratégicos
4. 3 Estrategias de prueba para el software convencionales
4.3.1 Prueba de unidad
4.3.2 Prueba de integración
4.4 Estrategias de prueba para software orientado a objetos
4.4.1 Prueba de unidad en el contexto orientado a objetos
4.5 Prueba de validación
4.5.1 .Criterios de la prueba de validación
4.5.2 Revisión de la configuración
4.5.3 Preabas alfa y beta
4.6 Prueba del sistema
4.6.1 Prueba de recuperación
4.6.2. Prueba de seguridad
4.6.3 Prueba de desempeño
4.7 El arte de la depuración
4.7.1 El proceso de depuración
4.7.2 Consideraciones psicológicas
4.7.3 Estrategias de depuración
4.7.4 Corrección de errores
Realice las actividades y cuestionario
ACTIVIDAD 1
IV
Verificación y validación
Con tus propias palabras, describa la diferencia entre verificación y validación. ¿Utilizan métodos de diseño de casos de prueba y estrategias de prueba?
ACTIVIDAD 2
Elabore una lista de algunos problemas que pudieran estar asociados con la creación de un grupo independiente de prueba. ¡Lo integran las mismas personas que el grupo de
aseguramiento de la calidad del software?
ACTIVDAD 3
¡Siempre es posible desarrollar una estrategia para probar software que use la secuencia de pasos de prueba de unidad?¿cuáles son las pruebas complicaciones que podrían surgir
par sistemas incrustados?
Actividad 4
¿Por qué es difícil aplicar pruebas de unidad a un modelo altamente acoplado?
Actividad 5
El concepto de prueba de unidad, es una manera extremadamente efectiva deproporcionar depuración integrada cuando se descubre un error
1. Desarrollar un conjunto de directrices antierror
2. Analizar las ventajas de usar esta técnica
3. Analizar las ventajas de usar esta técnica.
Actividad 6
¿Cómo afecta la calendarización la prueba de integración?
Actividad 7
¿La prueba de unidad es posible (o incluso deseable) en todas las circunstancias? Proporcione ejemplos que justifiquen la respuesta
Actividad 8
¿Quién debe aplicar la prueba de validación: el desarrollador o el usuario del software? Justifique la respuesta
.
Dichos actividades deberán ser enviados a través de la plataforma (aulas virtuales) en un archivo de Word.
6 de 10
5.1 Métricas del producto para el software
5.2 Calidad general
5.2.1 Factores de calidad McCall
5.2.2 Factores de calidad del estado ISO 9126
5.2.3 La transición o un concepto cuantitativo
5.3 Un marco conceptual para la métrica del producto
5.3.1 Medidas, métricas e indicadores
5.3.2 El reto de las métricas del producto
5.3.3 Principios de medición
5.3.4 Medición del software orientado a objetivos
5.3.5 Los atributos de las métricas efectivas del software
5.3.6 Panorama de las métricas del producto
5.4 Métricas par el modelo análisis
5.4.1 Métricas basadas en la función
5.4.2 Métricas par la calidad de la especificación
5.5 Métrica par el modelo de diseño
5.5.1 Métrica del diseño arquitectónico
5.5.2 Métrica par el diseño orientado a objetos
5.5.3 Métricas orientadas a clases; la colección de métrica de CK
5.5.4 Métricas orientadas a objetos: la colección de métricas para el diseño orientado a objetos
5.5.5 Métricas orientadas a objetos para Lorenz Kidd
5.5.6 Métricas de diseño al nivel de componentes
5.5.7 Métricas de diseño de la interfaz de usuario
5.6 Métricas para el código fuente
5.7 Métricas para pruebas
5.7.1 Métricas de Halstead aplicadas a las pruebas
5.7.2 Métricas para pruebas orientadas a objetos
5.8 Métricas para el mantenimiento
Realice las actividades y cuestionario
V
Métricas
ACTIVIDAD 1
Escriba un breve ensayo que delinee lo principales principios de la teoría de la medición
ACTIVIDAD 2
Los factores de calidad de McCall se desarrollaron durante la década de 1970. Casi todos los aspectos de la computación han cambiado drásticamente desde que se desarrolló; sin
embargo, los factores de McCall siguen aplicándose al software moderno. ¿Podría llegarse a algunas conclusiones a partir de este hecho?
ACTIVIDAD 3
¿Por qué no se puede desarrollar una sola métrica que lo abarque todo para la complejidad o la calidad de un programa?
ACTIVIDAD 4
Trate de desarrollar una medida o una métrica tomada de la vida real que viole los atributos de la métrica efectivas del software que se definieron en los atributos de las métricas
efectivas del software
ACTIVIDAD 5
Un sistema tiene 12 entradas externas, 24 salidas externas, campos para 30 consultorios externas diferentes, maneja cuatro archivos lógicos externos y tiene interfaces con seis
sistemas heredados diferentes (6 AIE). Todos estos datos tienen una complejidad promedio, y el sistema general es relativamente simple. Calcule el punto de función para el sistema.
ACTIVIDAD 6
El software par el sistema X tiene 24 requisitos funcionales individuales y 14 no funcionales, ¡Cuál es la especificidad de los requisitos? ¿En qué grado se ha completado?
ACTIVIDAD 7
Un importante sistema de información tiene 1140 módulos; 96 módulos realizan funciones de control y coordinación, y 490 dependen de un procesamiento anterior. El sistema procesa
alrededor 220 objetos de datos, cada uno con un promedio de tres atributos. Hay 140 elementos únicos de la base de datos y 90 segmentos diferentes de éste. Por último, 600
módulos tienen puntos únicos de entrada y salida. Calcúlese el ICED del sistema.
ACTIVIDAD 8
Una clase, X, tiene 12 operaciones. Se ha calculado la complejidad ciclomática para todas las operaciones del sistema orientado a objetos, y el valor promedio de la complejidad del
módulo es de 4. Para la clase X, la complejidad de la operación 1 a la 12 es 5, 4, 3, 3,6, 8, 2, 2, 5, 5l, 4 y 4, respectivamente. Calcúlense los métodos ponderados por clase.
ACTIVIDAD 9
Un sistema heredado tiene 940 módulos. La última versión requirió 90 de esos módulos cambiaran. Además, se agregaron 40 nuevos módulos y se eliminaron 12 de esos módulos.
Calcúlese el índice de madurez del software para el sistema
Dichos actividades deberán ser enviados a través de la plataforma (aulas virtuales) en un archivo de Word.
7 de 10
6 Evolución del software
6.1. Dinámica de evolución de los programas
6.2. Mantenimiento del software
6.2.1. Predicción del mantenimiento
6.3. Procesos de evolución
6.3.1. Reingeniería de sistemas
6.4. Evolución de sistemas heredados
6.5 Planificación de la verificación y validación
6.5.1 Inspecciones de software
6.5.2 Análisis estático automatizado
6.6 Verificación y métodos formales
ACTIVIDAD 1
VI
Liberación y mantenimiento
a) Explique por qué un sistema software que se usa en un entorno real debe cambiar o se volverá progresivamente menos útil.
b) Explique la razón de ser subyacente de las leyes de Lehman. ¿En qué circunstancias podrían no ser aplicables estas leyes?
c) Describa brevemente los tres tipos de mantenimiento del software. ¿Por qué es difícil a veces distinguirlos entre sí?
d) A usted, como gestor de proyectos software en una compañía especializada en el desarrollo de software para la industria petrolera cerca de la costa, se le ha encomendado la
tarea de descubrir los factores que afectan a la manteníbilidad de los sistemas desarrollados por su compañía. Sugiera cómo podría establecer un programa para analizar el proceso
de mantenimiento y descubrir métricas de manteníbilidad adecuadas para su compañía.
f) ¿Cuáles son los principales factores que afectan a tos costes de reingeniería de los sistemas?
g) ¿Cuáles son las condiciones esenciales para que la reingeniería del software tenga éxito?
h) Indique en qué circunstancias podría una organización decidir desechar un sistema cuando la evaluación de dicho sistema sugiere que tiene una alta calidad y un alto valor de
negocio.
h) ¿Cuáles son las opciones estratégicas para la evolución de sistemas heredados? ¿Cuándo podría usted normalmente reemplazar todo o parte de un sistema en lugar de continuar
manteniendo el software (con o
sin reingeniería)?
i) Explique por qué los problemas con el software de soporte podrían implicar que una organización tenga que reemplazar sus sistemas heredados.
j) ¿Tienen los ingenieros software una responsabilidad profesional para producir código que esté preparado para evolucionar incluso si esto no está explícitamente solicitado por sus
clientes?
k) La gestión de una organización le ha pedido que lleve a cabo una evaluación del sistema y le sugiere que le gustaría que los resultados de dicha evaluación mostrasen que el
sistema es obsoleto y que debería ser reemplazado por un nuevo sistema. Esto significará que varios mantenedores del sistema perderán su trabajo. Su evaluación realmente muestra
que el sistema está bien mantenido y que tiene una alta calidad y
un alto valor de negocio. ¿Cómo podría informar de estos resultados a la gestión de la organización?
l) Señale las diferencias entre verificación y validación, y explique por qué la validación es un proceso particularmente difícil.
m) Explique por qué no es necesario que un programa esté completamente libre de defectos antes de que sea entregado a sus clientes. ¿Hasta dónde se pueden utilizar las pruebas
para validar que el programa cumple con su propósito?
n) El plan de pruebas de (a Figura 22.4 ha sido diseñado para sistemas a medida que tienen un documentado requerimientos independiente. Sugiera cómo podría modificarse la
estructura del plan de pruebas para probar productos software comercial.
ñ) Explique por qué las inspecciones de programas son una técnica efectiva para descubrir errores en un programa. ¿Qué tipos de errores probablemente no sean descubiertos a
través de las inspecciones?
o) Sugiera por qué una organización con una cultura elitista y competitiva podría probablemente encontrar difícil introducir las inspecciones de programas como una técnica de V & V.
p) Utilizando su conocimiento de Java, C++, C o cualquier otro lenguaje de programación, derive una lista de comprobación de errores comunes (no errores sintácticos) que podrían
no ser detectados por un compilador, pero que podrían ser detectados en una inspección de programas.
r) Explique por qué puede ser rentable utilizar métodos formales en el desarrollo de sistemas software de seguridad críticos. ¿Por qué piensa usted que algunos desarrolladores de
este tipo de sistemas están en contra del uso de los métodos formales?
s) Un gestor decide utilizar los informes de tas inspecciones de programas como entrada para el proceso de valoración del personal. Estos informes muestran quién hace y quién
descubre los errores en los programas. ¿Es éste un comportamiento de gestión ético? ¿Podría ser ético si el personal fuese informado con antelación de que esto podría ocurrir?
¿Qué diferencia se podría generar en el proceso de inspección?
t) Una aproximación comúnmente adoptada para (as pruebas del sistema es probar el sistema hasta que se agote el presupuesto de pruebas y entonces se entrega el sistema a los
clientes. Comente la ética de esta aproximación.
Dichos actividades deberán ser enviados a través de la plataforma (aulas virtuales) en un archivo de Word.
8 de 10
7.1 El Programa para el Desarrollo de la Industria del Software
7.2 El Software y la ingeniería de software
7.3 Situación actual de la ingeniería de software en México
7.3.1 Docencia
7.3.2 Investigación
7.3.3 Industria
7.4 Los retos
VII
Situación de la ingeniería de software en México
ACTIVIDAD 1
Realice un análisis sobre los retos de la ingeniería de software en México respecto a otros países (Japón, Alemania, China, etc.
ACTIVIDAD 2
Elabora un mapa conceptual sobre los retos de la ingeniería de software en México respecto a otros países (Japón, Alemania, China, etc.
ACTIVIDAD 3
Elabora un mapa conceptual sobre los retos de la ingeniería de software en México
Dichos actividades deberán ser enviados a través de la plataforma (aulas virtuales) en un archivo de Word.
VII. Sistema de evaluación
FACTORES
DESCRIPCIÓN
Requisitos
Las tareas, cuestionarios y cualquier otra actividad que el asesor asigne, deberá de contener: Carátula con el nombre de la asignatura,
apellidos y nombre(s) del alumno, número de tarea o actividad, fecha de entrega y se pedirá al alumno que realice el desarrollo de un caso
práctico.
Los trabajos deberán de contener el siguiente formato: letra Arial 12, espacio sencillo, margen en formato normal, texto justificado, títulos
en negritas, índice.
En caso de que sea necesario generar algún otro medio para el aprendizaje del alumno, este será informado con anticipación al alumno
por el asesor. De igual forma, el asesor podrá solicitar al alumno que el mismo genere algún medio electrónico para el intercambio de
información, tareas, actividades, etc.
Exámenes parciales 3
• Primer parcial (unidad 1 y 2)
• Segundo parcial (unidad 3 y 4)
• Tercer parcial (unidad 5, 6 y 7)
Para los exámenes parciales y globales, la tolerancia que se da para presentarlos es de cuarenta minutos.
Para efectos del examen global no es necesario solicitarlo, solamente notificarlo, éste se aplica de acuerdo al calendario escolar de
SUAyED. Es requisito presentar 80% de actividades y el caso práctico para tener derecho al examen global escrita (Con duración de dos
horas) en la fecha programada por el SUyED.
Porcentajes
Exámenes Parciales
Actividades de aprendizaje
Prácticas
TOTAL
50 %
35 %
15 %
100 %
9 de 10
VIII. Recursos y estratégias didácticas
Lecturas Obligatorias
(X)
Trabajos de Investigación
(X)
Elaboración de Actividades de Aprendizaje
(X)
Procesadores de Texto, Hojas de Cálculo y Editores de Presentación
(X)
Videos
(X)
Programación Computacional
(X)
Plataforma Educativa
(X)
Lista de Correos
(X)
Correo Electrónico
(X)
Sitios de Internet
(X)
Plan de Trabajo
(X)
10 de 10