Ing. Diana Patricia Bedoya Ruiz

Slides:



Advertisements
Presentaciones similares
INTRODUCCIÓN A LA VERIFICACION Y VALIDACION
Advertisements

Ciclo de vida de desarrollo de software
Ingeniería de Software II
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
ANÁLISIS DE REQUERIMIENTOS
CONCEPTOS Y PRINCIPIOS DE DISEÑO
Análisis y Diseño de Aplicaciones Ingeniería de Software
CICLO DE VIDA DE UN PROYECTO DE SOFTWARE
INSTITUTO TECNOLÓGICO SUPERIO DE LIBRES
M.S.C. Ivette Hernández Dávila
Desarrollo Orientado a Objetos con UML
HERRAMIENTAS CASE.
PLANEACION DE UNA ESTRUCTURA ORGANIZACIONAL
Ingeniería de Software
Ingeniería de Software
Fundamentos de programación
 Docentes ◦ Jonathan Erlich  ◦ Ariel Glikman   Organización de la materia ◦ Idesmaimonides.wikidot.com.
Ingenieria de software
Ciclo de Vida del Software Paradigmas de Desarrollo
REQUERIMIENTOS DE SOFTWARE
Métricas de calidad de software
Contexto Proyecto consolidado dentro de la línea de investigación de Sistemas de Información en el Dpto. de Ingeniería en Sistemas de Información de la.
Ciclo de Vida del Software
Administración Proyectos Jorge Baracaldo Robin Ochoa.
Ingeniería de Software
Ingeniería del Software
Ingeniería de Requerimiento
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
I NTRODUCCIÓN A LA I NGENIERÍA DEL S OFTWARE Ing. Sonia Godoy H Informática empresarial Ing-Sonia Godoy H.
Gestión de la Configuración
EL APORTE DE LA INGENIERIA DE SOFTWARE A LAS ORGANIZACIONES
Ximena Romano – Doris Correa
Tema 1: Introducción a la Ingeniería de Software
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Unidad 3: Adquisición de Paquetes de Software Msc. Lic. Susana I. Herrera - Lic. Paola Budán UNSE 2012.
El rol de SQA en PIS.
INGENIERIA DE SOFTWARE
Docente: Lic. M. Alina Vargas García Horario: Lunes 20:05 – 21:25 Miércoles 20:05 – 21:25 Gestión: 2011.
Ciclo de vida de un sistema
Procesos de Desarrollo de Software
 Sara Isabel Osorio Alcaraz Ana Isabel Vallejo Grisales 10 Informática 1.
Métricas de calidad de software
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
Proceso de desarrollo de software Pablo Gervás F. Informática, UCM, noviembre 2007.
Introducción al proceso de verificación y validación.
PROCESOS DE DESARROLLO DE SOFTWARE
Actividades en el Proceso de desarrollo de Software
Estructurar tus ideas para hacerlas realidad
El producto de software y su ciclo de vida
Ciclo de Vida del Software
Preocupaciones del Analista Programador & Usuarios
ANGIE PAOLA SOLANO CASTIBLANCO DAR SOPORTE A LOS PROCESOS NORMAS ISO DOC. JOHANA LÓPEZ CHAVEZ SENA 2010.
INGENIERIA DE SOFTWARE
Proceso de desarrollo de Software
Ing del Software Libre1 Ingeniería del Software Libre y Modelos de Calidad Instructora: Ing. Erika Veliz Correo Electrónico:
TAREAS DEL CONTROL DE CALIDAD
EI, Profesor Ramón Castro Liceaga IV. AREAS DE EVALUACIÓN DE LA AUDITORIA EN INFORMÁTICA. UNIVERSIDAD LATINA (UNILA)
Harware Software Yuneidy moreno 7-2 Tecnología i. E. devora Arango.
Las fases del ciclo de la vida de desarrollo de sistemas
NZ/EA/abril Introducción Julio NZ/EA/abril ¿ Que es la IS ? Disciplina que trata los aspectos concernientes al desarrollo de sistemas.
Modelo de procesos de software
Planificación de Sistemas de Información
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Fundamentos de Ingeniería de Software
INDUSTRIAS DEL PETROLEO, PETROQUÍMICAS Y DEL GAS NATURAL ASEGURAMIENTO DE LA PRODUCCIÓN Y ADMINISTRACIÓN DE LA CONFIABILIDAD ISO/CD Date: 2005 –
Objetivos de la prueba Los objetivos principales de realizar una prueba son: Detectar un error. Tener un buen caso de prueba, es decir que tenga más probabilidad.
Verificación y Validación del Software
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
Entregables del Proyecto
Transcripción de la presentación:

Ing. Diana Patricia Bedoya Ruiz ANALISIS Y DISEÑO. Ing. Diana Patricia Bedoya Ruiz dianabedoya570@hotmail.com

BIBLIOGRAFIA BÁSICA Sahri Lawrence Pfleeger. 2002. “Ingeniería de Software. Teoría y Práctica”. Prentice Hall. Pressman. "Ingeniería del Software 5ª Edición". McGraw Hill. 2002. Bernd Bruegge, Allen h. Dutoit. “Ingeniería de Software Orientado a Objetos”. Prentice Hall. 2002 Sommerville, Ian. “Ingeniería de Software” Sexta edición. Addison Wesley. 2002.

BIBLIOGRAFIA BÁSICA Weitzenfeld Alfredo. “Ingeniería de Software Orientado a Objetos con UML, Java e Internet”.Thomson. 2004 Builes V. Carlos A. “Notas acerca de Ingeniería de Software” Ed. Artes y Letras Ltda. Marzo 2008.

CONTENIDO Unidad 1: Descripción del Proceso de Desarrollo de Software Introducción a UML Unidad 3: Metodologías de Desarrollo de Software Unidad 4: Construcción de Software

QUÉ ES SOFTWARE?

Qué es software (SW)? (1) Se refiere a los programas y datos almacenados en un computador. Los programas, dan instrucciones para realizar tareas al hardware o sirven de conexión con otro software. Los datos, solamente existen para su uso eventual por un programa. Hardware: Es la parte física en el cual existe el software. El hardware abarca todas las partes físicas de un computador. (CPU, monitor, Teclado, impresora, etc…)

Qué es software? (2) Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación. Extraído del estándar 729 del IEEE IEEE: Institute Electrical Electronics Engineers (Instituto de Ingenieros Eléctricos y Electrónicos)

Qué es Ingeniería de Software? La ingeniería de Software es una disciplina de ingeniería que comprende todos los aspectos de la producción de Software.

Qué es software? (3) SOFTWARE (SW) HARDWARE (HW)

CARACTERISTICAS DEL SW (Frente al Hw) Más difícil de medir, validar, verificar: - Elemento lógico, no físico. - Desarrollado, no ‘fabricado’. No se ‘estropea’, ¡pero se deteriora! - Deterioro por ‘cambios’ Mayoritariamente ‘cerrado’: - Tradicionalmente, usado todo o nada - Tradicionalmente, poco ensamblaje de componentes

Una comparación con la industria de la construcción… Motivación. Una comparación con la industria de la construcción…

INDUSTRIA de la CONSTRUCCION INDUSTRIA del SOFTWARE PEQUEÑOS PROYECTOS (pintar dormitorio de los niños) (pequeño programa) 1 día x 1 hombre (autodidacta) 1 día x 1 hombre (autodidacta) GRANDES PROYECTOS (El Nido, Pekín) Varios años x (Gran proyecto sw) Varios años x Contratistas, Contratistas, constructores, Empresas de desarrollo de software, arquitectos, ingenieros software, delineantes, obreros, analistas, albañiles, operadores, auditores, programadores, aficionados al arte … usuarios …

PROBLEMAS EN EL DESARROLLO DEL SW Con el avance del hardware, existe la necesidad de aplicaciones más complejas. ⇒Se produjo un cambio en la relación entre el costo hardware/software Son problemas “tradicionales”: Incapacidad para estimar tiempo, costo y esfuerzo para el desarrollo de un producto software. Asignar roles  responsabilidades en el equipo de trabajo. Falta de calidad del producto software.

COMUNICACIÓN COMPLEJA EN EL DESARROLLO

CORRECCION DE ERRORES Objetivos Plan Medición y Seguim/. Anticipar y Corregir RETROALIMENTACIÓN

CONCEPTOS PARA RECORDAR Personas: Los que trabajan Producto: Lo que se obtiene Proyecto: La pauta a seguir para desarrollar un producto Proceso: La pauta a seguir para desarrollar un proyecto

EJEMPLOS EN UN TRAJE. Personas: El sastre Producto: El traje Proyecto: La secuencia de acciones para hacer un traje concreto Proceso: Lo que aprende un sastre cuando aprende a hacer trajes

EJEMPLOS EN UNA CENA. Personas: Empleados de una empresa de comidas Producto: La cena que se sirve Proyecto: La secuencia de acciones de servir una cena específica Proceso: Las instrucciones de la empresa sobre cómo se sirve una cena

EJEMPLOS EN EL SOFTWARE. Personas: Ustedes Producto: La aplicación que desarrollan en un proyecto particular Proyecto: Secuencia de acciones que les permite lograr un proyecto particular Proceso: ???

EL PROCESO DEL SW Se fundamenta en la ingeniería de software (IS) Puede observarse a través de diversas capas: Enfoque de calidad Procesos Métodos Herramientas

CAPAS DE LA IS Ingeniería de software . Herramientas Métodos Modelo de Proceso Enfoque de Calidad

CAPAS DE LA IS Capa de calidad Capa de proceso Base de cualquier proceso de ingeniería La IS se basa en calidad Mejores técnicas de construcción de software Capa de proceso Capa que une calidad y métodos Desarrollo racional de la IS Conjunto de actividades y resultados asociados que sirven para construir un producto software

CAPAS DE LA IS Capa de Métodos - Un método incluye: Análisis de requisitos Diseño Construcción de programas Prueba Mantenimiento - Suelen estar bastante ligados al proceso Capa de herramientas - Soporte automático o semiautomático para el proceso y los métodos - Herramientas CASE: Computer Aided Software Engineering

VISIÓN GENERAL DE LA IS En IS entidad = software. Soporte para la IS: modelo de proceso. Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada una de estas fases se descompone en un conjunto de tareas

FASE DE DEFINICIÓN Centrada en el QUÉ Se identifican los requisitos del sistema y software: Información a procesar Función y rendimiento deseados Comportamiento del sistema Interfaces establecidas Restricciones de diseño Tareas principales: Planificación del proyecto software Ingeniería de sistemas o de información Análisis de requisitos

FASE DE DESARROLLO Cómo han de diseñarse las estructuras de datos Centrada en el CÓMO Se definen: Cómo han de diseñarse las estructuras de datos Cómo han de implementarse las funciones Cómo han de caracterizarse las interfaces Cómo debe traducirse el diseño a un lenguaje de programación Cómo ha de validarse el producto (pruebas, verificación) Tareas principales: Diseño del software Generación del código Pruebas del software

FASE DE MANTENIMIENTO Corrección: Corregir los defectos Centrada en cambios que se pueda necesitar realizar sobre un producto. En esta fase se vuelven a aplicar las fases de definición y desarrollo, pero sobre software ya existente. Pueden producirse cuatro tipos de cambio: Corrección: Corregir los defectos Adaptación: Modificaciones por cambio en el entorno externo (CPU, SO, etc.) Mejora: Ampliar los requisitos funcionales originales, a petición del cliente. Prevención: Cambio para facilitar el cambio.

ACTIVIDADES DE SOPORTE Se aplican a lo largo de todo el proceso del software. Ejemplos de actividades de soporte: Documentación Gestión de configuración Seguimiento y control del proyecto de software Revisiones técnicas formales Garantía de la calidad del software Gestión de reutilización Mediciones Gestión de riesgos

PROCESO DEL SOFTWARE Conjunto estructurado de actividades y resultados asociados requeridos para desarrollar un sistema de software. Especificación: Establecer los requisitos y restricciones del sistema. Diseño: Producir un modelo en papel del sistema. Implementación: Construcción del sistema de software. Validación: Verificar (por ejemplo mediante pruebas) que el sistema cumple con las especificaciones requeridas. Instalación: Entregar el sistema al usuario y asegurar su operabilidad. Evolución y mantenimiento: cambiar/adaptar el software según las demandas; reparar fallos en el sistema cuando sean descubiertos

CARACTERISTICAS DEL PROCESO Entendible Visibilidad Grado en que las actividades del proceso proporcionan resultados Soportable por herramientas CASE Aceptabilidad Grado en que los desarrolladores aceptan y usan el proceso Fiabilidad Capacidad de evitar o detectar errores antes de que sean defectos Robustez Continuidad del proceso a pesar de los problemas Mantenible Capacidad de evolución para adaptarse Rapidez Velocidad en que el proceso puede proporcionar un sistema a partir de una especificación

CONSTRUCCION DE SOFTWARE Desarrollar software es como construir un edificio: hay mucho que hacer antes del “verdadero” trabajo... Planificar minuciosamente Elegir materiales Establecer y respetar una temporización Inspeccionar frecuentemente la obra Los errores son muy costosos de reparar La dificultad depende del tamaño Los problemas de organización y gestión son tan complicados como los problemas técnicos

FASES DE DESARROLLO DE UN PROYECTO Cliente Problema Especificación Diseño Implementación Producto

Los errores se propagan Cada fase puede producir errores y estos a su vez se propagan y los costos se elevan: Problema mal planteado Especificación incorrecta (del problema mal planteado) Diseño inadecuado (Especificaciones incorrectas del problema mal planteado) Implementación incorrecta (Diseño inadecuado de…) No empieces a codificar hasta que sepas lo que estás haciendo.

El costo del error depende del proyecto

Si el proyecto es importante, planifica…

Definir bien el problema antes de empezar

Asegúrate de saber cuál es el problema

Especificación de la solución Describe en detalle qué hace el sistema No describe cómo se hace Debe ser correcta Debe ser completa (contempla todos los casos) Emplea diagramas y notaciones formales Debe acomodar cambios (se producirán) “Las especificaciones son como el agua, es más fácil construir sobre ellas cuando se han congelado”

La especificación mejora la puntería

Diseño de la solución Describe cómo funciona el sistema Define la estructura del sistema: - qué componentes existen - qué papel juega cada componente - cómo se relacionan los componentes Justifica las decisiones de diseño Emplea diagramas y notaciones formales Debe acomodar cambios (se producirán) Independiente del lenguaje, el S.O. y la máquina Guía la implementación

El diseño templa tu fuerza

CALIDAD DEL SW Las metodologías mejoran la calidad del Software: - Internamente (desarrolladores) Externamente (usuarios) DESARROLLADOR USUARIO El software debe ser: Comprensible Legible Mantenible Flexible Portable Reutilizable Comprobable el software debe ser: Correcto Preciso Fácil de usar Eficiente Seguro Robusto

PRINCIPIOS DE DISEÑO Descomponer el sistema en módulos interconectados entre sí.

PROPIEDADES COMUNES DE LOS MÓDULOS Un módulo es siempre un contenedor de “recursos” con las siguientes propiedades: Ocultamiento de información Cohesión (Una Clase solo se dedique a una parte del negocio) Acoplamiento (Las clases no estén amarradas entre si) IDEA  dado un módulo, distinguir entre: - qué hace y cómo lo hace - su uso y su funcionamiento MÉTODO  descomponer los módulos en dos partes: - Interfaz - Implementación

Interfaz Vs. Implementación IMPLEMENTACION Parte pública, visible del módulo Determina qué servicios se ofrecen al usuario Indica el modo de uso (“instrucciones”) Orientado al usuario Parte privada, oculta del módulo Determina cómo funcionan los servicios ofrecidos Oculta detalles no relevantes para el usuario Sólo el implementador puede acceder a la implementación

Interfaz Vs. Implementación Interfaz Visible para el usuario Interfaz (visible, público) Implementación (Oculto, privado)

Nadie sabe que contiene la caja negra…

Tomado de Presentaciones para el modulo de Identificación del ciclo de Vida del software, Politécnico Jaime Isaza Cadavid, Docente Claudia Alejandra Rosero.