sábado, 6 de julio de 2013

¿Como Verificar y Validar un Software?


Les Traigo un material recopilado de algunos aspectos importantes de lo que es Verificación y Validación de Software.

 Leer Mas...

miércoles, 29 de mayo de 2013

Lo que se espera del Diseño de Software

Nuevas Tendencias

            Toda empresa que desee tener de manera ordenada sus operaciones, procesos, la manera diaria en cómo se llevan los datos, como se administras los recursos y como factor principal la gestión adecuada de su información, aquí es donde se puede ver que llegan esos diseñadores o empresas encargadas del desarrollo de software, ya que no son más que diseñadores de sistemas personalizados para cada empresa diferente. El que una empresa cuente con un sistema personalizado para realizar sus tareas quiere decir que tendrá control total sobre el flujo de sus operaciones y recursos ya que para que esto se logre se deben analizar de manera detallada sus procesos.


            Hoy día se pueden percibir una gran variedad de metodologías para el desarrollo de software, un diseñador digno debe conocer esta gran variedad para resolver cualquier problema. Desde mi perspectiva la evolución de estos modelos a pesar que han evolucionado considerablemente aun no predominan por encima de algunos mas antiguos, le falta un poco mas de madurez y pruebas para su utilización como metodología en sí, para mi hacia dónde van los software es a una combinación de Técnicas de cuarta generación y programación extrema, aunque según una entrevista realizada al Dr. Ceballos S. Francisco Sierra en el 2009 dice que “La tendencia es unir el mundo de los lenguajes de programación de propósito con el mundo de las bases de datos”, asi para evolucionar esta herramienta tan poderosa como lo es la internet

martes, 28 de mayo de 2013

Para los que quieran conocer el Cambio Leerlo.!

Programación Extrema

            “La Programación Extrema, como proceso de creación de software diferente al convencional, nace de la mano de Kent Beckes, es una metodología de desarrollo ligera basada en una serie de valores y de prácticas de buenas maneras que persigue el objetivo de aumentar la productividad a la hora de desarrollar programas” Kent Beck 2002.

            Este modelo es como la revolución de la manera de diseñar software, es una recopilación de diversos métodos de diseño de sistemas es decir no es algo nuevo ni algo que se invento, simplemente es una recopilación de algunos métodos que se consideraron importantes y resaltantes, cabe destacar que los que se encargaran del modelado, diseño y creación del sistema deben ser personas especializadas para facilitar su implementación.


            El gran cambio y que se denota mucho mas desde mi punto de vista es que este modelo trabaja demasiado con el usuario final, es decir ya no lo colocan en ese lugar de usuario final si no como un colaborador más al momento del diseño del sistema, yo considero eso de gran ayuda ya que el usuario puede ir observando que le va gustando, que le puede gustar que llevara demás para quedar completamente satisfecho y obviamente poder detectar esos errores que solo los usuario finales podrán conseguirse, este modelo usa algo similar al portotipado pero en mayor escala ya que aquí se le entrega desde un principio una parte del sistema para ir adaptando al usuario y mediante sus experiencias, el sistema ira evolucionando. 

Una Mirada al Futuro del Diseño de Software

Técnicas de Cuarta Generación

            Las técnicas de cuarta generación “fueron primeramente usado para describir a los lenguajes de especificación, que son lenguajes de alto nivel no procedurales, el usuario define qué se debe hacer, no cómo debe hacerse, la denotación 4GL fue utilizada por primera vez por James Martín en 1982 para referirse a la falta de procedimientos de alto nivel lenguajes de especificación” Martin James 1981.

            Estas técnicas viene a revolucionar un poco ese mundo de los programadores acostumbrados al código puro, secuencias, bloques de código fuente y muchas cosas más, ya que este modelo simplemente requiere algunas especificaciones de que se desea y el de forma automática generara lo que se le está pidiendo, es decir nosotros le diremos lo que queremos pero no necesitaremos decirle cómo hacerlo y de qué manera estructurarlo para diseñarlo ya que el mismo tomara las decisiones pertinentes para entregarnos el resultado. Este tipo de lenguaje es de alto nivel ya que lo se busca es dejar un poco de lado ese mundo de cientos de líneas de código, simplemente ofrecerle al usuario una interfaz donde exponga lo que desea y las operaciones de realicen de manera automática. Algunos lenguajes de cuarta generación que existen hoy día son:

   v  SheerPower4GL
   v  PowerBuilder
   v  WinDev
   v  Focus
   v  Natural
   v  Progress4GL
   v  SQL  
   v  Oracle Reports
   v  PostScript
   v  Matemática
   v  MatLab
   v  Ramis

Para finalizar quisiera decir que simplemente este modelo lo que busca es convertir el lenguaje de programación al lenguaje humano.


lunes, 27 de mayo de 2013

Modelo de Diseño de Software mas Secuencial que Flexible

Métodos Formales

      "Un método formal es una técnica basada en matemáticas, usada para describir sistemas de hardware o software", Wing, Jeannette M. (1990), en la década de los 80 investigadores del desarrollo del software propusieron que era método formal para el siglo XXI, la gran mayoría de los sistemas estarían basados en este modelo, pero estaba muy equivocado, mencionare 4 razones por las cuales esos científicos se equivocaron:

1.    Una ingeniería del software exitosa:  a medida del avance del mundo y esta sociedad ya rodeada de grandes tecnologías, el desarrollo de los sistemas se ha vuelto un poco más flexible, más ajustado a nuestras fortaleza que simplemente basados a matemáticas y datos cuantificables.

2.    Cambios en el mercado: obviamente al evolucionar la tecnología las exigencias para las empresas surgieron de la noche a la mañana y con ella más problemas que resolver, este método formal por su estricto orden no permitía el desarrollo del sistema con rapidez, a pesar de que un sistema quedara con algunas fallas, las empresas tomaron ese riesgo a cambio de ganar tiempo y no frenar su producción.

3.    Ámbito limitado de los métodos formales: este método no era la mejor opción en cuanto a interfaz de usuario y eso se ha convertido en un punto sumamente clave a la hora de crear un sistema.

4.    Escalabilidad limitada: a pesar de ser muy fiable este método aun no es reconocido por grandes trabajos, los que han tenido éxito son los relacionados con sistemas críticos relativamente pequeños.

Modelo de Actualización de Software

Modelos Evolutivos

            Para empezar quisiera definir lo que significa modelo informático “representación de la realidad por medio de abstracciones que enfocan ciertas partes importantes de un sistema, restándoles importancia a otras” David Rodríguez. Los modelos más resaltantes en que se pueden dividir son:

   v  Modelo en Cascada
   v  Desarrollo Evolutivo
   v  Ingeniería del Software basada en Componentes

Estos modelos básicamente se basan es en la evolución a medida que los cambios, mejoras y circunstancias se los exijan, que se quiere decir, cuando se crea un software siempre se tiene que pensar de qué manera se puede ir mejorando no solamente dejarlo hasta el punto donde se creó si no ya tener una visión mas ambiciosa de que lo que se podría llegar a convertir nuestro sistema. En este modelo se le entrega a los usuarios finales un sistema para su pruebas iniciales  con esto ya al ir probándolo se irán encontrando los inconvenientes o satisfacción total por parte de los usuarios (rara vez un sistema nuevo satisface todas las necesidades), otro aspecto importante de estos modelos es que no se entrega el sistema en su totalidad como tenemos planeado, si no que a medida de su receptividad y funcionamiento se le irán agregando poco a poco todas esas mejoras y actualizaciones que deseamos. Estos 2 métodos evolutivos del diseño de sistemas son el desarrollo exploratorio y el de prototipos desechables.

Para finalizar este modelo simplemente busca mejorar o actualizar un software ya viejo para así aumentar su eficiencia y productividad.

Modelo de Desarrollo Rápido de Aplicaciones

Modelo RAD

            Sus siglas en ingles significan Rapid Application Development esta manera de diseñar software fue iniciada por James Martin en 1980, este método usa el desarrollo repetitivo, algunos prototipos y herramientas CASE, mayormente para empresas donde necesitan solucionar un problema lo antes posible ya que no cuentan con tiempo y así poner a funcionar un sistema en un tiempo corto de tiempo.

            Este modelo consta de 4 fases principales que son:

  Ø  Planificación  de los requisitos
  Ø  Diseño
  Ø  Construcción   
  Ø  Implementación

Para la recolección de los requisitos algunas personas expertas en todos los aspectos de la empresa y que conocen sus procesos facilitaran la información que tendrá el sistema para solucionar el problema existente. Se analizan los datos recogidos para plantear una posible solución, cabe destacar que los usuarios participan activamente en estos procesos, ya se decidió lo que se hará ahora solo queda empezar la construcción del sistema, los programadores tendrán la ventaja de contar con la opinión de los usuarios finales en el momento de la construcción así poder evaluar los procesos y ver cómo van fluyendo los resultados, ya como último paso es la implantación del sistema, obviamente se tiene que preparar a los usuarios para que lo puedan manejar.

            Algunas características importantes de este tipo de diseño es que los encargados del diseño deben programar, analizar y diseñar es decir tienen que ser personas con trayectoria en la materia del desarrollo de software, cada repetición tiende a durar de 1 día a tres semanas