Analise Crítica dos Artigos
Por: Thiago Darlei • 29/10/2018 • Trabalho acadêmico • 1.416 Palavras (6 Páginas) • 288 Visualizações
[pic 1]
Mestrado em Ciência da Computação
Disciplina de Engenharia de Software
Profa. Dra. Adicinéia A. de Oliveira
Thiago Darlei Santana Souza
Lista 1 – Entrega em 08/04/2015
Toda lista deve ser entregue na aula indicada para discussão. Entregue as respostas impressas no dia marcado para discussão, para facilitar a discussão em si e a correção.
Artigos: “A View of 20th and 21st Century Software Engineering” – Barry Boehm e “Systematic literature reviews in software engineering – A systematic literature review” – Barbara Kitchenham et al.
Questões
- Boehm aponta a importância de olharmos o passado e aprender com os casos de sucesso. Quais são os casos de sucesso que ainda utilizamos? Por que ainda são utilizados, mesmo em contextos (tecnologia, plataforma, cultura, etc...) tão diferentes?
Existem ainda inúmeros métodos que são utilizados atualmente, justamente por no passado terem sido casos de projetos bem sucedidos. Dentre eles podemos destacar a utilização das metodologias ágeis, foco nos processos, engenharia baseada em valores, reuso de software, todos esses foram casos de sucessos utilizados em décadas anteriores e até hoje continuam a ser utilizado.
Com esses métodos abre-se um leque para o estudo de novas tecnologias, baseando-se nas técnicas que obtiveram êxito no passado e com isso gerando o avanço da engenharia de software a cada década.
- Em cada década, quais são principais mudanças no processo de desenvolvimento de software? Quais são as expectativas para esta década, segundo Boehm?
Segundo Boehm, existem diversas expectativas para esta década, entre elas podemos destacar o uso de robôs autônomos, melhorias baseadas em capacidades físicas humanas ou mentais, computadores e softwares avaliem situações e determinem a melhor ação por meio de agentes inteligentes, computação baseada em biologia molecular, dentre outras.
Principais mudanças no processo de desenvolvimento de software:
- Década de 50:
- Sucesso do projeto SAGE;
- A engenharia de software era desenvolvida por matemáticos e engenheiros de hardware;
- O custo do software é inferior ao hardware;
- Década de 60:
- Maior demanda da mão de obra;
- Aparecimento da linguagem Cobol e Fortran;
- Dificuldades em teste de software;
- Surgimento do “Code and Fix” (Codificar e Corrigir) e consequentemente o código espaguete;
- Questionamentos sobre a confiabilidade do software;
- Surgimento de cursos em universidades com ênfase em software;
- Programadores cowboy;
- Década de 70:
- Modelo cascata na construção de softwares;
- Aumento de custos com os softwares;
- Problemas com manutenção e padronização dos softwares;
- A cada mudança de fases, validações dos artefatos;
- Programação estruturada e início do uso de conceitos de modularidade;
- Década de 80:
- Programação orientada a objetos, programação gráfica, estações de trabalhos poderosas e linguagens de alto nível;
- Gestão, ferramentas, processos e reuso;
- Conceitos para melhorar a produtividade e escalabilidade;
- Início do uso de maturidade de software;
- Fábricas de software;
- Crescimento das ferramentas que auxiliam a engenharia de software, como ferramentas de teste e ajustes de configuração;
- Interação entre as ferramentas do ambiente de suporte, ambientes de interação ou fábricas de software;
- Melhora significante da produtividade e diminuição do retrabalho;
- Década de 90:
- Controle de concorrência – Modelo espiral;
- Ideias de código livre e “tempo é dinheiro”;
- Melhoria dos métodos orientados a objetos, arquitetura de desenvolvimento da UML e avanço dos padrões em projetos;
- Unidades de gerenciamento de riscos de software;
- Conceito de interface humano computador;
- Identificação que o modelo em cascata é custoso e demorado;
- Anos 2000:
- Interação entre softwares e a engenharia de sistemas;
- Metodologia ágil – Scrum e XP;
- Abordagem baseada em valores;
- Melhoria na segurança dos softwares críticos;
- Compatibilidade e integração com os produtos de software;
- Softwares funcionando sobre documentação abrangente;
- Conceitos de desenvolvimento dirigido a modelos;
- 2010:
- Surgimento de ERP, ou seja, sistemas de sistemas;
- Gerenciamento de expectativas;
- Distribuição independente de localização;
- Qual a sua opinião sobre as perspectivas e mudanças para a Engenharia de Software nas próximas duas décadas? Além das colocações do Boehm, discuta como e o que poderia melhorar no ensino de Engenharia de Software, de maneira a preparar, qualitativamente, os profissionais das próximas décadas?
No meu ponto de vista, acho que a engenharia de software deverá se antecipar às exigências e tendências futuras, por meio de estudos, efetuando experimentos com os estudantes, incentiva-los a efetuarem pesquisas e aceitar os desafios. Para as próximas duas décadas a engenharia de software deverá ter um foco maior no modelo e nos processos, agregando tudo do passado que obteve êxito.
Para melhorar o ensino de engenharia de software acho que o primeiro passo é tentar mudar a mentalidade dos professores como dos alunos, pois, atualmente o foco maior não está sendo a engenharia do software, o foco maior está ligado ao desenvolvimento dos projetos (codificação), deixando para trás uma documentação bem elaborada por exemplo.
- Pode-se dizer que a Engenharia de Software avançou ou não? Como? Justifique e exemplifique sua opinião.
Sim. Basta olharmos as mudanças positivas entre as décadas passadas. Tivemos vários avanços como, por exemplo, o desenvolvimento do UML, linguagens de desenvolvimento, arquiteturas de projetos dentre outros. Um ótimo exemplo a ser citado foi à melhoria com relação à interação com o usuário.
...