Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 1. Ingenieria de Software
Unidad 1. Ingenieria de Software
5 cuatrimestre
Programa de la asignatura
Introduccin a la Ingeniera de Software
Clave
150920520/ 160920518
Unidad 1.
Ingeniera de Software
1
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
2
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
Propsito
En esta unidad logrars:
Competencia especfica
Analizar los diferentes mtodos de desarrollo de software para comprender cmo se
relacionan con loselementos del ciclo de vida del software, identificando las
caractersticas de cada mtodo en un caso de estudio.
1.1.1.Ingeniera
Partir de la definicin de ingeniera nos permite entender porqu surge la necesidad de
generar procesos, para aplicar el ingenio, mtodos, modelos, estndares y conocimiento
cientfico, para aplicarlo en algo prctico y redituable econmicamente hablando;as como
la sistematizacin y mejora de los procesos que permitan la produccin ms rpida y
abundante de producto siendo ste un bien o servicio.
Pero entonces, Qu es la Ingeniera?
Ingeniera
(1) Conjunto de conocimientos y tcnicas que permiten aplicar el saber cientfico a la
utilizacin de la materia y de las fuentes de energa.
4
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
Por lo anteriorse puede afirmar que la ingeniera busca la aplicacin de la ciencia en los
procesos industriales para su perfeccionamiento y las personas encargadas deaplicar
estos procesos son los especialistas llamados ingenieros.
1.1.2.Software
Referente al software podemos decir que es un elemento de la computadora que abarca
la lgica de la misma, el cual es necesario para ejecutar una tarea. Tiene la propiedad de
ser intangible y se compone de sistemas operativos y de aplicacin. A continuacin se
presentan 3 definiciones:
Software
(1) Instrucciones (programas de computadora) que cuando se ejecutan proporcionan la
funcin y el rendimiento deseados.
(2) Estructuras de datos que permiten a los programas manipular adecuadamente la
informacin.
(3) Documentos que describen la operacin y el uso de programas.
(Pressman, R. 2010, pg. 7).
Como notars en las tres definiciones se refieren al software como un conjunto de
programas. Entonces podemos definir alsoftware como un cdigo escrito en un lenguaje
especfico para un procesador. El cdigo es escrito en un lenguaje de programacin.
Existen tres tipos de lenguajes:
1. Bajo nivel o lenguaje mquina (ceros y unos),
2. Ensamblador formado por mnemnicos (palabras fciles de recordar)
3. Alto nivel que se acerca ms al lenguaje humano.
Los lenguajes ensamblador y el de alto nivel requieren ser traducidos a lenguaje mquina
para ser ejecutados.
5
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
Productos: son el resultado de ejecutar cada proceso, por ejemplo: un producto del
proceso del anlisis pueden ser las descripciones y diagramas del modelado de
requerimientos.
Roles: representan la responsabilidad que las personas tienen con el proyecto.
Estos roles pueden ser lder o administrador del proyecto, analistas, diseadores,
programadores, encargados de pruebas, de calidad, etc.
Condiciones: declaraciones vlidas que restringen de alguna manera las
actividades que tengan relacin con el proceso o con el producto. Por ejemplo una
precondicin puede ser que el cliente haya aprobado todos los requerimientos.
(Pressman, R. 2010. Pg. 28)
Los proyectos reales no siempre siguen el orden que propone este modelo, los
cambios pueden causar confusin al equipo del proyecto por la poca interaccin
que propone el modelo.
Es difcil que el cliente (quin solicit la construccin del proyecto) exponga todos
los requerimientos y en este modelo se requiere que desde el comienzo del
proyecto sean definidos.
El cliente deber ser paciente, ya que ver alguna versin del trabajo hasta que el
proyecto est muy avanzado y cualquier error que detecte ser cada vez ms
difcil y costoso corregirlo.
Este tipo de modelo genera estados de bloqueo, cuando una etapa sufre algn
retraso, algunos miembros del equipo debern esperar a otros para completar su
actividad.
10
11
12
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
12
13
14
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
14
15
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
15
Los procesos de desarrollo de software que se han visto hasta el tema anterior no estn
orientados al desarrollo rpido del software. A medida que los requerimientos cambian, o
se descubren errores, el diseo tiene que reelaborarse y probarse de nuevo. Provocando
que el proceso se prolongue entregando el producto al cliente despus de lo que se
planeo originalmente.Adems, estos procesos involucran un importante tiempo de gestin
para no perder el control en el tiempo que lleva construir un software. Estas son algunas
de las razones por las cuales han surgido nuevos modelos giles de desarrollo de
software.
Los procesos de desarrollo gil se desarrollan para generar software til de forma rpida.
Esto de manera incremental aumentando funcionalidades al sistema. En este tema
veremos dos opciones de metodologas giles, que a continuacin se explicaran:
Programacin Extrema XP
La programacin extrema (XP) es uno de los mtodos giles ms conocidos y utilizados.
El trmino se gener por haber llevado los mtodos tradicionales a niveles extremos
como lo es el desarrollo iterativo.
Los involucrados en estos proyectos principalmente es el cliente que toma diferentes roles
y puede ser una o varias personas; es quien contrata al equipo de desarrollo, ser el
usuario del software y ser quin apruebe y libere el proyecto. El equipo de desarrollo
que generalmente est conformado por programadores que son los encargados de
realizar el anlisis, el plan y el desarrollo del sistema hasta liberarlo completamente.
16
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
16
4.
5.
6.
propias palabras.
El equipo traduce la historia en tareas para construir las funciones del sistema.
El equipo y el usuario eligen cul historia y actividades se pueden traducir ms
rpidamente en una funcin del sistema y planean liberarla en 2 semanas
aproximadamente.
El equipo se encarga de codificar, integrar y probar la funcionalidad que se ha
planeado liberar.
Liberacin del software, al principio con la primera entrega la funcionalidad es
mnima, pero como las liberaciones son frecuentes se va agregando ms
funciones al sistema.
Se evala el sistema con el cliente de la iteracin comprobando que la
funcionalidad realmente opere de acuerdo a las especificaciones de la historia
del usuario. (Sommerville, Ian 2011, pg. 65).
Para poder llevar a cabo los pasos anteriores ser necesario tomar en cuenta los
siguientes puntos:
Realizar una planeacin incremental basada en las tarjetas de historia, stas se deben
ordenar de acuerdo a la prioridad que se les haya asignado, se obtienen las tareas
necesarias para su desarrollo y se les asigna un tiempo. Es incremental porque cada
avance ser un incremento en las funciones del sistema.
Cada liberacinser pequea, pero deben ser frecuentes de tal manera que se vayan
integrando al sistema hasta terminarlo.
No se cuenta con mucho tiempo para diseos detallados, por lo cual ste debe ser
rpido cubriendo nicamente los requerimientos planeados en cada entrega (iteracin).
Las primeras pruebas son realizadas desde antes que se escriba el cdigo y durante su
desarrollo de tal manera que al terminar el cdigo ya est tambin probado.
17
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
17
Metodologa Scrum
Scrum tiene como objetivo gestionar y controlar los procesos de creacin de software
utilizando un modelo gil iterativo e incremental aplicando mtodos como RUP y mtodos
giles como XP.
Scrum es un conjunto de reglas, procedimientos y prcticas relacionadas entre s,que
trabajan en conjunto para mejorar el entorno de desarrollo, reduce los gastos generales
de la organizacin y se asegura que coincidan las iteraciones con los entregables a
usuarios finales.
El proceso de desarrollo Scrum
Los proyectos se realizan en bloques cortos y fijos (iteraciones de 30 das o menos). Cada
iteracin debe generar un resultado completo. El proceso comienza con la lista de
objetivos y requerimientos del producto que pueden funcionar como el plan del proyecto.
En la lista de objetivos y requerimientos el cliente agrupa los requerimientos en distintas
iteraciones y entregas, tomando en cuenta el valor que aportan con respecto a su costo
(los prioriza).
18
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
18
proyecto previamente priorizada. El equipo pregunta las dudas que hayan surgido
y selecciona los requerimientos prioritarios que se compromete a completar en la
iteracin.
2. Planificacin de la iteracin. El equipo desarrolla una lista de actividades de la
para revisar el trabajo que han realizado y se hacen adaptaciones necesarias que
permitan cumplir con el compromiso adquirido. Cada integrante del equipo debe
contestar las siguientes preguntas:
Qu han realizado los miembros del equipo desde la ltima reunin?
Hay algn problema? Hay obstculos para concluir las tareas?
Qu va a hacer cada miembro del equipo antes de la prxima reunin?
En cada iteracin debe existir un facilitadorque es quien se encarga de que el equipo
pueda realizar su trabajo eliminando los obstculos y evitando interrupciones externas
que puedan afectar el desempeo de los miembros del equipo.
Inspeccin y adaptacin.Cuando termina la iteracin se realiza una junta de revisin que
consta de:
1. Demostracin: el equipo presenta al cliente los requerimientos que se
19
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
19
SCRUM
(Hunt, J. 2006. Pg. 26)
Muchas organizaciones han utilizado con xito Scrum en miles de proyectos para
gestionar y controlar el trabajo, al parecer con importantes mejoras en la
productividad.Una observacin interesante relacionada con Scrum es que puede ser visto
20
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
20
Autoevaluacin
Para reforzar los conocimientos relacionados con los temas que se abordaron en esta
primera unidad del curso, es necesario que resuelvas las actividades ya que te ayudaran
21
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
21
2.
3.
4.
5.
Autorreflexiones
Adems de enviar tu trabajo de la Evidencia de aprendizaje, es importante que ingreses
al foro Preguntas de Autorreflexin y consultes las preguntas que tu Facilitador(a)
presente, a partir de ellas, debes elaborar tu Autorreflexin en un archivo de texto
llamado XXX_UX_ATR_XXYZ. Posteriormente enva tu archivo mediante la herramienta
Autorreflexiones.
22
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
22
Para saber ms
Si deseas saber ms acerca de metodologas giles consulta la siguiente direccin
electrnica:
Obtendrs una crtica ms detallada de los mtodos giles, que examina sus fortalezas y
debilidades; est escrito por un ingeniero de software con vastaexperiencia.
Fuentes de consulta
Bibliografa
Bibliografa complementaria
23
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
23
24
Ciencias Exactas, Ingenieras y Tecnologa | Ingeniera en Desarrollo de Software
24