Este documento presenta los fundamentos de la ingeniería de software. Introduce conceptos clave como los factores de calidad del software, los diferentes ciclos de vida de desarrollo como el clásico, con prototipado y evolutivo, y los principios de diseño como la abstracción, ocultamiento de información y modularidad. Además, describe los objetivos e instructores del curso de fundamentos de ingeniería de software.
Este documento presenta una introducción a la ingeniería de software. Define conceptos clave como software, características del software e ingeniería de software. Explica que la ingeniería de software aplica un enfoque sistemático y disciplinado al desarrollo y mantenimiento de software de alta calidad. También describe los roles clave en el desarrollo de software e identifica la crisis del software que ocurrió en 1968.
Curso de Ingeniería de Software - Capítulo 1Eddie Malca
Este documento introduce la ingeniería de software, explicando que se trata de una disciplina de la ingeniería que se enfoca en el desarrollo de software de manera sistemática. Presenta los objetivos del curso, como comprender la importancia de la ingeniería de software y establecer respuestas a preguntas clave sobre el tema. También introduce conceptos como procesos de software, metodologías de desarrollo, atributos de calidad de software y responsabilidades éticas para los ingenieros de software.
Este documento presenta conceptos básicos de ingeniería de software. Explica que la ingeniería de software se refiere al desarrollo sistemático de software y discute conceptos como procesos de software, modelos de procesos, costos, métodos, atributos de calidad y retos. También introduce la responsabilidad profesional de los ingenieros de software.
Tema 3 proseso de desarrollo del softwareLuis Garcia
Este documento describe el proceso de desarrollo de software. Explica que el proceso involucra varias etapas como la especificación de requisitos, el diseño, la codificación y las pruebas. También discute diferentes modelos de ciclo de vida de software como el ciclo de vida clásico o en cascada y el ciclo de vida en espiral. El grado de precisión con que se realicen estas etapas influirá en el resultado final del software.
Este documento presenta una introducción a la ingeniería de software. Define la ingeniería de software como una disciplina que se enfoca en el desarrollo profesional de software utilizando teorías, métodos y herramientas. Discuten conceptos clave como productos de software, procesos de software y modelos de desarrollo. También introduce la importancia de la visibilidad de los procesos y la responsabilidad profesional.
El documento describe el proceso de desarrollo de software, incluyendo los ciclos de vida del software como el ciclo de vida clásico o en cascada, la construcción rápida de prototipos desechables, el incremental y en espiral. También describe las metodologías de desarrollo como los métodos informales, semiformales como los estructurados y orientados a objetos, y los métodos formales. Finalmente, discute la madurez del proceso en las organizaciones de desarrollo y el modelo CMM para mejorar la capacidad de los procesos.
Este documento presenta una introducción a la ingeniería de software, discutiendo conceptos como productos de software, procesos de software, modelos de desarrollo como la espiral de Boehm, y la importancia de la visibilidad de los procesos. También aborda la demanda creciente de ingenieros de software y la necesidad de una mayor responsabilidad profesional en el desarrollo de software.
Este documento presenta una introducción a la ingeniería de software, discutiendo conceptos como productos de software, procesos de software, modelos de desarrollo como la espiral de Boehm, y la importancia de la visibilidad de los procesos. También aborda la demanda creciente de ingenieros de software y la necesidad de una mayor responsabilidad profesional en el desarrollo de software.
Este documento presenta una introducción a la ingeniería de software. Define conceptos clave como software, características del software e ingeniería de software. Explica que la ingeniería de software aplica un enfoque sistemático y disciplinado al desarrollo y mantenimiento de software de alta calidad. También describe los roles clave en el desarrollo de software e identifica la crisis del software que ocurrió en 1968.
Curso de Ingeniería de Software - Capítulo 1Eddie Malca
Este documento introduce la ingeniería de software, explicando que se trata de una disciplina de la ingeniería que se enfoca en el desarrollo de software de manera sistemática. Presenta los objetivos del curso, como comprender la importancia de la ingeniería de software y establecer respuestas a preguntas clave sobre el tema. También introduce conceptos como procesos de software, metodologías de desarrollo, atributos de calidad de software y responsabilidades éticas para los ingenieros de software.
Este documento presenta conceptos básicos de ingeniería de software. Explica que la ingeniería de software se refiere al desarrollo sistemático de software y discute conceptos como procesos de software, modelos de procesos, costos, métodos, atributos de calidad y retos. También introduce la responsabilidad profesional de los ingenieros de software.
Tema 3 proseso de desarrollo del softwareLuis Garcia
Este documento describe el proceso de desarrollo de software. Explica que el proceso involucra varias etapas como la especificación de requisitos, el diseño, la codificación y las pruebas. También discute diferentes modelos de ciclo de vida de software como el ciclo de vida clásico o en cascada y el ciclo de vida en espiral. El grado de precisión con que se realicen estas etapas influirá en el resultado final del software.
Este documento presenta una introducción a la ingeniería de software. Define la ingeniería de software como una disciplina que se enfoca en el desarrollo profesional de software utilizando teorías, métodos y herramientas. Discuten conceptos clave como productos de software, procesos de software y modelos de desarrollo. También introduce la importancia de la visibilidad de los procesos y la responsabilidad profesional.
El documento describe el proceso de desarrollo de software, incluyendo los ciclos de vida del software como el ciclo de vida clásico o en cascada, la construcción rápida de prototipos desechables, el incremental y en espiral. También describe las metodologías de desarrollo como los métodos informales, semiformales como los estructurados y orientados a objetos, y los métodos formales. Finalmente, discute la madurez del proceso en las organizaciones de desarrollo y el modelo CMM para mejorar la capacidad de los procesos.
Este documento presenta una introducción a la ingeniería de software, discutiendo conceptos como productos de software, procesos de software, modelos de desarrollo como la espiral de Boehm, y la importancia de la visibilidad de los procesos. También aborda la demanda creciente de ingenieros de software y la necesidad de una mayor responsabilidad profesional en el desarrollo de software.
Este documento presenta una introducción a la ingeniería de software, discutiendo conceptos como productos de software, procesos de software, modelos de desarrollo como la espiral de Boehm, y la importancia de la visibilidad de los procesos. También aborda la demanda creciente de ingenieros de software y la necesidad de una mayor responsabilidad profesional en el desarrollo de software.
El documento describe diferentes enfoques para el proceso de desarrollo de software, incluyendo el ciclo de vida clásico o en cascada, la construcción rápida de prototipos desechables, el enfoque incremental, la evolución de prototipos y el ciclo de vida en espiral. Explica que el objetivo es encontrar técnicas que permitan desarrollar software de manera económica y que sea confiable.
Este documento presenta información sobre un taller de modelado de requerimientos y diseño de sistemas complejos que se llevará a cabo en Río Turbio, Santa Cruz, del 11 al 22 de junio. El taller será impartido por cuatro profesionales y dos estudiantes y abordará temas relacionados con el modelado de sistemas, incluyendo conceptos, tipos de modelos, ciclos de vida de desarrollo de software y arquitectura de sistemas.
Ingeniería de software Definicion,inicion,importancia y utilidadXKWDX
El documento habla sobre la ingeniería de software. Define la ingeniería de software como la aplicación sistemática y cuantificable del desarrollo, operación y mantenimiento del software. Discuta los orígenes de la ingeniería de software, su importancia, organizaciones como SEI y W3C, modelos de desarrollo como cascada, prototipos y espiral, y conceptos como ciclo de vida del desarrollo de software y arquitectura de software. Finalmente, incluye una bibliografía de recursos adicionales.
El documento describe la ingeniería de software, incluyendo su surgimiento, definiciones, relación con otras disciplinas, calidad del software, participantes en el desarrollo e influencia en la sociedad. También discute cambios y tendencias como el uso de prototipos, arquitectura, procesos y mediciones para mejorar la calidad y productividad.
El documento presenta información sobre los ciclos de vida de desarrollo de software. Explica conceptos clave como proceso, ciclo de vida, modelo de proceso y métodos. Luego describe diferentes modelos de ciclo de vida como el modelo en cascada, prototipos, entrega en etapas y espiral. Finalmente, brinda detalles sobre las fases y actividades involucradas en los modelos de ciclo de vida de software.
Se publica una presentación acerca de los conceptos básicos iniciales y generales de la Ingeniería del Software, una vez que los lea, revise, podría realizar sus preguntas ante inquietudes que pudieran presentarse y sobre todo realizar aportes, es decir, incrementar archivos de material a fin o sus estudios realizados la respecto a fin de poder enriquecer el conociemiento de todos en esta asignatura
Bienvenidos.....
Conceptos Básicos de Ingeniería del Software y Control de Proyectosedwinlemmon
Este documento presenta conceptos básicos sobre ingeniería de software y gestión de proyectos. Introduce conceptos clave como software, sistemas de información, proyectos e ingeniería de software. Explica que la ingeniería de software aplica principios de ingeniería al desarrollo de software de manera sistemática y disciplinada. También describe elementos básicos de gestión de proyectos como planificación, coordinación, organización y supervisión.
La ingeniería de software se define como la aplicación de un enfoque ordenado, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software. Tiene como objetivo diseñar aplicaciones informáticas que se ajusten a las necesidades de las organizaciones y dirigir el desarrollo de aplicaciones complejas. Se aplica en diferentes campos como el software de sistema, de tiempo real, de gestión, empotrado e inteligencia artificial.
El documento define la ingeniería de software y su importancia para el desarrollo de software de calidad. Explica los inicios de la disciplina en la década de 1940 y algunos modelos de desarrollo como el ciclo de vida del software. También describe organizaciones como el Software Engineering Institute y el World Wide Web Consortium. Finalmente, define conceptos clave como la arquitectura de software.
Transparencias del Tema 4 (Diseño del Software) de la asignatura Ingeniería del Software de Gestión de la Escuela Superior de Ingeniería Informática de la Universidad de Vigo
Las imagenes usadas en esta presentación tiene un fin exclusivamente academico, si alguien considera que debo eliminarlas, por favor hagamelo saber. Gracias
Este documento presenta las preguntas y respuestas de un módulo sobre ingeniería de software. Explica las diferencias entre programa, software y aplicación, define ingeniería y ingeniería de software, y describe las etapas clave del desarrollo de software como análisis de requisitos, especificación, arquitectura, programación, prueba y documentación. También cubre temas como calidad de software, modelos de desarrollo y garantizar calidad.
Buenas Prácticas de Seguridad en el Proceso de Desarrollo de Softwarejcezon
El documento presenta una formación sobre buenas prácticas de seguridad en el desarrollo de software. Explica conceptos generales de seguridad en aplicaciones web, riesgos comunes y metodologías de desarrollo seguro. Luego, detalla las fases del ciclo de vida de desarrollo donde se debe incorporar la seguridad y las vulnerabilidades más frecuentes como inyección, cross-site scripting y pérdida de autenticación. Finalmente, recomienda herramientas para realizar pruebas de seguridad.
Ingeniería de software es la aplicación de un enfoque sistemáticoSantiago Moha
La ingeniería de software se define como la aplicación sistemática de principios y métodos de ingeniería al desarrollo de software. Involucra etapas como el análisis de requerimientos, diseño de arquitectura, programación, pruebas y mantenimiento. La ingeniería de software busca mejorar la productividad y calidad del software a través de procesos sistemáticos y repetibles.
Este documento define conceptos clave de la ingeniería de software como el análisis, desarrollo y mantenimiento de software. Explica las importancias de la ingeniería de software, como desarrollar software de manera organizada y cumpliendo con las especificaciones. También describe metodologías como el modelo cascada y espiral, y organizaciones como el SEI y W3C que establecen estándares para el desarrollo de software.
El documento define los conceptos de software e ingeniería de software. Explica que la ingeniería de software es la aplicación de principios de ingeniería al desarrollo de software, incluyendo actividades como el análisis de requisitos, diseño, programación, pruebas, documentación y mantenimiento. También describe algunos modelos de ciclo de vida de desarrollo de software e impactos económicos y sociales de la ingeniería de software.
Ingenieria de software (conceptos básicos)Yaskelly Yedra
La ingeniería de software es el área de la ciencia de la computación, que ofrece métodos y técnicas para el desarrollo de software, estudia el conjunto de actividades relacionadas con el ciclo de desarrollo del software, en particular se enfoca tanto a en calidad de su proceso como de su producto.
El documento presenta la sesión inaugural del Taller del Contexto el 18 de marzo de 2010. Explica conceptos como ligereza, liviano y leve, y analiza antecedentes de la modernidad como el impresionismo, Dadá, Marcel Duchamp y manifestaciones contemporáneas efímeras como las obras de Christo y arte en arena de los indios Navajo. También revisa ejemplos en arquitectura ligera de Buckminster Fuller, Frei Otto, Toyo Ito, y proyectos comunitarios en Chile.
El documento describe diferentes enfoques para el proceso de desarrollo de software, incluyendo el ciclo de vida clásico o en cascada, la construcción rápida de prototipos desechables, el enfoque incremental, la evolución de prototipos y el ciclo de vida en espiral. Explica que el objetivo es encontrar técnicas que permitan desarrollar software de manera económica y que sea confiable.
Este documento presenta información sobre un taller de modelado de requerimientos y diseño de sistemas complejos que se llevará a cabo en Río Turbio, Santa Cruz, del 11 al 22 de junio. El taller será impartido por cuatro profesionales y dos estudiantes y abordará temas relacionados con el modelado de sistemas, incluyendo conceptos, tipos de modelos, ciclos de vida de desarrollo de software y arquitectura de sistemas.
Ingeniería de software Definicion,inicion,importancia y utilidadXKWDX
El documento habla sobre la ingeniería de software. Define la ingeniería de software como la aplicación sistemática y cuantificable del desarrollo, operación y mantenimiento del software. Discuta los orígenes de la ingeniería de software, su importancia, organizaciones como SEI y W3C, modelos de desarrollo como cascada, prototipos y espiral, y conceptos como ciclo de vida del desarrollo de software y arquitectura de software. Finalmente, incluye una bibliografía de recursos adicionales.
El documento describe la ingeniería de software, incluyendo su surgimiento, definiciones, relación con otras disciplinas, calidad del software, participantes en el desarrollo e influencia en la sociedad. También discute cambios y tendencias como el uso de prototipos, arquitectura, procesos y mediciones para mejorar la calidad y productividad.
El documento presenta información sobre los ciclos de vida de desarrollo de software. Explica conceptos clave como proceso, ciclo de vida, modelo de proceso y métodos. Luego describe diferentes modelos de ciclo de vida como el modelo en cascada, prototipos, entrega en etapas y espiral. Finalmente, brinda detalles sobre las fases y actividades involucradas en los modelos de ciclo de vida de software.
Se publica una presentación acerca de los conceptos básicos iniciales y generales de la Ingeniería del Software, una vez que los lea, revise, podría realizar sus preguntas ante inquietudes que pudieran presentarse y sobre todo realizar aportes, es decir, incrementar archivos de material a fin o sus estudios realizados la respecto a fin de poder enriquecer el conociemiento de todos en esta asignatura
Bienvenidos.....
Conceptos Básicos de Ingeniería del Software y Control de Proyectosedwinlemmon
Este documento presenta conceptos básicos sobre ingeniería de software y gestión de proyectos. Introduce conceptos clave como software, sistemas de información, proyectos e ingeniería de software. Explica que la ingeniería de software aplica principios de ingeniería al desarrollo de software de manera sistemática y disciplinada. También describe elementos básicos de gestión de proyectos como planificación, coordinación, organización y supervisión.
La ingeniería de software se define como la aplicación de un enfoque ordenado, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software. Tiene como objetivo diseñar aplicaciones informáticas que se ajusten a las necesidades de las organizaciones y dirigir el desarrollo de aplicaciones complejas. Se aplica en diferentes campos como el software de sistema, de tiempo real, de gestión, empotrado e inteligencia artificial.
El documento define la ingeniería de software y su importancia para el desarrollo de software de calidad. Explica los inicios de la disciplina en la década de 1940 y algunos modelos de desarrollo como el ciclo de vida del software. También describe organizaciones como el Software Engineering Institute y el World Wide Web Consortium. Finalmente, define conceptos clave como la arquitectura de software.
Transparencias del Tema 4 (Diseño del Software) de la asignatura Ingeniería del Software de Gestión de la Escuela Superior de Ingeniería Informática de la Universidad de Vigo
Las imagenes usadas en esta presentación tiene un fin exclusivamente academico, si alguien considera que debo eliminarlas, por favor hagamelo saber. Gracias
Este documento presenta las preguntas y respuestas de un módulo sobre ingeniería de software. Explica las diferencias entre programa, software y aplicación, define ingeniería y ingeniería de software, y describe las etapas clave del desarrollo de software como análisis de requisitos, especificación, arquitectura, programación, prueba y documentación. También cubre temas como calidad de software, modelos de desarrollo y garantizar calidad.
Buenas Prácticas de Seguridad en el Proceso de Desarrollo de Softwarejcezon
El documento presenta una formación sobre buenas prácticas de seguridad en el desarrollo de software. Explica conceptos generales de seguridad en aplicaciones web, riesgos comunes y metodologías de desarrollo seguro. Luego, detalla las fases del ciclo de vida de desarrollo donde se debe incorporar la seguridad y las vulnerabilidades más frecuentes como inyección, cross-site scripting y pérdida de autenticación. Finalmente, recomienda herramientas para realizar pruebas de seguridad.
Ingeniería de software es la aplicación de un enfoque sistemáticoSantiago Moha
La ingeniería de software se define como la aplicación sistemática de principios y métodos de ingeniería al desarrollo de software. Involucra etapas como el análisis de requerimientos, diseño de arquitectura, programación, pruebas y mantenimiento. La ingeniería de software busca mejorar la productividad y calidad del software a través de procesos sistemáticos y repetibles.
Este documento define conceptos clave de la ingeniería de software como el análisis, desarrollo y mantenimiento de software. Explica las importancias de la ingeniería de software, como desarrollar software de manera organizada y cumpliendo con las especificaciones. También describe metodologías como el modelo cascada y espiral, y organizaciones como el SEI y W3C que establecen estándares para el desarrollo de software.
El documento define los conceptos de software e ingeniería de software. Explica que la ingeniería de software es la aplicación de principios de ingeniería al desarrollo de software, incluyendo actividades como el análisis de requisitos, diseño, programación, pruebas, documentación y mantenimiento. También describe algunos modelos de ciclo de vida de desarrollo de software e impactos económicos y sociales de la ingeniería de software.
Ingenieria de software (conceptos básicos)Yaskelly Yedra
La ingeniería de software es el área de la ciencia de la computación, que ofrece métodos y técnicas para el desarrollo de software, estudia el conjunto de actividades relacionadas con el ciclo de desarrollo del software, en particular se enfoca tanto a en calidad de su proceso como de su producto.
El documento presenta la sesión inaugural del Taller del Contexto el 18 de marzo de 2010. Explica conceptos como ligereza, liviano y leve, y analiza antecedentes de la modernidad como el impresionismo, Dadá, Marcel Duchamp y manifestaciones contemporáneas efímeras como las obras de Christo y arte en arena de los indios Navajo. También revisa ejemplos en arquitectura ligera de Buckminster Fuller, Frei Otto, Toyo Ito, y proyectos comunitarios en Chile.
UTILIZA LA NTP 458 SOBRE ORGANIZACIÓN DE LOS PRIMEROS AUXILIOS EN LA EMPRESA. Roberto Caro
Este documento describe la organización de los primeros auxilios en la empresa. Resume los puntos clave que la ley exige, incluyendo la designación y formación del personal encargado de los primeros auxilios, la revisión periódica de las medidas adoptadas, y la organización de los servicios externos de emergencia. También describe los roles clave en la cadena de socorro de una emergencia, como testigos, telefonistas, socorristas, y el personal médico externo. Finalmente, cubre temas como la formación requerida para los socorrist
Collective Mind: a collaborative curation tool for program optimizationGrigori Fursin
Designing and optimizing applications becomes increasingly tedious, time consuming, ad-hoc and error prone due to ever changing and complex hardware and software stack. At the same time, it becomes difficult or even impossible to validate, reproduce and extend many proposed optimization and auto-tuning techniques from numerous publications. One of the main reasons is a lack of common and practical way to preserve, systematize and reuse available knowledge and artifacts including developments, optimizations and experimental data.
In this talk, I will present modular, extensible, python-based Collective Mind framework and web-based schema-free repository
(c-mind.org) that I developed at first to systematize my own research and experimentation on machine learning based program optimization and compiler design. This infrastructure can be customized to preserve, describe, share and reproduce whole experimental setups including benchmarks, data sets, libraries, tools, predictive models and optimization information with related JSON-based meta-data. I will also present and discuss positive and negative feedback during several recent academic and industrial usages of this framework to systematize benchmarking and program optimization, and to initiate new publication model where experimental results and related research artifacts are shared, reproduced and validated by the community. In a long term, I hope that such approach and collective knowledge will eventually help us to squeeze maximum performance from computer systems while minimizing energy, development time and other costs.
Harry and Chris are filming scenes for the movie Devil's Toy on April 12, 2013 at 4:00pm at Chris' house. Dad will be on the phone with a priest while wearing jeans and casual top with natural makeup, and Chris will wear a black shirt, black trousers and white collar with natural makeup. Ambient lighting and a phone will be used to capture their dialogue.
This document is a rubric for assessing students' abilities to identify and analyze different informational text structures, including problem/solution, cause/effect, compare/contrast, chronological sequence, and description. The rubric rates students from 1 to 4 in each text structure based on whether they can consistently, sometimes, rarely, or never determine the structure; analyze how parts fit into the overall structure and contribute to developing ideas; and locate relevant signal words. The bottom section provides space for notes and observations from student conferences.
El documento habla sobre los sistemas de información desde la perspectiva empresarial. Explica conceptos clave de la ingeniería de software como proceso, métodos, herramientas y tecnología. También describe mitos comunes sobre el software y su desarrollo, así como las características y aplicaciones del software.
La ingeniería de software se refiere a las herramientas y técnicas para crear software, mientras que la ciencia de la computación estudia los procesos algorítmicos y desarrolla sistemas complejos. La ingeniería de software se complementa con la ingeniería de sistemas, enfocándose en el ciclo de vida del software. Un proceso de software describe actividades para crear software, y un modelo define procesos, actividades y tareas involucradas en el desarrollo de software.
La ingeniería de software estudia la creación de software confiable y de calidad mediante métodos y técnicas de ingeniería. Se define como el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas de software, así como la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora. La ingeniería de software busca establecer principios y métodos para obtener software de manera rentable que sea fiable y funcione en máquinas reales.
Ingenieria y facetas de desarrollo de softwarePerlaAguilar14
La ingeniería de software aplica un enfoque sistemático y disciplinado al desarrollo, operación y mantenimiento del software. Integra matemáticas, ciencias de la computación y prácticas de ingeniería. Las principales fases del desarrollo de software son el análisis de requisitos, diseño y arquitectura, programación, pruebas, documentación y mantenimiento.
Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?, Que es IIngenieria del Software?,
La ingeniería de software (IS) trata sobre el desarrollo de sistemas de software complejos mediante procesos rigurosos, equipos de personas y herramientas. La IS busca construir productos de software de calidad a través de actividades como la gestión del desarrollo, el análisis, diseño e implementación. La IS se ha ido adaptando a factores como los cambios tecnológicos, las interfaces de usuario y los retos de satisfacer demandas en tiempos reducidos y cooperar con sistemas existentes y heterogéneos.
Este documento presenta los fundamentos y conceptos clave de la ingeniería de software. Explica que el software se desarrolla pero no se fabrica, cubre diferentes tipos de aplicaciones de software, y define la ingeniería de software como el establecimiento de principios robustos para crear software económico y confiable. También resume el proceso de desarrollo de software y los elementos clave de la ingeniería de sistemas.
Este documento presenta la agenda de una sesión de aprendizaje sobre modelamiento y análisis de software. Se introducen temas como modelamiento de sistemas, ingeniería de software e introducción a herramientas CASE. También incluye detalles sobre el silabo del curso como objetivos, unidades de aprendizaje, sistema de evaluación y bibliografía.
La ingeniería de software (IS) es la disciplina que se encarga del desarrollo de sistemas de software complejos mediante procesos rigurosos, equipos de personas y herramientas. La IS busca construir productos de software de calidad a través de actividades como la gestión del desarrollo, el análisis, diseño e implementación. A diferencia de la programación, la IS construye componentes que pueden combinarse en sistemas. La IS también se relaciona con la ingeniería de sistemas pero se enfoca más en el software.
Este documento resume las principales actividades de un ciclo de Vida de Desarrollo de Softwre, con el cual comprenderás la extension de areas de trabajo que se realizan en el analisis de sistemas. Este documento es un resumen del modelo mexicano para estandarizar la industria del software (MOPROSOFT).
Este documento presenta una introducción a la ingeniería de software. Explica que la ingeniería de software incluye métodos, herramientas y procedimientos para construir software de manera sistemática. Luego, describe algunos modelos de ciclo de vida de desarrollo de software como la cascada, el espiral, el prototipado y las metodologías ágiles. Finalmente, introduce el Modelo CMM para evaluar la madurez de los procesos de desarrollo de software en una organización.
Este documento presenta una introducción a la ingeniería de software. Explica que la ingeniería de software incluye métodos, herramientas y procedimientos para construir software de manera sistemática. Luego, describe algunos modelos de ciclo de vida de desarrollo de software como la cascada, el espiral, el prototipado y las metodologías ágiles. Finalmente, introduce el Modelo CMM para evaluar la madurez de los procesos de desarrollo de software en una organización.
Este documento presenta una introducción a la ingeniería de software. Explica que la ingeniería de software incluye métodos, herramientas y procedimientos para construir software de manera sistemática. Luego, describe algunos modelos de ciclo de vida de desarrollo de software como la cascada, el espiral, el prototipado y las metodologías ágiles. Finalmente, introduce el Modelo CMM para evaluar la madurez de los procesos de desarrollo de software en una organización.
1. La ingeniería de software se define como la disciplina que se enfoca en los aspectos prácticos de producir software a través de todo su ciclo de vida, incluyendo la especificación, desarrollo, validación y evolución. 2. Existen diferentes tipos de sistemas de software como aplicaciones independientes, sistemas embebidos, sistemas interactivos y de procesamiento por lotes. 3. El proceso de ingeniería de software incluye actividades como la especificación de requerimientos, desarrollo, pruebas y evolución para
El documento presenta una introducción al curso de Ingeniería de Software I. Explica la importancia de la ingeniería de software debido a que las sociedades dependen cada vez más de sistemas de software seguros y económicos. Describe los conceptos básicos como el proceso de desarrollo de software, las características de un buen software, y los principios éticos de la ingeniería de software.
Ambitos de desarrollo del ingeniero en sistemasdjgogo
Este documento describe varios ámbitos en los que un ingeniero en sistemas computacionales puede desempeñarse, incluyendo ingeniería de software, administración y servicios TI, arquitectura de software, software base, telecomunicaciones, programación y tratamiento de la información. El objetivo es informar a los estudiantes sobre las opciones de carrera disponibles para que puedan enfocarse o especializarse en uno de estos ámbitos laborales después de graduarse.
La ingeniería de software estudia la creación de software confiable y de calidad basándose en métodos y técnicas de ingeniería. Algunas aplicaciones de la ingeniería de software incluyen software de sistemas, software de tiempo real, software de gestión y software empotrado. Existen varios modelos para el desarrollo de software como el modelo en cascada, el modelo en espiral y el modelo de prototipos.
Ambitos de desarrollo del ingeniero en sistemasdjgogo
Este documento describe varios ámbitos en los que un ingeniero en sistemas puede desarrollarse profesionalmente, incluyendo ingeniería de software, administración y servicios TI, arquitectura de software, software base, telecomunicaciones, programación y tratamiento de información. El ingeniero en sistemas tiene una carrera multifacética y puede aplicar sus conocimientos en estas áreas de manera competente y funcional.
AMBITOS DE DESARROLLO DEL INGENIERO EN SISTEMASdjgogo
Este documento describe varios ámbitos en los que un ingeniero en sistemas puede desarrollarse profesionalmente, incluyendo ingeniería de software, administración y servicios TI, arquitectura de software, software base, telecomunicaciones, programación y tratamiento de la información. El objetivo es informar a los estudiantes sobre sus opciones de carrera para que puedan especializarse en uno de estos campos después de graduarse.
LA PEDAGOGIA AUTOGESTONARIA EN EL PROCESO DE ENSEÑANZA APRENDIZAJEjecgjv
La Pedagogía Autogestionaria es un enfoque educativo que busca transformar la educación mediante la participación directa de estudiantes, profesores y padres en la gestión de todas las esferas de la vida escolar.
Ponencia en I SEMINARIO SOBRE LA APLICABILIDAD DE LA INTELIGENCIA ARTIFICIAL EN LA EDUCACIÓN SUPERIOR UNIVERSITARIA. 3 de junio de 2024. Facultad de Estudios Sociales y Trabajo, Universidad de Málaga.
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
01 intro i-sw
1. Fundamentos de Ingeniería de Software
Marcello Visconti y Hernán Astudillo
Departamento de Informática
Universidad Técnica Federico Santa María
{visconti,hernan} at inf.utfsm.cl
Fundamentos de Ingeniería de SW 1
Presentación
z Instructores
Ø Marcello Visconti
q Oficina: F-216
Ø Hernán Astudillo
q Oficina: F-118
z Horario & materiales
Ø Clases: Ma-Mi 7-8 y 9-10; sala M.203
Ø Ayudantías y evaluaciones: Ju 7-8, M-201 y M-203
Ø www.inf.utfsm.cl/~visconti/ili236/
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 2
1
2. Introducción a la Ingeniería de Software
Contenido
z Conceptos básicos de Ingeniería de Software
z El Software: Factores de Calidad
Ø Factores Externos
Ø Factores Internos
z El ciclo de vida de Desarrollo de Software
Ø Ciclo de vida clásico
Ø Ciclo de vida con prototipado
Ø Ciclo de vida evolutivo
z Principios del diseño
Ø Abstracción
Ø Ocultamiento de Información
Ø Modularidad
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 3
Introducción a la Ingeniería de Software
Objetivos
z Presentar al alumno los conceptos básicos relacionados con la
Ingeniería de Software.
z Estudiar diversos ciclos de vida.
z Presentar los principios de ingeniería que se emplean en la etapa de
diseño.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 4
2
3. Introducción a la Ingeniería de Software
Conceptos básicos de Ingeniería de Software [1]
z El término “Ingeniería de Software” surge a final de los años 60 dentro
de una conferencia dedicada a “la crisis del software”.
z La Ingeniería de Software se define cómo la disciplina tecnológica
relacionada con la producción sistemática y el mantenimiento de
productos de software que son desarrollados y modificados en el
tiempo previsto y dentro de los costos estimados.
Ø El objetivo de la Ingeniería de Software es producir productos de software.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 5
Introducción a la Ingeniería de Software
Conceptos básicos de Ingeniería de Software [2]
z Los productos de software caen en dos categorías:
Ø Productos genéricos: Desarrollados para un mercado (p.ej. MS Office).
Ø Productos a medida: Encargados por un cliente (p.ej. SIGA).
z Productos de software: sistemas de software junto a la documentación
que describe cómo instalarlo y usarlo.
Ø Documentación de requerimientos.
Ø Documentación de diseño.
Ø Código fuente.
Ø Planes de pruebas del sistema.
Ø Principios de operación.
Ø Instrucciones de instalación.
Ø Procedimientos de mantenimiento.
Ø Manuales de usuario.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 6
3
4. Introducción a la Ingeniería de Software
Conceptos básicos de Ingeniería de Software [3]
Métodos
Ingeniería
de Software
Herramientas Procedimientos
z Ingeniería del Software:
Ø“Conjunto de métodos, herramientas y procedimientos para producir
software de gran calidad” [R. Pressman]
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 7
Introducción a la Ingeniería de Software
Conceptos básicos de Ingeniería de Software [4]
z Los métodos describen cómo construir técnicamente el software.
Comprende las actividades de:
Ø Planificación y estimación de proyectos.
Ø Análisis de requisitos.
Ø Diseño.
Ø Codificación.
Ø Prueba.
Ø Mantenimiento.
z Las herramientas dan soporte automático o semiautomático a los
métodos.
z Los procedimientos relacionan formalmente los métodos y las
herramientas.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 8
4
5. Introducción a la Ingeniería de Software
Factores de calidad de Software [1]
z La calidad del software es una noción que puede ser descrita mediante
una serie de factores, que pueden ser:
Ø Externos: observables por los usuarios del producto.
Ø Internos: observables por profesionales de la computación .
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 9
Introducción a la Ingeniería de Software
Factores de calidad de Software [2]
z Factores de calidad externos:
Ø Corrección: Capacidad de los productos software de ejecutar exactamente
sus tareas tal cómo están definidas en su especificación de
requerimientos.
Ø Robustez: Capacidad de un sistema software para funcionar en situaciones
anormales.
Ø Modificabilidad: Facilidad de un producto para adaptarse al cambio de
especificaciones.
Ø Reusabilidad: Facilidad para ser reutilizado en todo o en parte para nuevas
aplicaciones.
Ø Compatibilidad: Facilidad de los productos software para combinarse unos
con otros.
Ø Eficiencia: Buen uso de los recursos Software y Hardware disponibles.
Ø (cont.)
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 10
5
6. Introducción a la Ingeniería de Software
Factores de calidad de Software [3]
z Factores de calidad externos (cont.):
Ø Portabilidad: Facilidad para adaptarse a otros entornos software o
hardware.
Ø Verificabilidad: Facilidad para preparar procedimientos de aceptación, en
particular datos de prueba, para detectar fallos durante las fases de
validación y operación.
Ø Integridad: Capacidad de un sistema para proteger sus documentos
(programas, datos) contra accesos y modificaciones no autorizados.
Ø Facilidad de uso: Capacidad de aprender a manejar un sistema software,
operar con el, preparar datos de entrada, interpretar resultados, etc.
z Factores de calidad internos:
Ø Modularidad: Independencia funcional de los componentes del programa.
Ø Legibilidad: Facilidad de lectura e interpretación del código del programa
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 11
Introducción a la Ingeniería de Software
Ciclo de vida de Software
z Ciclo de vida: Sucesión de etapas por las que atraviesa un producto
software a lo largo de su desarrollo y existencia.
z Existen distintas formas o paradigmas de ciclo de vida:
Ø Clásico.
Ø Clásico con prototipado.
Ø Evolutivo o en espiral.
Ø Prototipado puro.
Ø Combinación de estilos, etc.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 12
6
7. Introducción a la Ingeniería de Software
Ciclo de vida de Software: Clásico [1]
z Propuesto por W. Royce a principios de los años 70.
z Aplicación secuencial de una serie de pasos.
z Cada paso genera entradas y documentación para la siguiente.
Análisis Diseño Codificación Integración
Ciclo de vida clásico ideal
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 13
Introducción a la Ingeniería de Software
Ciclo de vida de Software: Clásico [2]
z El ciclo de vida clásico real tiene la siguiente forma:
Análisis
Diseño
Codificación
Pruebas
Unitarias
Pruebas de
Integración
Pruebas de
aceptación
A todas las fases Mantenimiento
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 14
7
8. Introducción a la Ingeniería de Software
Ciclo de vida de Software: Clásico [3]
z Críticas al ciclo de vida clásico:
Ø Proyectos raramente siguen el flujo secuencial.
Ø Dificultad para establecer los requerimientos al principio del proceso.
Ø Errores detectados tardíamente.
Ø Mantenimiento por “parcheado” (Corregir según se presenten los
problemas).
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 15
Introducción a la Ingeniería de Software
Ciclo de vida de Software: Prototipado [1]
z Prototipear consiste en construir una versión inicial de un producto, en
la cual se describe la interacción hombre-máquina sin implementar
completamente la funcionalidad del sistema (prototipo sin
funcionalidad).
z Utilidad:
Ø Ayuda a los analistas a establecer las necesidades del cliente.
Ø Ayuda a los desarrolladores a mejorar los productos.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 16
8
9. Introducción a la Ingeniería de Software
Ciclo de vida de Software: Prototipado [2]
Especificación
Construcción Análisis
del Prototipo
Validación
Diseño
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 17
Introducción a la Ingeniería de Software
Ciclo de vida de Software: Prototipado [3]
z Clases de prototipos:
Ø Vertical: desarrolla completamente algunas de las facetas del producto.
Ø Horizontal: desarrolla parcialmente todas las facetas del producto.
Ø Evolutivo: La versión final es el producto ya construido.
Ø Desechable: Se usa sola para la captación de requerimientos y
funcionalidad.
z Observaciones sobre el prototipado:
Ø Facilita la captación de los requerimientos del cliente.
Ø Reduce el riesgo de “parcheado” del producto final.
Ø La construcción del prototipo supone una inversión adicional.
Ø El cliente ve funcionando una versión de lo que será su programa sin
asumir que dicha versión no es robusta ni completa.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 18
9
10. Introducción a la Ingeniería de Software
Ciclo de vida de Software: Evolutivo [1]
z Proceso evolutivo (espiral)
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 19
Introducción a la Ingeniería de Software
Ciclo de vida de Software: Evolutivo [2]
z Sistemas OO tienden a evolucionar en el tiempo.
z Modelo evolutivo de proceso acoplado es el mejor paradigma para la
Ingeniería del SW OO.
Ø Fomenta el ensamblaje (reuso) de componentes.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 20
10
11. Introducción a la Ingeniería de Software
Principios del diseño
z Los principios fundamentales sobre los que se sustenta la Ingeniería
de Software son:
Ø Abstracción
Ø Ocultamiento de Información
Ø Modularidad
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 21
Introducción a la Ingeniería de Software
Principios del diseño: Abstracción [1]
z Mecanismos de abstracción:
Ø Abstracción de procedimientos o funcional.
Ø Abstracción funcional con excepciones.
Ø Abstracción de datos.
Nombre = Procedimiento (v1: T1,..,vn: Tn) Retorna( v1’:T1’,..,vm’:Tm’);
requiere
efectos
modifica
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 22
11
12. Introducción a la Ingeniería de Software
Principios del diseño: Abstracción [2]
z Abstracción de procedimientos o funcional.
Ø Relacionada con los procedimientos o funciones de un lenguaje de
programación.
Ø Proporciona una función de un conjunto de entradas a un conjunto de
salidas, pudiendo eventualmente modificar algunas de las entradas.
z Las abstracciones funcionales se pueden especificar con la siguiente
plantilla:
Nombre = Procedimiento (v1: T1,..,vn: Tn) Retorna( v1’:T1’,..,vm’:Tm’);
requiere
efectos
modifica
Ø “Requiere” contiene las precondiciones de la abstracción.
Ø “Modifica” lista los parámetros de entradas que son modificados.
Ø “Efectos” describe cómo transforma las entradas en salidas.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 23
Introducción a la Ingeniería de Software
Principios del diseño: Abstracción [3]
z Ejemplos de abstracciones funcionales.
Concatenar = Procedimiento( a, b: String ) Retorna( c: String );
efectos: devuelve en c la concatenación de los strings a y b.
Buscar = Procedimiento( a: array[integer , x:integer) Retorna( i: integer );
requiere: a ordenado en orden ascendente.
efectos: Si x ocurre en a, retorna la posición que ocupa. En otro caso i es
igual al tamaño del vector mas uno.
Quitar_Duplicados = Procedimiento( a: array[integer ) Retorna( );
modifica: a
efectos: quita los elementos duplicados de a.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 24
12
13. Introducción a la Ingeniería de Software
Principios del diseño: Abstracción [4]
z Abstracciones funcionales con excepciones.
Ø Contienen más de un estado de terminación.
Ø Proporcionan un conjunto de funciones, de la forma:
Procedimiento: Dominio --> Rango.
Dominio = Do U D1 U.. Dn
Rango = Ro U R1 U.. Rn
Procedimiento: Do --> Normal(Ro)
Procedimiento: D1 --> Excepcional(R1).
.....
Procedimiento: Dn --> Excepcional(Rn)
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 25
Introducción a la Ingeniería de Software
Principios del diseño: Abstracción [5]
z Ejemplo de abstracciones funcionales con excepciones:
Nombre = Procedimiento(v1: T1,.., vn: Tn)
Retorna( v1’:T1’,..,vm’:Tm’)
Señala( NombreExcepcion1 ( v1”:T1”,...,vn”:Tk”),
...
NombreExcepcionn(...));
Buscar = Procedimiento(a:array[int ] , x: int) Retorna( i:int)
Señala( No_Ocurre, No_Ordenado, Ocurre(num:int )
efectos: Si a no esta ordenado en orden ascendente señala no_ordenado.
Señala No_Ocurre si x no ocurre. Si x ocurre una vez devuelve su posición.
Si ocurre varias señala Ocurre, siendo Num el número de veces.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 26
13
14. Introducción a la Ingeniería de Software
Principios del diseño: Abstracción [6]
z Abstracciones de datos.
Ø Relacionadas con el concepto de tipo abstracto de datos.
Ø Una abstracción de datos está formada por un conjunto de objetos y un
conjunto de operaciones (abstracciones funcionales) que manipulan esos
objetos.
Ø Se puede emplear la siguiente plantilla:
Nombre = Tipo de datos es Operacion1, Operacion2, ..., Operacionn
Descripción
Operaciones
Fin Nombre
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 27
Introducción a la Ingeniería de Software
Principios del diseño: Abstracción [7]
z Ejemplo de abstracción de datos:
Conjunto_Enteros = Tipo de datos es Crear, Insertar, Miembro_de, Elegir, Tamaño
Descripción: El tipo representa conjuntos no acotados de enteros
Operaciones
Crear = Procedimiento() Retorna( S: Conjunto_Enteros )
Efectos: Devuelve un conjunto vacío de enteros.
Insertar = Procedimiento( S: Conjunto_Enteros, x: Int)
Modifica: S
Efectos : Añade x a S.
...
Fin Nombre
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 28
14
15. Introducción a la Ingeniería de Software
Principios del diseño: Ocultamiento de información
z Principio de ocultamiento de información :
Ø“Los módulos de un sistema deben diseñarse de modo que la información
contenida en ellos sea inaccesible a todos aquellos módulos que no
necesiten tal información” (David Parnas, 1970)
INTERFAZ
DATOS INTERNOS
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 29
Introducción a la Ingeniería de Software
Principios del diseño: Modularidad [1]
z Modularidad:
Ø“Un método de diseño software se dice que es modular si ayuda a los
diseñadores a construir sistemas software formados por elementos
autónomos y organizados en arquitecturas sencillas”.
z Guías de modularidad:
ØPocas interfaces.
ØInterfaces estrechas.
ØInterfaces explícitas.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 30
15
16. Introducción a la Ingeniería de Software
Principios del diseño: Modularidad [2]
z Pocas interfaces:
Ø“En un sistema formado por N módulos, el número de conexiones entre
ellos debe acercarse más al número mínimo que al máximo”
Menos adecuado Más adecuado
Modulo1 Modulo 3 Modulo1 Modulo 3
Comunicación
Modulo 4 Modulo 4
Modulo 2 Modulo 2
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 31
Introducción a la Ingeniería de Software
Principios del diseño: Modularidad [3]
z Interfaces estrechas: Si dos módulos se comunican deben de
intercambiar el mínimo de información posible.
datos entrada
Módulo 1 Módulo 2
datos salida
datos
Módulo 1 Módulo 2
globales
z Interfaces explícitas: La comunicación entre dos módulos debe poder
deducirse a partir del texto de ambos.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 32
16
17. Introducción a la Ingeniería de Software
Principios del diseño
z “Aunque los computadores han tenido mucho éxito, la experiencia
diaria de uso de computadores es asociada muchas veces con
dificultad, pena y otras barreras para la mayoría de la gente... La falta
de usabilidad del software y un diseño pobre de los programas son
una vergüenza secreta de la industria.”
Ø (Mitchell Kapor, Software Design Manifesto, 1990)
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 33
Introducción a la Ingeniería de Software
Resumen
z Conceptos básicos de Ingeniería de Software
z El Software: Factores de Calidad
Ø Factores Externos
Ø Factores Internos
z El ciclo de vida de Desarrollo de Software
Ø El ciclo de vida clásico
Ø El ciclo de vida clásico con prototipado
Ø El ciclo de vida evolutivo
z Ingeniería de Software
Ø Principios de Ingeniería en la etapa de diseño
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 34
17
18. Introducción a la Ingeniería de Software
Quiz
z Explique el aporte y la relación entre métodos, herramientas y
procesos de Ingeniería de Software.
z ¿Porqué queremos productos de calidad?
z ¿Qué es un ciclo de vida?
z ¿Porqué se dice que el ciclo de vida evolutivo es mejor?
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 35
Introducción a la Ingeniería de Software
Quiz
z Explique las causas del
fenómeno definido en el
dibujo.
UTFSM
EXUMBRA I
N SOLEM
Fundamentos de Ingeniería de SW 36
18