Sie sind auf Seite 1von 49

Generalidades del Curso:

Ingeniería de Software 2

Ing. Marco Aedo López


PRESENTADO POR:
M Sc (c). Ing. Marco Aedo López

Contacto:
marcoaedo@hotmail.com
maedol@unsa.edu.pe

Blog:
marcoaedo.blogspot.com

Ing. Marco Aedo López


Horarios
TEORÍA
z Lunes 13:00 – 15:00 (A)

z Jueves 11:00 – 13:00 (A)

z Jueves 13:00 – 15:00 (B)

z Viernes 12:00 – 14:00 (B)

LABORATORIOS
z Jueves: 09:00 – 11:00 (A)

Ing. Marco Aedo López


CALIFICACIÓN
TEORÍA
z 1º Examen 20%
z 2º Examen 30%
z Trabajo Final 30%
z Evaluacion Permanente 20%
z Controles de lectura
z Prácticas en clase (individual y grupal)
z Prácticas calificadas
z Exposiciones

NOTA FINAL=TEORÍA*0.70+LAB*0.30

Ing. Marco Aedo López


Prerrequisitos
z Análisis y Diseño de Sistemas
z Ingeniería de Software 1
z Bases de Datos
z Lenguajes de Programación
z Sistemas de Información
z Otros...

Ing. Marco Aedo López


Temario del Curso
1. Puntos Clave de la Ingeniería de Software
2. Los problemas, la complejidad y la construcción
de software correcto
3. Ingeniería de requerimientos, conociendo lo que
el cliente desea
4. Gestión, planeamiento, organización y
programación exitosa de proyectos de software

Ing. Marco Aedo López


Temario del Curso
5. Diseño Correcto aplicando técnicas Orientado a
Objetos e Implementación
6. Interacción Humano - Computador
7. Diseño de la Interfaz de Usuario
8. Control de Versiones – Desarrollo Defensivo
9. Testing: Verificación y Validación

Ing. Marco Aedo López


BIBLIOGRAFÍA
z Sommerville, Ian. “Ingeniería de Software”, Addison
Wesley. Séptima Ed, 2007
z Pilone, Dan. “Head First Software Development”,
O’Really. Primera Ed, 2008
z Leffingwell, D., Widrig, D. “Managing Software
Requirements”, Addison Wesley, 2003
z Pressman, Roger. “Ingeniería de Software. Un
Enfoque Práctico”, McGraw - Hill, Séptima Ed, 2009
z Booch, Grady. “Object Oriented Analysis and Design
with Applications”. Addison Wesley, Tercera Ed. 2007
z Abascal Julio, Aedo Ignacio, Cañas José. “La
Interacción Persona Ordenador”, 2001

Ing. Marco Aedo López


CAPÍTULO 1
Puntos clave de la Ingeniería
de Software

Ing. Marco Aedo López


Objetivos
z Responder a un conjunto de preguntas clave
sobre la Ingeniería de Software
z Introducir a temas profesionales y de ética
importantes para los ingenieros de software

Ing. Marco Aedo López


Contenido
z Preguntas clave sobre la ingeniería de software
z Responsabilidad profesional y ética

Ing. Marco Aedo López


Problemática
Enfoque informal en el desarrollo de software lleva a:
z Tiempo de retraso

z Costo mayor que lo presupuestado

z Difíciles de mantener

z Desempeño pobre

z Incluso irrealizables

Ing. Marco Aedo López


Ingeniería de Software
z Las economías de todas las naciones
desarrolladas son cada vez más dependientes
del software
z Más y más sistemas son controlados por
software
z La Ing. Sw tiene que ver con teorías, métodos y
herramientas para desarrollo profesional de
software
z El gasto en Ing. Sw representa una fracción
importante del PBI en los países desarrollados
Ing. Marco Aedo López
Ing. Marco Aedo López
Costos en el Software
z Los costos del software a menudo dominan los
costos del sistema.
z Los costos de mantenimiento del Sw son a veces
mayores que los costos de desarrollo. Para
sistemas de larga vida, los costos de
mantenimiento pueden ser varias veces los
costos de desarrollo
z A la Ing. De Software le compete tener un
desarrollo de software efectivo en relación a los
costos

Ing. Marco Aedo López


Puntos Clave sobre el Desarrollo
De Software
1. ¿Qué es software?
2. ¿Qué es Ingeniería de Software?
3. ¿Cuál es la diferencia entre Ing. Sw y CS?
4. ¿Cuál es la diferencia entre la Ing. Sw y la
Ingeniería de Sistemas?
5. ¿Qué es un proceso de software?
6. ¿Qué es un modelo de proceso de software?
7. ¿Qué conocimientos serán necesarios para
hacer un buen desarrollo de software?
Ing. Marco Aedo López
Puntos Clave sobre la Ing. De
Software
8. ¿Cuáles son los costos de la Ingeniería de Software?
9. ¿Cuáles son los métodos de la Ingeniería de Software?
10. ¿Qué es CASE?
11. ¿Cuáles son los atributos de un buen software?
12. ¿Cuáles son los desafíos claves a los que se enfrenta la
Ing. De Sw?
13. ¿Son suficientes las habilidad técnicas?
14. ¿Qué opina de la afirmación?
• El científico construye para aprender
• El ingeniero aprende para construir Ing. Marco Aedo López
1. ¿Qué es software?
z Programas computacionales y su documentación
asociada
z Los productos de sw pueden ser desarrollados para
un cliente particular o para un mercado generalizado
z Los productos de sw pueden ser:
z Genéricos: desarrollados para ser vendidos a un grupo de
clientes diferentes
z Personalizados: desarrollados para un cliente
determinado de acuerdo a sus necesidades y
especificaciones
Ing. Marco Aedo López
2. ¿Qué es Ingeniería de Software?
z Es la disciplina de la Ingeniería que comprende
todos los aspectos de la producción de software
z Los ing. de sw deben adoptar enfoques
sistemáticos y organizados para su trabajo y usar
herramientas y técnicas apropiadas al:
z Problema a resolver
z Restricciones de desarrollo
z Recursos disponibles

Ing. Marco Aedo López


3. ¿Cuál es la diferencia entre la
Ingeniería de Software y las Ciencias
de la Computación?
z Ciencias de la Computación: Comprende las
teorías y fundamentos subyacentes a la
computación
z Ingeniería de Software: Comprende la práctica y
los problemas asociados a la producción de
software (desarrollo y liberación)
z Las teorías de la CS son actualmente
insuficientes para actuar como una base
metodológica completa para la ingeniería de
software Ing. Marco Aedo López
INGENIEROS DE SOFTWARE Æ
CIENCIAS DE LA COMPUTACIÓN

INGENIEROS ELÉCTRICOS Æ FÍSICA

Ing. Marco Aedo López


4. ¿Cuál es la diferencia entre la
Ingeniería de Software y la Ingeniería
de Sistemas?
z Ingeniería de Sistemas: comprende todos los
aspectos del desarrollo de sistemas basados en
computadoras. Tales como HW, SW y procesos
de ingeniería
z Ingeniería de Software: es parte de este proceso
z Los ingenieros de sistemas están involucrados
en la especificaicón del sistema, diseño
arquitectónico, integración e implementación
Ing. Marco Aedo López
Ingeniería de sistemas es más antigua que
la de software
El % de software en los sistemas ha
aumentado notablemente

Ing. Marco Aedo López


ACTIVIDAD
z Visitar: http://www.incose.org/
z Leer el pdf de los 12 roles de la Ingeniería de
Sistemas

Ing. Marco Aedo López


5. ¿Qué es un Proceso de
Software?
z Es un conjunto de actividades cuya meta es el
desarrollo o evolución del software
z Existen 4 actividades fundamentales:
z Especificación: ¿qué es lo que el sistema debe hacer y
sus restricciones de desarrollo?
z Desarrollo: diseño y programación de un sistema de
software
z Validación: chequeo de que el software es lo que el
cliente desea
z Evolución: cambios en el software en respuesta a
demandas cambiantes
Ing. Marco Aedo López
Ejercicio: ¿Cómo debería ser el proceso
para el desarrollo de?

•Software de tiempo real de un avión


•Sistema de Comercio Electrónico

Ing. Marco Aedo López


6. ¿Qué es un modelo de proceso
de software?
z Una representación abstracta de un proceso
de software, presentada desde una
perspectiva
z Modelos generales de procesos
z Cascada (Waterfall)
z Desarrollo iterativo
z Transformación formal
z Integración desde componentes reusables

Ing. Marco Aedo López


Ejercicio: ¿Cuándo usar cada modelo de
proceso genérico?

Ing. Marco Aedo López


7. ¿Qué conocimientos serán
necesarios para hacer un buen
desarrollo de software?
z Ingeniería de Software
z Ciencias de la Computación
z Gestión de proyectos
z Etc.

Ing. Marco Aedo López


8. ¿Cuáles son los costos de la
Ingeniería de Software?
z Aprox. 60% de los costos son de desarrollo,
40% son de pruebas.
z Para el sw personalizado, los costos de
evolución a menudo exceden los de desarrollo
z Los costos varían dependiendo del tipo de
sistema a desarrollar y los requerimientos de
atributos de sistema, tales como performance y
confiabilidad
z La distribución de costos depende del modelo
utilizado
Ing. Marco Aedo López
Ing. Marco Aedo López
Ejercicio: ¿Cómo serían los costos para
software genérico?

Ing. Marco Aedo López


9. ¿Cuáles son los Métodos de la
Ingeniería de Software?
z Enfoques para el desarrollo de software que incluye guías de
procesos, notaciones, reglas, guía de diseño y modelos de
sistemas. Ejemplos: estructurado y OO
COMPONENTES
z Guía de proceso
z Que actividades seguir
z Descripciones de Modelos
z Descripciones de modelos gráficos que deben ser producidos
z Reglas
z Restricciones aplicadas a modelos de sistemas
z Recomendaciones
z Sugerencias sobre buenas prácticas de diseño

Ing. Marco Aedo López


10. ¿Qué es CASE? (Computer-
Aided Software Engineering)
z Sistemas de sw destinados a dar soporte automatizado
para las actividades de procesos de sw
z Frecuentemente son utilizados para soportar un método
z Upper-CASE
z Herramientas que apoyan las actividades tempranas
de un proceso (requerimientos/diseño)
z Lower-CASE
z Herramientas que apoyan las actividades tardías de
un proceso (programación, depuración y pruebas)

Ing. Marco Aedo López


11. ¿Cuáles son los atributos de
un buen sw?
z El sw debería brindar la funcionalidad y desempeño
requeridos por el usuario, y debería ser mantenible,
confiable, eficiente y usable
z Mantenible
z Sw debe ser fácil de modificar para evolucionar a las
nuevas necesidades requeridad
z Confiable
z Sw debe producir los resultados esperados
z Eficiente
z Sw debe hacer buen uso de los recursos del sistema
z Usable
z Sw debe ser de fácil uso para los usuarios finales
Ing. Marco Aedo López
No están asociados directamente con lo
que el sw hace

Se relacionan a su ejecución, organización


de código fuente y documentación
asociada

Ing. Marco Aedo López


12. ¿Cuáles son los desafíos que
enfrenta la Ingeniería de Software?
Tiene que lidiar con:
z Sistemas heredados
z Sistemas antiguos pero valiosos, deben ser
mantenidos y actualizados
z Heterogeneidad
z Los sistemas están distribuidos e incluyen diversos
Hw y Sw
z Tiempo de Entrega
z Presión de tiempo para entregar el sw más rápido
z Confianza
z Demostrar que el Sw puede ser confiable para los
usuarios Ing. Marco Aedo López
13. ¿Son suficientes las habilidades
técnicas?
Responsabilidad Profesional y ética
z Ing. Sw. NO involucra sólo habilidades técnicas,
sino además otras responsabilidades
z Para ser respetados como profesionales se debe
actuar de manera honesta y ética
z El comportamiento ético es más que
simplemente cumplir con las leyes
z Hay compromisos con la SOCIEDAD

Ing. Marco Aedo López


Aspectos de Responsabilidad
Social
z Confidencialidad
z Competencia
z Derechos de la propiedad intelectual
z Uso inapropiado de las computadoras

Ing. Marco Aedo López


Código de ética de ACM/IEEE
z Las sociedades profesionales en USA han
cooperado para producir un código de ética para
la práctica de la disciplina
z Los miembros de estas organizaciones las
aceptan cuando se incorporan a ellas
z Contiene 8 principios

Ing. Marco Aedo López


Código de Ética - Principios
1. PÚBLICO
z Los ingenieros de software deberán actuar
consistentemente con el interés público
2. CLIENTE Y EMPLEADOS
z Actuarán de una manera que responda a los
intereses de sus clientes y empleadores,
consistentemente con el interés público
3. PRODUCTO
z Asegurarán que sus productos cumplen con los
más altos estándares profesionales posibles
Ing. Marco Aedo López
Código de Ética - Principios
4. JUICIO
z Mantendrán integridad e independencia en sus juicios
profesionales
5. ADMINISTRACIÓN
z Los ingenieros de software administradores y líderes
suscribirán y promoverán un enfoque ético en la
administración del desarrollo y mantenimiento del sw
6. PROFESIÓN
z Promoverán la integridad y reputación de la profesión,
acordé al interés público

Ing. Marco Aedo López


Código de Ética - Principios
7. COLEGAS
z Deberán ser justos, imparciales y apoyar a sus
colegas
8. PERSONAL
z Participarán en un aprendizaje continuo
durante toda su vida sobre las prácticas de la
profesión y promoverán un enfoque ético sobre
la misma

Ing. Marco Aedo López


Dilemas Éticos
z Desacuerdo en los principios con las políticas de
urgencia del administrador del proyecto
z El empleador actúa de una manera no ética al
liberar un sistema de seguridad crítica sin
finalizar la prueba del sistema
z Participación en el desarrollo de sistemas de
armas militares o nucleares

Ing. Marco Aedo López


14. ¿Qué opina de la afirmación?
z El científico construye para aprender
z El ingeniero aprende para construir

Ing. Marco Aedo López


CONCLUSIONES
z La Ingeniería de Software es una disciplina de ingeniería
que comprende todos los aspectos de la producción del sw
z Los productos de software consisten de los programas
desarrollados y de su documentación asociada
z Atributos escenciales del producto son mantenibilidad,
confiabilidad, eficiencia y usabilidad
z El proceso de sw consiste de actividades involucradas en el
desarrollo de productos de software.
z Activididades básicas: Especificación, desarrollo, validación
y evolución

Ing. Marco Aedo López


CONCLUSIONES
z Los métodos son formas organizadas de producir sw.
Incluyen sugerencias del proceso, de la notación, reglas
que dirigen la descripción del sistema y lineamientos de
diseño
z Las herramientas CASE son sistemas de sw que sirven
para ayudar en las actividades del proceso de sw
z Los ingenieros de software tienen responsabilidades,
tanto con la profesión como con la sociedad, NO es sólo
su capacidad técnica lo importante
z Las sociedades profesionales publican códigos de
conducta que definen los estándares de comportamiento
esperados de sus miembros

Ing. Marco Aedo López


CUESTIONARIO
1. Considerando la distribución de costos, ¿por
qué es apropiado considerar al sw como más
que programas ejecutables?
2. Analice las diferencias entre el desarrollo de
software genérico y personalizado
3. Enumere otros 4 atributos importantes que
deba tener el sw. Justifique
4. ¿Por qué los costos de las pruebas son altos
para el desarrollo de sw genérico?

Ing. Marco Aedo López


ENLACES
z Online Ethics Center for Engineering and Science
http://onlineethics.org/
z Software Engineering Ethics Research Institute
http://seeri.etsu.edu/

Ing. Marco Aedo López

Das könnte Ihnen auch gefallen