Prévia do material em texto
DISCIPLINA: FUNDAMENTOS DE ENGENHARIA DE SOFTWARE PROF. PÉRICLES ARRUDA Fundamentos: Software e Engenharia de Software 1. Dê cinco exemplos de como a lei das consequências não intencionais se aplica a software de computador. 1 - Softwares embutidos em sistemas eletrônicos para controlar características e funções para os usuários finais e para o sistema em sí. 2 – Sistemas e máquinas controlados por softwares em todas as áreas suprindo a necessidade de mão de obra humana. 3 - Extensões de outros softwares, que na maioria das vezes são usadas para controlar outros softwares. 4- Os softwares na internet são arquitetados como mecanismo computacional ou como provedor de conteúdo sendo utilizado por empresas e por usuário normal. 5 - Softwares de negócios que solucionas necessidades especifica do usuário. 2. Forneça cinco exemplos (positivos e negativos) que indiquem o impacto do software em nossa sociedade. Positivos: Facilidade no acesso a informação, facilidade de comercialização de produtos, possibilidade de crescimento de mercado com marketing, comunicação a distancia facilitada, e comodidade para a realização de atividades que hoje podem ser realizadas por software. Negativos: Aumento de crimes associados a hackers, aumento de crimes relacionados a estupro ou pedofilia graças a facilidade de acesso a outras pessoas, e também o agravamento da depressão pela “liberdade” da internet, fazendo com que outras pessoas digam e postem o que querem sem se importar com a saúde psicológica do próximo. 3. Por que a conclusão de um software leva tanto tempo? Devido as várias etapas, que tem que ser realizadas de forma bem precisa e minuciosa, para que assim facilite o controle de qualidade e prevenção de erros, aumentando dessa forma a segurança do projeto. 4. Por que os custos de desenvolvimento são tão altos? Para que possam ser pagos todas as etapas e realizados todos os testes antes da finalização do projeto, e ainda também, para o pagamentos dos profissionais qualificados envolvidos no projeto. 5. Por que não conseguimos encontrar todos os erros antes de entregarmos o software aos clientes? Porque durante o levantamento de requisitos, não é possível o cliente esclarecer todas as suas necessidades, tornando assim necessário que depois de pronto, ainda em uma versão “alfa”, o cliente possa testar o software e conseguir explicar com mais precisão o que falta ou deve ser mudado. 6. Por que gastamos tanto tempo e esforço realizando a manutenção de programas existentes? Para que o software esteja sempre atualizado a novas tecnologias, para mantê-lo com uma maior segurança. 7. Por que ainda temos dificuldades de medir o progresso de desenvolvimento e a manutenção de um software? Pela fraca comunicação entre o cliente e o encarregado do projeto, e também por erro de alguns profissionais que fazem estimativas a olho, ou relevam certas anomalias no projeto para evitar gastos. 8. Muitas aplicações modernas mudam frequentemente – antes de serem apresentadas ao usuário e depois da primeira versão ser colocada em uso. Sugira algumas maneiras de construir software para impedir a deterioração decorrente de mudanças. Realizar uma boa entrevista de levantamento de requisitos com o cliente, e realizar testes do software em uma versão alfa com o cliente. Utilizar-se de métodos como PMBOK e seguir normas conceituadas, como a ISSO 9001. 9. Considere as sete categorias de software apresentadas na secado 1.1.2. Você̂ acha que a mesma abordagem em relação à engenharia de software pode ser aplicada a cada uma delas? Justifique sua resposta. a. Software de Sistema b. Software de Aplicação c. Software de engenharia/científico d. Software para linha de produtos e. Software mobile f. Software de inteligência artificial A abordagem do projeto referente a controle de qualidade, segurança e etc deve ser a mesma, diferindo apenas na execução técnica do software, que deverá ser projetado focado no combinado na analise de requisitos com o cliente, seja ele um software mobile ou mesmo um software de inteligência artificial. * * * * *