Download CONFIGURACIÓN DE APLICACIONES

Document related concepts
no text concepts found
Transcript
Unidad 4:
Generación de Paquetes de Software
Msc. Lic. Susana I. Herrera - Lic. Paola Budán
UNSE 2012
Objetivos de la Unidad IV
Que logren:
 Destreza en el uso de las herramientas para la implementación de
software
 Configurar aplicaciones cliente-servidor en la etapa de
implementación
Unidad IV: Generación de Paquetes de Software
-Etapa de construcción del software. Implementación del software a partir de artefactos
de diseño. Lenguajes de implementación de software.
-Conceptos y herramientas para la implementación de software. Diccionario de datos.
Repositorios. Generador de programas. Generador de aplicaciones. Reuso.
-Configuración de aplicaciones cliente-servidor. Conexión de la aplicación con el
servidor de base de datos. Generación de archivos de soporte a la instalación de
aplicaciones clientes.
-Configuración de aplicaciones web. Configuración de aplicaciones web estáticas.
Tramitaciones de dominio. Hosting. Acceso a servidores web. Mantenimiento de
Aplicaciones web estáticas. Aplicaciones web dinámicas con acceso a bases de datos.
Configuración de la conexión.
Configuración y Uso de Paquetes de Software -Msc.Lic.Susana Herrera - 2010
2
Codificación y prueba del
software. Se desarrollan y
documentan los distintos
componentes software y las
bases de datos.
Posteriormente se prueba
cada uno de los mismos
para asegurar que
satisfacen los requisitos.
Además, se actualizan los
manuales de usuario.
Norma ISO 12.212 - Information Technology
Software Life Cycle Proceses
3
Metodología de Planificación, Desarrollo y Mantenimiento de
sistemas de información; http://www.csae.map.es/csi/metrica3/
4
5
Tarea CSI 1.1: Implantación de la Base de Datos Física o Ficheros
•Crear los elementos de la base de datos o sistema de ficheros
•Reservar el espacio de almacenamiento, definiendo, entre otros, los dispositivos físicos a
emplear, tamaño de los bloques, tipo de registro físico, zona de desbordamiento, opciones
de almacenamiento de datos, etc.
•Inicializar la base de datos o ficheros, cargando los datos considerados necesarios en
el espacio de almacenamiento previamente definido.
DBA
Tarea CSI 1.2: Preparación del Entorno de Construcción
Se prepara el entorno en el que se construirán los componentes del sistema de
información, contemplando aspectos tales como:
• Bibliotecas o librerías a utilizar
• Herramientas: generadores de código, editores, compiladores, verificadores sintácticos.
•Implementación de los procedimientos de operación y seguridad propios del entorno de
construcción
6
Tarea CSI 2.1: Generación del Código de Componentes
•En esta tarea se genera el código correspondiente a cada uno de los componentes del
sistema de información,
•Con el fin de verificar que el código fuente especifica de forma correcta el componente,
se realiza su ensamblaje o compilación, verificando y corrigiendo los errores sintácticos, y
el enlace del código objeto obtenido con las correspondientes bibliotecas.
Producto: Código Fuente de los Componentes.
PROGRAMADORES
Tarea CSI 2.2: Generación de los Procedimientos de Operación y Seguridad
Generar los procedimientos de operación y administración del sistema de
información, así como los procedimientos de seguridad y control de acceso,
necesarios para ejecutar el sistema una vez que se haya implantado y esté en producción.
Producto:
o Procedimientos de Operación y Administración del Sistema
o Procedimientos de seguridad y control de acceso
7
Elaborar la documentación de usuario, tanto usuario final como de explotación, de
acuerdo a los requisitos los requisitos de documentación (especifican aspectos relativos
a los tipos de documentos a elaborar y estándares a seguir en la generación de los
mismos):
- Formato y soporte en el que se desarrollarán
- Estructura
- Distribución y mantenimiento de la documentación y número de copias a editar.
8
9
Tarea CSI 2.1: Generación del Código de Componentes
•ESTANDARES DE PROGRAMACIÓN Y PROCEDIMIENTOS
• Documentación del código: útil para prueba y mantenimiento
• Balancear diseño con implementación: correspondencia directa entre
componentes de diseño y componentes de código de programa
• Organización: reuso
PROGRAMADORES
•PAUTAS PARA LA PROGRAMACIÓN
• Cada componente de programa involucra: estructuras de control, algoritmos y
estructuras de datos
•PAUTAS GENERALES
• Localización de entrada y salida
• Inclusión de pseudocódigo
• Revisión y reescritura, no a los remiendos
• Reutilización
•DOCUMENTACIÓN
• Interna: Encabezamiento, Otros comentarios del programa, Nombres de variables
y etiquetas con significados, Formatos
• Externa: Descripción del problema, Descripción de los algoritmos, Descripción de
los datos,
10
Lenguajes de Implementación de Software
Un lenguaje de programación es un lenguaje artificial que puede ser usado para
controlar el comportamiento de una computadora. Estos se componen de un
conjunto de reglas sintácticas y semánticas que permiten expresar instrucciones
que luego serán interpretadas.
El programador es el encargado de utilizar un lenguaje de programación para crear
un conjunto de instrucciones que, al final, constituirá un programa o
subprograma informático.
En su uso, un lenguaje de programación puede acercarse a la forma humana de
expresarse y, por eso, este tipo de lenguajes es llamado de alto nivel. Esto
significa que utilizan palabras y formas en sus estructuras que se asemejan al
lenguaje natural (especialmente al inglés). En cambio, aquellos lenguajes que se
aproximan más a la forma en la cual la computadora se maneja, son llamados
lenguajes de bajo nivel.
Configuración y Uso de Paquetes de Software -Msc.Lic.Susana Herrera - 2010
11
Lenguajes de Implementación de Software
Un paradigma de programación provee (y determina) la visión y métodos de un programador en la construcción de un programa o
subprograma. Diferentes paradigmas resultan en diferentes estilos de programación y en diferentes formas de pensar la solución
de problemas.
Paradigma Imperativo: describe la programación como una secuencia instrucciones o comandos que cambian el estado de un
programa. El código máquina en general está basado en el paradigma imperativo. Su contrario es el paradigma declarativo. En
este paradigma se incluye el paradigma procedimental (procedural) entre otros.
Paradigma Declarativo: No se basa en el cómo se hace algo (cómo se logra un objetivo paso a paso), sino que describe
(declara) cómo es algo. En otras palabras, se enfoca en describir las propiedades de la solución buscada, dejando indeterminado
el algoritmo (conjunto de instrucciones) usado para encontrar esa solución. Es más complicado de implementar que el paradigma
imperativo, tiene desventajas en la eficiencia, pero ventajas en la solución de determinados problemas.
Paradigma Estructurado: la programación se divide en bloques (procedimientos y funciones) que pueden o no comunicarse
entre sí. Además la programación se controla con secuencia, selección e iteración. Permite reutilizar código programado y otorga
una mejor compresión de la programación. Es contrario al paradigma inestructurado, de poco uso, que no tiene ninguna
estructura, es simplemente un “bloque”, como por ejemplo, los archivos batch (.bat).
Paradigma Orientado a Objetos: está basado en la idea de encapsular estado y operaciones en objetos. En general, la
programación se resuelve comunicando dichos objetos a través de mensajes (programación orientada a mensajes). Se puede
incluir -aunque no formalmente- dentro de este paradigma, el paradigma basado en objetos, que además posee herencia y
subtipos entre objetos. Ej.: Simula, Smalltalk, C++, Java, Visual Basic .NET, etc.
Su principal ventaja es la reutilización de códigos y su facilidad para pensar soluciones a determinados problemas.
Paradigma Funcional: este paradigma concibe a la computación como la evaluación de funciones matemáticas y evita declarar y
cambiar datos. En otras palabras, hace hincapié en la aplicación de las funciones y composición entre ellas, más que en los
cambios de estados y la ejecución secuencial de comandos (como lo hace el paradigma procedimental). Permite resolver ciertos
problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de
programaciones.
Paradigma lógico: se basa en la definición de reglas lógicas para luego, a través de un motor de inferencias lógicas, responder
preguntas planteadas al sistema y así resolver los problemas. Ej.: prolog.
Actividad: clasificar los lenguajes de programación que estudió en los Laboratorios
12
Conceptos y herramientas para la
implementación de software
Diccionario de
Datos
Generador de
Programas
Repositorio
Reúso
Generador de
Aplicaciones
09/08/2017
13
Diccionario de Datos:
Es un trabajo de referencia de datos acerca de ellos (metadatos) que
permiten guiarse a través del análisis y del diseño del sistema. Como
documento, el diccionario de datos recolecta, coordina y confirma lo que
significa un término de datos específicos.
Tiene dos tipos de descripciones para el flujo de datos del sistema, son
los elementos datos y estructura de datos. Elemento dato: son los
bloques básicos para todos los demás datos del sistema, por si mismos
no le dan un significado suficiente al usuario. Se agrupan para formar una
estructura de datos. Descripción: Cada entrada en el diccionario consiste
de un conjunto de detalles que describen los datos utilizados o producidos
por el sistema. Cada uno está identificado con: un nombre, una
descripción, un alias, una longitud, valores de los datos.
Estructura de datos: es un grupo de datos que están relacionados con
otros y que en conjunto describen un componente del sistema.
09/08/2017
14
Repositorio
Si bien el diccionario de datos contiene información de los datos y
procedimientos, el repositorio es un conjunto más grande de información
acerca del proyecto. El repositorio es uno de los conceptos de mayor
impacto en las herramientas CASE y puede contener:
Información acerca de los datos mantenidos por el sistema, incluyendo
flujos de datos, almacén de datos, estructuras de registros y elementos.
Lógica de procedimiento.
Diseño de pantallas y reportes.
Relaciones de datos, de qué manera está enlazada una estructura de
datos a otra.
Requerimientos del proyecto y de lo que produce el sistema final.
Información de administración de proyecto, como fechas de entregas,
logros, usuarios del proyecto, situaciones que necesitan resolverse.
09/08/2017
15
Reúso
La reutilización es la propiedad de utilizar conocimiento, procesos,
metodologías o componentes de software ya existente para adaptarlo a
una nueva necesidad, incrementando significativamente la calidad y
productividad del desarrollo.
La reutilización es posible a diferentes niveles (desde funciones simples a
aplicaciones completas), y los estándares para componentes reutilizables
facilitan la reutilización.
Los factores claves que pueden considerarse al planificar la reutilización
son:
•La agenda de desarrollo de software,
•Vida esperada del software,
•Los conocimientos, habilidades y experiencias del grupo de desarrollo,
•La criticidad del software y los requerimientos no funcionales,
•El dominio de las aplicaciones.
09/08/2017
16
Los generadores de aplicaciones:
Se aprovecha del hecho de que las aplicaciones del mismo dominio,
tales como sistemas de negocio tienen arquitecturas comunes y
realizan funciones comparables. Por ejemplo los sistemas de
procesamiento de datos. Por tanto, pueden crearse componentes
genéricos y ser incorporados en un generador de aplicaciones que
selecciona elementos de una base de datos, comprueba que éstos
están dentro de un rango permitido y elabora informes. Para
reutilizar estos componentes, el programador selecciona los datos a
utilizar, comprobar que pueden aplicarse, y el formato de los
informes.
Los generadores de programas:
En esta aproximación el conocimiento reutilizable se captura en un
sistema generador de programas que puede ser programado por
expertos en el dominio utilizando un lenguaje orientado a dominios o
una herramienta CASE interactiva que soporte la generación de
sistemas.
09/08/2017
17
CONFIGURACIÓN DE APLICACIONES CLIENTESERVIDOR
La arquitectura cliente-servidor consiste básicamente en un cliente que realiza peticiones a
otro programa (el servidor) que le da respuesta. Generalmente se aplica a un sistema
operativo multiusuario distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores,
aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la
gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el
diseño del sistema.
La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se
ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los
tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los
servidores del correo, etc.
La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están
conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que
se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto
significa que todas las gestiones que se realizan se concentran en el servidor, de manera que
en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los
archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo
lectura y los que, por el contrario, pueden ser modificados, etc.
18
CONFIGURACIÓN DE APLICACIONES CLIENTESERVIDOR
Arquitecturas multi-capas
La arquitectura cliente/servidor genérica tiene dos tipos de nodos en la red: clientes y servidores.
Consecuentemente, estas arquitecturas genéricas se refieren a veces como arquitecturas de dos niveles
o dos capas.
Algunas redes disponen de tres tipos de nodos:
Clientes que interactúan con los usuarios finales.
Servidores de aplicación que procesan los datos para los clientes.
Servidores de la base de datos que almacenan los datos para los servidores de aplicación.
Esta configuración se llama una arquitectura de tres-capas.
Ventajas de las arquitecturas n-capas:
La ventaja fundamental de una arquitectura n-capas comparado con una arquitectura de dos
niveles (o una tres-capas con una de dos niveles) es que separa hacia fuera el proceso, eso
ocurre para mejorar el balance la carga en los diversos servidores; es más escalable.
Desventajas de las arquitecturas de la n-capas:
Pone más carga en la red, debido a una mayor cantidad de tráfico de la red.
Es mucho más difícil programar y probar el software que en arquitectura de dos niveles porque
tienen que comunicarse más dispositivos para terminar la transacción de un usuario.
Visitar un sitio web es un buen ejemplo de la arquitectura cliente/servidor. El
servidor web sirve las páginas web al navegador (el cliente). La mayoría de los
servicios de Internet son tipo de servidores. Por ejemplo, cuando uno accede a la
página web de EXACTAS, la computadora y el navegador web serían
considerados un cliente, y las computadoras, las bases de datos de Exactas
serían considerados el servidor.
19
EJEMPLO CONEXIÓN A BASE DE DATOS
EN ARQUITECTURAS CLIENTE-SERVIDOR
Me.datPrimaryRS.RecordSource = "select * from Pacientes where DNI =" & NumDNI
Me.datPrimaryRS.Refresh
Me.AdodcAntObst.RecordSource = "select
Nro_Embarazo,Fecha_Final,Terminacion,Edad_Gestacional,Nac_Vivo,Sexo,Vive,Patologia
from Antecedentes_Obstetricos where DNI =" & NumDNI & " order by Nro_Embarazo"
Me.AdodcAntObst.Refresh
09/08/2017
20





Pressman, R. Ingeniería del Software. 7ma. Edición. Ed.
Pearson-Addison Wesley. 2005.
Pfleeger, Shari L. Ingeniería del Software. Teoría y Práctica. 1ª
Edición, 2002.
Consejo Superior de Administración Electrónica, Gobierno de
España,
Metodología
de
Planificación,
Desarrollo
y
Mantenimiento de sistemas de información; disponible en
http://www.csae.map.es/csi/metrica3/
International Estandar Organization - Norma ISO 12.212 Information Technology Software Life Cycle Proceses.
Wikipedia, Métrica, http://es.wikipedia.org/wiki/METRICA
21