INTRODUCCIÓN
La palabra ingeniería, encierra en ella misma ingenio, la capacidad de
desarrollar de una manera creativa que sean útiles. Pero si reflexionamos
acerca de esto, nos damos cuenta que esas cosas útiles, son precisamente útiles
en la medida que den solución a una necesidad, problema o situación particular,
en cualquier área, es decir no son pensadas al azar, al contrario, con una fundamentación
total para su creación.
En esta parte se establecen los conceptos claves, que se debe comprender
totalmente y que definen los sistemas y la ingeniería de sistemas. También
importante es acercar el término “sistema” a nuestro entorno próximo, revisar
componentes, características y propiedades, procesos internos, externos y su
forma de adaptarse al medio, además se plantean los antecedentes e historia del
movimiento de sistemas.
Por último, se verá la importante de la ingeniería de sistemas: la
solución de problemas, enfocado desde el punto de vista de aplicación de
teorías y/o técnicas que le ayuden a hacer buen uso del ingenio para analizar
problemas, modelar soluciones eficientes, en donde se involucre la tecnología y
la organización a fin de lograr verdaderamente la apropiación de los contenidos
y alcanzar el conocimiento deseado.
INGENIERIA DEL SOFTWARE
Roger
Pressman define la
Ingeniería del Software “es la aplicación de un enfoque sistemático,
disciplinado y cuantificable al desarrollo, operación y mantenimiento del
software es decir la aplicación a la
ingeniería al software”
Además Gonzalo León “ Según
Blanchard define la Ingeniería del Software como una aplicación efectiva de
esfuerzos científicos y de ingeniería para transformar una necesidad operativa en una configuración definida de un
sistema mediante un proceso iterativo de análisis de requisito, la selección
del concepto y asignación, síntesis, solución del compromiso y optimización del
diseño, prueba y evaluación.”
I am Sommerville “es una
disciplina que comprende todos los aspectos de la producción del software, esta
comprende las formas practica para desarrollar y entregar un software útil.”
FACTORES DE CALIDAD Y PRODUCTIVIDAD
Basili y Zelkowitz [BAS78] definen cinco factores
importantes que inciden en la productividad del software:
•Factores humanos: El tamaño y la experiencia de la
organización
de desarrollo.
•Factores del problema: La complejidad del problema
que se debe resolver y el número de cambios en las restricciones o los
requisitos del diseño.
•Factores del proceso:Técnicas del análisis y
diseño qué se utilizan, lenguajes y herramientas CASE y técnicas de revisión.
•Factores del producto:Fiabilidad y rendimiento del
sistema basado en computadora.
•Factores del recurso:Disponibilidad de
herramientas CASE, y
recursos (hardware y software). Si uno de los
factores de productividad está por encima de la media (altamente favorable) para un proyecto dado, la productividad
de desarrollo del software será significativamente más alta que el mismo factor
por debajo de la media(desfavorable).
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyibCWCL2P6XRYNTtVUd5e02_9fVtBIFVstVXlbctsfGRISnGJnfKfS2nplIXNBf2_WVdSym3B_HjormDaRarGq203HNBD8Ydu_7eOGeaUeeRj56kTNJt7Y2m74beJpHmsVzNcCmXmtTE3/s1600/modelos%20de%20calidad.png
METRICAS
PARA LA CALIDAD DEL SOFTWARE
El objetivo primordial de la ingeniería del
software es producir un sistema, aplicación o producto de alta calidad. Para
lograr este objetivo, los ingenieros de software deben aplicar métodos
efectivos junto con herramientas modernas dentro del contexto de un proceso
maduro de desarrollo del software. Además, un buen ingeniero delsoftware (y
buenos gestores de la ingeniería del software) deben medir si la alta calidad
se va a llevar acabo.
La calidad de un sistema, aplicación o producto es
tan bueno como los requisitos que describen el problema, el diseño que modela
la solución, el código que conduce a un programa ejecutable y las pruebas que
ejercitan el software para detectar errores. Un buen ingeniero del software
utiliza mediciones que evalúan la calidad del análisis y los modelos de
diseño, el código fuente y los casos de prueba que se han creado al aplicar la
ingeniería del software. Para lograr esta evaluación de la calidad, el
ingeniero debe utilizar medidas técnicas que evalúan la calidad con
objetividad, no con subjetividad.
El gestor de proyectos también debe evaluar la
calidad objetivamente, y no subjetivamente. A medida que el proyecto progresa el gestor del proyecto también debe
evaluar la calidad. Las métricas privadas recopiladas por ingenieros del
software se asimilan para proporcionar resultados en los proyectos. Aunque se pueden recopilar muchas medidas de calidad, el
primer objetivo en el proyecto es medir errores y defectos. Las
métricas que provienen de estas medidasproporcionan una indicación de la
efectividad de las actividades de control y de la garantía de calidad en grupos
o en particulares. Los errores detectados por hora de revisión y los errores
detectados por hora de prueba proporcionan una visión profunda de la eficacia
de cada una de las actividades implicadas en la métrica. Los datos de errores
también se pueden utilizar para calcular la eficiencia de eliminación de defectos
en cada una de las actividades del marco de trabajo del proceso
Visión
general de los factores que afectan a la calidad
En las dos décadas pasadas, McCall y Cavano [MCC78]
definieron un juego de factores de calidad como los primeros pasos hacia el
desarrollo de métricas de la calidad del
software. Estos factores evalúan el software desde
tres puntos de vista distintos:
•Operación del producto (utilizándolo).
•Revisión del producto (cambiándolo).
•Transición del producto (modificándolo para que funcione
en un
entorno diferente, p. ej.: «portándolo»). Los
autores, en su trabajo,
describen la relación entre estos factores de
calidad (lo que llaman un «marco de trabajo» ) y otros aspectos del proceso de
ingeniería del software:
En primer lugar, el marco de trabajo proporciona un
mecanismo para que el gestor del proyecto identifique lo que considera
importante. Estas cualidades son atributos del software, además de su
corrección y rendimiento funcional, que tiene implicaciones en el ciclo de
vida. En otros factores, como son facilidad de mantenimiento y
transportabilidad, se ha demostrado que tienen un impacto significativo en el
costo del ciclo de vida...
En segundo lugar, el marco de trabajo proporciona
un medio de evaluar cuantitativamente lo bien que va progresando el desarrollo
en relación con los objetivos de calidad establecidos.
En tercer lugar, el marco de trabajo proporciona
más interacción del personal de QA en el esfuerzo de desarrollo...
Por último, el personal de garantía de calidad
puede utilizar indicaciones de calidad pobre para ayudar a identificar
estándares [mejores] a contrastar en el futuro
Es interesante destacar que casi todos los aspectos
del cálculo han sufrido cambios radicales con el paso de los años desde que
McCall y Cavano hicieron su trabajo, con gran influencia, en 1978. Pero los
atributos que proporcionan una indicación de la calidad del software siguen
siendo los mismos.
Es interesante destacar que casi todos los aspectos
del cálculo han sufrido cambios radicales con el paso de los años desde que
McCall y Ca ano hicieron su trabajo, con gran influencia, en 1978. Pero los
atributos que proporcionan una indicación de la calidad del software siguen
siendo los mismos.
ejemplo: Si una organización de
software adopta un juego de factores de calidad como una «lista de
comprobación» para evaluar la calidad del software, es probable que el software
construido hoy siga exhibiendo la buena calidad dentro de las primeras décadas
del siglo veintiuno. Incluso, cuando las arquitecturas de cálculo sufren
cambios radicales (como seguramente ocurrirá), el software que exhibe alta
calidad en operación, transición y revisión continuará sirviendo también a sus
usuarios.
Medida de la calidad: Aunque hay muchas medidas de
la calidad de software, la corrección, facilida d de mantenimiento integral y
facilidad de uso proporcionan indicadores útiles para el equipo del proyecto.
Gilb [GIL88j sugiere definiciones y medidas para cada uno de ellos.
Corrección: Un programa debe operar correctamente o
proporcionará poco valor a sus usuarios. La corrección es el grado en el que el
software lleva a cabo su función requerida. La medida más común de corrección
son los defectos por
KLDC, en donde un defecto se define como una falta
verificada de conformidad con los requisitos
Facilidad de mantenimiento:El mantenimiento del
software cuenta con más esfuerzo que cualquier otra actividad de ingeniería del
software. La facilidad de mantenimiento es la facilidad con la que se puede
corregir un programa si se encuentra un error, se puede adaptar si su entorno
cambia, o mejorar si el cliente desea un cambio de requisitos. No hay forma de
medir directamente la facilidad de mantenimiento; por consiguiente, se deben
utilizar medidas indirectas. Una simple métrica orientada al tiempo es el
tiempo medio de cambio (TMC), es decir, el tiempo que se tarda en analizar la
petición de cambio, en diseñar. Una modificación adecuada, en implementar el
cambio, en probarlo y en distribuir el
cambio a todos los usuarios. Como media, los
programas que son más fáciles de mantener tendrán un TMC más bajo (para tipos
equivalentes de cambios) que los programas que son más difíciles de mantener.
Hitachi [TAJ81 ] ha utilizado una métrica orientada
al costo para la capacidad de mantenimiento llamada «desperdicios», el costo en
corregir defectos encontrados después de haber distribuido el software a sus
usuarios finales. Cuando laproporción de desperdicios en el costo global del
proyecto (para muchos
proyectos) se representa como una función del
tiempo, el gestor puede determinar si la facilidad de mantenimiento total del
software producido por una organización de desarrollo está mejorando. Se pueden
emprender acciones a partir de las
conclusiones obtenidas de esa información.
Integridad:En esta época de intrusos informáticos y
de virus, la integridad del software ha llegado a tener mucha importancia. Este
atributo mide la habilidad de un sistema para resistir ataques (tanto
accidentales como intencionados) contra su seguridad. El ataque se puede
realizar en cualquierade los tres componentes del software: programas, datos y
documentos.
Para medir la integridad, se tienen que definir dos
atributos adicionales: amenaza y seguridad. Amenaza es la probabilidad (que se
puede estimar o deducir de la evidencia empírica) de que un ataque de un tipo
determinado ocurra en un tiempo determinado. La seguridad es la probabilidad
(que se puede estimar o deducir de la evidencia empírica) de que se pueda
repeler el ataque de un tipo determinado. La integridad del sistema se puede
definir como:
integridad = E [1-amenaza x (1-seguridad)]
donde se suman la amenaza y la seguridad para cada
tipo de ataque.
Facilidad de uso:
El calificativo «amigable con el usuario» se ha
convertido en
omnipresente en las discusiones sobre productos de
software. Si un programa no es «amigable con el usuario», frecuentemente está
abocado al fracaso, incluso aunque las funciones que realice sean valiosas. La
facilidad de uso es un intento de cuantificar «lo amigable que puede ser con el
usuariO» y se puede medir en
función de cuatro características:
•habilidad intelectual y/o física requerida para
aprender el sistema.
•el tiempo requerido para llegar a ser
moderadamente eficiente en el uso del sistema.
•aumento neto en productividad (sobre el enfoque
que el sistema
reemplaza) medida cuando alguien utiliza el sistema
moderadamente y eficientemente.
•valoración subjetiva (a veces obtenida mediante un
cuestionario) de la disposición de los usuarios hacia el sistema.
Blanchard define que la complejidad de un sistema
no solo depende de las múltiples interacciones entre los recursos de que consta
sino también de la forma en la que puede evolucionar en la respuesta a las
necesidades del entorno. El control de la complejidad de un sistema depende
generalmente de las funciones dependientes de sus recursos (software) y de cómo
estas se adapten al mundo externo.
Así mismo la ingeniería de sistemas de software
pretende incrementar seguridad durante el proceso de desarrollo hasta alcanzar
un nivel de confianza similar a los existentes en otras ingenierías.
La complejidad de los sistemas de software hace
que, por un lado, no sea posible desarrollarlos individualmente y, por otra,
que se requieran tecnologías de soporte desde su concepción hasta su retirada
en el mercado. En este contexto, la ingeniería de sistemas de
software, enmar-cada en la ingeniería de sistemas, pretende ofrecer un marco
para poder comprender el desarrollo y gestión de sistemas de software complejos
Niveles de complejidad del producto de la
I.S. Planeación del proyecto, Gestión de requisitos, Medición y análisis,
Gestión de la configuración, Aseguramiento de la calidad del producto y del
proceso Niveles: Nivel 0: Incompleto: la gestión de requisitos no alcanza todas
las metas y objetivos definidos para avanzar al nivel 1. Nivel 1: Realizado:
Las tareas específicas para producir el producto han sido realizadas. Nivel 2:
Administrado: Todos los criterios del nivel 1 han sido satisfechos. Toda la
gente que ejecuta el trabajo tiene acceso a los recursos adecuados para
realizar su labor, los clientes están implicados de manera activa, todas las
tareas de trabajo y productos están monitoreadas, controladas y revisadas y son
evaluados en apego a la descripción del proceso. Nivel 3: Definido: todos los
criterios del nivel 2 se han cumplido. Nivel 4: Administrado en forma
cuantitativa: todos los criterios del nivel 3 han sido cumplidos, además, el
área del proceso se controla y mejora mediante mediciones y evaluación cuantitativa.
Los objetivos cuantitativos para la calidad y el desempeño del proceso están
establecidos y se utiliza como un criterio para administrar el proceso. Nivel
5: Mejorado: Todos los criterios del nivel 4 han sido satisfecho. Además, el
área del proceso se adapta y mejora mediante el uso de medios cuantitativos
(estadísticos) para reconocer las necesidades cambiantes del cliente y mejorar
de manera continua la eficacia del área del proceso que se está considerando.
http://es.slideshare.net/Omogrosso/ingenieria-de-software-buena-1?related=1
Conclusión
La ingeniería
de software es una disciplina de la ingeniería que nos ayudan a desarrollar
sistemas de software a tiempo y a la vez que se cumpla con las expectativas de
calidad y que permanezca dentro del presupuesto. Sus 3elementos importantes
son: algoritmos, estructura de datos y documentos.
El proyecto de
software cumple con un ciclo de vida, para todo proyecto de software se debe
elegir el modelo en el que se trabajara, es muy importante realizar prototipos
de los productos de software para el mejor diseño y entendimiento de lo que
requiere el cliente. Para esto necesitamos información adecuada, podemos
utilizar cualquier técnica de recopilación de información siempre y cuando se
haga de la forma correcta y constante comunicación con el cliente.




No hay comentarios:
Publicar un comentario