La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Engenharia de Software I

Presentaciones similares


Presentación del tema: "Engenharia de Software I"— Transcripción de la presentación:

1 Engenharia de Software I
1

2 Engenharia de Software I
Unidade # 1 Processo de Software Conferência #1 Introdução à Engenharia de Software 2

3 Lembrando… 3

4 ¿Que é a Engenharia? 4

5 Engenharia: segundo a Real Academia de Ciências Exatas, Físicas e Naturais de Espanha
Conjunto de conhecimentos e técnicas cujo aplicativo permite a utilização racional dos materiais e dos recursos naturais, mediante invenções, construções ou outras realizações proveitosas para o homem.

6 Engenharia: segundo o IEEE(The Institute of Electrical and Electronics Engineers)
Engenharia é o aplicativo de um método sistémico, estruturado e cuantificable a estruturas, máquinas, produtos, sistemas ou processos.

7 ¿Que entendem por software?
7

8 ¿Que é um software? É a soma total dos programas de cómputo, procedimentos, regras documentação e dados associados que fazem parte das operações de um sistema de cómputo. Otra definición Software: es la suma total de los programas de cómputo, procedimientos, reglas documentación y datos asociados que forman parte de las operaciones de un sistema de cómputo. 8

9 ¿Todos os produtos de software têm as mesmas características?

10 Tipos de software Os 7 domínios de aplicativo (Pressman)
Software de sistema Software de aplicativo Software empotrado Software científico e de engenharia Software de inteligência artificial Software de linha de produtos Aplicativos baseados no site Software de sistema: colección de programas escritos para servir a otros programas. Algunos de los programas de sistema (como los compiladores, editores y utilerías para la edición de archivos) procesan estructuras de información complejas pero determinadas. Otras aplicaciones de sistemas (por ejemplo, componentes del sistema operativo) Software de aplicación: programas independientes que resuelven una necesidad de negocio específica. Las aplicaciones en esta área procesan datos empresariales o técnicos de forma que facilitan las operaciones de negocio o la toma de decisiones técnicas o de gestión. Software emportado: reside dentro de la memoria de solo lectura del sistema (Ejemplo: funciones digitales de un automóvil para el control del combustible) Software científico y de ingeniería: software que utiliza algoritmos numéricos para el análisis de la dinámica orbital de los transbordadores espaciales, la simulación de sistemas, el diseño asistido por computadoras, etc. Software de inteligencia artificial: software que utiliza algoritmos no numéricos en la resolución de problemas complejos. Ejemplo: robótica, sistemas expertos, reconocimiento de patrones, las redes neuronales artificiales, los juegos por computadora. Software de línea de productos: diseñado para proporcionar una capacidad específica y la utilización de muchos clientes diferentes, se puede enfocar en un nicho de mercado limitado (productos para el control de inventarios) o dirigirse hacia los mercados masivos (procesadores de texto, hojas de cálculo, manejos de bases de datos, multimedia, entretenimiento). Aplicaciones basadas en la web: Las “webApps” o conjunto de archivos de hipertexto integrados con bases de datos corporativas y aplicaciones de negocios. Las primeras se desarrollaron en el área del comercio electrónico.

11 ¿Por que foi criada a Engenharia de Software?
Crisis del software: Básicamente, la crisis del software se refiere a la dificultad en escribir programas libres de defectos, fácilmente comprensibles, y que sean verificables. Las causas son, entre otras, la complejidad que supone la tarea de programar, y los cambios a los que se tiene que ver sometido un programa para ser continuamente adaptado a las necesidades de los usuarios. Retrasos no previstos Desbordamiento de costes: el sistema operativo OS/360 fue un ejemplo clásico. Este proyecto que duró una década desde los años 1960 finalmente produjo uno de los más complejos sistemas de software de ese tiempo. El OS/360 fue uno de los primeros de grandes proyectos de software (1000 programadores) Software no acorde con los requisitos. (Existencia de un vacío de información entre la especificación del producto software y su entrega. El producto surge espontáneamente después de un largo periodo de oscuridad.) [Ing. Mecánica buscar gato negro en habitación iluminada, Ing. Química buscar gato negro en habitación oscura, Ing. de Software buscar gato negro en habitación oscura donde no hay ningún gato] Problemas de entendimiento entre los involucrados en el desarrollo del software. Errores en los programas: Defectos de software pueden causar daños a la propiedad. Escasa seguridad de software permite a hackers robar identidades, costando tiempo, dinero y reputaciones. Defectos de software pueden matar. Algunos sistemas embebidos en máquinas de radioterapia fallaron de una manera tan catastrófica que administraron dosis letales de radiación a pacientes. La más famosa de estas fallas es el incidente de Therac 25. Sensibilidad a los errores humanos y a las averías físicas Dificultad de puesta en marcha Dificultad de evolución Mantenimiento ruinoso

12 História da Engenharia de Software
Crise do software Fritz Bauer – Conferencia OTAN 1967 Esta premisa fue avalada por la Conferencia de Ingeniería de Software de la OTAN en 1968, que concluyó que la ingeniería de software debería usar las filosofías y paradigmas de la ingeniería establecida para lo que aún entonces ya era una crisis del software (enmarcada entre ).

13 PRINCIPAIS FALHAS NOS PROJECTOS DE SOFTWARE
1. Planejamento irreal 2. Má qualidade do trabalho 3. Pessoal inadequado 4. Mudanças não controladas 13

14 ¿Qué é Engenharia de Software?
La ingeniería de software es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de este después que se utiliza. Disciplina de la ingeniería: Los ingenieros hacen que las cosas funcionen. Aplican teorías, métodos y herramientas donde sean convenientes, pero las utilizan de forma selectiva y siempre tratando de descubrir soluciones a los problemas. Los ingenieros también saben que deben trabajar con restricciones financieras y organizacionales, por lo que buscan soluciones teniendo en cuenta estas restricciones. Todos los aspectos de la producción de software: La ingeniería de software no solo comprende los procesos técnicos del desarrollo del software sino también actividades como la gestión de proyectos de software y el desarrollo de herramientas, métodos y teorías de apoyo a la producción de software. ANTECEDENTES DE LA INGENIERÍA DE SOFTWARE El término "ingeniería de software" se acuñó en 1967 por un grupo de estudio de la OTAN (Organización del Tratado del Atlántico Norte) para significar "el establecimiento y uso de principios establecidos de ingeniería con el objetivo de obtener software económico que sea confiable y trabaje eficientemente en computadoras reales". Este punto de vista se opuso a la "magia" de la programación en un esfuerzo de cambiar el desarrollo de software de "mágico" (que sólo unos pocos escogidos pueden hacer) a "arte" (que los talentosos pueden hacer) a "ciencia" (que supuestamente cualquiera puede hacer). Esta premisa fue avalada por la Conferencia de Ingeniería de Software de la OTAN en 1968, que concluyó que la ingeniería de software debería usar las filosofías y paradigmas de la ingeniería establecida para lo que aún entonces ya era una crisis del software. ¿Por qué surgió la ingeniería de software? En pocas palabras, por la crisis del software 14

15 Definição de ESW Disciplina da engenharia que compreende todos os aspectos de produção de software desde as etapas iniciais da especificação do sistema até a manutenção deste depois que se utiliza. (Sommerville) La ingeniería de software es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de este después que se utiliza. Disciplina de la ingeniería: Los ingenieros hacen que las cosas funcionen. Aplican teorías, métodos y herramientas donde sean convenientes, pero las utilizan de forma selectiva y siempre tratando de descubrir soluciones a los problemas. Los ingenieros también saben que deben trabajar con restricciones financieras y organizacionales, por lo que buscan soluciones teniendo en cuenta estas restricciones. Todos los aspectos de la producción de software: La ingeniería de software no solo comprende los procesos técnicos del desarrollo del software sino también actividades como la gestión de proyectos de software y el desarrollo de herramientas, métodos y teorías de apoyo a la producción de software.

16 Razão da ESW Estudar quais são as actividades que organizadas, fazendo uso racional dos recursos e se apoiando em técnicas e ferramentas, conseguem a maior eficiência ao construir um software. 16

17 Base que sustenta a ESW A ESW é uma tecnologia multicapa ou estratificada como conta com 3 capas (Ferramentas, Métodos, Processo) e um enfoque de qualidade como base. 17

18 ENGENHARIA DE SOFTWARE
¿Com que? ¿Como? ¿Que? Compromisso Se explica que la IS es una tecnología multicapa o estratificada debido a que cuenta con 3 capas (Herramientas, Métodos, Proceso) y un enfoque de calidad como base. Cualquier enfoque de la ingeniería debe estar sustentado en un compromiso con la calidad. La ISW se sustenta en un compromiso con la calidad, está enfocada en la calidad. La base de la ingeniería de software es el estrato del proceso. Este proceso define un marco de trabajo que se establece para la entrega efectiva de la tecnología y establece el contexto en el cual se aplican los métodos técnicos. Los métodos proporcionan los “cómo” técnicos para construir software y abarcan un amplio espectro de tareas sobre la base de principios que gobiernan cada área de la tecnología e incluye actividades de modelado y otras técnicas descriptivas. Las herramientas de ISW proporcionan el soporte automatizado o semiautomatizado para el proceso y los métodos. Mencionarles que existe la Integración del Modelo de Madurez y Capacidades (CMMI, por sus siglas en inglés; o IMCM, por sus siglas en español) creado por el SEI, que define niveles de capacidad de los procesos y niveles de madurez de las empresas y que actualmente la UCI se encuentra trabajando con el objetivo de alcanzar el nivel 2 de madurez de todos sus proyectos. “A base que sustenta a engenharia do software é um enfoque na qualidade” 18

19 As 4 "P" da Engenharia de Software
Existen otros elementos que son imprescindibles a la hora de desarrollar software, lo que da pie a mencionarles las 4 “P” de la IS (este tema está disponible en la 6ta5 y en la 7ma6 edición del libro de Pressman) y explica cada uno de los elementos; asociando estas herramientas y el proceso con las capas de la IS que habían visto. El resultado final de un Proyecto software es un producto, donde intervienen Personas a través de un Proceso de desarrollo de software que guía los esfuerzos de las personas implicadas en el proyecto, a modo de plantilla que explica los pasos necesarios para terminar el proyecto. Típicamente, el Proceso es automatizado por medio de una herramienta o un conjunto de ellas. Personas: Los principales autores de un proyecto software son los arquitectos, desarrolladores, ingenieros de prueba, y el personal de gestión que les da soporte, además de los usuarios, clientes, y otros interesados. Las personas son realmente seres humanos, a diferencia del termino abstracto trabajadores, que introduciremos más adelante Proyecto: Elemento organizativo a través del cual se gestiona el desarrollo de software. El resultado de un proyecto es una versión de un producto. Producto: Artefactos que se crean durante la vida del proyecto, como los modelos, código fuente, ejecutables, y documentación. Proceso: Un proceso de ingeniería de software es una definición del conjunto completo de actividades necesarias para transformar los requisitos de usuario en un producto. Un proceso es una plantilla para crear proyectos. Herramientas: Software que se utiliza para automatizar las actividades definidas en el proceso. Cuando explique las “Personas” el profesor puede recordarles los modelos de PSP y TSP, que conocieron en la asignatura Práctica Profesional 1 de 1er año.

20 As 4 "P" da Engenharia de Software
O resultado final de um Projecto software é um Produto, onde intervêm Pessoas que trabalham através de um Processo de Desenvolvimento de Software que guia seus esforços passo a passo para terminar o projecto. Existen otros elementos que son imprescindibles a la hora de desarrollar software, lo que da pie a mencionarles las 4 “P” de la IS (este tema está disponible en la 6ta5 y en la 7ma6 edición del libro de Pressman) y explica cada uno de los elementos; asociando estas herramientas y el proceso con las capas de la IS que habían visto. El resultado final de un Proyecto software es un producto, donde intervienen Personas a través de un Proceso de desarrollo de software que guía los esfuerzos de las personas implicadas en el proyecto, a modo de plantilla que explica los pasos necesarios para terminar el proyecto. Típicamente, el Proceso es automatizado por medio de una herramienta o un conjunto de ellas. Personas: Los principales autores de un proyecto software son los arquitectos, desarrolladores, ingenieros de prueba, y el personal de gestión que les da soporte, además de los usuarios, clientes, y otros interesados. Las personas son realmente seres humanos, a diferencia del termino abstracto trabajadores, que introduciremos más adelante Proyecto: Elemento organizativo a través del cual se gestiona el desarrollo de software. El resultado de un proyecto es una versión de un producto. Producto: Artefactos que se crean durante la vida del proyecto, como los modelos, código fuente, ejecutables, y documentación. Proceso: Un proceso de ingeniería de software es una definición del conjunto completo de actividades necesarias para transformar los requisitos de usuario en un producto. Un proceso es una plantilla para crear proyectos. Herramientas: Software que se utiliza para automatizar las actividades definidas en el proceso. Cuando explique las “Personas” el profesor puede recordarles los modelos de PSP y TSP, que conocieron en la asignatura Práctica Profesional 1 de 1er año.

21 A base da ESW é o estrato do processo
A base da ESW é o estrato do processo. Este processo define um marco de trabalho que se estabelece para a entrega efetiva da tecnologia e estabelece o contexto no qual se aplicam os métodos técnicos. 21

22 Os métodos proporcionam as ideias técnicas para construir software e abarcam um amplo espectro de tarefas sobre a base de princípios que governam a cada área da tecnologia e inclui actividades de modelagem e outras técnicas descritivas. As ferramentas de ISW proporcionam o suporte automatizado ou semiautomatizado para o processo e os métodos. 22

23 ¿Que é um processo de desenvolvimento de software?
Se explica que el proceso de desarrollo de software no es único. No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. Debido a esta diversidad, es difícil automatizar todo un proceso de desarrollo de software. A pesar de la variedad de propuestas de proceso de software, existe un conjunto de fases y actividades fundamentales que se encuentran presentes en todos ellos.

24 PROCESO DE DESENVOLVIMENTO DE SOFTWARE
Um Processo de Desenvolvimento de Software é a definição do conjunto de atividades que guiam os esforços das pessoas implicadas no projecto, a modo de plantilla que explica os passos necessários para terminar o projecto. Un Proceso de Desarrollo de Software es la definición del conjunto de actividades que guían los esfuerzos de las personas implicadas en el proyecto, a modo de plantilla que explica los pasos necesarios para terminar el proyecto. Se les explica que el proceso es el fundamento de la IS y que ese proceso puede estar formado por un grupo de tareas que se ajustan en dependencia de las características del proyecto; pero que siempre se encuentran alrededor de las fases o actividades genéricas del proceso.

25 ¿É único o processo de desenvolvimento de software?
Se explica que el proceso de desarrollo de software no es único. No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. Debido a esta diversidad, es difícil automatizar todo un proceso de desarrollo de software. A pesar de la variedad de propuestas de proceso de software, existe un conjunto de fases y actividades fundamentales que se encuentran presentes en todos ellos.

26 O processo de desenvolvimento de software não é único.
Não existe um processo de software universal que seja efetivo para todos os contextos de projectos de desenvolvimento. Devido a esta diversidade, é difícil automatizar todo um processo de desenvolvimento de software. Se explica que el proceso de desarrollo de software no es único. No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. Debido a esta diversidad, es difícil automatizar todo un proceso de desarrollo de software. A pesar de la variedad de propuestas de proceso de software, existe un conjunto de fases y actividades fundamentales que se encuentran presentes en todos ellos.

27 Apesar da variedade de propostas de processo de software, existe um conjunto de fases e actividades fundamentais que se encontram presentes em todos eles. Se explica que el proceso de desarrollo de software no es único. No existe un proceso de software universal que sea efectivo para todos los contextos de proyectos de desarrollo. Debido a esta diversidad, es difícil automatizar todo un proceso de desarrollo de software. A pesar de la variedad de propuestas de proceso de software, existe un conjunto de fases y actividades fundamentales que se encuentran presentes en todos ellos.

28 MARCO DE TRABALHO COMUM DO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

29 ¿Qué é um Marco de Trabalho?
Um marco de trabalho estabelece a base para um processo de software completo ao identificar um número pequeno de actividades aplicáveis a todos os projectos de software, (genéricas) sem importar seu tamanho ou complexidade. Ademais abarca um conjunto de actividades sombrillas aplicáveis ao longo do processo do software. Un marco de trabajo establece la base para un proceso de software completo al identificar un número pequeño de actividades aplicables a todos los proyectos de software, sin importar su tamaño o complejidad. Además abarca un conjunto de actividades sombrillas aplicables a lo largo del proceso del software. Ya teniendo este punto de partida se les explica en qué consisten los términos actividad, acción y tarea. Cada actividad dentro del marco de trabajo contiene un conjunto de acciones de ingeniería de software y a su vez cada acción la forman tareas de trabajo individuales que la complementan. Respecto a las actividades genéricas debe hacerse énfasis en que, independientemente de que se pongan de manifiesto en la mayoría de los procesos de desarrollo de software, no necesariamente tienen que ocurrir de manera lineal.

30 Actividades genéricas (Pressman)

31 Actividades genéricas. Comunicação
• Intensa comunicação e colaboração com os clientes do aplicativo. • Investigação de requisitos. • Definição do meio e o alcance do projecto. • Determinação da confiabilidade do projecto. • Intensa comunicación y colaboración con los clientes de la aplicación. • Investigación de requisitos. • Definición del entorno y el alcance del proyecto. • Determimación de la fiabilidad del proyecto.

32 Actividades genéricas. Planejamento
• Estabelecer um plano para o trabalho da Engenharia de Software. • Descrição das tarefas técnicas que devem se realizar. • Determinação dos riscos prováveis.

33 Actividades genéricas. Planejamento
• Identificação e cálculo dos recursos necessários. • Estabelecimento dos produtos do trabalho que deverão se obter. • Definir um programa de trabalho.

34 Actividades genéricas. Modelagem
• Construção de modelos do software que permitam o entendimento do cliente e os desenvolvedores. • Expressão nos modelos dos requisitos do sistema, o meio de trabalho e o sistema a desenvolver; bem como seu despliegue físico. • Construcción de modelos del software que permitan el entendimiento del cliente y los desarrolladores. • Expresión en los modelos de los requisitos del sistema, el entorno de trabajo y el sistema a desarrollar; así como su despliegue físico.

35 Actividades genéricas. Construção
• Desenvolvimento em código (manual ou automatizado) dos modelos desenhados para o sistema. • Realização de provas ao software desde os níveis de unidade até o nível de sistema.

36 Actividades genéricas. Despliegue
• Instalação do software resultante no meio do cliente. • Avaliação por cliente do produto recebido, quem entrega então informação da conformidade com o resultado. Instalación del software resultante (como una unidad completa o en unidades que se incrementan en distintos momentos del desarrollo, por ejemplo la entrega por módulos del resultado total del sistema) en el entorno del cliente.

37 Uma conclusão importante…
• Ainda que estas atividades são genéricas a todo o tipo de sistemas, os detalhes do processo de desenvolvimento de software serão muito diferentes na cada caso, ainda que as atividades dentro do marco de trabalho permanecerão iguais.

38 Actividades sombrilla
Ocorrem ao longo do processo de desenvolvimento de software e focam-se de maneira principal no relacionado à gestão, o rastreamento; bem como ao controle do projecto. Actividades sombrilla Ocurren a lo largo del proceso de desarrollo de software y se enfocan de manera principal en lo relacionado a la gestión, el rastreo o seguimiento; así como al control del proyecto

39 Actividades sombrilla
1- Rastreamento e controle do projecto de software. 2- Gestão do risco. 3- Garantia da qualidade do software. 4- Revisões técnicas formais. 1 •Evaluación del proyecto en su ejecución de acuerdo con lo planificado. •Permiten tomar las medidas necesarias para ajustar el cronograma o mantenerlo en su definición inicial. 2 •Evalúan los riesgos a los cuales pudiera enfrentarse el proyecto, tanto técnicos, como de gestión y de ejecución del proyecto. •Permite definir los factores externos e internos del proyecto que pudieran afectar la ejecución del cronograma del proyecto. •Diseña la mitigación y la contingencia a dichos riesgos. 3 •Se definen las actividades en forma de plan que en integradas al plan o cronograma del proyecto garantizarán la calidad del producto. •No son actividades aisladas sino que sistémicamente en las áreas de proceso, proyecto y persona, garantizarán la calidad del producto. 4 Actividades encaminadas a evaluar los productos del trabajo de la ingeneiría del software. •Están encaminadas a identificar y eliminar los errores, defectos y fallas ante de que estas se propaguen al resto de las fases del desarrollo del software.

40 Actividades sombrilla
5- Medida. 6- Gestão da configuração do software. 7- Gestão da reutilização. 8- Preparação e produção do produto de trabalho. 5 Definen, calculan y recolectan mediciones de todo en el proceso, proyecto y producto (entre estas se pueden mencionar tiempo, esfuerzo y recursos) para ayudar al equipo a establecer sus métricas de trabajo y de desarrollo. 6 Actividades que tiene como objetivo manejar y documentar los cambios que se producen en el proyecto que afectan al producto de forma tal que puedan ser rastreados y corregidos los cambios al producto y los efectos que estos puedan tener (muchas veces para poder revertirlos ante situaciones desfavorables en su aplicación o resultado final). 7 •Establece los criterios o pautas para la reutilización de partes, unidades, módulos o componentes del producto, sobre las cuales se organiza el trabajo de desarrollo del software. •Establece a su vez los procedimientos o mecanismos a través de los cuales se desarrollarán estas partes del producto. Establece los criterios o pautas para la producción de los productos del trabajo (modelos, documentos, registros, formatos y listas) los cuales son necesarios para un entendimiento y lenguaje común entre los desarrolladores del producto. 8

41 Vista geral do Marco de Trabalho

42 Conclusões • ¿Que é um software? ¿Que tipos de software ou domínios de aplicativo existem? • ¿Quais são os aspectos mais importantes que definem a ESW? • ¿Que importância lhe concedem ao surgimento da ESW? • ¿Por que se diz que a ESW é uma tecnologia multicapas ou estratificada?

43 Conclusões • ¿Quais são as capas da ESW e como se relacionam entre si?
• ¿Quais são as actividades genéricas propostas por Pressman? • ¿Que actividades sombrilla aparecem durante um processo de desenvolvimento de software?

44 TRABALHO INDIVIDUAL Estudar-se os conteúdos referidos aos 2 enfoques da ESW (ágil e prescriptivo). Fazer um mapa conceptual que caracterize à cada um e explique pára que tipo de contexto se recomenda seu uso.

45 BIBLIOGRAFÍA -TRABALHO
Introdução ao capítulo 3. Epígrafe Páginas Pressman Introdução ao capítulo 4. Epígrafes e 4.2. Páginas Pressman

46 Engenharia de Software I
46


Descargar ppt "Engenharia de Software I"

Presentaciones similares


Anuncios Google