Baixe o app para aproveitar ainda mais
Prévia do material em texto
2019.2 ARA0097 ENGENHARIA DE SOFTWARE PROFESSOR: RAIMUNDO AGUIAR XAVIER 1 2019.2 Aula 01 - CONTEÚDO 2 ➢ FUNDAMENTOS: SOFTWARE e ENGENHARIA DE SOFTWARE ➢ SOFTWARE o Software o A natureza do Software o A natureza mutante do Software o O desenvolvimento de Software o A crise do software o Os mitos do software o Processo de Software ➢ ENGENHARIA DE SOFTWARE o Engenharia de Software o Camadas o O processo de desenvolvimento de software PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 FUNDAMENTOS DE ENGENHARIA DE SOFTWARE Software 3PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Software - Conceitos ➢O sistema computacional é composto de 2 subsistemas fundamentais: O software e o hardware. ➢O software é o subsistema computacional que instrui ao hardware o que deve ser feito. Contém as instruções, na ordem, que devem ser executadas pelos componentes do subsistema hardware. ➢O software é um elemento lógico do sistema computacional e o hardware um elemento físico. ➢Um sistema de informação é um software. Um jogo é um software. Um aplicativo de celular é um software. Um sistema de informações estratégicas é um software. As redes sociais são softwares. Aplicativos de celular são software. Aplicativos que rodam na nuvem são software. 2019.2 Software - Conceitos ➢Os softwares hoje estão presentes em todos os lugares, seja no lazer, seja nas atividades laborais. Os eletrodomésticos como maquina de lavar roupa, geladeiras e televisões são dotadas de software que lhes conferem determinadas possibilidades de automação. ➢O papel desempenhado pelo software vem sofrendo profundas alterações ao longo dos últimos 40 anos, resultando em softwares modernos, grandes, complexos e integrados, na medida em que abrangem a empresa como um todo e precisam se comunicar, de forma a evitar redundâncias e informações incoerentes. 2019.2 Software A natureza do Software ➢ O papel do software passou por mudanças significativas, nos últimos 50 anos, impulsionado por consistentes evoluções na capacidade de processamento e armazenamento, internet, dispositivos móveis e outras tecnologias. ➢ O software ganha relevância na empresa, na medida em que distribui informação. ➢ O software ganha contorno de destaque e atenção, na medida em que integra os diversos setores e softwares da empresa. ➢ PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Software A natureza do Software ➢ O software torna-se complexo na medida em que agrega muitas funcionalidades e usuários, espalhados geograficamente. ➢ Os softwares legados desenvolvido há bastante tempo e que vem sendo mantido para adequar-se a realidade do negócio e a evolução das plataformas computacionais. Softwares legados podem sofrer problemas derivados de sua baixa qualidade, como: dificuldade de estender o software, entender o código (linguagens com baixa legibilidade e/ou código mal escrito), alterações mal gerenciadas. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Software A natureza do Software ➢ O software legado sofre alterações quando: precisam de adaptações para atender a novos ambientes, novas tecnologias e plataformas computacionais, novos requisitos de negócio, ser integrado com ferramentas mais modernas (softwares, bancos de dados e etc). ➢ A engenharia de software visa propiciar o desenvolvimento de software com maior capacidade evolutiva (maior e mais eficiente ciclo de manutenção) PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Software A natureza mutante do Software ➢ O software possui elementos complexos de serem desenvolvidos e gerenciado, na medida em que faz uso de recursos caros (humanos e materiais). ➢ O software é criado e projetado com base em expressões das necessidades de seus usuários(os requisitos do sistema). ➢ Por essência, os requisitos mudam, na medida em que as empresas evoluem, mudam seus processos, reorganizam suas estratégicas, reagem a ações de seus concorrentes e ainda sofrem influência do meio em que estão inseridos. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Software A natureza mutante do Software ➢ Não bastassem as mudanças de requisitos, os softwares evoluem conforme as tendências tecnológicas em função de plataformas computacionais mais adequadas, especialmente aqueles que são promissoras na redução de custo ou maximização da receita. Pode-se destacar: o evolução de hiperlinks para webapps; o aplicações da inteligência artificial; o aplicativos móveis; o Computação nas nuvens. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 FUNDAMENTOS DE ENGENHARIA DE SOFTWARE O desenvolvimento do Software 11PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 O desenvolvimento do Software Evolução ➢ Da mesma forma que o papel do software vem se transformando e se destacando na sociedade, o seu processo de desenvolvimento precisa acompanhar essa evolução. De programadores solitários que interagia no máximo com analistas de sistemas e projetistas de softwares, passamos a ter uma equipe multidisciplinar, onde cada um concentra-se numa parte da tecnologia. ➢ Apesar da mudança as questões que permeiam o desenvolvimento de software, as problemáticas são as mesmas: ➢ Por que leva-se tanto tempo desenvolvendo software? ➢ Por que os custos são tão elevados? ➢ Por que nem todos os erros são detectados antes da entrega do produto de software? ➢Por que ainda temos dificuldades em estimar e medir o progresso do desenvolvimento do software ? PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 O desenvolvimento do Software A crise do software ➢ O termo foi criando nos anos 70, quando os conceitos de engenharia de software ainda não existiam. ➢ Crise do software caracterizou um momento, dessa época, em que as necessidades de desenvolvimento eram superiores a capacidade de produção de softwares, pela complexidade dos problemas e da ausência de técnicas e diretrizes para o desenvolvimento de software com qualidade. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 O desenvolvimento do Software A crise do software ➢ As evidências da crise do software eram: Projetos mal sucedidos, que não chegavam ao fim, ou quando chegavam, o software gerado não atendia (plenamente) a seus usuários, ou os prazos eram extrapolados, assim como os custos. Não havia uma gestão efetiva da qualidade no processo de desenvolvimento, que a essa altura não era visto como um projeto. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 O desenvolvimento do Software Os mitos do software ➢ Mito: Se o cronograma atrasar, podemos acrescentar programadores → A inserção de programadores ou outros profissionais pode atrasar mais ainda, pois aumenta a complexidade de controle, além do tempo necessário a essa pessoa para entender o software. ➢ Mito: Se terceirizarmos o desenvolvimento poderemos relaxar e deixar o terceiro desenvolver → Se a empresa não gerenciar e controlar o desenvolvimento terá dificuldades em terceirizar a tarefa. O software em desenvolvimento pode demandar integração com sistemas existentes e que o terceiro desconheça, por exemplo. ➢ Mito: Uma definição geral dos objetivos é suficiente para iniciar a escrita dos programas → Dificilmente temos condições de reunir todos os requisitos no início, além dos mesmos serem ambíguos, o que pode ser resolvido com efetiva interação entre equipe de desenvolvimento e usuários. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 O desenvolvimento do Software Os mitos do software ➢ Mito: Uma vez desenvolvidos e postos em uso os programas, finda o trabalho da equipe de desenvolvimento. → Nesse momento, da implantação surgem os erros, derivados de um processo mal concebido. Levantamentos indicam que de 60% a 80% de todo o esforço será despendido após a entrega aos usuários pela primeira vez. ➢ Mito: Até que o programa entre em funcionamento não temos como avaliar → Mecanismos de aferição de qualidade podem e devem ser inseridos no processo desde a concepção do software ate seu completo desenvolvimento. Processo e produtos precisam ser avaliados, quanto a qualidade. PROFESSOR: RAIMUNDO AGUIAR XAVIER2019.2 O desenvolvimento do Software Os mitos do software ➢ Mito: A engenharia de software nos fará produzir documentação volumosa e desnecessária e, invariavelmente vai retardar o desenvolvimento → Engenharia de software não foca em documentação e sim no desenvolvimento de qualidade, o que tende a reduzir o trabalho. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 O desenvolvimento do Software O processo de software ➢ Embora sejam duas tecnologias integradas, em que ambas demandam qualidade, a forma e o processo do desenvolvimento é diferenciado, em função das diferentes característica de ambos. É notório o maior sucesso e possibilidade de padronização no processo de desenvolvimento de hardware. ➢ Os custos do software estão concentrados no processo de desenvolvimento. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 O desenvolvimento do Software O processo de software ➢ O software não se desgasta, como os componentes físicos do hardware. No processo de desenvolvimento do hardware os problemas tendem a acontecer em 2 momentos: ✓ No inicio do processo de fabricação por erro ou defeito no componente (que uma vez substituído resolve o problema) ✓ No final, por desgaste físico dos componentes. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 O desenvolvimento do Software O processo de software ➢ No processo de desenvolvimento do software os erros não descobertos inicialmente resultarão em taxas de erro no inicio de sua vida. Como não há desgaste, se resolvido, tende a se estabilizar. Mas isso não tem sido fato !!!. Porém software requer alterações, que podem demandar novos erros, ao longo de sua vida. Antes que o software se estabilize novas demandas de alterações podem ser solicitadas. Ou seja o software se deteriora pelas alterações necessárias a sua atualização. ➢ Outro aspecto: defeito de hardware podem ser resolvidos com a substituição do componente problemático. Com software isso não acontece, pois o erro indica falha no projeto ou no processo. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 O desenvolvimento do Software O processo de software ➢ Embora o desenvolvimento de software almeje aproximar-se do desenvolvimento do hardware, a construção com base em componentes ainda não é efetiva. ➢ No mundo do hardware a reutilização de componentes é natural. Já no software esse componente deve ser projetado e construído de forma a ser usados em diferentes softwares, o que nem sempre é bem feito. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 FUNDAMENTOS DE ENGENHARIA DE SOFTWARE Engenharia de Software 22PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Engenharia de Software Conceitos ➢ A Engenharia de software compreende a escolha de um processo, de um conjunto de métodos, com auxilio de ferramentas que permitam o desenvolvimento de um software que atendam as necessidades de seus usuários, com alto padrão de qualidade. ➢ O foco da engenharia de software ocorre na medida em que possibilita o desenvolvimento de softwares grandes e complexos, dentro do prazo, usando os recursos destinados e com qualidade. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Engenharia de Software Conceitos ➢ Na prática, a engenharia de software abrange: compreensão do problema (levantamento e entendimento dos requisitos), Planejamento de uma solução (analise e projeto do software), execução do plano (codificação da solução analisada e projetada) e examine o resultado (testes e garantias de qualidade). ➢ A engenharia de software preconiza a aferição da qualidade durante o processo do desenvolvimento e no produto de software resultante. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Engenharia de Software Camadas ➢ A engenharia de software é uma tecnologia em camadas. ➢ As camadas da engenharia de software são: Foco na qualidade, Processo, Métodos e Ferramentas. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Engenharia de Software Camadas ➢ A camada de processos é a base, onde se define a metodologia de trabalho, para o desenvolvimento do software. ➢ A camada de métodos é que a da sustentação técnica para o desenvolvimento do software. Os métodos envolvem as tarefas do processo: requisitos, análise, projeto, codificação, testes e manutenção. Os métodos definem ainda as atividades de modelagem, por exemplo. ➢ A camada de Ferramentas fornece apoio para automação do processo e de determinados métodos. ➢ A camada de apoio a qualidade define um conjunto de métricas, aspectos de qualidade, gestão e monitoramento da qualidade não apenas do processo, mas também do produto de software. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Engenharia de Software processo desenvolvimento software ➢ Segundo Pressman, uma metodologia genérica de processos para engenharia de software compreende 5 atividades metodológicas. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Engenharia de Software processo desenvolvimento software ➢ 1. Comunicação - A interlocução com os interessados no sistema é fundamental. ➢ 2. Planejamento - o desenvolvimento de software envolve a gestão de recursos (financeiro, tempo e materiais), diante da possibilidade de riscos , para que os produtos resultantes possam ser desenvolvidos com qualidade. ➢ 3. Modelagem - para que se possam compreende as necessidades dos usuários, as ideias de solução são esboçadas em diagramas, desde modelos iniciais até modelos mais detalhados e complexos. Os modelos ajuda na comunicação e no planejamento. ➢ 4. Construção - construção de código e testes para identificar erros. ➢ 5. Emprego - feedback dado pelo usuário, ao emprego do software, após sua entrega. PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Engenharia de Software processo desenvolvimento software ➢ Com essas 5 atividades é possível desenvolver software grandes e pequenos, simples e complexos. ➢ Além dessas 5 atividades metodológicas temos as atividades de apoio que são: ➢ Controle e acompanhamento do projeto, ➢Administração de riscos, ➢Garantia da qualidade, ➢Revisões técnicas, ➢Medição, ➢Gerenciamento de configurações de software, ➢Gerenciamento de usabilidade, ➢Produção de artefatos de software PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 Aula 02 - CONTEÚDO 30 ➢GERENCIAMENTO DE PROJETOS ➢ ??????????? o ????????????? o ??????????????????????? o ????????????????????????????????????????? oAGUARDEM... o ????????????? o ???????????????????????????????? o ????????????????????????????????????????????? ➢ ???????????????? o ?????????????? PROFESSOR: RAIMUNDO AGUIAR XAVIER 2019.2 31 OBRIGADO PROFESSOR: RAIMUNDO AGUIAR XAVIER
Compartilhar