Unidad I Desarrollo Rápido de
Software
¿QUÉ ES UN PROGRAMA?
Un programa es una secuencia de instrucciones que pueden ser
interpretadas por un computador, obteniendo como fruto de esa
interpretación un determinado resultado que ha sido
predeterminadamente establecido por el ser humano.
Es el software que nos permite tener una interacción con
nuestro hardware, es decir, es el sistema operativo. Dicho
sistema es un conjunto de programas que administran los
recursos del hardware y proporciona una interfaz al
usuario.
Sistemas operativos
Controladores de dispositivo
Herramientas de diagnóstico
Herramientas de Corrección y Optimización
Servidores
Utilidades
SOFTWARE DE SISTEMA
Son los programas que nos permiten realizar tareas especificas en
nuestro sistema. A diferencia del software de sistema, el software de
aplicación esta enfocada en un área especifica para su utilización.
 Procesadores de Palabras o Texto (Word Processors).
 Sistemas Manejadores o Administradores de Bases de Datos (DBMS,
Data Base Management Systems).
 Hojas Electrónicas de Cálculo.
 Programas de Presentación Gráfica.
 Programas Educativos, Software Educativo o Tutoriales.
Antivirus
 Programas para gráficos e imágenes, etc.
SOFTWARE DE APLICACIONES
Es un Sistema de Diseño, Desarrollo y Ejecución de aplicaciones
informáticas de bases de datos, comunicaciones y cálculo usando
interfaz gráfica de ventanas. Es un sistema programable a partir del
cual es posible crear cualquier solución parametrizable.
¿SOFTWARE DE PROPOSITO GENERAL
Los lenguajes de programación o software de programación son
herramientas que nos permiten crear programas y software.
Una computadora funciona bajo control de un programa el cual debe
estar almacenado en la unidad de memoria; tales como el disco duro.
Para que estos programas funcionen para diferentes computadoras
hay que realizar una versión para cada una de ellas, lo que implica el
aumento del costo de desarrollo.
 Visual Basic
 Visual.Net
 Pascal
 Software Base de Datos
SOFTWARE DE PROGRAMACIÓN
 La mejor forma de obtener un mejor software era a
través de una planificación cuidadosa del proyecto,
una garantía de calidad formalizada, la utilización de
métodos de análisis y diseño soportados por
herramientas CASE y proceso de desarrollo de
software controlado y rigurosos.
Métodos ágiles
Desarrollo prototipado incremental
Este software era desarrollado por grandes equipos que a
veces trabajando para compañías diferentes. A menudo
estaban dispersos geográficamente y trabajaban en el
software durante largos periodos de tiempo.
Sin embargo cuando este enfoque pesado de desarrollo
basado en la planificación fue aplicado a sistemas de negocio
pequeños y de tamaño medio, el esfuerzo invertido era tan
grande que algunas veces denominaba el proceso de
desarrollo.
Métodos agiles
En la
práctica
son a veces
difíciles de
realizar.
Métodos ágiles
Principio descripción
Participación del cliente Los clientes deben estar
fuertemente implicados en
todo el proceso de desarrollo
Entrega incremental El software se desarrolla n
incrementos, donde el cliente
especifica los requerimientos
a incluir en cada incremento
Personas, no procesos Se deben reconocer y
explotar las habilidades de
desarrollo
Aceptar el cambio Se debe contar con que los
requerimientos del sistema
cambian .
Mantener la simplicidad Se debe centrara con la
simplicidad tanto en el
software a desarrollar como
el proceso de desarrollo.
Características:
 No son adecuados para el desarrollo de sistemas a
gran escala.
 Son enfocados a sistemas medianos y pequeños.
 Tienen que depender de contratos donde el cliente
paga por el tiempo necesario para el desarrollo del
sistema.
Métodos ágiles
La programación extrema XP es posiblemente el
método ágil más conocido y ampliamente utilizado.
Donde se basa de buenas prácticas reconocidas, como
el desarrollo iterativo y con la participación del cliente
en niveles extremos.
Programación Extrema
En la programación extrema todos los requerimientos
se expresan como escenarios (llamadas historias de
usuario), las cuales se implementan directamente como
una serie de tareas.
Los programadores trabaja en parejas y desarrollan
pruebas por cada tarea de escribir código nuevo.
Programación Extrema
El ciclo de entrega en laProgramación
Extrema
Prácticas de la programación extrema
Principio o práctica Descripción
Planificación incrementar Los requerimientos se registran en
tarjetas de historias y las historias a
incluir en una entrega determinada.
Entregas pequeñas El mínimo conjunto útil de
funcionalidad que proporcione valor
de negocio se desarrolla primero
Diseño sencillo Solo se lleva a cabo el diseño
necesario para cumplir los
requerimientos actuales.
Desarrollo previamente probado Se utiliza un sistema de pruebas de
unidad automatizado para escribir
nuevas funcionalidades antes de
que éstas se implementen
refactorización Se espera que todos los
desarrolladores refactoricen el
código continuamente tan pronto
como encuentren posibles mejoras
en el código.
Principio o práctica Descripción
Programación en parejas Los desarrolladores trabajan en
parejas , verificando cada uno el
trabajo del otro y proporcionando
ayuda necesaria.
Propiedad colectiva Los desarrolladores trabajan e todas
las áreas del sistema
Integración continua Se integra el sistema entero
Ritmo sostenible No se consideran aceptables
grandes cantidades de horas extras.
Cliente presente Debe estar disponible al equipo de
la XP un representante de los
usuarios finales del sistema a tiempo
completo
Prácticas de la programación extrema
Los clientes están fuertemente implicados en las
especificaciones y establecimientos de prioridades de
los requerimientos del sistema.
Los clientes son parte del sistema son parte del equipo
de desarrollo y discuten escenarios con otros miembros
del equipo.
Programación extrema
 Desarrollo previamente probado
 Desarrollo de pruebas incremental a partir de los
escenarios
 Participación del usuario en el desarrollo de las
pruebas y en la validación
 El uso de bancos de pruebas automatizados
Características clave de XP
Ejemplos de pruebas XP tarjetas de
tareas para la descarga de
documentos
continua
En XP las pruebas de aceptación son incrementales,
para esta historia, la prueba de aceptación implicaría
seleccionar varios documentos, pagarlos de diferentes
formas e imprimirlos en impresoras distintas, en laa
práctica, se desarrolla una serie de pruebas de
aceptación en una sola vez.
Explicación
Otra practica innovadora es que los programadores
trabajan en parejas para desarrollar el software, se
sientan juntos en la misa estación de trabajo para
desarrollar el software.
La idea es que las parejas se creen en forma dinámica
pata que todos los miembros del equipo puedan
trabajar con los otros miembros en una pareja de
programación durante el proceso de desarrollo
Programación en parejas
Técnicas de desarrollo rápido de aplicaciones:
Lenguaje de programación de bases de datos
Generador de interfaces
Enlaces a aplicaciones de oficina.
Generador de informes.
Desarrollo de rápido de aplicaciones
Entorno de desarrollo rápido de
aplicaciones
Las aplicaciones de negocios se apoyan en formularios
estructurados para las entradas y salidas por lo que el
desarrollo rápido de aplicaciones proporciona recursos
potentes para la definición de pantallas e informes.
Formularios interactivos
Programación visual con reutilización
Un prototipado es una versión inicial de un sistema
software que se utiliza para demostrar conceptos,
probar opciones de diseño, informarse más del
problema y sus posibles soluciones.
Prototipado de software
Se utiliza de varias maneras:
1. Proceso de ingeniería de requerimientos.
2. Proceso de diseño del sistema para explorar
soluciones software particulares para apoyar el
diseño de las interfaces de usuario.
3. Proceso de pruebas .
Prototipado de software
1. Mejora en la usabilidad del sistema
2. Mejor concordancia entre el sistema y necesidades
del usuario.
3. Mejora en la calidad de diseño
4. Mejora en el mantenimiento.
5. Reducción en el esfuerzo de desarrollo
Beneficios del prototipado
Pruebas
Proceso de desarrollo de prototipos
1. Puede ser imposible ajustar el prototipo para que se
cumpla con los requerimientos no funcionales que fueron
dejados de lado durante su desarrollo.
2. El cambio rápido durante el desarrollo significa,
inevitablemente, que no se documenta el prototipo.
3. Los cambios hechos durante el desarrollo del prototipado
probablemente degradan la estructura del sistema.
4. Los estándares de calidad organizacionales normalmente
se relajan para el desarrollo del prototipo.
Sin embargo normalmente esto no es aconsejable
por las siguientes razones

Unidad I - Desarrollo rápido de software

  • 1.
    Unidad I DesarrolloRápido de Software
  • 2.
    ¿QUÉ ES UNPROGRAMA? Un programa es una secuencia de instrucciones que pueden ser interpretadas por un computador, obteniendo como fruto de esa interpretación un determinado resultado que ha sido predeterminadamente establecido por el ser humano.
  • 3.
    Es el softwareque nos permite tener una interacción con nuestro hardware, es decir, es el sistema operativo. Dicho sistema es un conjunto de programas que administran los recursos del hardware y proporciona una interfaz al usuario. Sistemas operativos Controladores de dispositivo Herramientas de diagnóstico Herramientas de Corrección y Optimización Servidores Utilidades SOFTWARE DE SISTEMA
  • 4.
    Son los programasque nos permiten realizar tareas especificas en nuestro sistema. A diferencia del software de sistema, el software de aplicación esta enfocada en un área especifica para su utilización.  Procesadores de Palabras o Texto (Word Processors).  Sistemas Manejadores o Administradores de Bases de Datos (DBMS, Data Base Management Systems).  Hojas Electrónicas de Cálculo.  Programas de Presentación Gráfica.  Programas Educativos, Software Educativo o Tutoriales. Antivirus  Programas para gráficos e imágenes, etc. SOFTWARE DE APLICACIONES
  • 5.
    Es un Sistemade Diseño, Desarrollo y Ejecución de aplicaciones informáticas de bases de datos, comunicaciones y cálculo usando interfaz gráfica de ventanas. Es un sistema programable a partir del cual es posible crear cualquier solución parametrizable. ¿SOFTWARE DE PROPOSITO GENERAL
  • 6.
    Los lenguajes deprogramación o software de programación son herramientas que nos permiten crear programas y software. Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro. Para que estos programas funcionen para diferentes computadoras hay que realizar una versión para cada una de ellas, lo que implica el aumento del costo de desarrollo.  Visual Basic  Visual.Net  Pascal  Software Base de Datos SOFTWARE DE PROGRAMACIÓN
  • 29.
     La mejorforma de obtener un mejor software era a través de una planificación cuidadosa del proyecto, una garantía de calidad formalizada, la utilización de métodos de análisis y diseño soportados por herramientas CASE y proceso de desarrollo de software controlado y rigurosos. Métodos ágiles
  • 30.
  • 31.
    Este software eradesarrollado por grandes equipos que a veces trabajando para compañías diferentes. A menudo estaban dispersos geográficamente y trabajaban en el software durante largos periodos de tiempo. Sin embargo cuando este enfoque pesado de desarrollo basado en la planificación fue aplicado a sistemas de negocio pequeños y de tamaño medio, el esfuerzo invertido era tan grande que algunas veces denominaba el proceso de desarrollo. Métodos agiles
  • 32.
    En la práctica son aveces difíciles de realizar. Métodos ágiles Principio descripción Participación del cliente Los clientes deben estar fuertemente implicados en todo el proceso de desarrollo Entrega incremental El software se desarrolla n incrementos, donde el cliente especifica los requerimientos a incluir en cada incremento Personas, no procesos Se deben reconocer y explotar las habilidades de desarrollo Aceptar el cambio Se debe contar con que los requerimientos del sistema cambian . Mantener la simplicidad Se debe centrara con la simplicidad tanto en el software a desarrollar como el proceso de desarrollo.
  • 33.
    Características:  No sonadecuados para el desarrollo de sistemas a gran escala.  Son enfocados a sistemas medianos y pequeños.  Tienen que depender de contratos donde el cliente paga por el tiempo necesario para el desarrollo del sistema. Métodos ágiles
  • 34.
    La programación extremaXP es posiblemente el método ágil más conocido y ampliamente utilizado. Donde se basa de buenas prácticas reconocidas, como el desarrollo iterativo y con la participación del cliente en niveles extremos. Programación Extrema
  • 35.
    En la programaciónextrema todos los requerimientos se expresan como escenarios (llamadas historias de usuario), las cuales se implementan directamente como una serie de tareas. Los programadores trabaja en parejas y desarrollan pruebas por cada tarea de escribir código nuevo. Programación Extrema
  • 36.
    El ciclo deentrega en laProgramación Extrema
  • 37.
    Prácticas de laprogramación extrema Principio o práctica Descripción Planificación incrementar Los requerimientos se registran en tarjetas de historias y las historias a incluir en una entrega determinada. Entregas pequeñas El mínimo conjunto útil de funcionalidad que proporcione valor de negocio se desarrolla primero Diseño sencillo Solo se lleva a cabo el diseño necesario para cumplir los requerimientos actuales. Desarrollo previamente probado Se utiliza un sistema de pruebas de unidad automatizado para escribir nuevas funcionalidades antes de que éstas se implementen refactorización Se espera que todos los desarrolladores refactoricen el código continuamente tan pronto como encuentren posibles mejoras en el código.
  • 38.
    Principio o prácticaDescripción Programación en parejas Los desarrolladores trabajan en parejas , verificando cada uno el trabajo del otro y proporcionando ayuda necesaria. Propiedad colectiva Los desarrolladores trabajan e todas las áreas del sistema Integración continua Se integra el sistema entero Ritmo sostenible No se consideran aceptables grandes cantidades de horas extras. Cliente presente Debe estar disponible al equipo de la XP un representante de los usuarios finales del sistema a tiempo completo Prácticas de la programación extrema
  • 39.
    Los clientes estánfuertemente implicados en las especificaciones y establecimientos de prioridades de los requerimientos del sistema. Los clientes son parte del sistema son parte del equipo de desarrollo y discuten escenarios con otros miembros del equipo. Programación extrema
  • 40.
     Desarrollo previamenteprobado  Desarrollo de pruebas incremental a partir de los escenarios  Participación del usuario en el desarrollo de las pruebas y en la validación  El uso de bancos de pruebas automatizados Características clave de XP
  • 41.
    Ejemplos de pruebasXP tarjetas de tareas para la descarga de documentos
  • 42.
  • 43.
    En XP laspruebas de aceptación son incrementales, para esta historia, la prueba de aceptación implicaría seleccionar varios documentos, pagarlos de diferentes formas e imprimirlos en impresoras distintas, en laa práctica, se desarrolla una serie de pruebas de aceptación en una sola vez. Explicación
  • 44.
    Otra practica innovadoraes que los programadores trabajan en parejas para desarrollar el software, se sientan juntos en la misa estación de trabajo para desarrollar el software. La idea es que las parejas se creen en forma dinámica pata que todos los miembros del equipo puedan trabajar con los otros miembros en una pareja de programación durante el proceso de desarrollo Programación en parejas
  • 45.
    Técnicas de desarrollorápido de aplicaciones: Lenguaje de programación de bases de datos Generador de interfaces Enlaces a aplicaciones de oficina. Generador de informes. Desarrollo de rápido de aplicaciones
  • 46.
    Entorno de desarrollorápido de aplicaciones
  • 47.
    Las aplicaciones denegocios se apoyan en formularios estructurados para las entradas y salidas por lo que el desarrollo rápido de aplicaciones proporciona recursos potentes para la definición de pantallas e informes. Formularios interactivos
  • 48.
  • 49.
    Un prototipado esuna versión inicial de un sistema software que se utiliza para demostrar conceptos, probar opciones de diseño, informarse más del problema y sus posibles soluciones. Prototipado de software
  • 50.
    Se utiliza devarias maneras: 1. Proceso de ingeniería de requerimientos. 2. Proceso de diseño del sistema para explorar soluciones software particulares para apoyar el diseño de las interfaces de usuario. 3. Proceso de pruebas . Prototipado de software
  • 51.
    1. Mejora enla usabilidad del sistema 2. Mejor concordancia entre el sistema y necesidades del usuario. 3. Mejora en la calidad de diseño 4. Mejora en el mantenimiento. 5. Reducción en el esfuerzo de desarrollo Beneficios del prototipado
  • 52.
  • 53.
    Proceso de desarrollode prototipos
  • 54.
    1. Puede serimposible ajustar el prototipo para que se cumpla con los requerimientos no funcionales que fueron dejados de lado durante su desarrollo. 2. El cambio rápido durante el desarrollo significa, inevitablemente, que no se documenta el prototipo. 3. Los cambios hechos durante el desarrollo del prototipado probablemente degradan la estructura del sistema. 4. Los estándares de calidad organizacionales normalmente se relajan para el desarrollo del prototipo. Sin embargo normalmente esto no es aconsejable por las siguientes razones