Ingeniero Técnico en Informática de Gestión


Software


Universidad Tecnológica de Panamá

Métodos de Estimación y Evaluación del Software

Parcial # 1

EL PRODUCTO

  • Qué es el Software. Que diferencia hay entre construir un software y construir un hardware.

  • El Software es un conjunto de programas, documentos, procedimientos, y rutinas asociados con la operación de un sistema de computo. Distinguiéndose de los componentes físicos llamados hardware. El software asegura que el programa o sistema cumpla por completo con sus objetivos, opera con eficiencia, esta adecuadamente documentado, y suficientemente sencillo de operar, este simplemente realiza un conjunto de instrucciones individuales que se le proporciona al microprocesador para que pueda procesar los datos y generar los resultados esperados. El hardware por si solo no puede hacer nada, pues es necesario que exista el software, que es el conjunto de instrucciones que hacen funcionar al hardware. El software no se fábrica, se desarrolla, el hardware se fábrica. Una de las diferencias que más se notan en entre el hardware y el software es que no hay piezas de repuestos para el software si hay un error hay que buscar en el diseño y corregirlo en el hardware solo se cambia la pieza. En el mundo de las PC el hardware se a convertido en un producto estándar, siendo el software suministrado con ese hardware lo que marca la diferencia.

  • Haga un cuadro sinóptico sobre la evolución del Software (agregue un software construido durante ese periodo).

  • Origen

    Características

    Ejemplos

    Primeros Años

    Abarca desde los inicios de los años 50 hasta unos diez años después, y en la cual la tecnología electrónica era a base de bulbos o tubos de vacío, y la comunicación era en términos de nivel mas bajo que puede existir, que se conoce como lenguaje de máquina

    - Diseños a medidas para cada aplicación

    - Fabricación para uno o más clientes

    - Una sola persona desarrolla, ejecuta y depuraba

    - Programación en códigos binarios

    - Entrada de datos por tarjetas perforadoras

    - Procesamiento por lotes con procesos de larga duración.

    - 1947 ENIAC

    - 1949 EDVAC

    - 1951 UNIVAC I

    - 1953 IBM 701

    La segunda Era

    Mitad de los años 60 hasta finales del 70. Crecía la capacidad de procesamiento y utilizaban un lenguaje de alto nivel o lenguaje de pregrabación.

    - Multiprogramación y Multiusuario (Hombre-Máquina)

    - Comercialización del Software

    - Problemas de mantenimiento provoco la crisis del software.

    - Hardware Ergonomico

    - Fortran Monitor System

    - IBSYS

    - Procesadores de Palabra (Word Star)

    - Hoja de cálculo (VisiCalc)

    - Cobol

    La tercera Era

    Se inaugura con la IBM 360 en abril de 1974 y continua por más de una década.

    Basada en circuitos integrados y lenguajes de control.

    - Redes de área local y global

    - Hardware estándar y de menor costo

    - Aparecen los sistemas operativos

    - OS/360 de IBM

    -

    La cuarta Era

    Empieza a finales de los 80 apareciendo los microprocesadores con velocidades impresionantes.

    - Cliente / servidor

    - Internet (software de acceso Individual)

    - Interfaces Amigables

    - Programación orientada a objetos

    - MS-DOS

    - Unix

    Se hacen famosos

    La evolución del ``software de libre distribución''

    El sistema operativo Unix fue también desarrollado sobre una base cooperativa por AT&T con el soporte activo de un gran número de universidades y centros de investigación. Muchos de los primeros contribuidores de Unix se decepcionaron cuando AT&T comenzó a finales de los años 70 y en los 80, a reforzar sus términos de derechos de autor sobre el uso y distribución de Unix. Esta eventualidad tuvo como consecuencia la larga y amarga batalla legal entre AT&T (y con posterioridad Novell quien compró los derechos de autor de Unix a AT&T en 1991) y la Universidad de California en Berkeley. En una respuesta parcial a este problema de control individual de un proyecto publico de desarrollo de software, el Massachusetts Institute of Technology (MIT) en Cambridge, MA ha apoyado, desde 1984, los esfuerzos de Richard Stallman para lanzar un movimiento dentro de la comunidad de desarrolladores de software para apoyar el desarrollo de software de libre distribución. Esto tuvo como consecuencia el establecimiento de la Free Software Foundation (FSF), y su proyecto GNU. El nombre GNU sigue una antigua tradición de Unix consistente en utilizar acronismos recursivos como nombres de programa, y quiere decir Gnu no es Unix (Gnu's Not Unix). La FSF mantiene su cuartel general en el MIT, y ha gozado de un asombroso éxito en la última década con productos como GNU C, GNU C++, Emacs, y muchos otros, la mayoría de los cuales forman los pilares basicos y fundamentales del sistema operativo Linux. Richard Stallman insiste, con algo de justificación, en que Linux debería ser correctamente conocido como un sistema GNU.

    Existen muchas otras licencias de "software de libre distribución" bajo las que parte del código de Red Hat Linux esta licenciado. La más popular de ellas es la Licencia BSD de la Universidad de California en Berkeley por la cual el tenedor de los derechos de autor sigue siendo el propietario registrado pero donde no se imponen restricciones en la distribución al usuario del código.

    También proveniente del MIT, pero no relacionado con la FSF o la GPL, tenemos el X Consortium, que es un esfuerzo patrocinado por la industria Unix para construir y mantener el sistema X Window. Como consecuencia, un grupo llamado Proyecto XFree86 ha tomado la responsabilidad de migrar el Sistema X Window a la plataforma Intel. Hemos incluido copias de cada una de estas licencias en el apéndice de este manual para su comodidad. Linux progresa continuamente con mucha rapidez gracias a las contribuciones de este esfuerzo de desarrollo a nivel mundial, al cual usted y su compañía o escuela están emplazados a contribuir.

  • Haga un cuadro que resuma para las aplicaciones de software sus categorías.

  • Descripción

    Utilización

    Software de Sistemas

    Conjunto de programas creado como herramienta para otros programas

    S.O., Compiladores, CASE, Editores.

    Software de Tiempo Real

    Conjunto de programa que mide, analiza y controla sucesos del mundo a real medida que ocurren.

    Adquisición de datos: recoge y formatea los datos que entran.

    Análisis: transforma la información

    Control/Salida: respuesta

    Monitorización: coordina componentes (tiempo real)

    Software de Gestión

    Realiza tareas de procesamiento de datos y operaciones de calculo interactivo.

    Aplicaciones de gestión de empresa

    Software de Ingeniería y científico

    Utiliza algoritmos de manejo de números, simulación de sistemas, utiliza software en tiempo real.

    Astronomía, cálculo, Biología molecular, Fabricación automática.

    Software Empotrado

    Reside en memorias ROM y sirve para controlar productos y sistemas de los mercados industriales.

    Lavadoras

    Microondas

    Software para PC

    Aplicaciones orientadas a usuarios individuales o multiusuarios

    Procesadores de texto

    Hojas de cálculo

    Juegos, Aplicaciones financieras

    Gestores de base de datos

    Software de Inteligencia Artificial

    Hace uso de algoritmos no numéricos para resolver complejos para el que no son adecuados el cálculo o el análisis directo.

    Sistemas Expertos

    Reconocimiento de Patrones (OCR)

    Prueba de teoremas

    Redes neuronales artificiales

  • Seleccione una aplicación específica e indique: a) la categoría de la aplicación del software. b) El contenido de los datos asociados con la aplicación. C) La información determinada de la aplicación.

  • Nombre de la Aplicación: CorelDraw 8.0

    Categoría: Software para computadoras personales.

    Contenido de los datos: Figuras geométricas,

    unidades de medidas (pulgadas, centímetros, etc.), gamas de colores, formas especiales, ClipArt, Mezcla de colores, animaciones fotográficas y videográficas, imágenes bmp, jpg, etc.

    Información determinada de la aplicación: menús

    gráficos, iconos de accesos directos, ayuda visual automática, herramientas de escritura, fuentes multiidioma, utilidades gráficas, herramientas de productividad.

    EL PROCESO

  • Qué es más importante el producto o el proceso.

  • A nuestro criterio personal el proceso es más importante ya que el producto surge de lo eficaz y eficiente que sea el proceso de desarrollo del producto de software.

    El proceso se enmarca en una disciplina de desarrollo, operación y mantenimiento haciendo un software (producto) de alta calidad.

  • Qué es un modelo de proceso o paradigma de ingeniería del software.

  • El proceso de ingeniería de software se define como "un conjunto de etapas parcialmente ordenadas con la intención de logra un objetivo, en este caso, la obtención de un producto de software de 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".

  • Proceso, Métodos y Herramientas es lo mismo, explique su respuesta.

  • Los métodos nos enseñan como construir técnicamente el software; Las herramientas son el soporte automático o semiautomático de aplicación de los métodos y los procesos son la aplicación de los métodos utilizando las herramientas. Con estas definiciones nos damos cuenta de que estas forman parte de lo que abarca la ingeniería de software por lo que unidas significan los mismo y están ligadas unas con otras para poder llegar al producto final que se requiere con una alta calidad al momento de la entrega del software al cliente.

  • Haga un cuadro comparativo que muestre los modelos de procesos para la Ingeniería de Software.

  • Cuadro Comparativo de Los Paradigmas

    Modelo

    Ventajas

    Desventajas

    CASCADA

     

    Es el más utilizado 
     

    Es fácil de aplicar

    Los proyectos rara vez siguen un flujo secuencial 

    Es difícil establecer todos los requerimientos del sistema en las primeras etapas 

    La versión final del sistema no se tendrá rápido

    PROTOTIPOS

     

    Permite ver un software más rápido 
     

    El usuario puede evaluar el producto y mejorarlo

    El software que ve el usuario es débil 
     

    El usuario piensa que ya se encuentra terminado el producto

    ESPIRAL

    Añade el elemento: análisis de riesgo 
     

    Es muy útil en proyectos grandes

     

    Difícil de administrar  

    Requiere de gran experiencia 

    Es un modelo nuevo

    CUARTA GENERACION

     

    Permite construir SW rápidamente 

    Reduce el tiempo de análisis en aplicaciones pequeñas 

    Reduce el tiempo de implementación en aplicaciones medianas

     

    Su aplicación casi está limitada a sistemas administrativos 
     

    No es muy útil en aplicaciones grandes 
     

    Problemas de eficiencia en algunos lenguajes

    CONCEPTOS SOBRE GESTION DE PROYECTOS

  • Describa gestión de proyectos.

  • Gestión de proyectos

    La gestión de un proyecto es una tarea vital para el éxito del mismo. Dentro de la gestión, la planificación juega un importante rol, debido a que es en esta etapa donde se debe hacer las asignaciones de los recursos disponibles, para lo que es necesario estimar costos y plazos para el proyecto a realizar.

  • Defina los siguientes términos:

  • Ámbito: Identifica los datos primarios, funciones y comportamientos que caracterizan el problema y más importante, intenta abordar estas características de una manera cuantitativa.

    Coordinación: Características del software moderno (escala, incertidumbre, interoperatividad) son aspectos de la vida y para enfrentarse a ellos eficazmente se debe tener un equipo de trabajo con métodos efectivos para coordinar a la gente que realiza el trabajo.

    Gestión MOI: Persona que se busca para dirigir un proyecto de software con las siguientes características: Motivación, Organización e Ideas o Innovación.

    Descomposición del problema: se asienta en el corazón del análisis de requisitos del software. Se aplica en dos áreas principales: la funcionalidad que debe entregarse y el proceso que se empleara para entregarlo.

    Equipo de software: personal involucrado directamente en un proyecto de software que esta dentro del ámbito del gestor de proyecto.

    Estructura común de proceso: adopta las siguientes actividades estructurales: Comunicación con el cliente, planificación, análisis de riesgo, ingeniería, construcción y entrega, evaluación del cliente.

    Estructura de Equipo: depende del estilo de gestión de una organización, el número de personas que compondrá el equipo, sus niveles de preparación y la dificultad general del problema. Existen 3 estructuras de equipo que son: descentralizado democrático, descentralizado controlado y centralizado controlado.

    Jefe de Equipo: persona con habilidad para motivar al personal técnico, moldear procesos existente o nuevo incentivar la creatividad incluso cuando tengan que trabajar dentro de los limites establecidos del producto.

    Principio w 5 HH: es un documento sobre proyectos y procesos de software creado por Barry Boehm donde sugiere una serie de preguntas que conducen a la definición de las características claves y plan de proyecto.

    ¿Por qué se desarrolla el sistema?

    ¿Qué se realizará y cuando?

    ¿Quién es el responsable de una función?

    ¿Dónde están situados organizacionalmente?

    ¿Cómo estará realizado el trabajo desde el punto de vista técnico y de gestión?

    ¿Qué cantidad de cada recurso se necesita?

    Toxicidad del equipo: se definen 5 factores:

  • Una atmósfera de trabajo frenética en los miembros del equipo, gastan energía y se desconcentran.

  • Alta frustración causada por factores tecnológicos del negocio.

  • Procedimientos coordinados pobremente

  • Definición confusa de los papeles a desempeñar produciendo falta de responsabilidad.

  • Continua y repetida exposición al fallo que conduce a la perdida de confianza.

  • Las tres “pes”: estas son: personal, problema y proceso. El orden no es arbitrario. El personal debe organizarse en equipos eficaces para hacer un software de alta calidad y coordinarlos para alcanzar una comunicación efectiva.

  • Problema 3.7: Se le ha nombrado gestor de proyecto de una compañía de productos de software. Su trabajo consiste en construir un producto innovador que combine hardware de realidad virtual con software innovador. Como la competitividad en el mercado casero es intensa, hay cierta presion para terminar el trabajo rapidamente. ¿Qué estructura de equipo eligiria y porque? ¿Qué modelo de proceso de software eligiria y porque?

  • La estructura de equipo que utilizaria se basaria en gente joven con mucha creatividad y que lleven la programación en la sangre, pero trabajando simultáneamente con personas maduras y responsables para evitar que se descarrile el grupo por falta de personas serias. También trabajaria con niños escuchando ideas nuevas y frescas de que les gustaria tener en casa o como mejorar algo que tengan en casa. Por estas y muchas otras razones me baso en un EQUIPO DESCENTRALIZADO DEMOCRATICO.

    En cuanto al tipo de modelo de proceso a utilizar nos inclinamos por el de CUARTA GENERACIÓN, ya que por sus características es m{as flexible a la hora de programar, se identifican más rápidamente los errores por su sistema de SW y reduce el tiempo de análisis y de implementación del producto.

    Calidad

    Hardware

    Software

    Evolución del Hardware con respecto al Software




    Descargar
    Enviado por:El Santo
    Idioma: castellano
    País: Panamá

    Te va a interesar