INGENIERIA DE SOFTWARE 1
Conferencia 1
SOFTWARE
PROGRAMA DE COMPUTO
ESTRUCTURA DE DATOS
DOCUMENTACION
ES OFRECE METODOS Y TECINICAS PARA GESTIONAR EL PROCESO DE
CONSTRUCCION MANTENIMIENTO Y EVOLUCION DE UN PRODUCTO DE
SOFTWARE DE CALIDAD
UN PROCESO DE SOFTWARE SIMILIAR A UN ALGORITMO ENTRADAS
PROCESO Y SALIDAS
CONJUNTO DE TAREAS O ACTIVIDADES QUE TRASNFORMAN UNAS
ENTRADAS EN UNA SALIDA O RESULTADO ESPERADO USANDO UNA
SERIA DE RECURSOS
TABLA DE PREGUNTAS FUNDAMENTALES EN LA DEFINICION DE UN
PROCESO
1 QUE WHAT
QUE RESULADO SE ESPERA O CUAL ES EL OBJETIVO DE la ejecución del
propósito
2. quien
Quienes están involucrados en la ejecución del propósito
3. porque
Porque y para que es necesario que se ejecute este proceso que impacto
tendrá en el entorno la ejecución de este proceso
4. cuando
Cuando se deben ejectuar las actividades del proceso
5. COMO SE EJECUTAN LAS ACTIVIDADES QUE CONFORMAN EL PROCESO
5W Y 1H
Estructura del proceso de software
activdades
podríamos llegar a venir como la actividad puede puede ser en lo que
sería.
El. La etapa o la fase en en la que se encuentren y la acción lo las tareas
le van a permitir que desarrollen esa acción. Cada acción podría ser o
cada tarea podría ser un requerimiento que le va a permitir, o sea, llegar
a tener algo más completo.
Todo esto va muy de la mano también con el proceso de desarrollo.
Las etapas las etapas de de desarrollo hace etapas de desarrollo.
las etapas que serían
comunicación que y porque se resuelven,
planeacion se define ya lo que sería el plan de proyecto, teniendo en
cuenta que lo que quiere el el cliente o las partes interesadas que son,
qué es lo que ellos quieren, entonces vamos a definir ese plan YY pues
se hace un detalle de las actividades, las acciones, las tareas que se
deben realizar, de pronto algún riesgo que se pueda presentar en esa
tarea, no sé si ustedes ya vieron TSP
modelados también diseño y aquí pues se busca hacer un bosquejo de
las partes que van a tener el sistema, las características y cómo se
relacionan las partes que la componen con ese diseño y tener en cuenta
que para el modelado y para poder hacer ese diseño es necesario tener
claritos los requerimientos de la etapa de comunicación o de análisis,
dependen también el el.
Construccion la construcción ya es generar el código y todo lo que
constituye el software en sería el FERNEY, el mcqueen en toda la parte
de la interacción humano computador, teniendo en cuenta las
características.
Pruebas necesarios para corregir errores
despliegue, que ya es la entrega al cliente y la y los que van a evaluar
que sí ese producto software un con estas etapas
, construcción y despliegue.
Flujo de proceso Y es la forma en que las actividades van a estar
organizadas con respecto al tiempo y a las secuencias que nos va a
definir el flujo.
Flujo lineal se termina un atapa y sigue la siguiente
FLUJO DE PROCESO ITERATIVO PERITE DEVOLVER A ALGUNOS PROCESOS
DEPENDE LAS ITERACIONES Y EL TIEMPO EN COMUNICACIÓN Y
PLANEACION
FLUJO DE PROCEO EVOLUTIVO desarrollo en paralelo, no es necesario,
como en las anteriores.
Qué una actividad o una etapa termine para poder empezar la otra
PUEDE EMPEZAR AL TIEMPO Y HACERLO EN PARALELO
proyecto
utilizar scrum y Kanban CARLOS
DESARROLLO CUALQUIER PLATAFORMA
Prototipo mocaps
En los diseños van los diagramas uml caso secuencia y actividades
Conferencia 2
modelo de procesos de desarrollo software.
los modelos de procesos de desarrollo, de acuerdo con las necesidades
de los diferentes proyectos, se han definido distintos. también conocidos
como ciclo de vida del software
los modelos de procesos de desarrollo también conocidos como ciclo de
vida del software, de acuerdo con las necesidades de los diferentes
proyectos, se han definido distintos.
Eso se clasifican en dos, los modelos de procesos predictivos o
tradicionales y los procesos ágiles.
modelos tradicionales
modelo en cascada Su característica principal es que el flujo de
procesos es lineal. para poder continuar con la siguiente fase.
Debemos tener la fase anterior ya lista terminar, y este modelo también
tiene otra característica y es que no se va a devolver, es decir, estando
en planeación no se va a devolver nuevamente. cada una de las etapas
tiene unas actividades definidas.
Comunicación es tener todos los requerimientos, Planeación es la
programación modelado, lo que es el diseño, lo que va en la
arquitectura, codificación, que es la construcción y despliegue, lo que
sería la entrega.
Funciona muy bien para proyectos cortos.
El usuario no podrá tener una versión funcional, sino hasta que si no
hasta en las etapas finales del del proceso
modelo de proceso incremental vamos a tener los mismos las
mismas etapas de de nuestro desarrollo.
nos va a presentar las actividades y el desarrollo en el tiempo y del
modelo a procesos incremental.
Se combinan dos fllujos, flujo de procesos lineal y el flujo de procesos en
paralelo con el fin de que podamos dar respuesta a proyectos donde no
es posible tener todas las especificaciones o requerimientos al principio
y además nos va a permitir tener partes funcionales del sistema de
manera rápida y a medida que vamos avanzando en cada 1 de los
incrementos, vamos a tener entregas
a primera entrega aquí, primera entrega el incremento del incremento
estos va a ser van a ser las funcionalidades básicas o mínimas
requeridas Y con cada incremento nosotros vamos a ir agregándole más
funcionalidades.
Características se ajusta a entornos de alta incertidumbre, donde los
requerimientos no se conocen en su totalidad al inicio del proyecto.
O hay un alto riesgo de que sufran modificaciones. Entonces, si aquí
nosotros no conocemos todos los requerimientos
Ventajas y desventajas entonces aquí en las ventajas se acortan los
tiempos de entrega y el usuario ve algo que puede valorar del sistema
con más frecuencia, que serían los resultados de esos incrementos.
El usuario participó en el desarrollo del proyecto, ya que las etapas en
en las que más participa son las etapas de comunicación y despliega
entonces puede estar como que siempre hay el usuario pendiente y si se
hacen varios incrementos si vemos aquí sí se hacen varios incrementos,
el usuario va a participar, digamos que cada cada, cada etapa sea una
semana para participar en la semana 1, luego en la semana 4, luego en
la semana 5, luego en la semana, Eh como 8.
Desventajas al no tener una especificación de requerimientos inicial, se
hace que sea difícil estimar el costo total de el proyecto, porque pues no
sabemos en qué momento vamos a parar.
Comunicación
Planeación
Modelado
Construcción
Despliegue.
Comunicación, planeación, modelado, construcción y despliegue.
modelo de procesos por prototipo aquí vamos a manejar varios
prototipos de dependiendo de cada una de las etapas, vamos a tener
diferentes tipos de prototipos para la comunicación, vamos a tener los
requerimientos.
de los primeros requerimientos, los la priorización de los
requerimientos.
¿Cuáles son las funcionales? Los no funcionales y vamos a tener esos
esos prototipos para poderle pasar a la planeación y. Lo que sería ese
prototipo, obviamente teniendo en cuenta que un prototipo no es la
versión final, o sea, eso también está sujeto a cambios de parte del
cliente.
Sin embargo, con ese prototipo planeación modelada, construcción y
despliegue, puede trabajar y pues estos prototipos se van actualizando
también dependiendo de las reuniones con el cliente.
Entonces, aparte de tener como esos incrementos, como lo vimos en el
en el modelo pasado, aquí vamos a generar unos prototipos y por
ejemplo en el modelado, en el modelado, y se incluye toda la parte de
arquitectura de software. Y, a su vez, también se incluye la parte de
diseño.
Sé lo que sería tener un diseño de alto nivel o un diseño de bajo nivel,
un diseño detallado y con esos prototipos es que se va a avanzar en el
desarrollo, es el cliente lo que va a hacer es tener algo de manera visual
para decir sí, eso es lo que quiero De hecho, si ustedes hacen un
prototipo, es mucho más sencillo que hacer el código que represente lo
que sería ese prototipo.
prototipo es más visual, puede tener interacción Si ustedes lo hacen en
un, en un software que le permita esa interacción, pero pues no va a no
va a tener ni base de datos ni ni Código ni nada, simplemente es una
animación de como de como sería. Y con ese prototipo, el cliente, ya
vemos que puede aprobar, sugerir, mejorar y volver al prototipo de
comunicación.
Características de el modelo por prototipos es que no va a reducir el
riesgo de construir productos que no satisfagan las necesidades de los
usuarios porque siempre estamos creando esos prototipos para que el
usuario los vea y nos exprese sus inconformidades al respecto.
Reduce los costos y aumenta la probabilidad de éxito también
dependiendo del tipo de prototipos entre, digamos, más parecidos a la
realidad sean, es decir, sean de alto nivel.
He aquí una característica bastante importante, es que exige disponer
de las herramientas adecuadas para la elaboración de los prototipos.
Normalmente estas herramientas son pagas, entonces recitamos tener y
esas esas licencias para poder presentarle al usuario esos prototipos,
porque si no, no nos volcamos en unos prototipos de bajo o medio nivel
de complejidad y no va a representar lo que realmente nosotros
queremos mostrarle al cliente y aquí incrementa los riesgos de calidad y
robustez en el en en los diseños.
Un prototipo es una buena forma de facilitar la comunicación con el
usuario final, porque con ese prototipo se puede se puede hablar.
tienen que poner esos límites de la del desarrollo de los tipos, otra es
también igual que en la anterior. En él, incremental la que no vamos a
poder conocer.
A tiene el tiempo de desarrollo porque, pues también depende de lo que
serían las funcionalidades y él y los prototipos, y llegar como a esos
acuerdos también es difícil manejar las expectativas del usuario, ya que
a la ya que no se parecen ta una versión funcional o parcialmente
funcional, el usuario de pronto puede decir que.
Que el desarrollo debe realizarse para que la construcción sea la de la
calidad esperada, porque a veces como que no hay esa confianza en lo
que sería los prototipos creados o presentados.
modelo de procesos en espiral
Aquí eso es parecido al modelo incremental Entonces empezamos, miren
por dentro el espiral.
Entonces empezamos, miren por dentro el el espiral. Empezamos en la
etapa de comunicación, pero aquí no vamos a tener la posibilidad como
de.
De a empezar aquí en esta etapa con todos los requerimientos como el
incremental, que podemos empezar como un modelo en cascada y si se
presenta algún cambio o alguna modificación hacemos un incremento.
Aquí empezamos con lo que hay, o sea, con lo primero que que el el
analista recoja requerimientos, empezamos y vamos girando por todas
las etapas, cada vez ampliando un poco más lo que sería ese ese
desarrollo, este este modelo en espiral nos toma.
Todas las ventajas [Link] modelo incremental del modelo por prototipos y
del modelo en cascada es como el paso previo a los modelos ágiles.
ventajas de este modelo en espiral
Entonces no necesita una definición completa de los requerimientos
para empezar a implementar una iteración a como que ya le den como
una idea, incluso puede que esos requerimientos no sean los más
importantes, simplemente sean como los primeros o los que tal vez el
usuario considere más importantes
Se incluyen prototipos desde la primera iteración para empezar a validar
los requerimientos.
Además, se solo se pone en riesgo el tiempo y los recursos invertidos
que se generan en cada iteración.
Otra ventaja es que podemos identificar los problemas más rápidamente
y se reduce el riesgo y se facilita resolver a tiempo esos y esos
problemas y además toma todas las ventajas de los procesos anteriores.
Proceso el modelo en espiral desventajas es que el cliente debe
participar constantemente y puede generar inconvenientes y otras
ventajas.
La gestión del proyecto de este tipo de modelos es bastante compleja,
por lo que requiere gestores experimentados para garantizar el éxito del
proyecto.
Y este modelo en espiral es el que da inicio a lo que serían los las
metodologías ágiles y después, en el próximo sábado, cuando veamos
las águilas, se van a dar cuenta que es muy parecido al modelo en
espiral.
las habilidades blandas de un ingeniero de software,
Estos son como habilidades, no tanto de conocimiento, sino de sus
capacidades como persona, ya en, digamos en cualquier ambiente, se
pueden ver y se pueden resaltar estas habilidades, primero, pues
búsqueda y clasificación de la información, saber qué es lo que le está
sirviendo, qué es lo que no hacer esa y discriminación de la Información.
Tener también una capacidad de análisis para poder resolver esos
inconvenientes que se puedan presentar.
Tratar de buscar esas soluciones. Tenemos deducir, sintetizar,
interpretar, analizar los fenómenos que observamos
Habilidades comunicativas sobre todo.
Y si va a ser un analista O dedicarse como al a la OrquestAción de todo
el proceso, es importante, bastante importante, estas habilidades
comunicativas, la redacción de informes y documentos también es
importante.
La habilidades de creatividad aunque digamos que la creatividad es,
sobre todo para buscar soluciones a los problemas de manera creativa,
no, no es tanto confocal diseño, que será bonito porque ya y
normalmente en un desarrollo se tiene en cuenta a un diseñador que
sea la persona encargada de arreglar, tener en cuenta los colores
institucionales
sensibilización frente a los problemas del cliente.
El liderazgo
también toma de decisiones
Gestión de conflictos
trabajo en equipo.
Conferencia 3
MODELOS AGILES4
PROGRAMACION EXTREMA
Retroalimentación
Cristal Methodologies
DYNAMIC SYSTEM DEVELOPMENT METOD(
ADAPTIVE SOFTWARE DEVELOPMENT (ASD)
TSP TEAM SOFTWARE PROCESS
SCRUM
EL Desarrollo de software se realiza mediante iteraciones, denominada
sprints con una duración de 30 dias. El resultado de cada sprint es un
incremento ejecutable que se muestra al cliente.