Procesos de software

Rafael Mellado
15 Aug 202009:56

Summary

TLDREl script del video explora los diferentes modelos de desarrollo de software, destacando que no existen de forma aleatoria y que cada uno tiene un propósito específico en la creación de sistemas de información. Se mencionan los modelos más comunes y cómo, aunque son tradicionales, cada uno puede adaptarse o combinarse para obtener los mejores resultados. Se discute sobre el modelo de cascada, su rigidez y limitaciones, y se contrasta con enfoques más ágiles y iterativos como el modelo evolutivo, el incremental y el espiral. Además, se destaca la importancia de la reutilización de software y cómo los modelos pueden influir en la planificación y la evolución de los componentes de software. Finalmente, se menciona el proceso unificado racional y la necesidad de adaptar el modelo de desarrollo de software a las características y objetivos estratégicos de cada empresa.

Takeaways

  • 📚 La creación de un sistema de información no es aleatoria y se basa en modelos que proporcionan directrices para su desarrollo.
  • 🔍 Los modelos de desarrollo de software son aceptados en sus variantes siempre y cuando se busquen los mejores resultados.
  • 🛠️ El proceso de software, también conocido como paradigma de procesos de software, ofrece una referencia para modelos más detallados y adaptables.
  • 💧 El modelo en cascada es uno de los primeros y más rígidos, donde cada etapa entrega documentación aprobada y un error en una etapa puede requerir reinicio.
  • 🌱 El modelo evolutivo se centra en la interacción constante con los usuarios, lo que permite refinar y adaptar el software a medida que evoluciona.
  • 🚀 El enfoque del prototipo de desechable implica desarrollar un software temporal para entender mejor los requisitos antes de crear el producto final.
  • ♻️ La reutilización de componentes de software es un enfoque que agiliza el desarrollo al integrar componentes diseñados para ser reutilizables.
  • 📈 El modelo incremental implica que el software crece y se entrega en incrementos, cada uno probado y corregido para agregar nuevas funcionalidades.
  • 🔧 El modelo espiral combina迭代 (iteraciones) con evaluación de viabilidad constantes, lo que permite adaptar o cancelar el proyecto según sea necesario.
  • 🌟 El proceso unificado racional (RUP) define fases, disciplinas y etapas iterativas, enfocándose en el modelado y requisitos en las primeras fases.
  • 🚀 Los modelos ágiles de desarrollo de software son más modernos y enfocados en la interacción con el cliente, aunque pueden tener desventajas específicas.
  • 🔑 La elección de un modelo de desarrollo de software debe basarse en las características y objetivos estratégicos de la empresa, no todos los modelos son estándar ni adecuados para cualquier organización.

Q & A

  • ¿Qué son los mitos asociados al software y cómo afectan la creación de un sistema de información?

    -Los mitos asociados al software son creencias erróneas o generalizaciones que pueden llevar a malentendidos y a un proceso de desarrollo de software menos eficiente. Afectan la creación de un sistema de información al influir en las decisiones tomadas y en cómo se abordan los principios y definiciones generales del desarrollo.

  • ¿Por qué la creación de un sistema de información no es un proceso aleatorio?

    -La creación de un sistema de información no es un proceso aleatorio porque existe una serie de modelos y directrices que guían el desarrollo de dicho sistema. Estos modelos proporcionan estructura y ayudan a alcanzar mejores resultados al seguir un proceso definido y ordenado.

  • ¿Qué son los modelos de desarrollo de software y cuál es su propósito?

    -Los modelos de desarrollo de software son conjuntos de actividades y procesos que proporcionan directrices sobre cómo crear un sistema de información. Su propósito es establecer un marco para el desarrollo estructurado y eficiente del software, asegurando que se cumplan los objetivos y se alcance un producto de calidad.

  • ¿Cómo es el modelo de cascada en el desarrollo de software?

    -El modelo de cascada es uno de los primeros y más conocidos en el desarrollo de software. Consiste en una secuencia de etapas que fluyen de manera lineal y donde cada etapa entrega una documentación aprobada antes de pasar a la siguiente. Es un modelo inflexible que requiere reiniciar la etapa actual si se detectan errores.

  • ¿Qué es el modelo evolutivo en el desarrollo de software y cómo difiere del modelo de cascada?

    -El modelo evolutivo es una refinación de las implementaciones iniciales que involucra una constante interacción con los usuarios. Diferencias del modelo de cascada en que permite la evolución y refinamiento del software a medida que se desarrolla, en lugar de seguir una secuencia rígida de etapas.

  • ¿Cómo se define el modelo incremental en el desarrollo de software?

    -El modelo incremental implica que el software crece progresivamente a través de entregas sucesivas, donde cada entrega introduce nuevas funcionalidades y mejoras. Estas entregas se prueban y se corrigen, pero no se trata de mejorar el mismo conjunto de funcionalidades sino de agregar nuevas características.

  • ¿Qué es el modelo del espiral y cómo se relaciona con la evaluación de la viabilidad de un proyecto?

    -El modelo del espiral es un enfoque iterativo que combina desarrollo y evaluación de riesgos. En cada iteración, se evalúa la viabilidad del proyecto y se realiza una integración completa. Este modelo permite la cancelación del proyecto si se determina que no es factible continuar, lo que contrasta con otros modelos que asumen que el proyecto debe concluirse exitosamente.

  • ¿Cuál es la diferencia principal entre los modelos tradicionales y los modelos ágiles en el desarrollo de software?

    -Los modelos tradicionales, como el de cascada, son más estructurados y rigurosos, mientras que los modelos ágiles se enfocan en un desarrollo rápido y flexible, cercano al cliente y adaptable a cambios. Los modelos ágiles pueden ser más adecuados para proyectos donde se requiere una mayor agilidad y adaptación continua.

  • ¿Por qué es importante considerar las características organizacionales y los objetivos estratégicos de una empresa al seleccionar un modelo de desarrollo de software?

    -Es importante porque cada empresa tiene necesidades y prioridades únicas que influyen en cuál modelo de desarrollo será más efectivo. Considerar estas características asegura que el modelo seleccionado se adapte a la cultura y los requerimientos de la organización, maximizando la eficiencia y el éxito del proyecto.

  • ¿Qué riesgos inherentes pueden surgir al reutilizar componentes de software en el desarrollo?

    -Los riesgos incluyen una posible desviación de los requisitos porque se fuerza el uso de componentes ya desarrollados que no cumplen con lo que el usuario necesitaba. También puede haber una pérdida de control sobre la evolución de los componentes reutilizados.

  • ¿Cómo puede el modelo de desarrollo de software incremental mejorar la aceptación del usuario final?

    -Al entregar funcionalidades de forma incremental y permitir que el usuario interactúe con el software a medida que se desarrolla, se fomenta una mejor comprensión de los requisitos y una mayor aceptación del producto final, reduciendo la resistencia al cambio.

  • ¿Qué modelo de desarrollo de software se recomienda para proyectos de baja o mediana envergadura con poca visibilidad?

    -Se recomienda el modelo evolutivo o el incremental, ya que permiten un enfoque más flexible y adaptable, sin la necesidad de un control rígido o una arquitectura crítica desde el principio del proyecto.

Outlines

00:00

📚 Modelos de Desarrollo de Software

Este párrafo aborda la importancia de los modelos en la creación de sistemas de información. Se mencionan que los modelos son conjuntos de actividades y procesos que proporcionan directrices para el desarrollo de un sistema de información. Se destaca que cualquier modelo es aceptable siempre que se busquen los mejores resultados. Se exploran varios paradigmas de procesos de software, desde los más tradicionales hasta los más ágiles, y se discute la flexibilidad y adaptabilidad de estos en diferentes etapas del desarrollo. Se menciona que los modelos no son estrictos y pueden ser combinados o modificados según sea necesario.

05:01

🔄 Modelos de Desarrollo: Evolución y Reutilización

Este párrafo se enfoca en la evolución y reutilización en el desarrollo de software. Se describe el modelo de cascada, su rigidez y las implicaciones de encontrar errores en una fase específica. Se discuten los modelos evolutivos y cómo implican una interacción constante con los usuarios para refinar las implementaciones iniciales. Se menciona el modelo incremental, que se caracteriza por la adición de nuevas funcionalidades en lugar de la mejora continua de las existentes. Además, se aborda la importancia de la reutilización de componentes de software y cómo esto puede acelerar el proceso de desarrollo. Finalmente, se introduce el modelo en espiral, que incluye evaluaciones constantes de viabilidad y la posibilidad de cancelar un proyecto si no es factible continuar.

Mindmap

Keywords

💡Mitos

Los mitos son creencias o conceptos erróneos que circulan en torno a un tema o campo específico. En el video, se menciona que existen mitos asociados al software, lo que sugiere que se busca desmentir o aclarar estas creencias para proporcionar una comprensión más precisa del tema.

💡Principios y Definiciones

Estos son conceptos fundamentales y las definiciones claras que rigen la creación y el desarrollo de un sistema de información. Son cruciales para establecer un entendimiento común y evitar malentendidos en el proceso de desarrollo del software.

💡Modelos de Desarrollo de Software

Los modelos son conjuntos estructurados de actividades y procesos que proporcionan directrices para la creación de un sistema de información. En el video, se discuten varios modelos populares y cómo son fundamentales para guiar el desarrollo del software de manera efectiva.

💡Paradigma de Procesos de Software

Un paradigma es un enfoque general que define cómo se aborda un problema o se lleva a cabo una tarea. En el contexto del video, el paradigma de procesos de software se refiere a la perspectiva desde la que se abordan y se estructuran los procesos de desarrollo del software.

💡Metodología Ágil

La metodología ágil se refiere a un enfoque al desarrollo de software que prioriza la flexibilidad y la capacidad de respuesta al cambio. Se menciona en el video como un modelo más moderno y adaptable que puede ser más rápido y cercano al cliente, aunque con sus propias desventajas.

💡Cascada

El modelo en cascada es una de las primeras y más tradicionales técnicas de desarrollo de software, donde el proceso se lleva a cabo en fases secuenciales y claramente definidas. En el video, se destaca como un modelo inflexible que requiere reinicio de etapas si se detectan errores.

💡Evolución

Este concepto se refiere a la capacidad de un sistema de información para adaptarse y mejorar con el tiempo. En el video, se relaciona con el modelo evolutivo, que permite la interacción continua con los usuarios y la refinación de implementaciones iniciales.

💡Incremental

El enfoque incremental implica el desarrollo del software en fases, donde se entregan y mejoran partes del sistema de forma progresiva. Se destaca en el video como un enfoque que permite a los usuarios interactuar tempranamente con las funcionalidades más importantes.

💡Espiral

El modelo en espiral es un enfoque iterativo que combina desarrollo y evaluación de viabilidad del proyecto en cada ciclo. Se describe en el video como un modelo científico que permite la integración continua y la toma de decisiones basadas en la evaluación de riesgos.

💡Proceso Unificado Racional (RUP)

El RUP es un modelo de proceso de software que define fases, disciplinas y etapas o iteraciones. Se menciona en el video como un enfoque que abarca desde la modelización empresarial hasta el análisis y diseño, y que se adapta a lo largo del tiempo en función de los requisitos y la evolución del proyecto.

💡Reutilización de Software

La reutilización de software se refiere a la práctica de utilizar componentes de software desarrollados previamente en nuevos proyectos para agilizar el proceso de desarrollo. En el video, se discute como un enfoque que se puede adoptar para mejorar la eficiencia y reducir los tiempos de desarrollo.

Highlights

Existen mitos asociados al software que deben ser considerados en la creación de un sistema de información.

Los modelos son conjuntos de actividades y procesos que proporcionan directrices para crear un sistema de información.

Cualquier variante de modelo es aceptada siempre y cuando se busquen los mejores resultados.

El proceso de software conocido como paradigma de procesos de software es una referencia para modelos más detallados.

Los modelos no son estrictos ni inflexibles; pueden combinarse y adaptarse en distintas fases de desarrollo.

El modelo en cascada es el primer modelo propuesto y está basado en procesos de ingeniería genéricos.

El modelo en cascada es inflexible; si se detectan errores, implica reiniciar la interacción.

El modelo evolutivo se centra en refinar implementaciones iniciales a través de interacción constante con los usuarios.

El enfoque iterativo es práctico cuando los requisitos necesitan ser refinados y el desarrollo puede ser exploratorio.

El prototipo de desechable permite ver cómo queda el software, pero está destinado a ser certero y no se usa como software final.

La reutilización de software se enfoca en integrar componentes diseñados y desarrollados con un enfoque reutilizable.

El incremental es un enfoque que hace que el software crezca hacia un incremento, generando entregas con nuevas funcionalidades.

El modelo del espiral es científico y evalúa la viabilidad del proyecto en cada iteración.

El proceso unificador racional define fases, disciplinas y etapas o iteraciones del tiempo en el desarrollo de software.

Los modelos tradicionales contrastan con los modelos ágiles, que promueven un desarrollo de software más rápido y cercano al cliente.

Los modelos ágiles pueden tener desventajas y deben ser discutidos para determinar su apropiación en una empresa.

Es importante seleccionar un modelo de desarrollo de software basado en las características organizacionales y objetivos estratégicos de la empresa.

Los modelos de desarrollo de software no son estándar y no sirven para cualquier empresa; deben ser estudiados y seleccionados cuidadosamente.

Transcripts

play00:00

[Música]

play00:10

hasta ahora los vídeos anteriores hemos

play00:13

visto de que existen mitos asociados al

play00:15

software principios y definiciones

play00:18

generales que deben ser consideradas al

play00:20

momento de la creación de un sistema de

play00:22

información entonces qué pasa pasa de

play00:24

que ahora lo que vamos a ver es que la

play00:27

forma de creación del sistema de

play00:28

información no es aleatoria

play00:31

y para eso existen lo que son los

play00:33

modelos los modelos en general son

play00:36

aquellas conjunto de actividades y

play00:38

procesos que nos entregan las

play00:40

directrices de cómo crear un sistema de

play00:43

información y nosotros en este vídeo

play00:44

vamos a ver los más comunes y populares

play00:46

pero siempre considerando de que

play00:49

cualquier variante de modelo es aceptada

play00:51

siempre pensando en obtener los mejores

play00:54

resultados

play00:56

entonces lo que refiere al proceso de

play00:59

software

play01:00

que realmente son conocidos como lo que

play01:02

vamos a ver como paradigma de procesos

play01:05

de software la mente la literatura lo

play01:07

trata así presentan un proceso desde una

play01:09

perspectiva muy particular y son

play01:11

abstracta o sea simplemente referencia o

play01:14

huelva la referencia para modelos más

play01:16

detallados y pueden ser extendidos crees

play01:19

que podemos agregarle más cosas o

play01:20

modificarla distintos modelos podrían

play01:23

combinarse e incluso en distinta fase de

play01:26

desarrollo o sea no son estrictos no son

play01:28

no son algo inflexible

play01:30

nosotros vamos a ver algunos de los más

play01:32

conocidos acá y sobre todo de lo que

play01:34

ofrece la literatura considerando que

play01:36

muchos otros que son nuevos

play01:39

o más nuevos son mucho más ágiles y

play01:44

expeditos para el desarrollo del

play01:45

software pero eso depende también del

play01:47

volumen y todavía incluso hay un cierto

play01:49

consenso sobre otras metodologías ágiles

play01:52

tiene detractores e incluso así que no

play01:55

existe una una visión única de la de la

play01:59

comunidad científica y relacionada a

play02:02

este tema en modelos más conocidos como

play02:06

ver el cascada evolutivos raya un

play02:08

componente interactivo que está ahí en

play02:10

incrementar el espiral en el caso del

play02:12

cascada el primer modelo propuesto el es

play02:18

el base el que todos ocuparon en un

play02:20

momento y está derivado de procesos de

play02:22

ingeniería más genéricos cada etapa

play02:24

entrega como resultado una documentación

play02:26

aprobada es un modelo inflexible o sea

play02:29

si tú detectas errores en una etapa

play02:31

implican reiniciar toda una interacción

play02:32

ósea

play02:34

validando software y se encuentra un

play02:36

error este modelo asume de que hay un

play02:38

problema desde los requisitos entonces

play02:41

rehace requisitos racer diseño de hacer

play02:43

implementación para corregir un error

play02:45

sólo es útil cuando los requerimientos

play02:47

se comprenden claramente y es difícil

play02:49

que cambien porque imagínate que estamos

play02:51

en la etapa de verificación y lo solo

play02:53

dice ah se me olvidó algo hay que volver

play02:55

a requisito no entonces es si tienes

play02:57

todo claro muy bueno y cascada sí no

play03:00

no no es viable ocuparlo

play03:03

el vuelo evolutivo es una refinación de

play03:05

implementaciones iniciales tras una

play03:08

constante interacción con los usuarios y

play03:10

la etapa esenciales que se entrelazan

play03:12

que quiere decir quiere decir de que tú

play03:14

haces un desarrollo y ese desarrollo va

play03:16

evolucionando ya sea refinando

play03:19

agregándole cosas nuevas es práctico

play03:21

cuando requerimientos necesitan ser

play03:23

refinados seattle y no tengo tan clara

play03:24

la película el desarrollo

play03:27

puede ser exploratorio o incluso con

play03:29

prototipo de desechable o sea el

play03:31

oratorio dice que los requerimientos se

play03:33

van mejorando en el tiempo y el estable

play03:36

dice no mira hacemos un pequeño software

play03:38

para que nos vea cómo queda pero ese

play03:41

software está destinado a ser certero la

play03:42

basura mente sólo para ver eso lo de

play03:44

productivo así como cuando existen los

play03:46

autos prototipo exactamente igual que

play03:48

nunca los el final va a tener

play03:50

inspiración en ese prototipo pero nunca

play03:53

se ha usado el prototipo como software

play03:55

final es recomendado un proyecto de baja

play03:57

o mediana envergadura en donde la

play04:00

visibilidad del proyecto no es relevante

play04:01

o sea no relevante tener el control tan

play04:04

tan rígido y no se requiere una

play04:06

arquitectura su crítica también entonces

play04:08

antes

play04:10

el pasado un componente va de la mano

play04:12

con lo que es la reutilización de

play04:14

software

play04:16

entonces el foco el foco en integrar

play04:19

componente de software es reutilizable o

play04:21

sea que lo componente está diseñado

play04:23

desarrollado con un foco reutilizable

play04:26

esto permite agilizar la etapa asociada

play04:29

a la implementación o sea el desarrollo

play04:30

de software a la programación a la

play04:33

codificación son muchas veces sinónimos

play04:36

pero la programación puede causar

play04:37

conflictos con la palabra de

play04:39

planificación e hija así que ojo con eso

play04:42

no siempre sale de lo mismo cuando se

play04:44

habla de programación y los riesgos

play04:47

inherentes que tenemos que puede haber

play04:49

una desviación del requerimiento debido

play04:51

a que se trate de forzar el uso de

play04:53

componentes ya desarrollados y que no

play04:56

cumpla con lo que el usuario tenía

play04:58

planificado planteado inicialmente y

play05:00

puede haber también una pérdida de

play05:01

control sobre la evolución de los

play05:03

componentes mismos

play05:06

el incremental que el incremental hace

play05:11

algo parecido pero igual lo que hace el

play05:14

incremental es que el software no hace

play05:16

una evolución sino que en realidad va

play05:19

creciendo hacia un incremento va

play05:22

generando

play05:23

va generando entregas pero esas entregas

play05:26

se van probando corrigiendo pero las

play05:28

nuevas entregas no son sobre lo mismo

play05:31

mejorado son sobre nuevas

play05:33

funcionalidades como esa y este enfoque

play05:36

intermedio entre cascada y evolutivo lo

play05:40

incrementó según prioridad de las

play05:42

funciones primeros hacia los más

play05:43

críticos para el usuario permite al

play05:46

usuario encontrar templadamente con las

play05:49

funciones más importantes que puede

play05:51

probar puedo usarlo tempranamente y eso

play05:54

produce un efecto de apropiación del

play05:58

software o sea aprobación no quiere

play06:00

decir que sólo está dejando abreviación

play06:02

quiere decir de que lo está siendo

play06:04

propio eso quiere decir que después

play06:07

todos los problemas del desarrollo de

play06:10

pruebas de corrección e incluso de

play06:12

justificar el software ante los

play06:14

compañeros ante la jefatura ante la

play06:16

empresa

play06:17

se vuelve mucho más fácil porque la

play06:18

persona al usarlo y el que el software

play06:20

cumple con lo que yo necesitan y al

play06:22

conocerlo dicen oye pero si esto es así

play06:24

porque nosotros lo pedimos así no lo

play06:26

critiquen y reduce él

play06:29

de reducir drásticamente el efecto

play06:32

resistencia al cambio

play06:34

el usuario comprende lo mejor los

play06:36

requerimientos a medida que avanzan los

play06:38

incrementos o sea muchas veces los

play06:40

usuarios y eso se ve en cursos de

play06:41

general requerimiento piden cosas que

play06:44

iniciadas comprendan y cuando recién lo

play06:46

ven implementado le hace clic se le

play06:50

prende la ampolleta y dice hoy pero esto

play06:52

no de los millones estaban

play06:54

la historia dificultad para adaptar

play06:57

requerimientos a los incrementos es

play07:00

importante si estoy en este incremento

play07:02

de acá es muy difícil que yo tenga poder

play07:05

meterle mano a un incremento que está al

play07:07

principio que está cerrado

play07:09

el espiral este modelo es más científico

play07:12

porque sucede que el espiral dice que

play07:15

empieza y bueno va generando iteraciones

play07:18

pero en cada vuelta lo que tú vas a

play07:21

hacer es que vas a evaluar la viabilidad

play07:23

del proyecto

play07:25

finalmente sucede un proyecto científico

play07:26

donde tú hace una integración completa y

play07:29

si ya cómo vamos es factible seguir

play07:31

generamos un prototipo ejemplo ahí dice

play07:33

prototipo 2 si sigamos damos la vuelta y

play07:36

en algún momento puede ser que el

play07:37

proyecto diga no sabes quién es no no no

play07:40

no es factible seguir y se cancela

play07:43

o sea el modelo está pensado en esa

play07:47

evaluación constante y otro modelo no el

play07:49

otro modelo asumen que el proyecto tiene

play07:50

que terminar exitosamente acá no porque

play07:53

el aporte dice es explora tivo puede

play07:55

podemos pegar que también es un puesto

play07:59

de lillo a un costo acumulado ok porque

play08:01

no siempre se va a gastar todo el

play08:02

presupuesto o incluso se va a gastar más

play08:04

que el presupuesto planificado como

play08:06

suele suceder en la mayoría de productos

play08:08

de software

play08:11

para llegar sin finalizar vamos a hablar

play08:12

sobre el proceso unificador racional que

play08:15

básicamente define fases versus

play08:18

disciplinas y etapas o iteraciones del

play08:21

tiempo la que tenemos acá 12 etcétera

play08:25

etcétera según qué fase inicial o kate o

play08:29

se dice media para la fase inicial que

play08:31

realmente se ocupa más el modelado

play08:32

empresarial y los requisitos y recién

play08:35

empieza al último a nacer análisis

play08:38

diseño nada despliegue nada de entorno

play08:41

olvídate de las pruebas pero cuando

play08:44

empezamos la elaboración el modelo

play08:46

empresarial pese a desaparecer los

play08:48

requisitos ya está más o menos cerrado

play08:49

el análisis diseño llega a su cúspide y

play08:51

así se va con por tanto cada una de las

play08:53

disciplinas en el tiempo asociado a las

play08:57

fases que estemos trabajando

play08:59

en este vídeo acabamos de ver aquellos

play09:02

modelos principales y que se aplican

play09:04

dentro de la empresa para el desarrollo

play09:05

del software pero no debemos dejar de

play09:08

considerar de que son muy tradicionales

play09:10

hoy día hay modelos que son más

play09:11

vanguardistas y que nos hablan de por

play09:13

ejemplo software ágil en la cual se

play09:16

establecen procedimientos para

play09:18

desarrollar software de una forma más

play09:19

rápida más cercana al cliente pero ojo

play09:22

con ciertas desventajas que tenemos

play09:24

conversar y discutir posteriormente para

play09:26

poder abarcar y determinar cuál es el

play09:29

modelo más apropiado dentro de nuestra

play09:32

empresa no los modelos no son todos

play09:34

estándar y no todos sirven para

play09:36

cualquier empresa se debe estudiar se

play09:39

debe seleccionar un modelo en base a las

play09:42

características de mí y sin gracia

play09:44

organizacional de mi empresa y mis

play09:46

objetivos estratégicos

play09:49

[Música]

Rate This

5.0 / 5 (0 votes)

Related Tags
Desarrollo de SoftwareModelos ÁgilesMetodologías de IngenieríaRequisitos del ClientePrototiposIncrementosEspiral de DesarrolloReutilización de CódigoControl de CambiosComunidad CientíficaSoftware Empresarial
Do you need a summary in English?