La ingeniería de software estudia los principios y metodologías de desarrollo de software, mientras que la arquitectura de software se refiere específicamente al diseño de la estructura y organización de un programa. La ingeniería de software incluye procesos como los requisitos, diseño, implementación y pruebas, dentro de los cuales se encuentra la arquitectura de software. El análisis de ingeniería de software evalúa aspectos como la calidad y el proceso, mientras que el análisis de arquitectura de software se enfoca
Dierencia entre la ingeniería de software y la arquitectura de software
1. Dierencia entre la ingeniería de software y la arquitectura de software
La ingenieria de software estudia los principios y las metodologías de desarrollo de software..
es la aplicacion del conocimiento cientifico al diseño y construccion de software y toda la
documentacion requerida para desarrollar, operar y mantenerlo.
En si la ingenieria de software es una Ciencia.
mientras que la arquitectura de software es unicamente la organizacion o estructura del programa..
es decir el diseño del programa desde los esquemas, diagramas, seleccion de lenguaje, seleccion
de variables para el programa, en si la descripcion total de que llevara a cabo el programa y de que
forma.
Dicho de otra manera la ingenieria de software abarca todos los procesos relacionados para
desarrollar programas
y dentro de esos procesos se encuentra la arquitectura del software
La Arquitectura de Software comprende una cantidad de decisiones significantes acerca de la
organización de un Sistema: la selección de los elementos estructurales y las interfaces por las
cuales un sistema está compuesto, junto con su comportamiento que es especificado por la
colaboración entre estos elementos.
Como consecuencia de lo antedicho, se logrará la construcción de un software que tendrá las
siguientes características:
Portabilidad: el software será apto para correr en distintas plataformas de hardware y
software de base, configurando una aplicación Intranet y una solución para Internet,
Acceso a bases de datos relacionales: podrán ser locales o remotas,
Escalabilidad: soportará aumento en la carga sin necesidad de modificar el código,
Seguridad: No todos los usuarios podrán acceder a la misma funcionalidad y todos ellos
deberán ser autenticados,
Distintos tipos de interfaz de usuario: en general serán del tipo web, pero algunas podrán
ser stand alone en un entorno de ventanas (por ejemplo: carga de datos en forma masiva).
La Ingeniería de Software comprende un conjunto de etapas ordenadas con la intención de la
obtención de un producto de software de calidad.
En la ejecución del proceso de desarrollo 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.
2. Las metodologías son un cuerpo de técnicas, modelos, conocimientos que intentan abarcar el ciclo
de vida del desarrollo de software desde su primera etapa, que son los requerimientos planteados
por el usuario, hasta el mantenimiento de los sistemas ya terminados, incluyendo toda la
documentación necesaria.
Las metodologías se basan en documentos y modelos del sistema, creados con el fin de unificar las
ideas de las diferentes personas involucradas en el desarrollo de sistemas, desde el cliente,
analista y programadores. Cada uno de éstos ve desde diferentes perspectivas el sistema, el
primero lo ve desde el punto de vista de los resultados finales, el segundo tiene una visión lógica
del sistema, mientras que un programador se enfoca a unidades del sistema como objetos.
Somos especialistas en Metodologías orientadas a Objetos que abarcan, según la envergadura del
proyecto, desde Extreme Programming hasta Racional UnifiedProcess, adaptando los modelos y
documentos a las necesidades de cada Cliente.
Que es un análisis de ingeniería de software
Que es un análisis de arquitectura de software
Método de Análisis de Arquitecturas de Software (Software ArchitectureAnalysisMethod, SAAM) al igual
que el ATAM, y el ARID son de los métodos de evaluación de arquitectura de software, más usados.
Introducción
El método fue originalmente creado para el análisis de la modificabilidad de una arquitectura, pero en la
práctica ha demostrado ser muy útil para evaluar de forma rápida distintos atributos de calidad, tales como
modificabilidad, portabilidad, escalabilidad e integrabilidad. El método de evaluación SAAM se enfoca en la
enumeración de un conjunto de escenarios que representan los cambios probables a los que estará sometido
el sistema en el futuro. Como entrada principal, es necesaria alguna forma de descripción de la arquitectura a
ser evaluada. Las salidas de la evaluación del método SAAM son las siguientes:
Una proyección sobre la arquitectura de los escenarios que representan los cambios posibles ante los
que puede estar expuesto el sistema.
Entendimiento de la funcionalidad del sistema, e incluso una comparación de múltiples arquitecturas con
respecto al nivel de funcionalidad que cada una soporta sin modificación.
Con la aplicación de este método, si el objetivo de la evaluación es una sola arquitectura, se obtienen los
lugares en los que la misma puede fallar, en términos de los requerimientos de modificabilidad. Para el caso
en el que se cuenta con varias arquitecturas candidatas, el método produce una escala relativa que permite
observar qué opción satisface mejor los requerimientos de calidad con la menor cantidad de modificaciones.
3. Procedimiento
En la siguiente tabla se presentan los pasos que contempla el método de evaluación SAAM, con una breve
descripción:
Pasos Descripción
Desarrollo de
escenarios.
Un escenario es una breve descripción de usos anticipados o deseados del sistema. De
igual forma, estos pueden incluir cambios a los que puede estar expuesto el sistema en el
futuro.
Descripción de la
arquitectura.
La arquitectura (o las candidatas) debe ser descrita haciendo uso de alguna notación
arquitectónica que sea común a todas las partes involucradas en el análisis. Deben
incluirse los componentes de datos y conexiones relevantes, así como la descripción del
comportamiento general del sistema. El desarrollo de escenarios y la descripción de la
arquitectura son usualmente llevados a cabo de forma intercalada, o a través de varias
iteraciones.
Clasificación y
asignación de
prioridad de los
escenarios.
La clasificación de los escenarios puede hacerse en dos clases: directos e indirectos.
Un escenario directo es el que puede satisfacerse sin la necesidad de modificaciones en la
arquitectura. Un escenario indirecto es aquel que requiere modificaciones en la arquitectura
para poder satisfacerse. Los escenarios indirectos son de especial interés para SAAM,
pues son los que permiten medir el grado en el que una arquitectura puede ajustarse a los
cambios de evolución que son importantes para los involucrados en el desarrollo.
Evaluación
individual de los
escenarios
indirectos.
Para cada escenario indirecto, se listan los cambios necesarios sobre la arquitectura, y se
calcula su costo. Una modificación sobre la arquitectura significa que debe introducirse un
nuevo componente o conector, o que alguno de los existentes requiere cambios en su
especificación.
Evaluación de la
interacción entre
escenarios.
Cuando dos o más escenarios indirectos proponen cambios sobre un mismo componente,
se dice que interactúan sobre ese componente. Es necesario evaluar este hecho, puesto
que la interacción de componentes semánticamente no relacionados revela que los
componentes de la arquitectura efectúan funciones semánticamente distintas. De forma
similar, puede verificarse si la arquitectura se encuentra documentada a un nivel correcto
de descomposición estructural.
Creación de la
evaluación global.
Debe asignársele un peso a cada escenario, en términos de su importancia relativa al éxito
del sistema. Esta asignación de peso suele hacerse con base en las metas del negocio que
cada escenario soporta. En el caso de la evaluación de múltiples arquitecturas, la
asignación de pesos puede ser utilizada para la determinación de una escala general.
4. Características
Este método tiene como característica principal la realización de un análisis que delimita la forma en que
variarán los atributos de calidad, como resultado de algunas modificaciones futuras de la arquitectura. Este
elemento es fundamental pues, le da una visión arquitectónica al equipo de desarrollo, que conocen hasta que
punto puede variar la arquitectura sin que afecte el nivel requerido de los atributos de calidad. Sin embargo, el
comportamiento de un atributo de calidad puede afectar el desempeño de otros, por lo que no solamente se
debe tener en cuenta la estructura de los componentes, sino también las relaciones que se establecen entre
los mismos. Y es ahí donde este método, presenta su principal desventaja, ya que no valora la interrelación
entre los distintos atributos.