jueves, 12 de febrero de 2009

Introducción a la Ingeniería de Software

El modelo de métodos Formales

El modelo de métodos formales comprende un conjunto de actividades que conducen a las especificaciones matemática del software de computadora. Cuando se utilizan métodos formales durante el desarrollo, proporcionan un mecanismo para eliminar muchos de los problemas que son difíciles de superar con paradigmas de la ingeniería del software. La ambigüedad, lo incompleto y la inconsistencia se descubren y se corrigen más fácilmente mediante la aplicación del análisis matemátic. Este método le permite al ingeniero de software descubrir y corregir errores que de otra manera no se pudiesen detectar, Aunque todavía no hay un enfoque establecido, los modelos de métodos formales ofrecen la promesa de un software libre de defectos.
Aunque todavía no hay un enfoque establecido, los modelos de métodos formales ofrecen la promesa de un software libre de defectos, No obstante es posible que el enfoque a través de métodos formales tenga más partidarios entre los desarrolladores del software que deben construir software de mucha seguridad (por ejemplo: los desarrolladores de aviónica y dispositivos médicos), y entre los desarrolladores que pasan grandes penurias económicas alaparecer errores de software.

Introducción a la Ingeniería de Software

Desarrollo basado en componentes

El modelo de desarrollo basado en componentes incorpora muchas de las características del modelo en espiral siendo evolutivo por naturaleza, y exige un enfoque iterativo para la creación del software. Sin embargo este modelo configura aplicaciones desde componentes preparados de software llamados «clases».
La ingeniería comienza examinando los datos que se van a manejar por parte de la aplicación y el algoritmo que se va a aplicar para conseguir el tratamiento. Para luego empaquetar Los datos y los algoritmos correspondientes en una clase.
Las clases creadas en los proyectos de ingeniería del software anteriores, se almacenan en una biblioteca de clases o diccionario de datos. Una vez identificadas las clases candidatas, la biblioteca de clases se examina para determinar si estas clases ya existen. Si es así, entonces se extraen de la biblioteca y se vuelven a utilizar.Si una clase candidata no reside en la biblioteca, se aplican los métobos orientados B objetos.
Se compone así la primera iteración de la aplicación a construirse, mediante las clases
extraídas de la biblioteca y las clases nuevas construidas para cumplir las necesidades Únicas de la aplicación. El flujo del proceso vuelve a la espiral y volverá a introducir por último la iteración ensambladora de componentes a través de la actividad de ingeniería. El modelo de desarrollo basado en componentes conduce a la reutilización del software, y la reutilización proporciona beneficios a los ingenieros de software.





martes, 10 de febrero de 2009

Introducción a la Ingeniería de Software

Ingeniería de Software

La Ingeniería de Software (SE del inglés Software Engineering) es un enfoque sistemático del desarrollo, operación, mantenimiento y retiro del software", que en palabras más llanas, se considera que "la Ingeniería de Software" es la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones costo-efectivas (eficaces en costo o económicas) a los problemas de desarrollo de software", es decir, "permite elaborar consistentemente productos correctos, utilizables y costo-efectivos" [Cota 1994]. La Ingenieria del Software tratas areas muy diversas de la INFORMÁTICA y de las ciencias de la computación, tales como construcion de compiladores, sistemas operativos o desarrollos en Intranet/Internet, abordando las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de Informacion y aplicables a una infinidad de areas tales como: negocios, investigacion cientifica, medicina, produccion, logistica, banca, control de trafico, metereologia, el mundo del derecho, la red de redes Internet, redes Intranet y Extranet, etc.
Por lo tanto, la ingeniería de software requiere la gestión de proyectos para que se pueda desarrollar una aplicación en el plazo previsto y con el presupuesto establecido que sea satisfactoria para el cliente.

Capas de la IS

Capa de calidad
Base de cualquier proceso de ingeniería
La IS se basa en calidad
• Mejores técnicas de construcción de software
Capa de proceso
Capa que une calidad y métodos
• Desarrollo racional de la IS
Conjunto de actividades y resultados asociados que sirven
para construir un producto software
Capa de métodos
Un método incluye:
• Análisis de requisitos
• Diseño
• Construcción de programas
• Prueba
• Mantenimiento
Suelen estar bastante ligados al proceso
Capa de herramientas
Soporte automático o semiautomático para el proceso y los
métodos
Herramientas CASE: Computer Aided Software Engineering

Chicos espero que les sirva esta sintesis para mayor informacion seguir estos enlaces:
enlace 1: http://es.kioskea.net/contents/genie-logiciel/genie-logiciel.php3
enlace 2: http://es.wikipedia.org/wiki/Desarrollo_de_software#Etapas_del_proceso
enlace 3: http://www.angelfire.com/scifi/jzavalar/apuntesIngSoftware.html#ProcUnificado


Introducción a la Ingeniería de Software


Producto y Proceso Del Software

Un proceso de software se define como un marco de trabajo o un conjunto
de actividades para las tareas que se requieren en la construcción de software
de alta calidad. El proceso de desarrollo de software "es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseño y el diseño implementado en código, el código es probado, documentado y certificado para su uso operativo". Concretamente "define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo" [Jacobson 1998].El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propioLas actividades varían dependiendo de la organización y del tipo de sistema a desarrollar. Los "procesos de desarrollo de software" poseen reglas preestablecidas, y deben ser aplicados en la creación del software de mediano y gran porte, ya que en caso contrario lo más seguro es que el proyecto o no logre concluir o termine sin cumplir los objetivos previstos y con variedad de fallos inaceptables (fracasan, en pocas palabras). Entre tales "procesos" los hay ágiles o livianos (ejemplo XP), pesados y lentos (ejemplo RUP) y variantes intermedias; y normalmente se aplican de acuerdo al tipo y porte y tipología del software a desarrollar, a criterio del líder (si lo hay) del equipo de desarrollo. Algunos de esos procesos son Extreme Programming (XP), Rational Unified Process (RUP), Feature Driven Development (FDD), etc.El proceso de desarrollo puede involucrar numerosas y variadas tareas, desde lo administrativo, pasando por lo técnico y hasta la gestión y el gerenciamiento. Pero casi rigurosamente siempre se cumplen ciertas etapas mínimas; las que se pueden resumir como sigue:
•Especificación: establecer los requisitos y restricciones del
sistema
• Diseño: Producir un modelo en papel del sistema
• Implementación: construcción del sistema de software
• Validación: verificar (por ejemplo mediante pruebas) que el
sistema cumple con las especificaciones requeridas
• Instalación: entregar el sistema al usuario y asegurar su
operacionalidad
• Evolución y mantenimiento: cambiar/adaptar el software según
las demandas; reparar fallos en el sistema cuando sean
descubiertos.
Cuando un proyecto fracasa, rara vez es debido a fallas técnicas, la principal causa de fallos y fracasos es la falta de aplicación de una buena metodología o proceso de desarrollo. Entre otras, una fuerte tendencia, desde hace pocas décadas, es mejorar las metodologías o procesos de desarrollo, o crear nuevas y concientizar a los profesionales en su utilización adecuada. Normalmente los especialistas en el estudio y desarrollo de estas áreas (metodologías) y afines (tales como modelos y hasta la gestión misma de los proyectos) son los Ingenieros en Software, es su orientación. Los especialistas en cualquier otra área de desarrollo informático (analista, programador, Lic. en Informática, Ingeniero en Informática, Ingeniero de Sistemas, etc.) normalmente aplican sus conocimientos especializados pero utilizando modelos, paradigmas y procesos ya elaborados.

Modelos de Proceso del Software
Modelo de Cascada
Separar en distintas fases de especificación y desarrollo que
se realizan en secuencia lineal
Desarrollo Evolutivo
La especificación y el desarrollo están intercalados
Prototipado
Un modelo sirve de prototipo para la construcción del sistema
final
Transformación Formal
Un modelo matemático del sistema se transforma
formalmente en la implementación
Desarrollo basado en Reutilización
El sistema es ensamblado a partir de componentes existentes.

Chicos aqui expreso mi sintesís si desean albergar más información de este punto pueden consultar los siguientes:
enlace 1: http://www.vc.ehu.es/jiwotvim/ISOFT2008-2009/Teoria/BloqueI/Transp-03Proceso-Pressman.pdf.
enlace 2: http://es.wikipedia.org/wiki/Desarrollo_de_software#Etapas_del_proceso


lunes, 9 de febrero de 2009

Introducción a la Ingeniería de Software

Software y Evolución

Durante los primeros años de la era de la computadora, el software se desarrollaba sin ningún tipo de diseño, planificación, era casi implicito y no tenía ninguna documentación al respecto.La misma persona lo escribía, lo ejecutaba y, si fallaba, lo depuraba. La mayoría del software se desarrollaba y era utilizado por la misma persona u organización. Sin embargo, eran pocos los que tenían éxito.

La segunda era en la evolución de los sistemas de computadora empleaban la multiprogación y multiusuario mejorandola interacción hombre-máquina.Desde la mitad de la década de los sesenta hasta finales de los setenta los sistema de tiempo real podían recoger, analizar y transformar datos de múltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos en lugar de minutos. Los avances en los dispositivos de almacenamiento en línea condujeron a la primera generación de sistemas de gestión de bases de datos.

Todos esos programas, todas esas sentencias fuente tenían que ser corregidos cuando se detectaban fallos, modificados cuando cambiaban los requisitos de los usuarios o adaptados a nuevos dispositivos hardware que se hubieran adquirido. Estas actividades se llamaron colectivamente mantenimiento del software.

La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años setenta y continuo mas allá de una década. Se caracterizo por la llegada y amplio uso de los microprocesadores.El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrente y comunicándose con alguna otra, incrementó notablemente la complejidad de los sistemas informáticos.

Las técnicas de la cuarta generación para el desarrollo del software cambian en la forma en que la comunidad del software construye programas informáticos. Las tecnologías orientadas a objeto desplazan rápidamente los enfoques de desarrollo de software más convencionales en muchas áreas de aplicaciones.



De Interés.!