unidad ii fds

19
Fundamentos de Desarrollo de Sistemas 1 Unidad II. Introducción a la ingeniería de software. Es la rama de la ingeniería que desarrolla y mantiene las aplicaciones de software aplicando; tecnologías, prácticas de las ciencias computacionales y manejo de proyectos. La ingeniería de software, como las disciplinas tradicionales de ingeniería, tiene que ver con el costo y la confiabilidad. Algunas aplicaciones de software contienen millones de líneas de código que se espera que se desempeñen bien en condiciones siempre cambiantes, pero la realidad es completamente diferente y nos lleva a decir literalmente: Debido a que el hardware es más pequeño, barato y con mayores capacidades, le dejan a los desarrolladores de software un gran reto para producirlo barato y con calidad. “A los desarrollos de software hay que meterle Ingeniería Esto se logra aplicando los conceptos de ingeniería

Upload: zhaio-jurlar

Post on 05-Sep-2015

257 views

Category:

Documents


0 download

DESCRIPTION

guia para egel

TRANSCRIPT

  • Fundamentos de Desarrollo de Sistemas

    1

    Unidad II. Introduccin a la ingeniera de software.

    Es la rama de la ingeniera que desarrolla y mantiene las aplicaciones de software aplicando; tecnologas, prcticas de las ciencias computacionales y manejo de proyectos. La ingeniera de software, como las disciplinas tradicionales de ingeniera, tiene que ver con el costo y la confiabilidad. Algunas aplicaciones de software contienen millones de lneas de cdigo que se espera que se desempeen bien en condiciones siempre cambiantes, pero la realidad es completamente diferente y nos lleva a decir literalmente: Debido a que el hardware es ms pequeo, barato y con mayores capacidades, le dejan a los desarrolladores de software un gran reto para producirlo barato y con calidad.

    A los desarrollos de software hay que meterle Ingeniera

    Esto se logra aplicando los conceptos de ingeniera

  • Fundamentos de Desarrollo de Sistemas

    2

    2.1. Definicin de Ingeniera de software. Para definir la ingeniera de software hay que partir de las siguientes definiciones: Ingeniera. Software.

    Ingeniera. Profesin que aplica los conocimientos cientficos y el ingenio en los desarrollos industriales, para crear dispositivos, mtodos y sistemas para transformar los recursos y satisfacer mejor las necesidades de una sociedad. Software. Conjunto de programas o instrucciones que se pueden ejecutar en una computadora, as como toda la informacin, libreras y recursos necesarios para su diseo, instalacin, operacin, mantenimiento y refinamiento. Meterle ingeniera a los desarrollos de software, sera usar principios de ingeniera robustos, dentro del tiempo y presupuesto establecidos. Es decir elevar el desarrollo de software a un proyecto. Ingeniera de Software.

    Es una disciplina que integra mtodos, herramientas y procedimientos para el desarrollo de software econmico y con calidad.

  • Fundamentos de Desarrollo de Sistemas

    3

    Herramientas. Suministra un soporte automtico o semiautomtico para el desarrollo del software.

    Mtodos. Como construir tcnicamente el software. (Planificacin y estimacin, anlisis de los requerimientos del sistema y una metodologa adecuada para el desarrollo)

    Procedimientos. Definen la secuencia en la que se aplican los mtodos con las herramientas adecuadas, dan las directrices para la evaluacin del proyecto y los controles adecuados para asegurar la calidad. 2.2. Historia de la ingeniera de software.

  • Fundamentos de Desarrollo de Sistemas

    4

    Orgenes.

    La Ingeniera del Software, trmino utilizado por primera vez por Fritz Bauer en la primera conferencia sobre desarrollo de software patrocinada por el Comit de Ciencia de la OTAN celebrada en Garmisch, Alemania, en octubre de 1968.

    En sus inicios, la industria del software adopt un enfoque organizativo tayloriano, al igual que la mayora de las industrias del momento. Este enfoque propugna la especializacin de funciones como mtodo organizativo. Bajo tal enfoque, el proceso de construccin de software se concibe como un conjunto de tareas altamente especializadas donde est claramente definido el papel de cada categora profesional:

    El analista tiene que delimitar el anlisis para ver lo que se quiere hacer inicialmente y despus darle al usuario nuevas opciones de uso

    El analista tiene como cometido analizar un problema y describirlo con el propsito de ser solucionado mediante un sistema informtico.

    El diseador realiza, en base al anlisis, el diseo de la solucin El programador cuya funcin consiste en trasladar las especificaciones del

    diseador en cdigo ejecutable por la computadora.

    Significados.

    Puede definirse segn Alan Davis como "la aplicacin inteligente de principios probados, tcnicas, lenguajes y herramientas para la creacin y mantenimiento, dentro de un coste razonable, de software que satisfaga las necesidades de los usuarios".

    Pero el trmino ingeniera de software tuvo una variedad de significados diferentes en diferentes tiempos de su evolucin, como las siguientes:

    Amplio de todos los aspectos de la prctica de la programacin de computadoras, en oposicin a la teora, que es llamada ciencia computacional o computacin;

    Es la aplicacin de un mtodo sistemtico, disciplinado y cuantificable al desarrollo, operacin y mantenimiento de software, esto es, la aplicacin como el trmino usual contemporneo de un amplio rango de actividades que se sola llamar programacin y anlisis de sistemas;

    Como un trmino de la ingeniera al software" y el estudio de los mtodos. (Estndar IEEE 610.12.)

  • Fundamentos de Desarrollo de Sistemas

    5

    Funciones.

    En sus inicios, el analista parta de un contrato o breves especificaciones del cliente. A continuacin, analizaba la informacin implicada (modelo esttico o de datos) y su flujo de transformacin (modelo funcional). A partir de ah, diseaba un conjunto de mdulos de software que desarrollara las funciones anteriormente detectadas, as como su lgica intrnseca. En teora, si dichos resultados son suficientemente detallados, cualquier programador podra escribir un programa directamente ejecutable por la computadora a partir de ellos.

    La tarea de un analista es entender y describir un sistema de informacin hasta un grado suficiente como para ser automatizado mediante una computadora. Sus actividades se limitan dentro de la fase de anlisis del ciclo de vida del software.

    Hoy en da, estas funciones han quedado claramente obsoletas a pesar de que la categora profesional sigue existiendo como tal. Los avances de la ingeniera del software en su corta vida han puesto de manifiesto que estas funciones no son suficientes para lograr un mnimo xito en el desarrollo de software.

    Las funciones ms relevantes que faltan son:

    Direccin. (de proyectos) Para dirigir los recursos hacia el resultado deseado. Anlisis de Requisitos. Para determinar el comportamiento que se espera del

    software. Garanta de calidad. Para garantizar las expectativas del cliente. Diseo. Para que exista una mnima certeza de que el software es viable y eficaz

    con la tecnologa existente. Gestin de configuracin. Para controlar el caos a medida que el software crece.

    Estas funciones han sido adoptadas en muchos casos por analistas, pero no son materia especfica de esta profesin. En algunas organizaciones (y en algunos pases) la profesin ya no existe, es sustituida por otras figuras tales como el ingeniero de software, el jefe de proyecto, el modelador de software, o el analista-programador. Esta ltima figura es muy popular ya que resuelve los tpicos problemas de comunicacin que existan entre analistas y programadores. Estos problemas se deben a la extrema idealizacin de la especializacin de funciones.

  • Fundamentos de Desarrollo de Sistemas

    6

    Es deseable tambin que el analista de sistemas tenga conocimientos (al menos bsicos) de usabilidad. Ya que cualquier sistema que no est al servicio de los usuarios o diseado pensado en el usuario, no tiene mucho sentido.

    Debate sobre quin es ingeniero de software.

    Algunas personas piensan que Desarrollo de Software es un trmino ms apropiado que Ingeniera de Software para el proceso de crear software. Personas como Pete McBreen (autor de "Software Craftmanship") cree que el trmino IS implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software.

    Otras personas creen que el campo de la IS es suficientemente maduro para garantizar el ttulo de "ingeniera". El criterio ms comn para distinguir al ingeniero de software es el conocimiento y aplicacin de las tcnicas y herramientas de las metodologas de la Ingeniera del Software (tpicamente estudiadas en las ingenieras informticas y, en algunos casos, en otras carreras tcnicas). La ingeniera de software en nuestros das

    . La ingeniera de software afecta a la economa y las sociedades de muchas maneras.

    1. Econmicamente. En los EEUU, el software contribuy a 1/4 de todo el incremento del PIB durante los 90's y 1/6 de todo el crecimiento de productividad durante los ltimos aos de la dcada (90 y 33 millones de dlares por ao). Y en el mundo a $1 billn de crecimiento econmico y productividad en esa dcada.

    2. Socialmente. La ingeniera de software cambia la cultura del mundo debido al

    extendido uso de la computadora. El correo electrnico (E-mail), la WWW y la mensajera instantnea permiten a la gente interactuar en nuevas formas. El software baja el costo y mejora la calidad de los servicios de salud, los departamentos de bomberos, las dependencias gubernamentales y otros servicios sociales. Los proyectos exitosos donde se han usado mtodos de ingeniera de software incluyen a Linux, el software del transbordador espacial, los cajeros automticos y muchos otros.

    La ingeniera de software se puede considerar como la ingeniera aplicada al software, esto es en base a herramientas preestablecidas, la aplicacin de las mismas de la forma ms eficiente y ptima; objetivos que siempre busca la ingeniera. No es solo de la resolucin de problemas, sino ms bien teniendo en cuenta las diferentes soluciones, elegir la ms apropiada.

  • Fundamentos de Desarrollo de Sistemas

    7

    Un objetivo de dcadas ha sido el encontrar procesos o metodologas predecibles y repetibles que mejoren la productividad y la calidad. 2.3. Caractersticas del software. Las caractersticas de un producto son las que lo definen y los hacen diferentes de otras cosas que construye el ser humano y dentro del desarrollo de sistemas el software es un elemento lgico y distinto del hardware que es un elemento fsico.

    Principales caractersticas.

    El software se desarrolla. No se fabrica en un sentido clsico. Aunque el desarrollo de software en la actualidad con las herramientas cases ayudan a la productividad del software, hay una diferencia entre desarrollo y manufactura del software, bsicamente en la relacin entre la gente utilizada y el trabajo realizado. Ambas actividades construyen un producto, pero con enfoques diferentes, los costos de software se concentran en la ingeniera, lo que significa que los proyectos de software no se pueden manejar como si fueran proyectos de manufactura.

    El software no se estropea. Se deteriora. (Se hace obsoleto)

  • Fundamentos de Desarrollo de Sistemas

    8

    Las instrucciones o los bits no se quiebran o se van acabando, simplemente ya no sirven para realizar su tarea original. Es importante diferenciar las fallas lgicas o errores del software, las cuales son producto de una mala programacin o interpretacin errnea de la tarea o funcin del software. Aqu el detalle es considerar un sistema ya probado que a travs del tiempo ya no responde a su funcin original por cambios ajenos a su entorno de operacin, por ejemplo cambio de las polticas operativas en el calculo de la nmina por un nuevo procedimiento para determinar el impuesto.

    El software se construye a medida.

    A pesar que las herramientas de programacin tiendan a la construccin y reutilizacin de componentes, la mayora de los sistemas aun se construye a la medida. Aunque es importante mencionar la gran ayuda que han aportando estos componentes. (El enfoque orientado a objetos) Ya que el ingeniero se concentra en los elementos que en realidad son innovadores en el diseo. (Las partes que representan algo nuevo) Tipos de productos de software.

    El ingeniero de software se concentra en el desarrollo de productos que se puedan vender y estos pueden ser:

    Productos genricos. Son sistemas aislados producidos por una organizacin de desarrollo y se venden al mercado abierto a cualquier cliente que le sea posible comprarlo. (Bases de datos, procesadores de texto o para dibujar, etc., etc.)

    Productos personalizados. Son los sistemas requeridos por un cliente en particular. (Sistemas de informacin para los negocios y la industria)

  • Fundamentos de Desarrollo de Sistemas

    9

    Una diferencia vital radica en que quien define los requerimientos del software, en los genricos; es la organizacin que desarrolla el software y en los personalizado; por la organizacin que compra el software. No obstante, la lnea de separacin entre estos dos tipos es ms tenue, cada vez ms compaas de software empiezan un sistema genrico y lo adaptan a las necesidades de un cliente en particular. Como los sistemas de planificacin de recursos empresariales. (ERP) Categoras del software.

    Independiente de los tipos de software, estos clasifican en:

    Software de sistemas. Es una coleccin de programas para servir a otros programas., se caracterizan por una interaccin muy alta con el hardware de la computadora. (Desde los sistemas operativos, compiladores, manejadores de base de datos, hasta los controladores de red y telecomunicacin)

    Software de aplicacin. Programas independientes que resuelven una necesidad

    especifica de negocios. (Sistemas de informacin)

    Software cientfico y de ingeniera. Programas que consumen mucho tiempo de procesamiento por los clculos excesivos en muchos casos en tiempo real. (Diseo asistido por computadora y la simulacin de sistemas)

    Software empotrado. El que reside en la memoria de solo lectura del sistema.

    (Control del teclado del horno de microondas o de un automvil)

    Software de lnea de productos. Diseado para proporcionar una capacidad especifica para muchos clientes. (Control de inventarios o registros contables)

    Aplicaciones basadas en Web. Aplicaciones estticas y dinmicas. (Para

    distribucin de informacin o comercio electrnico)

    Software de inteligencia artificial. Para resolver problemas complejos con algoritmos no numricos. (Robtica o los sistemas expertos)

    Computacin ubicua. Aplicaciones distribuidas de cualquier tipo de software en

    ambientes inalmbricos y con diferentes dispositivos de entrada-salida.

  • Fundamentos de Desarrollo de Sistemas

    10

    Aplicaciones de la red. Servicios personales o simples para usuarios en todo el mundo. (Por ejemplo planeacin de la finanzas personales)

    Fuente abierta. Distribucin de cdigos fuentes para aplicaciones de sistemas a

    un sinfn de usuarios para su mejora.

    La Nueva economa. Aplicaciones que faciliten la comunicacin y la distribucin de productos en masa o apenas en formacin. (Blogs)

    2.4.Mitos del software.

    Son las creencias acerca del software y los procesos empleados para construirlos. Aunque contengan hechos razonables en realidad se trata de creencias u observaciones intuitivas que producen actitudes y hbitos difciles de modificar. Bsicamente se clasifican en:

    Mitos del Administrador. Mitos del Cliente. Mitos del Desarrollador.

    Mitos del Administrador.

    Son los encargados que el tiempo, costo y niveles de calidad se cumplan. Con frecuencia los administradores se aferran a falsas creencias para aminorar la presin.

    Mito. Ya se tienen documentado los estndares y procedimientos para la construccin del software. Es lo nico que necesito para la administracin del proyecto.

  • Fundamentos de Desarrollo de Sistemas

    11

    Realidad. Algunos no lo saben o no lo usan o simplemente, no es un documento completo, adaptable o es contradictorio para la calidad del software.

    Mito. Si se esta atrasado en el proyecto, asignar ms personal para terminar a

    tiempo. Realidad. Agregar gente a un proyecto atrasado, lo atrasa ms. (Brooks) porque

    hay que poner al corriente al personal nuevo, se puede agregar gente de una manera planeada y coordinada.

    Mito. Al subcontratar el proyecto a un tercero, puedo relajarme y dejarle la

    responsabilidad.

    Realidad. Simplemente cambia el problema principal de manos, con el agravante que la nueva compaa esta en desventaja porque ignora muchas cosas, las cuales dependen de lo avanzado del proyecto.

    Mitos del Cliente.

    Debido a que un cliente es una persona de diferente cultura y conocimiento de los sistemas de informacin, son ms propensos a creer los mitos que surgen en los desarrollos de software y conducen a expectativas falsas y una insatisfaccin con el desarrollador.

    Mito. Una declaracin superficial de los objetivos es suficiente para empezar a escribir los programas, los detalles se pueden dejar para ms tarde.

    Realidad. Los requerimientos precisos se desarrollan slo mediante una comunicacin continua y efectiva entre el cliente y el desarrollador. La mala definicin inicial es la principal causa de baja calidad.

    Mito. Los cambios en el software son fciles y sencillos. Porque el software es

    flexible. Realidad. Es verdad que los requisitos del software cambien, pero el impacto del

    cambio vara segn el momento en que se introduzca. El software es flexible y es posible mejorarlo, pero el costo aumenta a medida que avance el desarrollo.

    Mitos de los Desarrolladores.

    El desarrollo es tratado como un arte a travs de 50 aos de cultura de programacin.

  • Fundamentos de Desarrollo de Sistemas

    12

    Mito. Terminando de escribir el programa y haciendo que funcione, nuestro trabajo habr terminado.

    Realidad. Entre el 50 y 70% del esfuerzo total dedicado a un programa se realiza despus de entregarlo al cliente por primera vez. Porque entre ms rpido se comience a escribir el cdigo, ms tiempo pasar para que el programa est terminado.

    Mito. Mientras el programa no se est ejecutando, no existe forma de evaluar su

    calidad. Realidad. La calidad esta fincada en la previsin, no en la inspeccin. Mito. Lo nico que se entrega al terminar el proyecto es el programa

    funcionando. Realidad. El software funcionando es solo una parte de una configuracin del

    software que incluye muchos elementos. La documentacin es la base de un buen desarrollo y es vital para las tareas de mantenimiento.

    Mito. La ingeniera de software obligar a la creacin de una documentacin

    voluminosa e innecesaria y de manera directa el desarrollo ser ms lento. Realidad. La ingeniera de software est relacionada con la calidad y una mejor

    calidad en el desarrollo conduce a una reduccin de trabajo. 2.5. Capas de la ingeniera de software. La ingeniera de software es una tecnologa estratificada o compuesta de capas.

    El reconocimiento a las realidades del software es el primer paso hacia la formulacin de soluciones prcticas para la Ingeniera de

    software

  • Fundamentos de Desarrollo de Sistemas

    13

    La base de la ingeniera de software es la capa de proceso, permite el desarrollo racional y a tiempo, define el marco de trabajo tecnolgico, el control de la gestin, el contexto en el cual se aplican los mtodos, permite la generacin de los productos del trabajo (formatos, modelos y documentacin) y se establecen los fundamentos para asegurar la calidad. Los mtodos proporcionan los cmo tcnicos? de la construccin y se basan en un conjunto de principios bsicos para cada actividad o fase del desarrollo de los sistemas. Las herramientas proporcionan el soporte automtico para todo el desarrollo. 2.6. El proceso del software.

    El proceso es la capa principal de la ingeniera de software y son un conjunto de actividades que conducen a creacin de un producto de software. Los procesos han evolucionado para explotar las capacidades de las personas y las herramientas en una organizacin.

    La ingeniera de software tiene varios modelos o paradigmas de desarrollo, pero las principales actividades realizadas son: Anlisis de requisitos. Extraer los requisitos de un producto de software es la primera

    etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad y experiencia en la ingeniera de software para reconocer requisitos incompletos, ambiguos o contradictorios.

    Especificacin. Es la tarea de describir detalladamente el software a ser escrito, en una

    forma matemticamente rigurosa. En la realidad, la mayora de las buenas especificaciones han sido escritas para entender y afinar aplicaciones que ya estaban

  • Fundamentos de Desarrollo de Sistemas

    14

    desarrolladas. Las especificaciones son ms importantes para las interfaces externas, que deben permanecer estables.

    Diseo y arquitectura. Se refiere a determinar como funcionar de forma general sin

    entrar en detalles. Yourdon dice que consiste en incorporar consideraciones de la implementacin tecnolgica, como el hardware, la red, etc.

    Programacin. Reducir un diseo a cdigo puede ser la parte ms obvia del trabajo de

    ingeniera de software, pero no es necesariamente la porcin ms larga. Prueba. Consiste en comprobar que el software realice correctamente las tareas

    indicadas en la especificacin. Una tcnica de prueba es probar por separado cada mdulo del software, y luego probarlo de forma integral.

    Documentacin. Realizacin del manual de usuario, y posiblemente un manual tcnico

    con el propsito de mantenimiento futuro y ampliaciones al sistema. Mantenimiento. Mantener y mejorar el software para enfrentar errores descubiertos y

    nuevos requisitos. Esto puede llevar ms tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la ingeniera de software tiene que ver con dar mantenimiento. Una pequea parte de este trabajo consiste en arreglar errores, o bugs.

    La mayor parte consiste en extender el sistema para hacer nuevas cosas. De manera similar, alrededor de 2/3 de toda la ingeniera civil, arquitectura y trabajo de construccin es dar mantenimiento.

    Sin olvidar que todo software debe desarrollarse econmico, eficiente y con estndares predefinidos de calidad. 2.7. Software de alta calidad. Un software de alta calidad es un producto bien hecho y por supuesto debe crear un cliente completamente satisfecho.

  • Fundamentos de Desarrollo de Sistemas

    15

    Ahora un producto bien echo es el cumple con las especificaciones de fabricacin y que adems cubre o supera las necesidades y expectativas del cliente. Para entender mejor estos trminos es necesario ver varios conceptos generales de calidad y especficamente de calidad de software. Calidad. Es dar prioridad a los intereses del consumidor, estudiar y mejorar constantemente todo proceso de trabajo, de manera que el producto o servicio final sobrepase las expectativas del consumidor. (Dr. W. Edwards Deming) Puntos de Vista de la calidad. La calidad involucra a dos actores, con puntos de vista diferentes y a veces contrarios que se conjugan en la calidad de productos o servicios. El cliente. (Calidad de percepcin) El fabricante. (Calidad de hecho) Calidad de percepcin.

    Cuando se satisface o se superan las expectativas del cliente.

    Calidad de hecho.

    Si se logran cubrir las especificaciones o requerimientos propios del producto.

    Obviamente el fabricante debe tener un cliente contento y adems con sus especificaciones de desarrollo, debe superar las expectativas del cliente. Ahora si el producto es un sistema de informacin. (Software) Calidad de software. Es la concordancia con los requisitos funcionales y de rendimiento explcitamente establecidos con los estndares de desarrollo explcitamente documentados y con las caractersticas implcitas que se espera de todo software desarrollado profesionalmente. (Fcil de usar, probar y mantener) En resumen un software con calidad, es aquel que deje a un cliente 100% satisfecho con su nuevo sistema de informacin.

    La calidad es cumplir con lo que quiera el cliente.

  • Fundamentos de Desarrollo de Sistemas

    16

    Lo importante para el fabricante es como lograrlo y contar medidas adecuadas para medir la calidad de software. Podemos afirmar y comprobar que un software bien hecho es aquel que: Tenga 0 errores. Con la medida tasa de errores = numero de errores/tamao del

    software. Le sea 100% til al usuario. (Funcional o correcto) Que no le falten o le sobren

    tareas del usuario al software. Que sea fiable. Que le funcione bien todo el tiempo (o tasa de errores en un ao)

    Faltaran ms especificaciones, como la facilidad de uso, probar, instalar y corregir y otras, pero estas dependen del tipo del cliente o de sus necesidades o expectativas de informacin, las cules se puede integrar y detectar con una encuesta que determine la satisfaccin del cliente. 2.8. Factores de calidad y productividad. Para tener una idea ms precisa de la calidad de software es necesario contestarnos la siguiente pregunta. Cules son los factores involucrados en la calidad de software? Los factores involucrados en la calidad de software se clasifican en: Factores directamente medibles.

    Mtricas del producto. Mtricas del proceso.

    Factores indirectamente medibles.

    Factores del producto. Las mtricas del producto.

    Son aquellas que describen las caractersticas del producto; tamao, complejidad, diseo y funcionamiento y determinan y miden su calidad.

    Tiempo promedio de fallas. Mide el tiempo entre fallas. Densidad del defecto. Es el nmero de defectos sobre las oportunidades de

    errores durante un marco de tiempo especfico. (numero de errores/tamao del software en una semana)

  • Fundamentos de Desarrollo de Sistemas

    17

    Problemas del cliente. El numero de problemas encontrados por el cliente cuando esta usando el producto.

    Satisfaccin del cliente. Medicin en base a una escala de satisfaccin: Completamente, satisfecho, neutral, descontento y muy descontento.

    Las mtricas del proceso.

    Se determinan en cada etapa de desarrollo de software y la idea principal es encontrar todos los errores del software, antes de que se entregue al cliente. Sus mtricas varan grandemente entre los desarrolladores de software y las ms genricas son las que se usan el la fase de prueba y son el tiempo promedio de fallas y la densidad de defecto en un marco de tiempo, las cuales forman parte de las mtricas del producto. La idea principal es que en la etapa de prueba se eliminen todos los defectos.

    Factores del producto.

    McCall ha propuesto una clasificacin de los factores que afectan a la calidad del software. Estos factores de calidad del software se centran en tres aspectos importantes de un producto de software: sus caractersticas operativas, su capacidad de soportar los cambios y su adaptabilidad a nuevos entornos.

  • Fundamentos de Desarrollo de Sistemas

    18

    Operaciones del producto.

    Correccin. El grado en que un programa satisface las especificaciones y cumple los objetivos de la misin del usuario.

    Fiabilidad. Grado en que un programa puede esperarse que realice la funcin deseada con la precisin requerida.

    Eficiencia. Cantidad de recursos y cdigos informticos requeridos por un programa para que realice una funcin.

    Integridad. Grado en que puede controlarse el acceso de personas, no autorizadas, al software o a los datos.

    Usabilidad. Esfuerzo requerido para aprender, operar, preparar las entradas e interpretar las salidas de un programa.

    Revisin del producto.

    Facilidad de Mantenimiento. Esfuerzo requerido para localizar y fijar un error en un programa operativo.

    Facilidad de Prueba. (Ensayabilidad). El esfuerzo requerido para aprender un programa, trabajar con l, preparar su entrada e interpretar su salida.

    Flexibilidad. Esfuerzo requerido para modificar un programa operativo.

  • Fundamentos de Desarrollo de Sistemas

    19

    Transicin del producto.

    Portabilidad. Esfuerzo requerido para transferir un programa de una configuracin de hardware y/o del entorno de un sistema de software a otro.

    Reusabilidad. Grado en que un programa puede ser utilizado en otras aplicaciones, relacionadas con el paquete y el alcance de las funciones que el programa realiza.

    Interoperativiadad. Esfuerzo requerido para acoplar un sistema a otro.

    Concluimos que un software de calidad es que sea 100% til al usuario, sin defectos, fiable y que de acuerdo al cliente se deben cubrir factores de operacin, revisin y transicin, para cubrir el objetivo final de la calidad de software tener clientes satisfechos. Sin olvidar que el desarrollo de software se debe llevar a cabo bajo la dimensin de calidad, es decir producir un software libere de errores.

    2.2. Historia de la ingeniera de software.UOrgenes.U La Ingeniera del Software, trmino utilizado por primera vez por Fritz Bauer en la primera conferencia sobre desarrollo de software patrocinada por el Comit de Ciencia de la OTAN celebrada en Garmisch, Alemania, en octubre de 1968.USignificados.U Puede definirse segn Alan Davis como "la aplicacin inteligente de principios probados, tcnicas, lenguajes y herramientas para la creacin y mantenimiento, dentro de un coste razonable, de software que satisfaga las necesidades de lo...UDebate sobre quin es ingeniero de software.U Algunas personas piensan que Desarrollo de Software es un trmino ms apropiado que Ingeniera de Software para el proceso de crear software. Personas como Pete McBreen (autor de "Software Craftmanship")...ULa ingeniera de software en nuestros dasU. La ingeniera de software afecta a la economa y las sociedades de muchas maneras.2.3. Caractersticas del software. Las caractersticas de un producto son las que lo definen y los hacen diferentes de otras cosas que construye el ser humano y dentro del desarrollo de sistemas el software es un elemento lgico y distinto del hardwar.../UPrincipales caractersticas.Factores del producto./Operaciones del producto.