0% encontró este documento útil (0 votos)
11 vistas33 páginas

Fases del Desarrollo de Software

El documento detalla las fases del desarrollo de software, que incluyen diseño orientado a objetos, codificación, pruebas, documentación, explotación y mantenimiento. Se enfatiza la importancia de utilizar UML para el diseño, la codificación en lenguajes de alto nivel, y la necesidad de realizar pruebas unitarias e integrales. Además, se discuten las características de los lenguajes de programación y la utilidad de los frameworks y entornos de ejecución como JRE para facilitar el desarrollo y la ejecución de aplicaciones.

Cargado por

Isabel González
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas33 páginas

Fases del Desarrollo de Software

El documento detalla las fases del desarrollo de software, que incluyen diseño orientado a objetos, codificación, pruebas, documentación, explotación y mantenimiento. Se enfatiza la importancia de utilizar UML para el diseño, la codificación en lenguajes de alto nivel, y la necesidad de realizar pruebas unitarias e integrales. Además, se discuten las características de los lenguajes de programación y la utilidad de los frameworks y entornos de ejecución como JRE para facilitar el desarrollo y la ejecución de aplicaciones.

Cargado por

Isabel González
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UT01. DESARROLLO DEL SOFTWARE.

Entornos de Desarrollo
1DAW – C.I.F.P. Carlos III - Cartagena
4. Fases del desarrollo de una aplicación
2. Diseño
 Diseño orientado a objetos-DOO
• Se parte de un análisis orientado a objetos-AOO
o Se definen las clases, operaciones, atributos, relaciones, comportamientos y
comunicaciones.
o Cuatro capas de DOO:
→ Subsistema. Diseño de los subsistemas que implementan las funciones principales del sistema
→ Clases y objetos. Especifica la arquitectura de objetos global y la jerarquía de clases
requerida para implementar un sistema.
→ Mensajes. Indica cómo se realiza la colaboración entre objetos
→ Responsabilidades. Identifica las operaciones y atributos que caracterizan cada clase.

• UML-Unified Modeling Language. Estándar de la mayor parte de las


metodologías de desarrollo orientado a objetos.
o Lenguaje de modelado basado en diagramas para expresar la realidad donde se
ignoran los detalles de menor importancia
3. Codificación
 Transforma las especificaciones del diseño en un conjunto de instrucciones
escritas en un lenguaje de programación, almacenadas dentro de un
programa.
 Existen unas reglas o normas de escritura de código fuente.
 Esta tarea la realiza el programador y tiene que cumplir exhaustivamente
con todos los datos impuestos en el análisis y en el diseño de la aplicación.
 Estados:
• Código Fuente: escrito por los programadores usando algún lenguaje de
programación de alto nivel.
• Código Objeto: código binario resultado de compilar el código fuente.
Compilación  traducción de una sola vez del programa (compilador).
Interpretación  traducción y ejecución simultánea del programa línea a línea.
• Código Ejecutable: código binario resultante de enlazar los archivos de código
objeto con rutinas y bibliotecas. Es el código máquina directamente inteligible por
la computadora.
3. Codificación
 Fuente
• Código de instrucciones de alto nivel  traducción al lenguaje máquina.
 Previamente se diseña un algoritmo en pseudocódigo
• Se debe partir de las etapas anteriores de análisis y diseño.
• Se diseñará un algoritmo que simbolice los pasos a seguir para la resolución
del problema.
• Se elegirá un Lenguajes de Programación de alto nivel apropiado para las
características del software que se quiere codificar.
• Se procederá a la codificación del algoritmo antes diseñado.
3. Codificación
• Un aspecto importante: su licencia.
o Código fuente abierto. Disponible para que cualquier usuario pueda
estudiarlo, modificarlo o reutilizarlo.
o Código fuente cerrado. No tenemos permiso para editarlo.
3. Codificación
 Objeto.
• Código intermedio
• Resultado del proceso de traducción pero todavía no ejecutable.
• Código binario distribuido en varios archivos libre de errores sintácticos y
semánticos.
• Compilación vs. interpretación
4. Pruebas
 Imprescindible para asegurar: comprobar si el producto se está construyendo perfectamente
• Verificación, se refiere al conjunto de actividades que tratan de comprobar si se está
construyendo el producto correctamente -el software cumple los requisitos especificados- y
• Validación, se refiere al conjunto de actividades que tratan de comprobar si el producto es
correcto -hace lo que el usuario desea- si el producto es correcto

del software construido.


 Tipos de pruebas:
• Unitarias
o Probar las diferentes partes de software y comprobar su funcionamiento (por separado, de manera
independiente).
o JUnit es el entorno de pruebas para Java.
• Integración
o Comprueba el funcionamiento del sistema completo: con todas sus partes interrelacionadas, después de
las unitarias.
 Beta Test.
• Prueba final que se realiza sobre el entorno de producción donde el software va a ser utilizado
por el cliente.
5. Documentación
 Todas las etapas en el desarrollo de software deben quedar
perfectamente documentadas.
 Uso:
• Dar toda la información a los usuarios de nuestro software
• Poder acometer futuras revisiones del proyecto
 Tres grandes documentos en el desarrollo de software
• Guía técnica
• Guía de uso
• Guía de instalación
5. Documentación
 Guía técnica
• Para un correcto desarrollo y permitir mantenimiento
• Uso por parte de los analistas y programadores.
• Contiene el diseño, codificación y pruebas realizadas
 Guía de uso
• Da a los usuarios finales información para su uso.
• Uso por parte de los clientes (usuarios finales)
• Contiene una descripción de la aplicación, ejecución, ejemplos de uso, requisitos
del software, y solución de posibles problemas.
 Guía de instalación
• Para garantizar la correcta instalación de la aplicación.
• Personal informático responsable con los usuarios finales.
• Contiene puesta en marcha, explotación y seguridad del sistema.
6. Explotación
 La explotación es la fase en que los usuarios finales conocen la aplicación y comienzan a
utilizarla.
 Después de todas las fases anteriores, sin errores y documentación.
 Instalación:
• Transferencia de los programas al computador del usuario cliente, configuración y verificación.
• Presencia del cliente
• Beta Test
 Configuración.
• Asignación de los parámetros de funcionamiento normal de la empresa.
• Prueba de la aplicación.
• Posibilidad de la realización por parte del cliente con guía de instalación.
• Posibilidad de programar la configuración de manera que se realice automáticamente tras
instalarla.
 Producción normal
• Explotación por parte del cliente
7. Mantenimiento
 La etapa de mantenimiento es la más larga de todo el ciclo de vida
del software.
 Los tipos de cambios del mantenimiento del software :
• Perfectivos: Para mejorar la funcionalidad del software.
• Evolutivos: El cliente tendrá en el futuro nuevas necesidades. Por tanto,
serán necesarias modificaciones, expansiones o eliminaciones de código.
• Adaptativos: Modificaciones, actualizaciones... para adaptarse a las nuevas
tendencias del mercado, a nuevos componentes hardware, etc.
• Correctivos: La aplicación tendrá errores en el futuro (sería utópico pensar
lo contrario).
4. Lenguajes de programación
Características de los lenguajes de programación
 Lenguaje máquina:
• Sus instrucciones son combinaciones de unos y ceros.
• Es el único lenguaje que entiende directamente el ordenador. (No necesita traducción).
• Fue el primer lenguaje utilizado.
• Es único para cada procesador (no es portable de un equipo a otro).
• Hoy día nadie programa en este lenguaje.
 Lenguaje ensamblador: https://es.wikipedia.org/wiki/Lenguaje_ensamblador
• Sustituyó al lenguaje máquina para facilitar la labor de programación.
• En lugar de unos y ceros se programa usando mnemotécnicos (instrucciones complejas).
• Necesita traducción al lenguaje máquina para poder ejecutarse.
• Sus instrucciones son sentencias que hacen referencia a la ubicación física de los archivos en el
equipo.
• Es difícil de utilizar.
Características de los lenguajes de programación
 Lenguaje de alto nivel basados en código:
• Sustituyeron al lenguaje ensamblador para facilitar más la labor de programación.
• En lugar de mnemotécnicos, se utilizan sentencias y órdenes derivadas del idioma inglés. (Necesita traducción al
lenguaje máquina).
• Son más cercanos al razonamiento humano.
• Son utilizados hoy día, aunque la tendencia es que cada vez menos.
 Lenguajes visuales:
• Están sustituyendo a los lenguajes de alto nivel basados en código.
• En lugar de sentencias escritas, se programa gráficamente usando el ratón y diseñando directamente la
apariencia del software.
• Su correspondiente código se genera automáticamente.
• Necesitan traducción al lenguaje máquina.
• Son completamente portables de un equipo a otro.
 https://www.edix.com/es/instituto/lenguajes-de-programacion/
Conceptos y características
 Un lenguaje de programación es el conjunto de:
• Alfabeto: conjunto de símbolos permitidos.
• Sintaxis: normas de construcción permitidas de los símbolos del lenguaje.
• Semántica: significado de las construcciones para hacer acciones válidas.
 Clasificación según la cercanía al lenguaje humano
• De alto nivel: más próximos al razonamiento humano.
• De bajo nivel: más próximos al funcionamiento interno de la computadora
(Ensamblador y Máquina).
 Clasificación según la técnica de programación utilizada:
• Estructurados: Pascal, C, etc.
• Orientados a Objetos: C++, Java, Ada, Delphi, etc.
• Visuales: Visual Basic.Net, Borland Delphi, etc.
Estructurados
 Uso de tres tipos de sentencias o estructuras de control:
• Sentencias secuenciales.
• Sentencias selectivas (condicionales).
• Sentencias repetitivas (iteraciones o bucles).
Ventajas Inconvenientes
•Los programas son fáciles de leer, sencillos y rápidos. •Todo el programa se concentra en un único bloque.
•El mantenimiento de los programas es sencillo. •No permite reutilización eficaz de código. 
•La estructura del programa es sencilla y clara. programación modular.
Orientados a objetos
 Conjunto de objetos independientes y reutilizables que colaboran entre ellos para
realizar acciones.
 No es una programación tan intuitiva como la estructurada.
 El código es reutilizable.
 Facilidad para localizar y depurar un error en un objeto.
 Los objetos compuestos de atributos.
 Clase como una colección de objetos con características similares.
 Métodos: comunicación entre objetos.
Fases en la obtención de código
 Fuente
• Código de instrucciones de alto nivel  traducción al lenguaje máquina.
• Previamente se diseña un algoritmo en pseudocódigo
o Se debe partir de las etapas anteriores de análisis y diseño.
o Se diseñará un algoritmo que simbolice los pasos a seguir para la resolución del
problema.
o Se elegirá una Lenguajes de Programación de alto nivel apropiado para las
características del software que se quiere codificar.
o Se procederá a la codificación del algoritmo antes diseñado.
Fases en la obtención de código
• Un aspecto importante: su licencia.
o Código fuente abierto. Disponible para que cualquier usuario pueda estudiarlo,
modificarlo o reutilizarlo.
o Código fuente cerrado. No tenemos permiso para editarlo.
Fases en la obtención de código
 Objeto.
• Código intermedio
• Resultado del proceso de traducción pero todavía no ejecutable.
• Código binario distribuido en varios archivos libre de errores sintácticos y
semánticos.
• Compilación vs. interpretación
Fases en la obtención de código
 Ejecutable
• Un archivo resultado de enlazar los archivos de código objeto (linker)
• Ejecutado y controlado por el sistema operativo.
Máquinas virtuales
 Tipo especial de software cuya misión es separar el funcionamiento del
ordenador de los componentes hardware instalados.
 Garantiza la portabilidad de las aplicaciones
 Características Código fuente

• Compilación de código fuentebytecode COMPILACIÓN.


• M.Virtual verifica el bytecode.
Código objeto

video MÁQUINA VIRTUAL

Hardware
Framework
 Estructura de ayuda al programador para desarrollar proyectos sin partir
desde cero.
 Plataforma software donde están definidos programas soporte,
bibliotecas, lenguaje interpretado, etc., que ayuda a desarrollar y unir los
diferentes módulos o partes de un proyecto.
 Ventajas de utilizar un framework:
• Desarrollo rápido de software.
• Reutilización de partes de código para otras aplicaciones.
• Diseño uniforme del software.
• Portabilidad de aplicaciones de un computador a otro, ya que los bytecodes que se
generan a partir del lenguaje fuente podrán ser ejecutados sobre cualquier
máquina virtual.
Frameworks
 Inconvenientes:
• Gran dependencia del código respecto al framework utilizado.
• La instalación e implementación del framework en nuestro equipo consume
bastantes recursos del sistema.
 Ejemplos de Frameworks:
• .NET es un framework para desarrollar aplicaciones sobre Windows.
• Spring de Java
• Laravel
• …
 https://kinsta.com/es/blog/frameworks-php/
Entornos de ejecución
 Un entorno de ejecución es un servicio de máquina virtual que
sirve como base software para la ejecución de programas.
 Actividades del entorno durante la ejecución:
• Configurar la memoria principal
• Enlazar los archivos del programa con las bibliotecas existentes y con
los subprogramas creados.
• Depurar los programas: comprobar la existencia (o no existencia) de
errores semánticos del lenguaje (los sintácticos ya se detectaron en la
compilación).
Java runtime environment
 JRE -Java Runtime Environment.
 Conjunto de utilidades que permitirá la ejecución de programas java
sobre cualquier tipo de plataforma.
 Componentes
• JMV o JVM -Máquina virtual Java -programa que interpreta el código de la
aplicación escrito en Java.
• Bibliotecas de clase estándar que implementan el API de Java.
 Descargar el programa JRE.
 Java es software libre.
video
Java runtime environment
 Lenguaje que genera Java = lenguaje
intermedio interpretable por una máquina
virtual instalada en el ordenador a PROGRAMA
Java
ejecutar.
 Máquina virtual de Java = máquina Compilación

ficticia que traduce las instrucciones


bytecode
máquina-ficticia en instrucciones para la
máquina real.

video

SO: Windows + SO: MAC + VM


VM
Java runtime environment
 Java es compilador e intérprete.
 Compilador: compila a bytecode
 Intérprete: ejecuta el código en la máquina real.
Java runtime environment
 JDK-Java Development Kit. • Herramientas de consola de
• No incluye herramienta gráfica JDK:
• Incluye el JRE-Java Runtime  java: VM de java
Environment-: incluye como  javac: compilador
mínimo componentes para  javap: desensamblador de
ejecutar una aplicación Java clases
(máquina virtual y librerías de  jdb: depurador de consola
clase).
 javadoc: generador de
documentación
 Appletviewer: visor de
Applets.
Anexo I.- Ejemplo de DFD
DIAGRAMA DE CONTEXTO

PEDIDO
LIBROS 0
SANCIÓN

USUARIO GESTIONAR USUARIO


BIBLIOTECA
DEVOLUCIÓN
LIBROS

ALTAS/BAJAS
LIBROS

BIBLIOTECARIO
DIAGRAMA 0: GESTIONAR BIBLIOTECA

FICHAS
PRESTAMO

PEDIDO DEVOLUCIÓN
1 2 LIBROS
LIBROS
GESTIONAR GESTIONAR
PEDIDOS DEVOLUCIONES

SANCIÓN
LIBROS
DISPONIBLES

3
ALTAS/BAJAS
LIBROS ACTUALIZAR
LIBROS
DIAGRAMA 2: GESTIONAR DEVOLUCIONES

FICHAS
PRESTAMO

DEVOLUCIÓN 2.1 2.2


LIBROS
ACTUALIZAR CALCULAR
STOCK SANCIÓN

SANCIÓN
LIBROS
DEVUELTOS

LIBROS
DISPONIBLES

También podría gustarte