Ing-Software
carolina61167 de Mayo de 2013
7.290 Palabras (30 Páginas)418 Visitas
Ingeniería de software:
Software: programas, archivos de configuración, manuales de instalación, documentación, etc. Pueden ser productos genéricos (de venta en el mercado) o personalizados (desarrollados específicamente para el cliente). El valor del software es el valor que este le genera al cliente.
Crisis del software: son problemas que aparecen al desarrollar, mantener y atender la demanda. Comprende todos los aspectos de la producción de software desde las iniciales al mantenimiento. La ingeniería de software trata de ser una respuesta a esta crisis, formulando el problema, analizándolo, buscándole una solución adecuada y especifica.
Las actividades de desarrollo implican búsqueda de requerimientos, análisis, diseño e implementación, además de revisiones, pruebas y la administración del proyecto.
Participan todas las personas involucradas en el proyecto: clientes, desarrolladores, gerentes y usuarios finales.
Capas del desarrollo de software según Pressman:
• Herramientas: ayudan a organizar las tareas de trabajo, controlar y supervisar los progresos y administrar la calidad técnica. Proporcionan un soporte automático o semiautomático.
• Métodos: indican como realizar los pasos necesarios del ciclo de vida.
• Proceso: conjunto de actividades, métodos, prácticas y tecnologías aplicables a todos los procesos del software. Un proceso básico incluye análisis, diseño, codificación, pruebas y mantenimiento.
• Un enfoque de calidad: los cimientos deben estar enfocados hacia la calidad.
Rol: papel que se le asigna a una persona durante el desarrollo del sistema. Un mismo participante puede cumplir varios roles.
Sistema: realidad subyacente.
Modelo: abstracción de la realidad.
Actividad: conjunto de tareas con un propósito específico.
Tarea: unidad de trabajo elemental capaz de ser administrada. Tiene recursos.
Recursos: bienes necesarios para realizar el trabajo. (Ej: tiempo).
Objetivos: Principios de alto nivel para guiar el proyecto y evaluarlos al final.
Requerimientos: “Características” del sistema. Pueden ser:
a) Funcionales: definen el área de funcionalidad del sistema.
b) No Funcionales: restricción al funcionamiento del sistema.
c) De Dominio: normas, decretos, etc.
Restricciones: Ej: lenguaje de programación, plataforma, etc.
Notación: reglas gráficas o de texto para representar un modelo.
Método: técnica repetible para resolver un problema. (Ej: algoritmo)
Metodología: colección de métodos para la resolución de una clase de problemas.
“Abarca las teorías, métodos y herramientas para el desarrollo profesional de software”
Ciclos de vida del software
Describe las fases del desarrollo de software y lo que se espera ejecutarse en esas fases.
Ayuda a administrar el progreso de desarrollo de software detalladamente.
Tipos:
1) Cascada: desarrollo en fases con metas bien definidas y cada una con un resultado. Es difícil de aplicarle cambios. Principios:
a. Planear el proyecto antes de empezarlo.
b. Definir el comportamiento externo antes que la arquitectura interna.
c. Documentar los resultados de cada actividad.
d. Diseñar el sistema antes de codificarlo.
e. Testear el sistema antes de construirlo.
2) Incremental: Reduce riesgos, incrementa subconjuntos de requerimientos.
a. Construye un sistema pequeño, lo cual es menos riesgoso.
b. Si aparece un error, solo descarta el avance hecho.
c. Evita que los requerimientos del usuario cambien.
3) Evolutivo: Asume que los requerimientos no se conocen bien al principio y solo toma los seguros, para ir agregando funcionalidad a medida que aparece. Cada paso debe ser registrado, cada cambio controlado. Es caro. Produce documentos por iteración.
4) Prototipado: Es una implementación parcial del sistema que es dada a evaluar a los usuarios para obtener cierta retroalimentación. Debe ser creado rápidamente. Se debe tener la tecnología necesaria para llevarlo a cabo. Hay falta de visibilidad y bajo riesgo para nuevas aplicaciones.
5) Espiral: Desarrollo iterativo. Cuando uno termina comienza otro inmediatamente. Es fundamental determinar que se quiere hacer antes de hacerlo, y los riesgos dispuestos a tolerar. Buena visibilidad del sistema, un documento por iteración. El equipo debe tener experiencia. Sigue 4 pasos:
1. Determinar que se quiere lograr.
2. Armar rutas para lograrlo con sus pros y sus contras.
3. Seguir la ruta elegida.
4. Establecer que es lo que hay terminado.
• Siempre se recomienda usar espiral más los necesarios para el sistema a crear.
• El prototipado se recomienda para realizar la especificación de requerimientos.
• Como hay cambios constantes hoy en día, el enfoque es ideal hacerlo evolutivo.
• Se deben combinar los paradigmas para explotar las ventajas particulares de estos.
Modelo IPO
Esquema de funcionamiento del modelo de resolución de problemas de la informática.
• I = Input: datos y hardware de captura.
• P= Proceso: algoritmos, lenguajes de programación.
• O= Output: emisión y generación de información, bases de datos.
Proceso Unificado (UDP)
Metodología de desarrollo de sistemas orientada a objetos. Rescata sintaxis y semántica de UML. Posee 3 conceptos fundamentales:
1) Centrado en los casos de uso: comprendidos por todos los usuarios, intuitivo. Debe expresar todas las funciones y actores, y su suma ser el todo.
2) Centrado en la arquitectura del sistema a desarrollar: deben ser incluidos la plataforma de software y hardware, los marcos de trabajo y los casos de uso.
3) Desarrollo iterativo e incremental: se divide el sistema en miniproyectos y cada uno es una iteración en una fase incremental.
a. Fase Inicio: describe el producto final y presenta análisis de negocio. Da una visión general de los requerimientos del proyecto.
b. Fase elaboración: análisis del dominio. Establece base de la arquitectura del sistema. Parte de los casos de uso más significativos para luego completar flujos. Lista riesgos.
c. Fase construcción: Desarrollar incrementalmente el producto. Se completan casos de uso requeridos por el usuario y luego se hace una primera entrega a este. Se crea la documentación de usuario.
d. Fase transición: Periodo “beta” del producto. Algunos usuarios lo prueban, se corrigen errores e incorporan mejoras. Se actualiza todo.
Cada fase cuenta con flujos de:
• Captura de requisitos: casos de uso, actores, reglas de negocio. Se definen estado inicial, orden, estados finales, post condiciones, etc.
• Análisis: Ayuda a especificar mejor los casos de uso, permite razonar las funciones internas del sistema. Da camino a los bocetos de solución.
• Diseño: Debe asegurar solución a las reglas de negocio, organizadas en estructura y comportamiento. Definir notación, software y relaciones.
• Implementación: Describe arquitectura actual y plan de integración de construcciones.
• Pruebas.
RUP
Define cuatro elementos:
Los roles “¿Quién?”. Un rol define el comportamiento y responsabilidades de un individuo. Incluye analistas, desarrolladores, etc. Una misma persona puede tener varios roles o un rol puede ser realizado por varias personas.
Las actividades “¿Cómo?” Una actividad en concreto es una unidad de trabajo que una persona que desempeñe un rol puede ser solicitado a que realice.
Los productos de trabajo “¿Qué?”. Define un conjunto de artefactos que son un trozo de información que es producido, modificado o usado durante el desarrollo de software.
Los flujos de trabajo de las disciplinas que responde a la pregunta ¿Cuándo? Un flujo de trabajo es una relación de actividades que nos producen unos resultados observables.
6 mejores prácticas:
1) Desarrollo iterativo de software: cada iteración da un release.
2) Administración de requerimientos.
3) Arquitectura basada con componentes: se basa en el pronto desarrollo de una arquitectura robusta, resistente al cambio, intuitiva.
4) Modelación visual de software: captura arquitectura y comportamiento de la arquitectura de componentes.
5) Verificación de la calidad de software: crea pruebas para cada escenario.
6) Control de cambios del software: controlar, llevar un registro y monitorear cambios.
Estructura de RUP: se puede describir en dos dimensiones a lo largo de dos ejes:
1) Eje horizontal: Tiempo. Muestra el aspecto dinámico del proceso, expresado en ciclos, fases, iteraciones y metas.
2) Eje vertical: representa el aspecto estático del proyecto, en términos de actividades, artefactos, trabajadores y flujos de trabajo.
Iteración es un ciclo de desarrollo completo. Da como entrega un producto ejecutable.
El modelo de peters:
Peters-tripp:
...