SUPER FINAL POST UNIDAD 1 Ingeniería de software
Enviado por Efra Diaz • 4 de Mayo de 2017 • Resumen • 12.125 Palabras (49 Páginas) • 210 Visitas
SUPER FINAL POST
UNIDAD 1
Ingeniería de software
Disciplina de la ingeniera cuya meta es el desarrollo costeable de sistemas de software, este es abstracto, intangible y fácil de modificar. La ingeniería de software comprende todos los aspectos de la producción de software, desde las etapas iniciales de la especificación del sistema hasta el mantenimiento de este después que se utiliza.
Retos que afronta la Ingeniería del software
- De Heterogeneidad (consiste en desarrollar técnicas para construir software que pueda operar como un sistema distribuido en redes con distintos tipos de computadoras, con sistema en otros lenguajes, etc)
- De la Entrega (reducir los tiempos de entrega para sistemas grandes y complejos sin comprometer la calidad del sistema)
- De la Confianza (desarrollar técnicas que demuestren que los usuarios pueden confiar en el software)
Crisis del Software
La noción de la ingeniería de software surgió en 1968 debido a la crisis de software causada por la introducción de nuevas computadoras basadas en circuitos integrados que provoco la posibilidad de desarrollar software más grande y complejos, esto llevo a que los proyectos se atrasaban, otros se cancelaban, se sobrepasaban los presupuestos, como consecuencia se generaban software de mala calidad y desempeño pobre que requerían intensas actividades de mantenimiento.
Entonces fue evidente que para crear un software de esta magnitud tomar un enfoque informal no era adecuado, se necesitaban nuevas técnicas y métodos para controlar la complejidad de estos sistemas.
Software
Es un set de programas, archivos de configuración y la documentación asociada
Tipos básicos de Software:
- System Software (S.O)
- Utilitarios (Winrar)
- Software de Aplicación (Office)
Tipos de Productos:
- Productos Genéricos: sistemas producidos por una organización y que se venden al mercado abierto a cualquier cliente, la especificación es controlada por quien lo desarrolla
- Personalizados o A Medida: son sistemas requeridos por un cliente en particular, la especificación es desarrollada y controlada por la organización que compra el software
Buen Software
Los atributos reflejan la calidad del software, no están directamente asociados con lo que el software hace, más bien reflejan su comportamiento durante su ejecución y en la estructura y organización del programa fuente y en la documentación asociada.
- Mantenibilidad (debe escribirse de tal forma que pueda evolucionar para cumplir necesidades de cambio)
- Confiabilidad (no debe causar daños físicos o económicos en el caso de una falla del sistema)
- Eficiencia (no debe malgastar los recursos del sistema, como memoria o procesamiento)
- Usabilidad (debe ser fácil de usar por el usuario, con interfaz apropiada y su documentación)
Software VS manufactura
El software no se gasta, no está gobernado por las leyes de la física, es menos predecible…
Proceso de Software
Es un conjunto estructurado de actividades que la gente usa para desarrollar y mantener sistema de software, estas actividades varían dependiendo de la organización y el tipo de sistema, son llevadas a cabo por los ingenieros de software.
El desarrollo de sistema es tan complejo y es tan impredecible, que debe ser gestionado bajo un modelo empírico (asume procesos complicados con variables cambiantes, la administración y control es mediante inspecciones frecuentes y adaptaciones) de control de procesos. Debe ser explícitamente modelado si va a ser administrado.
Un proceso de desarrollo permite usarse con una variedad de ciclos de vida.
El proceso de desarrollo se elegirá de acuerdo al tipo de sistema que se vaya a desarrollar, el uso inadecuado del proceso puede reducir la calidad o la utilidad del producto de software a desarrollar o incrementar los costos de desarrollo.
Existen 4 actividades fundamentales comunes a todos los procesos:
- Especificación de software: los clientes e ingenieros definen el software a producir y las restricciones
- Desarrollo de software: el software se diseña y programa
- Validad de software: el software se válida para asegurar que es lo que el cliente realmente quiere
- Evolución de software: el software se módica para adaptarlo a los cambios requeridos por el cliente y el mercado
Ciclos de vida (Modelos de proceso)
Es una descripción simplificada de un proceso de software que presenta una visión de ese proceso, son una serie de pasos a través de los cuales el producto progresa, los modelos especifican las fases del proceso (req, diseño…) y su orden, grafica una descripción del proceso desde una perspectiva particular.
Sirven para proveer una guía para la administración de proyectos.
Son una herramienta para planificar y monitorear proyectos, son muy abstractos.
Pueden incluir Actividades, Productos y Papel de las personas involucradas.
Agilizan el proyecto, mejora la calidad, minimiza costos, minimiza riesgos, mejora la relación con el cliente, etc.
La elección del modelo depende de factores como riesgos técnicos, riesgos de administración, ciclo de tiempo requerido, tamaño del equipo, etc.
Tipos de Ciclo de Vida básicos:
- Secuencial (Tradicional): ha fallado en muchos proyectos grandes, una actividad no inicia hasta que ha terminado la anterior.
Por ejemplo el Cascada: ordena rigurosamente las etapas del ciclo de vida del software, para que inicie una debe tener su anterior, cualquier error de diseño detectado en etapas de prueba conduce necesariamente el rediseño y nueva programación del código afectado. Se tiene todo bien organizado y no se mezclan las fases, es bueno para proyectos rígidos y con buena especificación de requerimientos. Sin resultados o mejoras visibles y rara vez el cliente va a establecer al principio todos los requerimientos.
...