Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
CICLO DE VIDA DEL SOFTWARE
Definicin:
-Segn la ISO: Un marco de referencia que contiene procesos, actividades y tareas
involucradas en el desarrollo, la explotacin y el mantenimiento de un producto de
software.
Segn MTRICA: http://administracionelectronica.gob
Etapas:
-Anlisis: entender y comprender de forma detallada el problema a resolver,
verificando su entorno.
-Diseo: estrategia que se va a utilizar para resolver el problema.
-Implementacin: desarrollar el correspondiente programa que solucione el problema
con una computadora.
-Pruebas: realizar las debidas pruebas que garanticen el correcto funcionamiento del
programa.
-Mantenimiento: mantener una estructura de actualizacin, verificacin y validacin.
La documentacin: gua o comunicacin escrita en sus diferentes formas, ya sea en
enunciados, procedimientos, dibujos o diagramas que se hace sobre CADA ETAPA del
desarrollo de un programa.
Modelos de ciclo de vida:
1.Cascada: Modelo de ciclo de vida clsico del software. Cuando se acaba con una
etapa se pasa a la siguiente. Si durante una fase hay que hacer una mejora volvemos a
empezar desde la primera etapa. Si durante una etapa se ha producido un cambio de
necesidades hay que volver hacia atrs.
2.Cascada con Retroalimentacin: Es una variante del C.V. clsico. Se introduce una
realimentacin entre etapas, de forma que podamos volver atrs en cualquier
momento para corregir, modificar o depurar algn aspecto.
VENTAJAS DEL MODELO EN CASCADA INCONVENIENTES DEL MODELO EN CASCADA
1. Fcil de comprender, 1. Necesidad de tener claro todos los
planificar y seguir. requisitos desde el principio
2. La calidad del producto es 2. Es difcil volver atrs si se comenten
alta. errores en una etapa.
3. Permite trabajar con 3. El producto no est disponible para su
personal poco cualificado. uso hasta que no se termine.
2
3.Modelo Iterativo Incremental. Est basado en varios ciclos de vida cascada
realimentados aplicados repetidamente. Entrega el software en partes pequeas. Cada
incremento se hace sobre el anterior.
VENTAJAS DEL MODELO ITERATIVO INCONVENIENTES DEL MODELO ITERATIVO
INCREMENTAL INCREMENTAL
1. No se necesita conocer todos los 1. Es difcil de estimar el esfuerzo y el coste
requisitos desde el principio. final necesario.
2. Permite la entrega temprana al 2. Se tiene el riesgo de no acabar nunca.
cliente de partes operativas del 3. No recomendable para desarrollo de
software. sistemas de tiempo real, de alto nivel de
3. Las entregas facilitan la seguridad, de procesamiento distribuido,
realimentacin de las prximas y/o alto ndice de riesgos.
entregas.
3
5.Modelo Scrum: es un proceso en el que se aplican de manera regular un conjunto de
buenas prcticas para trabajar colaborativamente, en equipo, y obtener el mejor
resultado posible de un proyecto.
1. Fase de anlisis
- Parte del xito de la aplicacin estar en comprender y entender el problema
del cliente.
- Se analizan capacidades y requisitos que el sistema debe tener.
- La obtencin de requisitos no es tarea fcil.
- Es imprescindible tener buena comunicacin entre el cliente y el desarrollador.
Las tcnicas para facilitar la comunicacin son:
- Entrevista: tcnica ms usada para hablar con el cliente.
- Desarrollo conjunto de aplicaciones: dinmica de grupos, tipo de entrevista
muy estructurado.
- Planificacin conjunta de requisitos: subconjunto de JAD, dirigida a alta
direccin.
- Lluvia de ideas (Brainstorming): tipo de reunin en grupo para generar
ideas en comn.
- Prototipos: versin inicial del producto, se usa para clarificar puntos.
- Casos de uso: se basa en escenarios que describen cmo se usa el software en
cada situacin.
Existen 3 tipos de requisitos:
Requisitos datos: datos que vamos a necesitar almacenar.
Requisitos funcionales: describen con detalle la funcin que realiza el sistema.
Requisitos no funcionales: caractersticas del sistema, como pueden ser.
4
Tcnicas para representar los requisitos:
2. Fase de diseo
En esta etapa traducimos los requisitos en una representacin del software.
- Existen dos tipos de diseos:
1. Diseo estructurado: basado en el flujo de los datos a travs del sistema.
2. Diseo orientado a objetos: el sistema se entiende como un conjunto de objetos
con propiedades y comportamientos.
5
Diseo estructurado
El diseo estructurado produce un diseo con 4 elementos:
1. Diseo de datos: transforma el modelo definido en el anlisis en las estructuras
de datos que se van a utilizar.
2. Diseo arquitectnico: se centra en la representacin de la estructura de los
componentes del software (propiedades e iteraciones).
3. Diseo de la interfaz: Define cmo se comunica el software consigo mismo y
con los dems sistemas.
4. Diseo procedimental (o a nivel de componentes): transforma los elementos
estructurados de la arquitectura en una descripcin procedimental de los
componentes del software.
3. Fase de codificacin
- Una vez terminado el diseo pasamos a la codificacin.
- Se reciben las especificaciones del diseo.
- Cdigo fuente: conjunto de instrucciones.
- El programador debe conocer la sintaxis del lenguaje de programacin
utilizado.
- En cualquier proyecto que se trabaja con un grupo de personas tiene que haber
unas normas de codificacin y estilo; claras y homogneas.
4. Fase de prueba
- Una vez que se han realizado las fases previas y se ha desarrollado la
documentacin se lleva a cabo la fase de prueba:
1. Se lleva a cabo la instalacin de la aplicacin.
2. Puesta en marcha de la aplicacin.
- En esta etapa se llevan a cabo las siguientes tareas:
- Estrategia para la implementacin del proceso.
- Pruebas de operacin.
- Uso operacional del sistema dentro del entorno del cliente y soporte al usuario.
6
Existen diferentes tcnicas para probar una aplicacin, pero las dos ms utilizadas
son:
1. Pruebas de caja blanca: y est basado en el examen de los detalles
procedimentales del cdigo de la aplicacin.
2. Pruebas de caja negra: estas pruebas se llevan a cabo sobre la interfaz del
software, no hace falta conocer la estructura interna de la aplicacin.
5. Fase de mantenimiento
- Definimos mantenimiento del software como la modificacin de un producto
software despus de la entrega para corregir los fallos, mejorar su rendimiento
o adaptar el producto a un nuevo entorno.
- Existen cuatro tipos de mantenimientos: Mantenimiento adaptativo,
Mantenimiento correctivo, Mantenimiento perfectivo y Mantenimiento
preventivo.
6. Documentacin
Todas las etapas del desarrollo deben quedar perfectamente documentadas:
- Deben de actuar como un elemento de comunicacin entre las diferentes
etapas.
- Debe ser un repositorio de informacin para el personal de mantenimiento.
- Debe proporcionar informacin para la elaboracin de futuros proyectos.
- Algunos documentos deben proporcionar a los usuarios indicaciones de cmo
usar y administrar el sistema.
La documentacin se divide en dos partes:
7
ROLES QUE INTERACTAN EN EL DESARROLLO
En el proceso de desarrollo de un software intervienen varias personas.
CONCEPTO DE PROGRAMA
Programa informtico: conjunto de instrucciones escritas en un lenguaje de
programacin que aplicadas sobre un conjunto de datos resuelven un problema o
parte del mismo.
8
Clasificacin de los l.p
Segn nivel de abstraccin: El nivel de abstraccin de un lenguaje implica cuan
alejado est del cdigo mquina, cuanto ms parecido sea a nuestro lenguaje y menos
al cdigo mquina, de mayor nivel ser el lenguaje:
1. Bajo nivel: Slo hay un lenguaje de primera generacin, el cdigo mquina.
2. Medio nivel: Tienen definidas una serie de instrucciones sencillas para trabajar
con datos simples y posiciones de memoria.
3. Alto nivel: La mayora de los lenguajes que se utilizan hoy en da para
programar aplicaciones son de alto nivel. Son muy cercanos a nuestro propio
lenguaje y permiten la realizacin de patrones de diseo complejos como Java.
Segn la forma de ejecucin:
1. Compilados: Un programa traductor (compilador) convierte el cdigo fuente
en cdigo objeto para crear un programa ejecutable.
2. Interpretados: Ejecutan las instrucciones directamente, sin generar cdigo
objeto. La propia mquina se encargar de interpretarlo instruccin a
instruccin.
3. Virtuales: Con un comportamiento similar al de los lenguajes compilados con
una peculiaridad, el compilador no genera cdigo objeto sino cdigo bytecode.
Segn el paradigma de programacin:
1. Imperativo: describe la programacin como una secuencia de instrucciones que
cambian el estado del programa, indicando cmo realizar una tarea.
2. Declarativo: especifica o declara un conjunto de premisas y condiciones para
indicar qu es lo que hay que hacer y no necesariamente cmo hay que hacerlo.
3. Orientado a objetos: encapsula el estado y las operaciones en objetos, creando
una estructura de clases y objetos que emula un modelo del mundo real, donde
los objetos realizan acciones e interactan con otros objetos.
4. Funcional: evala el problema realizando funciones de manera recursiva, evita
declarar datos haciendo hincapi en la composicin de las funciones y en las
interacciones entre ellas.
5. Lgico: define un conjunto de reglas lgicas para ser interpretadas mediante
inferencias lgicas. Permite responder preguntas planteadas al sistema para
resolver problemas.
9
Obtencin del cdigo ejecutable
1. Cdigo fuente: el cdigo fuente de un programa informtico es un conjunto de
instrucciones escritas en un lenguaje de programacin determinado.
2. Cdigo objeto: el cdigo objeto es el cdigo resultante de compilar el cdigo
fuente.
3. Cdigo ejecutable: el cdigo ejecutable es el resultado obtenido de enlazar
nuestro cdigo objeto con las libreras.
MQUINAS VIRTUALES
Una mquina virtual es un tipo especial de software cuya misin es separar el
funcionamiento del ordenador de los componentes hardware instalados.
Caractersticas de las mquinas virtuales:
- Cuando el cdigo fuente se compila se obtiene cdigo objeto bytecode, cdigo
intermedio).
- Se requiere tener independencia para ejecutarlo en cualquier mquina.
- La mquina virtual asla la aplicacin de los detalles fsicos del equipo en
cuestin.
- Funciona como una capa de software de bajo nivel y acta como puente entre
el bytecode de la aplicacin y los dispositivos fsicos del sistema.
- La Mquina Virtual verifica todo el bytecode antes de ejecutarlo.
- La Mquina Virtual protege direcciones de memoria.
- La mquina virtual acta de puente entre la aplicacin y el hardware concreto.
FRAMEWORK:
- Es una estructura de ayuda al programador, en base a la cual podemos
desarrollar proyectos sin partir desde cero.
- Se trata de una plataforma software donde estn definidos programas soporte,
bibliotecas, lenguaje interpretado, etc, ayuda a desarrollar y unir los diferentes
mdulos o partes de un proyecto.
- Con el uso de framework podemos pasar ms tiempo analizando los
requerimientos del sistema y las especificaciones tcnicas de la app.
Ventajas de los framework: desarrollo rpido de software, reutilizacin de partes de
cdigo para otras aplicaciones, portabilidad de aplicaciones de un ordenador a otro y
diseo uniforme del software.
Inconvenientes: gran dependencia del cdigo respecto al framework utilizado y La
instalacin e implementacin consume muchos recursos.
10