domingo, 29 de mayo de 2011
Herramientas para modelar UML
http://www.diatel.upm.es/malvarez/UML/Comparativa.html
Lenguaje Unificado de Modelado (UML)
El lenguaje unificado de diagrama o notación (UML) sirve para especificar,
visualizar y documentar esquemas de sistemas de software orientado a objetos. UML no es un método de desarrollo, lo que significa que no sirve para determinar qué hacer en primer lugar o cómo diseñar el sistema, sino quesimplemente le ayuda a visualizar el diseño y a hacerlo más accesible para otros.
UML se compone de muchos elementos de esquematización que representan las diferentes partes de un sistema de software. Los elementos UML se utilizan para crear diagramas, que representan alguna parte o punto de vista del sistema.
Son 13 los diagramas definidos en la especificación de UML 2.0 de Grupos de Desarrollo de Objetos.
Hay dos grupos principales: Diagramas Estructurales los cuales muestran una vista estática del modelo; y Diagramas de Comportamiento los cuales muestran una vista dinámica del modelo. Veamos a continuación, la lista de diagramas que componen cada grupo:
Diagramas Estructurales: representan elementos componiendo un sistema o una función. Estos diagramas pueden reflejar las relaciones estáticas de una estructura, como lo hacen los diagramas de clases o de paquetes, o arquitecturas en tiempo de ejecución, tales como diagramas de Objetos o de Estructura Compuesta.
Diagrama de Comportamiento: Los diagramas de comportamiento describen las características de comportamiento de un sistema o proceso de negocios. Fuente: http://www.sparxsystems.com.ar/download/ayuda/index.html?umldiagrams.htm
martes, 3 de mayo de 2011
Objetivos de la ingeniería de software
En la construcción y desarrollo de proyectos se aplican métodos y técnicas para resolver los problemas, la informática aporta herramientas y procedimientos sobre los que se apoya la ingeniería de software.
- Mejorar la calidad de los productos de software
- Aumentar la productividad y trabajo de los ingenieros del software
- Facilitar el control del proceso de desarrollo de software
- Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente
- Definir una disciplina que garantice la producción y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado
1) Correccion
2) Fiabilidad
3) Eficiencia
4) Integridad
5) Facilidad de uso
6) Faciliadad de mantenimiento
7) Flexibilidad
8) Facilidad de prueba
9) Portabilidad
10) Facilidad de reuso
11) Interoperabilidad
Fuente(s):
http://www.slideshare.net/guest9ad165/intoduccion-a-la-ingenieria-del-software
http://www.monografias.com/trabajos5/inso/inso.shtml#obje
Ingeniería del software libre
En esa época, el crecimiento espectacular de la demanda de sistemas de computación cada vez más y más complejos, asociado a la inmadurez del propio sector informático (totalmente ligado al electrónico) y a la falta de métodos y recursos, provocó lo que se llamó la crisis del software (en palabras de Edsger Dijkstra) entre los años 1965 y 1985.
Durante esa época muchos proyectos importantes superaban con creces los presupuestos y fechas estimados, algunos de ellos eran tan críticos (sistemas de control de aeropuertos, equipos para medicina, etc.) que sus implicaciones iban más allá de las pérdidas millonarias que causaban.
La crisis del software pasó, no tanto por la mejora en la gestión de los proyectos, sino en parte porque no es razonable estar en crisis más de veinte años, y en parte porque se estaban haciendo progresos en los procesos de diseño y metodologías.

Entre las herramientas, la programación estructurada, la programación orientada a objetos, a los aspectos, las herramientas CASE, el lenguaje de programación ADA, la documentación, los estándares, CORBA, los servicios web y el lenguaje UML (entre otros) fueron todos anunciados en su momento como la solución a los problemas de la ingeniería del software, la llamada “bala de plata” (por silver bullet). Y lo que es más, cada año surgen nuevas ideas e iniciativas encaminadas a ello.
Por supuesto, también ha habido quien ha culpado a los programadores por su indisciplina o anarquía en sus desarrollos. La ignorancia y algunos casos excéntricos contribuyeron a crear una imagen falsa del programador, que hoy en día aún perdura. Aunque muchas veces él es el “sufridor” de alguna de estas metodologías o de una pobre implementación de las mismas, parece lógico que, como participante activo en el proyecto, las metodologías más modernas empiecen a tenerle más en cuenta.
En combinación con las herramientas, también se han hecho esfuerzos por incorporar los métodos formales al desarrollo de software, argumentando que si se probaba formalmente que los desarrollos hacían lo que se les requería, la industria del software sería tan predecible como lo son otras ramas de la ingeniería.
Entre las metodologías y procesos, además de Métrica v3 (promovida por la Secretaría del Consejo Superior de Informática) y eXtreme Programming, que veremos en detalle más adelante, destacan muchos otros como RUP (rational unified process desarrollado por Rational Software Corp. ahora una división de IBM), SSADM (structured systems analysis and design methodology promovido por el Gobierno británico) o el método de evaluación de la capacidad de desarrollo de los equipos o empresas conocido como CMMI (capability maturity model integration). Paralelamente, suelen usarse también métodos de predicción de costes como COCOMO o los puntos de función.
Las últimas iniciativas en este campo son múltiples y se extienden a lo largo de todo el proceso relacionado con el software. Los más académicos se inclinan por una estructura de componentes, servicios, con orientación a objetos o a aspectos en la implementación; aunque también es igual de significativo el desarrollo de las herramientas que nos ayuden a representar y compartir estos diseños, así como a valorar el esfuerzo y el valor que añaden al producto final. Es realmente un campo fascinante, donde tanto en los seminarios o en las grandes consultoras, como en los pequeños laboratorios se innova cada día y se presentan buenas ideas.