Prévia do material em texto
<p>Engenharia de Requisitos de</p><p>Software</p><p>Introdução à Engenharia de</p><p>Software</p><p>Engenharia</p><p>2</p><p>❖ Desenvolvimento de um produto;</p><p>❖ Processo de desenvolvimento</p><p>envolvendo análise, design,</p><p>implementação e avaliação;</p><p>❖ Baseado em teoria, princípios,</p><p>modelos, métodos, técnicas e</p><p>ferramentas;</p><p>❖ Equipe de especialistas;</p><p>❖ Planejamento e gerenciamento de</p><p>recursos, custos e prazos.</p><p>Engenharia de Software</p><p>3</p><p>“Engenharia de software é uma disciplina cujo objetivo é produzir software isento</p><p>de falhas, entregue dentro do prazo e orçamentos previstos, e que atenda às</p><p>necessidades do cliente. Além disso, o software deve ser fácil de ser modificado</p><p>quando as necessidades dos usuários mudarem”.</p><p>Ian Sommerville</p><p>Engenharia de Software</p><p>4</p><p>A IEEE define Engenharia de software como:</p><p>“A aplicação de uma abordagem sistemática, disciplinada e quantificável de</p><p>desenvolvimento, operação e manutenção do software, além do estudo dessas</p><p>abordagens".</p><p>Engenharia de Software</p><p>5</p><p>Segundo Sommerville (2019):</p><p>“Engenharia de Software é uma disciplina de engenharia cujo foco está em todos os</p><p>aspectos da produção de software, desde os estágios iniciais da especificação do</p><p>sistema até a sua manutenção, quando o sistema está sendo usado”.</p><p>Engenharia de Software</p><p>6</p><p>Nesta definição, há duas frases importantes:</p><p>➢ Disciplina de engenharia: os engenheiros fazem as coisas funcionarem,</p><p>aplicando teorias, métodos e ferramentas onde for apropriado;</p><p>➢ Todos os aspectos da produção de software: e Engenharia de Software</p><p>não está relacionada apenas com os processos técnicos de</p><p>desenvolvimento de software, mas também com atividades como o</p><p>gerenciamento de projeto e o desenvolvimento de ferramentas, métodos</p><p>e teorias que apóiam a produção de software.</p><p>Objetivos da Engenharia de Software</p><p>7</p><p>❖ Aplicação de teoria, modelos, formalismos, técnicas e ferramentas da</p><p>ciência da computação e áreas afins para o desenvolvimento sistemático</p><p>de software;</p><p>❖ Aplicação de métodos, técnicas e ferramentas para o gerenciamento do</p><p>processo de desenvolvimento;</p><p>❖ Produção da documentação formal destinada a comunicação entre os</p><p>membros da equipe de desenvolvimento bem como aos usuários.</p><p>Princípios da Engenharia de Software</p><p>8</p><p>Todo engenheiro de software deve</p><p>desenvolver com:</p><p>o Rigor e Formalidade;</p><p>o Separação de interesses;</p><p>o Modularidade;</p><p>o Abstração;</p><p>o Antecipação de mudanças;</p><p>o Possibilidades de evolução.</p><p>Visão Genérica da Engenharia de Software</p><p>9</p><p>● Engenharia é a análise, o projeto, a construção, a verificação e a</p><p>gestão de elementos técnicos;</p><p>● Independente do elemento a ser tratado, as seguintes questões</p><p>devem ser colocadas e respondidas:</p><p>○ Qual é o problema a ser resolvido?</p><p>○ Que características do elemento são usadas para resolver o</p><p>problema?</p><p>○ Como o elemento será construído?</p><p>Visão Genérica da Engenharia de Software</p><p>10</p><p>Que abordagem será usada para descobrir</p><p>erros que foram cometidos no projeto e na</p><p>construção do elemento?</p><p>Como o elemento será mantido a longo</p><p>prazo, quando as correções, adaptações e</p><p>aperfeiçoamentos forem necessários?</p><p>Beneficios da Engenharia de Software</p><p>11</p><p>● Processos e softwares com maior qualidade;</p><p>● Softwares mais fáceis de usar;</p><p>● Manutenção mais fácil;</p><p>● Clientes mais satisfeitos;</p><p>● Maiores possibilidades de reuso do software;</p><p>● Custos e prazos mais precisos;</p><p>● Riscos minimizados e/ou tratados com maior precisão;</p><p>● Entre outros.</p><p>Engenharia Web</p><p>12</p><p>● É o processo usado para criar aplicações Web (WebApps) de alta</p><p>qualidade;</p><p>● Na Engenharia Web os conceitos, princípios e métodos da Engenharia de</p><p>Software são adaptados à natureza e às características particulares das</p><p>aplicações Web;</p><p>Engenharia de Software versus Engenharia Web</p><p>13</p><p>● Diferentes propósitos:</p><p>○ Aplicações convencionais: tipicamente oferecem serviços e soluções;</p><p>○ Websites: oferecem conteúdos que são informações e/ou serviços.</p><p>● Apresentação x Funcionalidade:</p><p>○ Aplicações: ênfase na funcionalidade e aplicabilidade;</p><p>○ Website: ênfase na apresentação, aparência, navegação e outras</p><p>qualidades estéticas.</p><p>Engenharia de Software versus Engenharia Web</p><p>14</p><p>● Tradição x Experiência:</p><p>○ Existe mais experiência no desenvolvimento de software</p><p>convencional, possibilitando planejamento e gerência mais</p><p>realística.</p><p>● Maturidade da tecnologia:</p><p>○ Engenharia de Software:</p><p>o Tecnologia mais estável;</p><p>○ Engenharia Web:</p><p>o Tecnologia em constante evolução.</p><p>Engenharia de Software versus Engenharia Web</p><p>15</p><p>● Público alvo:</p><p>○ Aplicação convencional: classe de usuários mais definida;</p><p>○ Websites: publico diversificado.</p><p>● Navegação:</p><p>○ Em websites o usuário tem maior controle na navegação.</p><p>Engenharia de Software versus Engenharia Web</p><p>16</p><p>● Multidisciplinaridade (na Engenharia Web)</p><p>○ Engenharia de Software, Hipermídia e Multimídia, Interação Usuário-</p><p>Computador, Indexação e Recuperação de Informação, Banco de</p><p>Dados, Artes, Comunicação Visual, Linguística Computacional,</p><p>Gerência de Projeto, Projeto e Apresentação Gráfica, Computação</p><p>Gráfica, etc.</p><p>Em suma:</p><p>17</p><p>Áreas relacionadas à Engenharia de Software</p><p>18</p><p>18</p><p>Engenharia de</p><p>Software</p><p>Interação</p><p>Homem-</p><p>Computador</p><p>Qualidade de</p><p>Software</p><p>Gerência de</p><p>Projetos de</p><p>Software</p><p>Modelagem</p><p>de Software</p><p>Processos de</p><p>Software</p><p>Engenharia</p><p>de Requisitos</p><p>Gestão da</p><p>Configuração</p><p>Manutenção</p><p>e</p><p>Implantação</p><p>Métricas e</p><p>Estimativas</p><p>*** CURIOSIDADE ***</p><p>19</p><p>FONTE:</p><p>https://www.institutodeengenharia.org.br/site/2018/09/28/engenharia-de-software-e-regulamentada-junto-ao-crea/</p><p>Referências Básicas</p><p>20</p><p>SOMMERVILLE, Ian. Engenharia de Software. 10. ed. São Paulo:</p><p>Pearson Education do Brasil,2019. xii, 756 p. ISBN 9788543024974.</p><p>PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia de software: uma</p><p>abordagem profissional. 9. ed. Porto Alegre: AMGH, 2021. E-book. ISBN</p><p>9786558040118.</p><p>Slides adaptados da Profº Fábio e da Profª Luciana</p><p>Slide 1: Engenharia de Requisitos de Software</p><p>Slide 2: Engenharia</p><p>Slide 3: Engenharia de Software</p><p>Slide 4: Engenharia de Software</p><p>Slide 5: Engenharia de Software</p><p>Slide 6: Engenharia de Software</p><p>Slide 7: Objetivos da Engenharia de Software</p><p>Slide 8: Princípios da Engenharia de Software</p><p>Slide 9: Visão Genérica da Engenharia de Software</p><p>Slide 10: Visão Genérica da Engenharia de Software</p><p>Slide 11: Beneficios da Engenharia de Software</p><p>Slide 12: Engenharia Web</p><p>Slide 13: Engenharia de Software versus Engenharia Web</p><p>Slide 14: Engenharia de Software versus Engenharia Web</p><p>Slide 15: Engenharia de Software versus Engenharia Web</p><p>Slide 16: Engenharia de Software versus Engenharia Web</p><p>Slide 17: Em suma:</p><p>Slide 18: Áreas relacionadas à Engenharia de Software</p><p>Slide 19: *** CURIOSIDADE ***</p><p>Slide 20: Referências Básicas</p>