Clicks Income

domingo, 19 de abril de 2015

Ingenieria del Software




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.

                                    http://blog.cpds.edu.mx/blog/img/blog/blog_cpds_13.jpg


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