docentes ◦ jonathan erlich [email protected] ◦ ariel glikman [email protected] ...
TRANSCRIPT
![Page 1: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/1.jpg)
Ingeniería de Software
![Page 2: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/2.jpg)
Docentes◦ Jonathan Erlich [email protected]◦ Ariel Glikman [email protected]
Organización de la materia◦ Idesmaimonides.wikidot.com◦ Presentismo (70%)◦ Material teórico (lectura previa y posterior)◦ Ejercicios de tarea y en clase (70%)◦ Trabajo práctico grupal de exposición (2 entregas)◦ Evaluación
Presentación
![Page 3: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/3.jpg)
1. ¿Qué es software? 2. ¿Qué es ingeniería de software? 3. ¿Cuál es la diferencia entre ingeniería de
software y ciencias de la computación? 4. ¿Cuál es la diferencia entre ingeniería de
software y ingeniería en sistemas? 5. ¿Qué es un proceso de software? 6. ¿Qué es un modelo de proceso de
software? 7. ¿Cuáles son los atributos de un buen
software?
Evaluación diagnóstica
![Page 4: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/4.jpg)
Programa
Configuración
Documentación
¿Qué es software?
![Page 5: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/5.jpg)
SEI (1990) (CMU/SEI-90-TR-003) Ingeniería es la aplicación sistemática del conocimiento científico en la creación
y construcción de soluciones (“cost-effective”) para resolver problemas prácticos al servicio del hombre. Ingeniería del SW es aquella parte de la ingeniería que aplica los principios de las ciencias de la computación y las matemática para alcanzar soluciones (“cost-effective”) a problemas de software.
Fairley (1985) (SW Engineering Concepts) Es la disciplina tecnológica y de administración que se ocupa de la producción
sistemática & mantenimiento de productos de software que son desarrollados en tiempo y costo estimados.
IEEE La aplicación de un proceso sistemático, cuantificable y disciplinado a la creación,
desarrollo, la operación, y el mantenimiento de software.
Ghezzi Ingeniería Software es el campo de la ciencia de la computación que trata con la
construcción de sistemas de software que son tan grandes o complejos que son construidos por un equipo o equipos de ingenieros
¿Qué es ingeniería de software?
![Page 6: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/6.jpg)
Cs. Comp: Teorías y métodos subyacentes (matemática, electrónica, redes, sistemas operativos, etc.) para investigación y desarrollo.
Ing. De SW: Se refiere a los problemas prácticos a la hora de producir software utilizando las herramientas provistas por las Cs. de la computación.
¿Cuál es la diferencia entre ingeniería de software y ciencias de la computación?
![Page 7: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/7.jpg)
La Ing. de Sist. se refiere a todos los aspectos de la comprensión, desarrollo y evolución de un sistema, sin importar si es computarizado o no. Incluye personas, organizaciones, procesos, software, hardware, papel, etc.
La Ing. de SW. se refiere a los aspectos específicos del desarrollo de software y sus relaciones con los otros aspectos.
¿Cuál es la diferencia entre ingeniería de software y ingeniería en sistemas?
![Page 8: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/8.jpg)
El proceso de software es también conocido como ciclo de vida.
Es un conjunto de actividades cuya meta es el desarrollo y evolución del Software, incluye:◦ Especificación del software◦ Desarrollo◦ Validación◦ Evolución
Distintos procesos trabajan con estas actividades en distinto orden y detalle, de acuerdo al tipo de aplicación, madurez del equipo de desarrollo, costos y tiempos.
¿Qué es un proceso de software?
![Page 9: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/9.jpg)
Modelo: una simplificación de la realidad con el fin de ser representada.
Modelo de proceso de software: Una descripción del proceso utilizado desde una perspectiva particular.
Existen distintos tipos de modelos de proceso de software:◦ Cascada◦ RUP◦ eXtremme Programming
¿Qué es un modelo de proceso de software?
![Page 10: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/10.jpg)
Mantenibilidad Confiabilidad Eficiencia Usabilidad
¿Cuáles son los atributos de un buen software?
![Page 11: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/11.jpg)
Profundizando
![Page 12: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/12.jpg)
Las economías de todas las naciones desarrolladas son dependientes del software
Cada vez mas sistemas son controlados por software Las ventas de software cada vez representan mayor %
en el PBI / exportaciones En gral. los costos de SW son mayores que los de HW.
Tanto a nivel empresarial como personal. El costo de mantenimiento es mayor que el de
desarrollo. Hasta varias veces su tamaño en sistemas de larga vida útil.
La ingeniería de software tiene mucho que ver con la rentabilidad del desarrollo de software.
Importancia de la Ing. de SW
![Page 13: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/13.jpg)
Cliente (Stakeholders) Project Manager Project Leader Analista Arquitecto Diseñador Desarrollador QA QC/Tester
Roles en la Ing. De Software
![Page 14: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/14.jpg)
Es el proceso que se sigue para construir, entregar y hacer evolucionar el software, desde la concepción de una idea hasta la entrega y el retiro del sistema.
Es una representación de:◦ Las etapas de un desarrollo de SW◦ Los criterios de transición para pasar entre etapas
Su importancia, existen muchos modelos de Ciclos de Vida pero la elección del correcto nos puede ayudar a poner mas énfasis en:◦ Mejorar la velocidad de desarrollo◦ Mejorar la calidad◦ Mejorar el seguimiento & control del proyecto◦ Disminuir el riesgo◦ Mejorar la relación con el cliente◦ Mejorar la reacción ante el el cambio
Ciclo de vida
![Page 15: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/15.jpg)
Etapas◦ Inicio◦ Desarrollo◦ Validación◦ Evolución
Actividades◦ Ing. De requerimientos◦ Diseño◦ Desarrollo◦ Documentación◦ Verificación◦ Validación◦ Despliegue◦ Mantenimiento◦ Cambios
Ciclo de vida
![Page 16: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/16.jpg)
Standalone Web Embebidos Firmware En lote o batch
Tiempo real Entretenimiento Modelado y
simulación Recolección de datos Sistemas de sistemas
Tipos de software
![Page 17: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/17.jpg)
La abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan.
En sistemas, el término se refiere al énfasis en el "¿qué hace?" más que en el "¿cómo lo hace?". El común denominador en la evolución de los lenguajes de programación ha sido el nivel de abstracción del que cada uno de ellos hace uso.
Conceptos básicos – Abstracción
![Page 18: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/18.jpg)
Se denomina Modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes.
Estos módulos se pueden compilar por separado (no siempre), pero tienen conexiones con otros módulos. Los lenguajes soportan la Modularidad de diversas formas.
Conceptos básicos – Modularidad
![Page 19: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/19.jpg)
La incrementalidad se refiere a la capacidad de desarrollar funcionalidades en pequeños pasos, dónde cada uno implica una funcionalidad completa (en gral.), es decir, agrega valor.
Diferentes ciclos de vida utilizan esta idea para definir el proceso.
Conceptos básicos – Incrementalidad
![Page 20: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/20.jpg)
El cambio es inevitable◦ Cambios en los requerimientos, cambios en las
tecnologías, cambios en el equipo, etc. A mas tardío, más costoso Algunos ciclos de vida apuntan a reducir
este costo
Conceptos básicos - Anticipación al cambio
![Page 21: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/21.jpg)
Preguntas
![Page 22: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/22.jpg)
Sugerencias
![Page 23: Docentes ◦ Jonathan Erlich jonathanerlich@gmail.com ◦ Ariel Glikman arielglikman@gmail.com Organización de la materia ◦ Idesmaimonides.wikidot.com](https://reader030.vdocuments.mx/reader030/viewer/2022033106/5665b4441a28abb57c909001/html5/thumbnails/23.jpg)
Aplausos