Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aluno: Renato de Oliveira Lucena D3439H9, 2 Período. Exercícios de fixação extraídos do livro Sommerville, Ian. Engenharia de Software. 9ª ed. Recomenda se a leitura antecipada dos capítulos indicados.‐ Capítulo 1 – Introdução à Engenharia de Software 1 - Explique por que software profissional não é apenas os programas que são desenvolvidos para o cliente. R: o software e mais que programa executado pelo usuário final em termo de custo, já que outras atividades e pessoas são necessárias para que se chegue ao produto. O software não é apenas um programa, mas também todos os dados de documentação e configuração associadas e necessárias para que o programa opere. 2 - Qual a diferença mais importante entre o desenvolvimento de um produto genérico de software e o desenvolvimento de software sob demanda? O que isso pode significar na prática para usuários de produtos de software genérico? R:No desenvolvimento do software genérico, quem produz o software controla a especificação, eles são feitos para atender a necessidade do mercado. Já no desenvolvimento sobre encomenda, quem compra que controla as especificações, pois são feitos para atender a necessidade do cliente especifico. 3 - Quais são os quatro atributos importantes que todo software profissional deve possuir? Sugira outros quatro atributos que, às vezes, podem ser significantes. 1. Facilidade de manutenção: o software deve ser escrito de modo que possa evoluir para atender as necessidades de mudanças do cliente. 2. Confiança: o nível de confiança do software tem uma série de características, incluindo confiabilidade, proteção e segurança. Um software confiável não deve causar danos físicos ou econômicos no caso de falha do sistema 3. Eficiência: O software não deve desperdiçar os recursos do sistema, como memória e ciclos do processador. Portanto a eficiência inclui tempo de resposta, tempo de processamento, utilização de memória, etc. 4. Usabilidade: O software deve ser usável, sem esforço excessivo, pelo tipo de usuário para o qual ele foi projetado. Isso significa que ele deve apresentar uma interface com o usuário e documentação adequada. 4 - Além dos desafios de heterogeneidade, mudanças sociais e corporativas, confiança e proteção, identifique outros problemas e desafios que a engenharia de software provavelmente enfrentará no século XXI (Dica: pense no meio ambiente). R:Performasse do software – código otimizado; Escalabilidade – modelos mais eficazes, reutilização de código e segurança; Ergonomia do software – software mais acessível (deficientes); Produção de software com linguagem natural – acelera o processo de desenvolvimento; Software amigo do meio ambiente; Certificação de engenheiros de software, o conjunto de tudo. 5 - Baseado em seu conhecimento de alguns tipos de aplicações discutidos na Seção 1.1.2, explique, com exemplos, por que tipos de aplicações diferentes requerem técnicas especializadas de engenharia de software para apoiar seu projeto e desenvolvimento. R: Porque dependendo da forma que for implementado o código, pode possuir inúmeras linhas, logo temos que usar muitas técnicas da engenharia, para organizar, planejar, gerir e fazer os processos, se não é bem provável que o software possua muitos erros, e bem complicados de serem resolvidos depois. 6 - Explique por que existem ideias fundamentais na engenharia de software que se aplicam a todos os tipos de sistemas. R: Afim de manter um forma de desenvolvimento padrão entre os softwares, existem varias ideias que são vistas como fundamentais na engenharia de software, sendo elas a maneira como se pesquisa antes do desenvolvimento, o bom dialogo entre o cliente e desenvolvedor, para que o software atenda a todas as necessidades e requisitos que o cliente impõe e necessita. Um padrão em sua manutenção, afim de permitir a outros profissionais trabalhe também no seu projeto de código aberto e possa fazer sua manutenção e sustentabilidade, na falta de seu desenvolvedor inicial. 7 - Explique como o uso universal da Internet mudou os sistemas de software. R: Com a utilização da internet, os softwares passaram a funcionar de acordo com a as ferramentas que a internet disponibiliza. Como por um exemplo a possibilidade de armazenamento de dados em nuvem, onde empresas guardam os dados de seus clientes em uma locação em nuvens de outra empresa responsável pelo desenvolvimento, manutenção e atualização do sistema (banco de dados e software). Uma das vantagens é a segurança dos bancos de dados, dificultando a penetração de usuários indesejáveis no sistema. E a desvantagem é a dependência diretamente do funcionamento da internet. 8 - Discuta se os engenheiros profissionais devem ser certificados da mesma forma que médicos e advogados. R: Abordagem concordante: Responsabilidade e certificação em áreas de conhecimento onde estão subjacentes riscos elevados, em vidas humanas e em prejuízos materiais, da mesmaf orma que as ordens regulam outras áreas (código deontológico) onde esse mesmo risco existe: medicina, direito, farmácia, engenharia, etc. Abordagem discordante: É inviável limitar a criação de software. Custo mais elevado do software. Dificuldade a especificar qual software é de risco elevado e qual não é, por exemplo, software de uma empresa afeta os “stake holders” mas não dependem vidas deste diretamente… qual o grau de risco?, em comparação por exemplo no caso relativamente às drogas farmacêuticas existirem produtos de livre utilização. 9 - Para cada uma das cláusulas no Código de Ética da ACM/IEEE mostradas no Quadro 1.1, sugira um exemplo adequado para ilustrar. R: O desenvolvimento de um novo aparelho telefônico ser divulgado na mídia. Um robô não pode machucar um indivíduo. 10 - Para ajudar a combater o terrorismo, muitos países estão planejando desenvolver, ou já desenvolveram, sistemas computacionais que rastreiam grandes números de cidadãos e suas ações. Obviamente, isso tem implicações nas questões da privacidade. Discuta a ética de se trabalhar desenvolvendo esse tipo de sistema. R: acho que os países tem que procurar outro modo, pois é antiético, invadir a vida pessoal de cada pessoa.
Compartilhar