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á |