DAM ED01 PDFContenidos 2015
DAM ED01 PDFContenidos 2015
DAM ED01 PDFContenidos 2015
Desarrollo de software.
Caso práctico
En BK Programación todos han vuelto ya de sus vacaciones.
Les espera un septiembre agitado, pues acaban de recibir una petición por parte
de una cadena hotelera para desarrollar un proyecto software.
1 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Caso práctico
En este tema, nuestro interés se centra en las aplicaciones informáticas: cómo se desarrollan
y cuáles son las fases por las que necesariamente han de pasar.
A lo largo de esta primera unidad vas a aprender los conceptos fundamentales de software y las
fases del llamado ciclo de vida de una aplicación informática.
2 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
También aprenderás a distinguir los diferentes lenguajes de programación y los procesos que
ocurren hasta que el programa funciona y realiza la acción deseada.
Debian
Ubuntu
Elementary
Reflexiona
Hay varios sistemas operativos en el mercado: Linux, Windows, Mac OS X etc. El
más conocido es Windows. A pesar de eso, ¿por qué utilizamos cada vez más
Linux?
3 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Caso práctico
Existe una relación indisoluble entre éste y el software, ya que necesitan estar instalados y
configurados correctamente para que el equipo funcione.
Ya hemos dicho que una aplicación no es otra cosa que un conjunto de programas, y que
éstos están escritos en algún lenguaje de programación que el hardware del equipo debe
interpretar y ejecutar.
Esto nos hace plantearnos una cuestión: ¿Cómo será capaz el ordenador de "entender"
4 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Como veremos a lo largo de esta unidad, tendrá que pasar algo (un proceso de
traducción de código) para que el ordenador ejecute las instrucciones escritas en un
lenguaje de programación.
5 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Autoevaluación
Hay que escribir las instrucciones en código binario para que las entienda el
hardware.
Sólo es necesario escribir el programa en algún lenguaje de programación y
se ejecuta directamente.
Hay que escribir el programa en algún Lenguaje de Programación y contar
con herramientas software que lo traduzcan a código binario.
Los programas informáticos no se pueden escribir: forman parte de los
sistemas operativos.
Solución
1. Incorrecto (Retroalimentación)
2. Incorrecto (Retroalimentación)
3. Opción correcta (Retroalimentación)
4. Incorrecto (Retroalimentación)
6 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Caso práctico
El proceso de desarrollo, que en un principio puede parecer una tarea simple, consta de una
serie de pasos de obligado cumplimiento, pues sólo así podremos garantizar que los programas
creados son eficientes, fiables, seguros y responden a las necesidades de los usuarios finales
(aquellos que van a utilizar el programa).
Como vamos a ver en el siguiente punto, según el orden y la forma en que se lleven a cabo las
etapas hablaremos de diferentes ciclos de vida del software.
Reflexiona
Según estimaciones, el 26% de los grandes proyectos de software fracasan, el
48% deben modificarse drásticamente y sólo el 26% tienen rotundo éxito. La
principal causa del fracaso de un proyecto es la falta de una buena planificación
de las etapas y mala gestión de los pasos a seguir. ¿Por qué el porcentaje de
fracaso es tan grande? ¿Por qué piensas que estas causas son tan
determinantes?
7 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
8 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Es uno de los modelos más utilizados. Proviene del modelo anterior, pero se introduce
una realimentación entre etapas, de forma que podamos volver atrás en cualquier
momento para corregir, modificar o depurar algún aspecto. No obstante, si se prevén
muchos cambios durante el desarrollo no es el modelo más idóneo.
Son más modernos que los anteriores. Tienen en cuenta la naturaleza cambiante y
evolutiva del software.
9 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
10 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Autoevaluación
Sí.
No.
Solución
1. Incorrecto (Retroalimentación)
2. Opción correcta (Retroalimentación)
11 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
La tecnología CASE trata de automatizar las fases del desarrollo de software para que mejore la
calidad del proceso y del resultado final.
CLASIFICACIÓN
Normalmente, las herramientas CASE se clasifican en función de las fases del ciclo de vida del
software en la que ofrecen ayuda:
Ejemplos de herramientas CASE libres son: ArgoUML, Use Case Maker, ObjectBuilder…
12 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
13 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Caso práctico
Ya dijimos anteriormente que los programas informáticos están escritos usando algún lenguaje
de programación. Por tanto, podemos definir un Lenguaje de Programación como un idioma
creado de forma artificial, formado por un conjunto de símbolos y normas que se aplican sobre
un alfabeto para obtener un código, que el hardware de la computadora pueda entender y
ejecutar.
Los lenguajes de programación son los que nos permiten comunicarnos con el
hardware del ordenador.
En otras palabras, es muy importante tener muy clara la función de los lenguajes de
programación. Son los instrumentos que tenemos para que el ordenador realice las tareas que
necesitamos.
Hay multitud de lenguajes de programación, cada uno con unos símbolos y unas estructuras
diferentes. Además, cada lenguaje está enfocado a la programación de tareas o áreas
determinadas. Por ello, la elección del lenguaje a utilizar en un proyecto es una cuestión de
extrema importancia.
Los lenguajes de programación han sufrido su propia evolución, como se puede apreciar en la
figura siguiente:
Lenguaje máquina:
14 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Lenguaje ensamblador:
Lenguajes visuales:
Fuente: cmapspublic2
15 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
16 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
CONCEPTO
CARACTERÍSTICAS
Lenguaje Ensamblador.
Lenguaje Máquina.
17 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Cada día la programación para MAC e IOS tiene mas notoriedad. Esta se realiza
con Xcode y Swift, os pasamos un enlace en el cual podreis conocer más sobre
estos lenguajes Xcode.
18 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Sentencias secuenciales.
Sentencias selectivas (condicionales).
Sentencias repetitivas (iteraciones o bucles).
La programación estructurada fue de gran éxito por su sencillez a la hora de construir y leer
programas. Fue sustituida por la programación modular, que permitía dividir los programas
grandes en trozos más pequeños (siguiendo la conocida técnica "divide y vencerás"). A su vez,
luego triunfaron los lenguajes orientados a objetos y de ahí a la programación visual (siempre es
más sencillo programar gráficamente que en código, ¿no crees? ).
INCONVENIENTES
Todo el programa se concentra en un único bloque (si se hace demasiado grande es difícil
manejarlo).
No permite reutilización eficaz de código, ya que todo va "en uno". Es por esto que a la
programación estructurada le sustituyó la programación modular, donde los programas se
19 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
20 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
A pesar de eso, alrededor del 55% del software que producen las
empresas se hace usando esta técnica.
Razones:
El código es reutilizable.
Si hay algún error, es más fácil de localizar y depurar en un
objeto que en un programa entero.
Características:
Los objetos del programa tendrán una serie de atributos que los diferencian unos de
otros.
Se define clase como una colección de objetos con características similares.
Mediante los llamados métodos, los objetos se comunican con otros produciéndose un
cambio de estado de los mismos.
Los objetos son, pues, como unidades individuales e indivisibles que forman la base de
este tipo de programación.
Principales lenguajes orientados a objetos: Ada, C++, VB.NET, Delphi, Java, PowerBuilder, etc.
21 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
22 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Caso práctico
Ya hemos visto en puntos anteriores que debemos elegir un modelo de ciclo de vida para el
desarrollo de nuestro software.
Independientemente del modelo elegido, siempre hay una serie de etapas que debemos seguir
para construir software fiable y de calidad.
1. ANÁLISIS DE REQUISITOS.
2. DISEÑO.
3. CODIFICACIÓN.
4. PRUEBAS.
5. DOCUMENTACIÓN.
6. EXPLOTACIÓN.
23 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
7. MANTENIMIENTO.
Autoevaluación
¿Crees que debemos esperar a tener completamente cerrada una etapa para
pasar a la siguiente?
Sí.
No.
Incorrecto. Recuerda que hay que dejar siempre una "puerta abierta" para
volver atrás e introducir modificaciones.
Solución
1. Incorrecto (Retroalimentación)
2. Opción correcta (Retroalimentación)
24 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.1.- Análisis.
Requisitos:
Funcionales: Qué funciones tendrá que realizar la aplicación. Qué respuesta dará la
aplicación ante todas las entradas. Cómo se comportará la aplicación en situaciones
inesperadas. No se debe de escatimar tiempo, ya que es primordial conocer la naturaleza
del problema en todos sus aspectos. Muchas veces ésto implica pasar tiempo en la
empresa del cliente para ver "in situ" todas sus necesidades y poder elegir las opciones
más convenientes.
25 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Como ejemplo de requisitos funcionales, en la aplicación para nuestros clientes de las tiendas
de cosmética, habría que considerar:
26 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.2.- Diseño.
Caso práctico
Design is not just what it looks like and feels like. Design is how it
works.
Steve Jobs ("El diseño no es sólo lo que parece y cómo parece.
Diseño es cómo se trabaja").
27 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Reflexiona
Según estimaciones, las organizaciones y empresas que crecen más son las que
más dinero invierten en sus diseños.
28 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Caso práctico
29 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
El código objeto no es directamente inteligible por el ser humano, pero tampoco por la
computadora. Es un código intermedio entre el código fuente y el ejecutable y sólo existe
si el programa se compila, ya que si se interpreta (traducción línea a línea del código) se
traduce y se ejecuta en un solo paso.
30 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Caso práctico
31 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.4.1. Algoritmos
El primer paso que se ha de dar antes de escribir una solo línea de código es la elaboración
previa de un algoritmo que, como hemos visto, lo definimos como un conjunto de pasos a
seguir para obtener la solución del problema. El algoritmo lo diseñamos en pseudocódigo y con
él, la codificación posterior a algún Lenguaje de Programación determinado será más rápida y
directa. Mediante el pseudocódigo, se puede reprensentar cualquier actividad diaria, desde la
compra del pan hasta el cálculo de nóminas de una empresa.
La representación de los algoritmos se realiza mediante los diagramas de flujos que es una
forma visual e intuitiva de plasmar el problema. A continuación un diagrama de flujo sobre como
obtener un consenso previo.
32 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
En este achivo podrás conocer más, con ejemplos prácticos, sobre los Diagramas
de flujo, pseudocódigo y pruebas de escritorio.
33 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.4.2.- Fuente.
El código fuente es el conjunto de instrucciones que la computadora deberá realizar, escritas
por los programadores en algún lenguaje de alto nivel.
Este conjunto de instrucciones no es directamente ejecutable por la máquina, sino que deberá
ser traducido al lenguaje máquina, que la computadora será capaz de entender y ejecutar.
Autoevaluación
34 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
demasiados errores.
Muy bien. El diseño del algoritmo (los pasos a seguir) nos ayudará a que la
codificación posterior se realice más rápidamente y tenga menos errores.
Solución
1. Incorrecto (Retroalimentación)
2. Incorrecto (Retroalimentación)
3. Opción correcta (Retroalimentación)
35 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.4.3.- Objeto.
El código objeto es un código intermedio.
Es el resultado de traducir código fuente a un código equivalente formado por unos y ceros que
aún no puede ser ejecutado directamente por la computadora.
Consiste en un bytecode (código binario) que está distribuido en varios archivos, cada uno
de los cuales corresponde a cada programa fuente compilado.
Sólo se genera código objeto una vez que el código fuente está libre de errores sintácticos y
semánticos.
El proceso de traducción de código fuente a código objeto puede realizarse de dos formas:
36 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.4.4.- Ejecutable.
El código ejecutable es el resultado de enlazar los archivos de código objeto y consta de un
único archivo que puede ser directamente ejecutado por la computadora. No necesita ninguna
aplicación externa. Este archivo es ejecutado y controlado por el sistema operativo.
Para obtener un sólo archivo ejecutable habrá que enlazar todos los archivos de código objeto,
a través de un software llamado linker (enlazador) y obtener así un único archivo que ya sí
que es ejecutable directamente por la computadora.
Autoevaluación
Relaciona los tipos de código con su característica más relevante,
escribiendo el número asociado a la característica en el hueco
correspondiente.
Ejercicio de relacionar
Tipo de
Relación. Características.
código.
37 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Tipo de
Relación. Características.
código.
Enviar
38 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Cuando el código fuente se compila se obtiene código objeto (bytecode, código intermedio).
Para ello, la máquina virtual aísla la aplicación de los detalles físicos del equipo en cuestión.
Funciona como una capa de software de bajo nivel y actúa como puente entre el bytecode de la
aplicación y los dispositivos físicos del sistema.
Por ejemplo, la Agencia Tributaria Española desarrolla todo su sofware para los
ciudadanos en esta plataforma.
39 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
40 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.5.1.- Frameworks.
Inconvenientes:
Características de frameworks.
Ejemplos de Frameworks:
41 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Debes conocer
El proceso de instalación y configuración del framework Spring de Java, así como
varios ejemplos de uso. En el siguiente enlace encontrarás una guía muy útil
detallando los pasos a seguir:
42 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Enlazar los archivos del programa con las bibliotecas existentes y con los subprogramas
creados. Considerando que las bibliotecas son el conjunto de subprogramas que sirven
para desarrollar o comunicar componentes software pero que ya existen previamente y
los subprogramas serán aquellos que hemos creado a propósito para el programa.
El Entorno de Ejecución está formado por la máquina virtual y los API's (bibliotecas de clases
estándar, necesarias para que la aplicación, escrita en algún Lenguaje de Programación pueda
ser ejecutada). Estos dos componentes se suelen distribuir conjuntamente, porque necesitan
ser compatibles entre sí.
Autoevaluación
43 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Solución
44 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Concepto.
Componentes.
Una Máquina virtual Java (JMV o JVM si consideramos las siglas en inglés), que es el
programa que interpreta el código de la aplicación escrito en Java.
Las dos: JMV y API de Java son consistentes entre sí, por ello son distribuidas
conjuntamente.
Una vez descargado, comienza el proceso de instalación, siguiendo los pasos del asistente. En
caso de dudas sobre las instalación puedes consultar el siguiente enlace en el cual se dan
instrucciones para la instalación de JRE en todos los sistemas operativos.
Debes conocer
El proceso de descarga, instalación y configuración del entorno de ejecución de
programas. En el siguiente enlace, se explican los pasos para hacerlo bajo el
sistema operativo Linux.
45 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
46 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.6.- Pruebas.
Caso práctico
Una vez obtenido el software, la siguiente fase del ciclo de vida es la realización de pruebas.
Entre todas las pruebas que se efectúan sobre el software podemos distinguir básicamente:
PRUEBAS UNITARIAS
PRUEBAS DE INTEGRACIÓN
Se realizan una vez que se han realizado con éxito las pruebas unitarias y consistirán en
comprobar el funcionamiento del sistema completo: con todas sus partes interrelacionadas.
La prueba final se denomina comúnmente Beta Test, ésta se realiza sobre el entorno de
producción donde el software va a ser utilizado por el cliente (a ser posible, en los equipos del
cliente y bajo un funcionamiento normal de su empresa).
Es recomendable que las pruebas del software las realice personal que no haya desarrollado el
software, incluso puede realizarlas el cliente final.
47 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Autoevaluación
Si las pruebas unitarias se realizan con éxito, ¿es obligatorio realizar las de
integración?
Solución
1. Incorrecto (Retroalimentación)
2. Opción correcta (Retroalimentación)
48 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.7.- Documentación.
Caso práctico
¿Por qué hay que documentar todas las fases del proyecto?
Para dar toda la información a los usuarios de nuestro software y poder acometer futuras
revisiones del proyecto.
Un proyecto mediano o grande sin documentar se convierte en un proyecto sin futuro pues la
tarea de mejorarlo o readaptarlo se convertirá en misión imposible. Por tanto, tenemos que ir
documentando el proyecto en todas las fases del mismo, para pasar de una a otra de forma
clara y definida. Una correcta documentación permitirá la reutilización de parte de los
programas en otras aplicaciones, siempre y cuando se desarrollen con diseño modular.
GUÍA DE
GUÍA TÉCNICA GUÍA DE USO
INSTALACIÓN
Descripción de la
Toda la información
El diseño de la funcionalidad de
necesaria para:
aplicación. la aplicación.
La codificación Forma de Puesta en
Quedan comenzar a
de los marcha.
reflejados: ejecutar la
programas. Explotación.
Las pruebas aplicación. Seguridad del
realizadas. Ejemplos de uso sistema.
del programa.
Requerimientos
49 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
GUÍA DE
GUÍA TÉCNICA GUÍA DE USO
INSTALACIÓN
software de la
aplicación.
Solución de los
posibles
problemas que se
pueden presentar.
Al personal informático
responsable de la
¿A quién Al personal técnico en A los usuarios que van a
instalación, en
va informática (analistas y usar la aplicación
colaboración con los
dirigido? programadores). (clientes).
usuarios que van a usar
la aplicación (clientes).
50 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.8.- Explotación.
Caso práctico
Llega el día de la cita con la cadena hotelera. Ada y Juan se dirigen al hotel sonde
se va a instalar y configurar la aplicación. Si todo va bien, se irá implementando en
los demás hoteles de la cadena.
Ada no quiere que se le pase ni un detalle: lleva consigo la guía de uso y la guía de
instalación.
Después de todas las fases anteriores, una vez que las pruebas nos demuestran que el software
es fiable, carece de errores y hemos documentado todas las fases, el siguiente paso es la
explotación.
En este momento, se suelen llevan a cabo las Beta Test, que son las últimas pruebas que se
realizan en los propios equipos del cliente y bajo cargas normales de trabajo.
51 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Reflexiona
Realizas un proyecto software por vez primera y no te das cuenta de
documentarlo. Consigues venderlo a buen precio a una empresa. Al cabo de un
par de meses te piden que actualices algunas de las funciones, para tener mayor
funcionalidad. Estás contento o contenta porque eso significa un ingreso extra. Te
paras un momento...¿Dónde están los códigos? ¿Qué hacía exactamente la
aplicación? ¿Cómo se diseñó? No lo recuerdas... Probablemente hayas perdido
un ingreso extra y unos buenos clientes.
52 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
5.9.- Mantenimiento.
Caso práctico
Sería lógico pensar que con la entrega de nuestra aplicación (la instalación y configuración de
nuestro proyecto en los equipos del cliente) hemos terminado nuestro trabajo.
En cualquier otro sector laboral esto es así, pero el caso de la construcción de software es muy
diferente.
Además, siempre surgen errores que habrá que ir corrigiendo y nuevas versiones del producto
mejores que las anteriores.
Por todo ello, se pacta con el cliente un servicio de mantenimiento de la aplicación (que también
tendrá un coste temporal y económico). El coste temporal para nosotros será menor en función
de la calidad de la documentación generada en la etapa anterior.
Su duración es la mayor en todo el ciclo de vida del software, ya que también comprende las
actualizaciones y evoluciones futuras del mismo.
Los tipos de cambios que hacen necesario el mantenimiento del software son los siguientes:
Evolutivos: El cliente tendrá en el futuro nuevas necesidades. Por tanto, serán necesarias
modificaciones, expansiones o eliminaciones de código.
53 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Autoevaluación
El análisis de requisitos.
La codificación.
Las pruebas y documentación.
La explotación y el mantenimiento.
Solución
54 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
SENTENCIAS SECUENCIALES
Las sentencias secuenciales son aquellas que se ejecutan una detrás de la otra, según el orden
en que hayan sido escritas.
Ejemplo en lenguaje C:
Son aquellas en las que se evalúa una condición. Si el resultado de la condición es verdad es
ejecutan una serie de acción o acciones y si es falso se ejecutan otras.
then → Todas las acciones que se encuentren tras esta palabra reservada se ejecutarán si la
condición del if es cierta (en C, se omite esta palabra).
else → Todas las acciones que se encuentren tras esta otra palabra reservada se ejecutarán si la
condición de if es falsa.
Ejemplo en lenguaje C:
if (a >= b)
c= a-b;
else
c=a+b;
Un bucle iterativo de una serie de acciones harán que éstas se repitan mientras o hasta que una
determinada condición sea falsa (o verdadera).
while → marca el comienzo del bucle y va seguido de la condición de parada del mismo.
do → a partir de esta palabra reservada, se encontrarán todas las acciones a ejecutar mientras
se ejecute el bucle (en C, se omite esta palabra).
done → marca el fin de las acciones que se van a repetir mientras estemos dentro del bucle (en
C, se omite esta palabra).
Ejemplo en lenguaje C:
55 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
int num;
num = 0;
while (num<=10) { printf("Repetición numero %d\n", num);
num = num + 1;
};
56 de 57 12/11/15 15:52
Desarrollo de software. http://127.0.0.1:51235/temp_print_dirs/eXeTempPrintDir_LV6B...
Autoría: Scott
Schram.
Autoría: fsse
Licencia: CC by 2.0.
Licencia: CC
Procedencia:
Procedencia
http://www.flickr.com
info/3276664
/photos/schram
/21742249/
Autoría: Francisco
Palacios.
Autoría: Kev
Licencia: CC by
-NC-ND 2.0. Licencia: CC
Procedencia: Procedencia
http://www.flickr.com /wiki/File:Dia
/photos/wizard_
/3303810302/
Autoría: Creative
Commons. Autoría: Crea
Procedencia: Procedencia
Wikipedia
57 de 57 12/11/15 15:52