1.2 fornecer uma série de exemplos (positivos e negativos) que indicam o impacto do software em nossa sociedade.
o uso de software em nossa sociedade tem uma série de impactos positivos e negativos. Enquanto os aspectos positivos podem ser extremamente úteis, os negativos nos fornecem um pouco de muleta. Em geral, o software não foi projetado para “nos machucar” de forma alguma, mas sim para tornar as coisas mais fáceis e eficientes para nós.
1.3 por exemplo, o e-banking é um exemplo perfeito de software que torna nossas vidas muito mais fáceis. Tudo o que falta de fisicamente retirar dinheiro do seu banco pode ser feito online. Você pode até depositar seus contracheques agora simplesmente tirando uma foto dele com seu telefone inteligente. No lado negativo, essa mesma tecnologia pode ser usada para roubar seus números de cartão de crédito e identidade se cair nas mãos erradas. O mesmo acontece com o software anti-segurança.
há pessoas que recebem um bom dinheiro para invadir seu banco local e roubá-los apenas para provar ao banco que precisam atualizar sua segurança de rede. Na maioria dos casos, os bancos são gratos por esse tipo de intrusão. Este mesmo software, no entanto, poderia ser usado para fins criminais em que o banco não ficaria tão satisfeito. O Software pode ser extremamente útil e extremamente perigoso, dependendo de quem o está usando e como.
1.4 Muitos aplicativos modernos mudam com frequência-antes de serem apresentados ao usuário final e depois que a primeira versão foi colocada em uso. Sugira algumas maneiras de construir software para parar a deterioração devido à mudança.
em primeiro lugar, os aplicativos de software devem ser manteníveis. O que significa que deve ser projetado de forma que as mudanças possam ser feitas com bastante facilidade à medida que o aplicativo cresce. Uma maneira de minimizar a deterioração devido à mudança é permitir que atualizações automáticas sejam incorporadas. Pegue o Sistema Operacional Windows, por exemplo: ele tem a opção de permitir a atualização automática para as plataformas de segurança e firewall necessárias para garantir que o sistema esteja sempre “atualizado”.”Como os aplicativos anteriores estão sempre sendo atualizados, é importante construir um novo software com os mesmos recursos.
1.5 considere as sete categorias de software apresentadas na seção 1.1.2. Você acha que a mesma abordagem de engenharia de software pode ser aplicada para cada um? Explique sua resposta.
milhões de engenheiros de software em todo o mundo estão trabalhando duro em projetos de software em uma ou mais dessas categorias. Em alguns casos, novos sistemas estão sendo construídos, mas em muitos outros, os aplicativos existentes estão sendo corrigidos, adaptados e aprimorados. Por causa disso, uma abordagem diferente para a engenharia de software pode ser necessária para categorias individuais. Muitos dos programas em que os engenheiros de software trabalham são extremamente antigos e continuam a ser atualizados. Portanto, faz sentido que você não use a mesma abordagem para um programa existente que usaria para um novo programa.
1.6 figura 1.3 coloca as três camadas de engenharia de software em cima de uma camada intitulada “Um foco de qualidade.”Isso implica um programa de qualidade organizacional, como gerenciamento de qualidade total. Faça um pouco de pesquisa e desenvolva um esboço dos principais princípios de um programa de gerenciamento de qualidade total.
o TQM pode ser definido como a gestão de iniciativas e procedimentos que visam alcançar a entrega de produtos e serviços de qualidade. Vários princípios-chave podem ser identificados na definição de TQM, incluindo:
- Gestão Executiva – a alta administração deve atuar como o principal impulsionador do TQM e criar um ambiente que garanta seu sucesso.
- treinamento-os funcionários devem receber treinamento regular sobre os métodos e conceitos de qualidade.
- foco no cliente – melhorias na qualidade devem melhorar a satisfação do cliente.
- tomada de decisão-as decisões de qualidade devem ser tomadas com base em medições.Metodologia e ferramentas-o uso de metodologia e ferramentas apropriadas garante que as não conformidades sejam identificadas, medidas e respondidas de forma consistente.Melhoria contínua-as empresas devem trabalhar continuamente para melhorar os procedimentos de fabricação e qualidade.
- cultura da empresa-a cultura da empresa deve ter como objetivo desenvolver a capacidade dos funcionários de trabalhar em conjunto para melhorar a qualidade.
- envolvimento dos funcionários-os funcionários devem ser incentivados a serem pró-ativos na identificação e tratamento de problemas relacionados à qualidade.
1.7 a engenharia de software é aplicável quando os WebApps são construídos? Em caso afirmativo, como ele pode ser modificado para acomodar as características únicas dos WebApps?O Software tornou-se profundamente incorporado em praticamente todos os aspectos de nossas vidas. A engenharia de Software é aplicável quando novos programas são criados e quando os programas existentes são atualizados – incluindo WebApps. WebApps são uma das várias categorias de software distintas. E, no entanto, pode-se argumentar que os WebApps são diferentes. Uma das principais modificações que os WebApps exigem é a disponibilidade. Os usuários de WebApps populares geralmente exigem acesso 24/7/365. Outra característica única dos WebApps é sua evolução contínua.Ao contrário do software de aplicação convencional que evolui ao longo de uma série de lançamentos planejados e cronologicamente espaçados, os aplicativos da Web evoluem continuamente. Quando se trata da engenharia de software aplicada aos WebApps, muitas vozes devem ser ouvidas. A aparência de um WebApp é uma parte inegável do apelo que acabará por determinar o sucesso dos aplicativos.
1.8 à medida que o software se torna mais difundido, os riscos para o público (devido a programas defeituosos) tornam-se uma preocupação cada vez mais significativa. Desenvolva um cenário apocalíptico, mas realista, no qual o fracasso de um programa de computador possa causar grandes danos (econômicos ou humanos).
um dos primeiros cenários trágicos, mas realistas, que vem à mente é o fracasso de programas específicos em um avião. Os principais programas computadorizados em aviões têm o mesmo risco de falhar que qualquer outro programa e podem ter resultados catastróficos. Por exemplo, o sensor que detecta a altitude de uma aeronave permite que o piloto saiba quantos pés a aeronave está acima do solo. Este programa é particularmente necessário quando as condições climáticas podem prejudicar a visibilidade dos pilotos da pista.Uma vez que um avião começa seu decente e se prepara para pousar, o piloto usa esses programas para guiar o avião para um pouso seguro. Se este programa falhasse, e o clima impedisse a visibilidade dos pilotos, o piloto pode não saber o quão longe acima do solo ele realmente está. Acidentes de avião acontecem o tempo todo, e centenas de passageiros morrem todos os anos – principalmente devido a programas e instrumentos falidos na aeronave.
1.9 descreva uma estrutura de processo em suas próprias palavras. Quando dizemos que as atividades-quadro são aplicáveis a todos os projetos, isso significa que as mesmas tarefas de trabalho são aplicadas a todos os projetos, independentemente do tamanho e da complexidade? Explicar.
o processo de engenharia de software não acontece apenas magicamente sem algum tipo de ordem e planejamento organizacional. Uma estrutura de processo cria a base para o processo de engenharia usando um pequeno número de atividades que são aplicáveis a todos os projetos. O algoritmo passo a passo para uma estrutura de Processo é composto por cinco atividades: comunicação, planejamento, modelagem, construção e implantação. Todos os programas, independentemente de seu tamanho e complexidade, estão em conformidade com essas atividades nessa ordem. Embora os detalhes do processo de software sejam bastante diferentes para cada programa, as tarefas envolvidas no framework permanecem as mesmas.
1.10 atividades guarda-chuva ocorrem durante todo o processo de software. Você acha que eles são aplicados uniformemente em todo o processo, ou estão alguns concentrados em uma ou mais atividades de estrutura.Em geral, as atividades guarda-chuva são aplicadas ao longo de um projeto de software e ajudam uma equipe de software a gerenciar e controlar o progresso, a qualidade, a mudança e o risco. Como o processo de engenharia de software não é um regime rígido que deve ser seguido precisamente por uma equipe de software, o processo tem muito espaço para adaptação.
embora as atividades guarda-chuva que ocorrem ao longo do processo sejam geralmente aplicadas a todos os aspectos do processo, a engenharia deve ser ágil e adaptável; específico para o problema, para o projeto, para a equipe e para a cultura organizacional. Por causa disso, um processo adotado para um projeto pode ser significativamente diferente de um processo adotado para outro projeto, e algumas atividades podem estar concentradas em uma ou mais áreas.