• No results found

7.2 Approach

7.2.5 Gradient as Image Filtering

En Ingeniería de software el desarrollo en cascada, también llamado modelo en cascada (denominado así por la posición de las fases en el desarrollo de esta, que parecen caer en cascada “por gravedad” hacia las siguientes fases), es el enfoque metodológico que ordena rigurosamente las etapas del proceso para el desarrollo de software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la etapa anterior.2

Al final de cada etapa, el modelo está diseñado para llevar a cabo una revisión final, que se encarga de determinar si el proyecto está listo para avanzar a la siguiente fase. Este modelo fue el primero en originarse y es la base de todos los demás modelos de ciclo de vida.

La versión original fue propuesta por Winston W. Royce en 1970 y posteriormente revisada por Barry Boehm en 1980 e Ian Sommerville en 1985.3

1.2.2.2 Fases del Modelo

El "modelo cascada" sin modificar. El progreso fluye de arriba hacia abajo, como una cascada.

Figura N° 7: Modelo Cascada

Fuente: http://www.buenastareas.com/ensayos/Modelo-o-Desarrollo-En-Cascada/3726.html

2

S. Pressman, Roger. Ingeniería del Software: Un enfoque práctico, 3.ª Edición, Pag. 26-30. 3

Análisis de requisitos.- En esta fase se analizan las necesidades de los usuarios finales del software para determinar qué objetivos debe cubrir. De esta fase surge una memoria llamada SRD (documento de especificación de requisitos), que contiene la especificación completa de lo que debe hacer el sistema sin entrar en detalles internos.

Es importante señalar que en esta etapa se debe consensuar todo lo que se requiere del sistema y será aquello lo que seguirá en las siguientes etapas, no pudiéndose requerir nuevos resultados a mitad del proceso de elaboración del software de una manera.

Diseño del Sistema.- Descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo. Como resultado surge el SDD (Documento de Diseño del Software), que contiene la descripción de la estructura relacional global del sistema y la especificación de lo que debe hacer cada una de sus partes, así como la manera en que se combinan unas con otras.

Es conveniente distinguir entre diseño de alto nivel o arquitectónico y diseño detallado. El primero de ellos tiene como objetivo definir la estructura de la solución (una vez que la fase de análisis ha descrito el problema) identificando grandes módulos (conjuntos de funciones que van a estar asociadas) y sus relaciones. Con ello se define la arquitectura de la solución elegida. El segundo define los algoritmos empleados y la organización del código para comenzar la implementación...

Diseño del Programa.- Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de los requerimientos del usuario así como también los análisis necesarios para saber qué herramientas usar en la etapa de Codificación

Codificación.- Es la fase en donde se implementa el código fuente, haciendo uso de prototipos así como de pruebas y ensayos para corregir errores.

Dependiendo del lenguaje de programación y su versión se crean las bibliotecas y componentes reutilizables dentro del mismo proyecto para hacer que la programación sea un proceso mucho más rápido.

Pruebas.- Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba que funciona correctamente y que cumple con los requisitos, antes de ser entregado al usuario final.

Verificación.- Es la fase en donde el usuario final ejecuta el sistema, para ello el o los programadores ya realizaron exhaustivas pruebas para comprobar que el sistema no falle.

En la creación de desarrollo de cascada se implementa los códigos de investigación y pruebas del mismo.

Mantenimiento.- Una de las etapas más críticas, ya que se destina un 75% de los recursos, es el mantenimiento del Software ya que al utilizarlo como usuario final puede ser que no cumpla con todas nuestras expectativas para el software.

1.2.2.3 Variantes.- Existen variantes de este modelo; especialmente destacamos la que hace uso de prototipos y en la que se establece un ciclo antes de llegar a la fase de mantenimiento, verificando que el sistema final esté libre de fallos.

Otros ejemplos de variantes del modelo en cascada son el modelo en cascada con fases solapadas, cascada con subproyectos, y cascada con reducción de riesgos.4

1.2.2.4 Ventajas

 Realiza un buen funcionamiento en equipos débiles y productos maduros, por lo que se requiere de menos capital y herramientas para hacerlo funcionar de manera óptima.

 Es un modelo fácil de implementar y entender.

 Está orientado a documentos.

 Es un modelo conocido y utilizado con frecuencia.

 Promueve una metodología de trabajo efectiva: Definir antes que diseñar, diseñar antes que codificar.5

4

Patricia Arieta Melgarejo, Modelos del ciclo de vida de software. 5

1.2.2.5 Desventajas

 En la vida real, un proyecto rara vez sigue una secuencia lineal, esto crea una mala implementación del modelo, lo cual hace que lo lleve al fracaso.

 El proceso de creación del software tarda mucho tiempo ya que debe pasar por el proceso de prueba y hasta que el software no esté completo no se opera. Esto es la base para que funcione bien.

 Cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costos del desarrollo.

 Una etapa determinada del proyecto no se puede llevar a cabo a menos de que se haya culminado la etapa anterior.

1.2.3 DBMS (Database Management System)

Es un conjunto de programas que se encargan de manejar la creación y todos los accesos a las bases de datos.

1.2.3.1Componentes de un DBMS

 Data Definition Language (DDL): define elementos en la base de datos.

 Data Munipulation Language (DML): manipula datos para aplicaciones.

Figura N° 8: Componentes de un DBMS

Fuente: http://ict.udlap.mx/people/carlos/is341/bases06.html

1.2.3.2SQL Server Express.- Es un producto de base de datos gratuito y fácil de utilizar basado en la tecnología SQL Server 2005. Se ha diseñado para proporcionar una plataforma de base de datos que ofrezca la máxima facilidad de uso y permita una implementación rápida en los escenarios objetivos. Esta facilidad de uso empieza por la instalación de una interfaz gráfica de usuario (GUI) sencilla y eficaz que guía al usuario durante el proceso de instalación. Las herramientas de GUI suministradas de forma gratuita con SQL Server Express incluyen SQL Server Management Studio Express Edition, una herramienta de configuración de superficie y el Administrador de configuración de SQL Server. Estas herramientas simplifican las operaciones básicas de base de datos. El diseño y desarrollo de aplicaciones de base de datos resultan más sencillos gracias a la integración con los proyectos de Visual Studio. Además, se ofrece la posibilidad de implementar aplicaciones de base de datos tan sólo con moverlas como si se tratara de archivos normales de Windows. El servicio y las revisiones también se han simplificado y automatizado.

SQL Server Express utiliza el mismo motor de base de datos confiable y de alto rendimiento que el resto de las versiones de SQL Server 2005. Asimismo, utiliza las mismas API de acceso a datos que ADO.NET, SQL Native Client y T-SQL. De hecho, sólo se diferencia del resto de las ediciones de SQL Server 2005 por lo siguiente:

 Falta de compatibilidad con características empresariales

 Límite de una CPU

 Límite de 1 GB de memoria para el grupo de búferes

 Bases de datos con un tamaño máximo de 4 GB

1.2.3.3 Características

- Cerrar automáticamente y la posibilidad de copiar bases de datos como archivos están habilitadas de forma predeterminada en SQL Server Express, mientras que las características de alta disponibilidad e inteligencia empresarial no están presentes. La escalabilidad se facilita al máximo en caso de ser necesaria dado que las aplicaciones Express funcionan perfectamente con las versiones Workgroup, Standard y Enterprise de SQL Server 2005. La descarga en Internet permite una implementación gratuita, rápida y fácil.

- Escenarios objetivo.- SQL Server Express se ha desarrollado teniendo en mente dos usos diferenciados. En primer lugar, se ha diseñado como un producto de servidor y, más concretamente, como un servidor Web o un servidor de base de datos. El segundo uso se corresponde con un almacén de datos de cliente local en que el acceso a los datos de la aplicación no depende de la red. La facilidad de uso y la sencillez son los objetivos clave de este diseño.

- Los tres escenarios principales de uso de SQL Server Express son:

 Desarrolladores no profesionales que crean aplicaciones Web

 Proveedores de software independientes que redistribuyen SQL Server Express como un servidor de baja disponibilidad o un almacén de datos de cliente

- SQL Server Express ofrece una plataforma de base de datos fácil de utilizar y confiable con multitud de características para abarcar estos escenarios. Se destacan la facilidad y confiabilidad de la instalación y la implementación para facilitar a los proveedores de software independientes el uso y la redistribución.

- El motor de SQL admite 1 CPU, 1 GB de RAM y un tamaño de base de datos de 4 GB.

Este mecanismo facilita la diferenciación del resto de las ediciones de SQL Server 2005 mediante una serie de límites bien definidos. En caso contrario, no habría ninguna aceleración de la carga de trabajo y el motor funcionaría del mismo modo que en el resto de las ediciones. No existe ningún límite codificado de forma rígida para el número de usuarios que pueden utilizar SQL Server Express, aunque las limitaciones de CPU y memoria imponen una serie de límites prácticos en cuanto al número de usuarios que pueden obtener unos tiempos de respuesta aceptables en una base de datos de SQL Server Express.

- SQL Server Express se puede instalar y ejecutar en equipos con varios procesadores, pero sólo se puede utilizar una CPU. Internamente, el motor limita el número de subprocesos del programador del usuario a 1 de modo que sólo se utilice 1 CPU cada vez. Algunas características como la ejecución de consultas en paralelo no se admiten debido al límite de una sola CPU.

- El límite de 1 GB de RAM constituye el límite de memoria disponible para el grupo de búferes. El grupo de búferes se utiliza para almacenar páginas de datos y otros tipos de información. No obstante, la memoria necesaria para realizar un seguimiento de las conexiones, bloqueos, etc. no se incluye en el límite del grupo de búferes. Por consiguiente, es posible que el servidor utilice más de 1 GB en total, aunque nunca utilizará más de 1 GB para el grupo de búferes. Las extensiones de ventana de dirección (AWE) o el acceso a datos de 3 GB no se admiten ni son necesarios.

- De forma predeterminada, SQL Server Express instala una instancia con nombre llamada SQLEXPRESS. Esta instancia concreta se puede compartir entre varias aplicaciones y proveedores de aplicaciones. Se recomienda utilizar esta instancia a menos que la aplicación necesite una configuración especial.

- Las API disponibles para programar en SQL Server Express son las mismas que para SQL Server 2005 de modo que los usuarios tengan la misma experiencia si deciden cambiar a otras ediciones de SQL Server 2005. Todas las características nuevas de SQL Server 2005 como la integración de Common Language Runtime (CLR), los tipos de datos nuevos como VARCHAR(MAX) y XML, los tipos definidos por el usuario y los agregados definidos por el usuario son compatibles. Además, las bases de datos de SQL Server Express se pueden conectar a SQL Server 2005 y las aplicaciones programadas con una instancia de SQL Server Express funcionan igual de bien con una instancia de SQL Server 2005. Las características de réplica y SQL Service Broker también están disponibles y se describen detalladamente más adelante.

- SQL Server Express se ha diseñado para facilitar su uso y las herramientas de la interfaz gráfica de usuario (GUI) facilitan el uso de las características básicas de base de datos de SQL Server Express incluso para los usuarios no familiarizados con bases de datos. Hay disponible de forma gratuita una herramienta de GUI nueva llamada SQL Server Management Studio Express Edition que se puede descargar por separado en Internet. SSMS-EE facilita la administración de bases de datos y las funciones de análisis de consultas además de ser redistribuible de forma gratuita.

1.2.3.4 Seguridad

En el caso de SQL Server Express, uno de los objetivos es ofrecer unos valores predeterminados seguros para los distintos componentes. Por ejemplo, los protocolos de red como TCP/IP y las canalizaciones con nombre están desactivados. El servicio Explorador SQL no se inicia a menos que el usuario lo solicite explícitamente en la línea de comandos de instalación. El administrador del sistema o la cuenta de administrador del sistema se deshabilitan de forma predeterminada si se utiliza la autenticación de Windows. Los usuarios normales del equipo apenas tienen privilegios en la instancia de SQL Server Express. Un administrador local del servidor debe conceder de forma explícita los permisos correspondientes a los usuarios normales para que puedan utilizar las funciones de SQL.

El inicio de sesión del administrador del sistema es un inicio de sesión especial de SQL Server además de ser miembro de la función de administrador del sistema (sysadmin). Se utiliza sobre todo en las configuraciones que utilizan el modo de autenticación de SQL y no se utiliza en el modo de autenticación de Windows. SQL requiere una contraseña segura de administrador del sistema por motivos de seguridad y, durante las instalaciones de GUI y las instalaciones en modo de autenticación de SQL silencioso, el usuario debe proporcionar una contraseña segura de administrador del sistema. No obstante, en el caso de las instalaciones en modo de autenticación de Windows silencioso, la contraseña de administrador del sistema no es obligatoria. El motivo es que al utilizar el modo de autenticación de Windows, la instalación de SQL Server Express en modo silencioso ofrece una contraseña segura de administrador del sistema aleatoria si el usuario no ha especificado ninguna contraseña. Además, la instalación deshabilita la cuenta de administrador del sistema en este caso para que pueda habilitar de forma explícita el administrador del sistema en una fase posterior en caso de utilizar T-SQL. Esto se hace así para que el proveedor de software independiente no tenga que proporcionar la contraseña al utilizar la autenticación de Windows y los escenarios de implementación masiva no se bloqueen. En versiones posteriores esta función se puede ampliar para las instalaciones de GUI basadas en Windows.

1.2.4 Entity Framework.- Es un conjunto de tecnologías de ADO.NET que permiten el desarrollo de aplicaciones de software orientadas a datos6. Los arquitectos y programadores de aplicaciones orientadas a datos se han enfrentado a la necesidad de lograr dos objetivos muy diferentes. Deben modelar las entidades, las relaciones y la lógica de los problemas empresariales que resuelven, y también deben trabajar con los motores de datos que se usan para almacenar y recuperar los datos. Los datos pueden abarcar varios sistemas de almacenamiento, cada uno con sus propios protocolos; incluso las aplicaciones que funcionan con un único sistema de almacenamiento deben equilibrar los requisitos del sistema de almacenamiento con respecto a los requisitos de escribir un código de aplicación eficaz y fácil de mantener.

Entity Framework permite a los desarrolladores trabajar con datos en forma de objetos y propiedades específicos del dominio, como clientes y direcciones de cliente, sin tener que

6

preocuparse por las tablas y columnas de la base de datos subyacente donde se almacenan estos datos. Con Entity Framework, los desarrolladores pueden trabajar en un nivel mayor de abstracción cuando tratan con datos, y pueden crear y mantener aplicaciones orientadas a datos con menos código que en las aplicaciones tradicionales. Dado que Entity Framework es un componente de .NET Framework, las aplicaciones de Entity Framework se pueden ejecutar en cualquier equipo en el que esté instalado .NET Framework a partir de la versión 3.5 SP1.

1.2.4.1 Dar vida a los modelos

Un enfoque de diseño habitual para crear una aplicación o un servicio consiste en dividir la aplicación o el servicio en tres partes: un modelo de dominio, un modelo lógico y un modelo físico. El modelo de dominio define las entidades y relaciones del sistema que se está modelando. El modelo lógico de una base de datos relacional normaliza las entidades y relaciones en tablas con restricciones de claves externas. El modelo físico abarca las capacidades de un motor de datos determinado especificando los detalles del almacenamiento en forma de particiones e índices.

Los administradores de bases de datos refinan el modelo físico para mejorar el rendimiento, pero los programadores que escriben el código de la aplicación principalmente se limitan a trabajar con el modelo lógico escribiendo consultas SQL y llamando a procedimientos almacenados. Los modelos de dominio se suelen usar como una herramienta para capturar y comunicar los requisitos de una aplicación, con frecuencia como diagramas inertes que se ven y se explican en las primeras etapas de un proyecto, y a continuación se abandonan. Muchos equipos de desarrolladores omiten la creación de un modelo conceptual y comienzan especificando las tablas, columnas y claves en una base de datos relacional.

Entity Framework da vida a los modelos conceptuales permitiendo a los programadores consultar las entidades y relaciones en el modelo de dominio (denominado modelo conceptual en Entity Framework) al tiempo que se basan en Entity Framework para traducir esas operaciones en los comandos específicos del origen de datos. Esto libera a las

aplicaciones de las dependencias codificadas de forma rígida en un origen de datos determinado.

Al trabajar con Code First, el modelo conceptual se asigna al modelo de almacenamiento en código. Entity Framework puede deducir el modelo conceptual basado en los tipos de objeto y configuraciones adicionales que define. Los metadatos de asignación se generan durante el tiempo de ejecución basándose en una combinación de cómo se definen los tipos de dominio e información de configuración adicional que se proporciona en código. Entity Framework genera la base de datos como sea necesario basándose en los metadatos7.

Cuando se trabaja con las Herramientas de Entity Data Model, el modelo conceptual, el modelo de almacenamiento y las asignaciones entre los dos se expresan en esquemas basados en XML y se definen en archivos que tienen extensiones de nombre correspondientes:

 El lenguaje de definición de esquemas conceptuales (CSDL) define el modelo conceptual. CSDL es la implementación de Entity Framework del Entity Data Model. La extensión de archivo es .csdl.

 El lenguaje de definición de esquemas de almacenamiento (SSDL) define el modelo de almacenamiento, que también se denomina modelo lógico. La extensión de archivo es .ssdl.

 El lenguaje de especificación de asignaciones (MSL) define las asignaciones entre los modelos conceptual y de almacenamiento. La extensión de archivo es .msl.

El modelo de almacenamiento y las asignaciones pueden cambiar según sea necesario sin requerir cambios en el modelo conceptual, las clases de datos o el código de la aplicación.

Related documents