CTC - ORT Paysandú

ANALISTA PROGRAMADOR Semestre V Ingeniería de software

Ingeniería de software
‡ Introduce a los principios generales de la IdeSw: concepto de proceso de producción de sw y su control. ‡ Estudia técnicas para asegurar la calidad del sw y la gestión del riesgo en el proceso productivo, abarcando desde la ingeniería de requerimientos hasta técnicas de gestión del cambio. ‡ Confronta distintas metodologías de producción para generar espíritu crítico y selectivo, en cuanto a técnicas y soluciones posibles.

Ingeniería de software

DISCUSION SOBRE:

‡ ¿ Para qué la informática ? ‡ ¿ Por qué se hacen sistemas ? ‡ ¿ A quién se le ocurriría contratarnos ? ‡ ¿ En qué podemos ser útiles ? ‡ ¿ A quiénes ? ‡ ¿ Cuál puede ser nuestro aporte ? ‡ ¿ Qué debemos hacer y cómo ?
y FUNDAMENTALMENTE:

‡ ¿ Qué es la INGENIERIA DE SOFTWARE ?
Ingeniería de software

Presentación
Materia
‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ Proceso de producción de software y su control. Técnicas para asegurar la calidad del software. Gestión del riesgo en el proceso productivo. Metodologías de producción. Ingeniería de requerimientos. Métricas. Proyectos. Estimaciones tempranas. Seguimiento y control de proyectos.

Ingeniería de software

Presentación
Bibliografía
‡ ‡ ‡ ‡ ‡ INGENIERIA DEL SOFTWARE Ian Sommerville INGENIERIA DEL SOFTWARE Roger S. Pressman R. Thayer SOFTWARE ENGINEERING S. L. Pfleeger SOFTWARE ENGINEERING ISO 9000 Instituto Uruguayo de Normas Técnicas UNIT ‡ SW ENGINEERING RISK Mgm D.W. Karolac ‡ Otros (libros, papers, web, SoftwareFactory, etc.)
Ingeniería de software

Presentación
Aprobación ‡ 2 parciales
± Individual ± Desarrollo / preguntas

‡ Trabajo grupal

Ingeniería de software

Ingeniería de software pretende cubrir esa etapa temprana e importantísima de los sistemas, eligiendo con espíritu crítico y selectivo, tanto técnicas a emplear como alternativas de posibles soluciones ... también será la guía que determine la metodología a seguir como asimismo su control y gestión; para ello recorreremos el siguiente temario ...

Ingeniería de software

Temario
‡ Introducción a la Ingeniería de sw. Proceso y producto. ‡ Ciclos de vida y modelos de desarrollo. ‡ Ingeniería de requerimientos: alcance, objetivos, necesidades, recolección y evaluación de información, casos de uso, principales datos, etc. ‡ Métricas. En: proceso, producto y proyecto. Que medir. ‡ Estimaciones. De: tamaño, costos, recursos y temporal. ‡ Análisis de riesgos y plan de contingencia. ‡ Aseguramiento de la calidad (SQA). ‡ Gestión de la configuración del sw (SCM) ‡ Determinación de herramientas y técnicas. Pruebas. ‡ Seguimiento y gestión del proyecto. Documentación final.
Ingeniería de software

ANTEPROYECTO:
‡ ¿ Qué es ? ‡ ¿ Para qué sirve ? ‡ ¿ Cuál es su contenido ? ‡ ¿ Cómo lo hacemos ? ‡ ¿ Quiénes intervienen ? ‡ etc. etc.

Ingeniería de software

ANTEPROYECTO

Idea de contenido

‡ INTRODUCCION ‡ ANALISIS ESTRATEGICO ‡ PROYECTO ‡ PLAN DEL PROYECTO ‡ PLANIFICACION

Ingeniería de software

ANTEPROYECTO ‡ INTRODUCCION

Idea de contenido

Descripción del destinatario y del sistema a desarrollar, destacando ventajas a obtener. También se explicará quien/es serán los desarrolladores (individuales o empresa). ‡ ANALISIS ESTRATEGICO ‡ PROYECTO ‡ PLAN DEL PROYECTO ‡ PLANIFICACION
Ingeniería de software

ANTEPROYECTO
‡ INTRODUCCION

Idea de contenido
³descripción general´

‡ ANALISIS ESTRATEGICO Valores, Visión, Misión, Fuerzas de Porter, Cadena de valor, Análisis FODA. Desde el ámbito de la empresa hasta el sistema a desarrollar en particular. ‡ PROYECTO ‡ PLAN DEL PROYECTO ‡ PLANIFICACION
Ingeniería de software

ANTEPROYECTO
‡ INTRODUCCION

Idea de contenido

³descripción general´ ‡ ANALISIS ESTRATEGICO ³por qué y para qué´ ‡ PROYECTO Definición Estudios de factibilidad Análisis de riesgos Especificación de requerimientos Casos de uso (generales y/o principales) ‡ PLAN DEL PROYECTO ‡ PLANIFICACION
Ingeniería de software

ANTEPROYECTO
‡ INTRODUCCION

Idea de contenido

³descripción general´ ‡ ANALISIS ESTRATEGICO ³por qué y para qué´ ‡ PROYECTO ³que hará´ ‡ PLAN DEL PROYECTO Elección de herramientas y metodologías SQA (calidad: testing, estándares, etc.) SCM (configuración, versionado, roles, etc.) Capacitación Bibliografía ‡ PLANIFICACION
Ingeniería de software

ANTEPROYECTO
‡ INTRODUCCION

Idea de contenido

³descripción general´ ‡ ANALISIS ESTRATEGICO ³por qué y para qué´ ‡ PROYECTO ³que hará´ ‡ PLAN DEL PROYECTO ³cómo y con qué´ ‡ PLANIFICACION Gráfico de Gantt (MS Project)

Ingeniería de software

ANTEPROYECTO
resumiendo ... ‡ INTRODUCCION

Idea de contenido

³descripción general´ ³por qué y para qué´ ³que hará´ ³cómo y con qué´ ³cuándo´

‡ ANALISIS ESTRATEGICO ‡ PROYECTO ‡ PLAN DEL PROYECTO ‡ PLANIFICACION

Ingeniería de software

Algunas ideas del SISTEMA ‡ Entender como interactuará con otros sistemas.
‡ Conocer en profundidad el sistema actual. Migración. ‡ Interiorizarse en los motivos que determinan su realización. Identificar a todos los usuarios involucrados. ‡ Recordar que SISTEMA es una reunión de partes que se relacionan de cierta manera. ‡ Tener en cuenta todos los componentes: hw, sw, recursos humanos, datos y procedimientos. ‡ Tener en cuenta que los sistemas crecen. Cambios.

Ingeniería de software

Ya tenemos claro: de qué se trata quiénes lo haremos dónde lo haremos para qué lo haremos AHORA: INGENIERIA de Arrancamos con la SOFTWARE

Ingeniería de software

Conceptos generales
Para tener EXITO al diseñar sw necesitamos:

DISCIPLINA y un ENFOQUE de INGENIERÍA.
EXITO es: - satisfacer las necesidades de quienes lo usan, - funcionar bien durante mucho tiempo y SI NO - que sea fácil de mantener o modificar.

Algunos autores cambian PROGRAMADOR por INGENIERO DE SOFTWARE. Hablamos de: - MODELOS DE PROCESO DE SOFTWARE, - METODOS DE INGENIERIA DE SOFTWARE y - HERRAMIENTAS DE SOFTWARE.

Esta disciplina aún no alcanzó una madurez total y hay muchos que siguen ³a la antigua´.
Ingeniería de software

Definición de Ing. de Sw
1. 2. ZELKOVITZ, 1978. Es el estudio de los PRINCIPIOS y METODOLOGIAS para el desarrollo y mantenimiento de sistemas de software. BOHEM, 1976. Es la aplicación PRACTICA del conocimiento científico en el diseño y construcción de programas de computadora y la DOCUMENTACION asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como desarrollo de sw o producción de sw. BAUER, 1972. Trata de los principios y métodos de la ingeniería a fin de obtener sw de modo rentable que sea FIABLE y trabaje en MAQUINAS REALES. IEEE, 1993. La aplicación de UN ENFOQUE SISTEMATICO, DISCIPLINADO Y CUANTIFICABLE AL DESARROLLO, OPERACIÓN Y MANTENIMIENTO DE SW.
Ingeniería de software

3.

4.

¿Qué es Software?
‡ [Pressman].
(1) Instrucciones (programas de computadoras) que cuando se ejecutan proporcionan la función y rendimiento deseados. (2) Estructura de datos que permiten a los programas manipular adecuadamente la información. (3) Documentos que describen la operación y uso de los programas.
Ingeniería de software

Problemática del desarrollo del software
‡ ¿Cuáles son los principales problemas del desarrollo de software?

Ingeniería de software

Problemática
‡ Algunas dificultades comunes:
± Complejidad del producto ± Defectos en el producto ± Es difícil planificar y cumplir plazos ± Costos altos de los proyectos de software

‡ Situación:
± Crisis continua de la producción de software ± Evolución en los métodos y técnicas
Ingeniería de software

Problemática
‡ Particularidades de la producción de Software:
± Producto es intangible y complejo ± Implica desarrollo y no manufactura ± Involucra tareas realizadas por personas:
‡ Necesidad de alto grado de comunicación ‡ Normalmente requiere creatividad

Ingeniería de software

Problemática
‡ Complejidad del producto:
± Alto cambio tecnológico ± Dificultad en satisfacer las necesidades de los usuarios ± Integración de sistemas heterogéneos ± Intangibilidad del software ± Sistemas críticos
Ingeniería de software

Problemática
‡ Contexto del negocio:
± El software es un elemento estratégico ± Rápidos cambios del contexto del negocio ± Tiempos de salida al mercado más cortos ± Alto costo de desarrollo y mantenimiento ± El software es muy visible ± Afecta procesos críticos
Ingeniería de software

Problemática
‡ Profesionalizar el desarrollo de software. ‡ Transformar el desarrollo de arte a ingeniería. ‡ Sistematizar actividades posibilitando espacio para la creatividad. ‡ Aplicar ingeniería de software.
Ingeniería de software

Áreas de la Ingeniería de Software
‡ Ingeniería de requerimientos de software
± Definición o identificación de los servicios o capacidades que debe proveer el software para satisfacer las necesidades de los usuarios.

‡ Definición del problema a resolver.
Ingeniería de software

Áreas de la Ingeniería de Software
‡ Diseño del software
± Diseño arquitectónico:
‡ Determinar la estructura general del sistema. ‡ Asignar los requerimientos del software a los subsistemas. ‡ Definir interfaces de los subsistemas. ‡ Etc.

Ingeniería de software

Áreas de la Ingeniería de Software
‡ Diseño del software
± Diseño detallado:
‡ ‡ ‡ ‡ Descomponer el sistema en clases o módulos. Seleccionar mecanismos y algoritmos. Asignar responsabilidades a módulos. Etc.

± Construcción del software:
‡ Codificar, validar y probar unitariamente el software.
Ingeniería de software

Áreas de la Ingeniería de Software
‡ Pruebas del software
± Integración de los distintos componentes del software. ± Verificación dinámica del software contra la especificación del comportamiento esperado. ± Existen distintos niveles de prueba y distintos objetivos de las pruebas.
Ingeniería de software

Áreas de la Ingeniería de Software
‡ Mantenimiento del software
± Modificar el software una vez entregado para corregir fallas o incorporar cambios.

Ingeniería de software

Áreas de la Ingeniería de Software
‡ Gestión de proyectos de software
± Planificación y seguimiento de las actividades necesarias para la construcción y mantenimiento del software.

‡ Gestión de la configuración del software
± Identificación y control del software y sus componentes durante su construcción, mantenimiento y uso.
Ingeniería de software

Áreas de la Ingeniería de Software
‡ Calidad del software
± Asegurar la calidad del producto y de los procesos durante el ciclo de vida del proyecto.

‡ Procesos de ingeniería del software
± Definición, implantación y mejora del proceso de software.

Ingeniería de software

Áreas de la Ingeniería de Software
‡ Herramientas y métodos
± Ambientes de desarrollo para software y métodos para la realización de las distintas actividades del desarrollo del software.

Ingeniería de software

Mitos del Cliente
‡ M1: diferir detalles de requerimientos.
Realidad:

los requerimientos deben establecerse antes. ‡ M2: software flexible se adapta a continuos cambios de requerimientos.
Realidad:

los costos no son los mismos en todas las fases.
± Definición: 1. ± Desarrollo: 6 veces, definición. ± Post-entrega: 60 a 100 veces, definición.
Ingeniería de software

Mitos de los Gerentes de Proyectos
‡ M1: existen estándares de trabajo definidos.
Realidad:

‡ no se adaptan, no se usan. ‡ M2: tenemos excelentes ambientes de desarrollo.
Realidad:

la tecnología no resuelve los problemas. ‡ M3: se pueden incorporar desarrolladores sin impacto.
Realidad:

la incorporación no es sencilla.
Ingeniería de software

Mitos de los Desarrolladores
‡ M1:el trabajo finaliza cuando se entrega el producto. Realidad: el trabajo finaliza cuando se deja de usar el producto. ‡ M2: el único control de calidad es el testing. Realidad: es necesario validaciones tempranas. ‡ M3: el único entregable es el sistema funcionando. Realidad: es necesaria documentación técnica y de usuarios.

Ingeniería de software

¿Cuál es la Solución?
‡ Profesionalizar el desarrollo de software. ‡ Transformar el desarrollo de arte a ingeniería. ‡ Sistematizar actividades posibilitando espacio para la creatividad. ‡ Aplicar Ingeniería de Software.
Ingeniería de software

RESUMIENDO

‡ Los productos de sw son programas y la documentación asociada. Sus atributos principales son: mantenibilidad, confiabilidad, eficiencia y usabilidad. ‡ Las actividades básicas relativas al desarrollo de sw que forman el proceso del sw son: especificación, desarrollo, validación y evolución. ‡ Los métodos son formas organizadas de producir sw (proceso, notación, reglas y lineamientos de diseño).
Ingeniería de software

Sign up to vote on this title
UsefulNot useful