TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

T.I. Qualificações

Por:   •  5/10/2016  •  Seminário  •  7.133 Palavras (29 Páginas)  •  6.177 Visualizações

Página 1 de 29

Capítulo 1

  1. Com base na distribuição de custos de software explicados na Seção 1.1.6, explique por que é apropriado considerar que o software é mais do que os programas que podem ser executados pelos usuários finais do sistema.
    Resposta:  Um software é bem mais do que o programa final em si, pois o software, além do sistema em si, envolve toda a sua configuração, planejamento, dados, documentação (tanto do usuário quanto do sistema), etc. Por isso, não é certo dizer que o software é apenas o programa final que os usuários utilizam.
  2. Quais são as diferenças entre o desenvolvimento de produto genérico de software e o desenvolvimento de software sob encomenda?
    Resposta: Um produto genérico é feito por uma empresa, e está a venda para qualquer um que quiser obtê-lo. Um produto sob encomenda é feito de acordo com as encomendas de outras empresas, que necessitam de um determinado sistema para si. No primeiro caso, o sistema é controlado pela empresa que o desenvolveu, e no segundo caso, é controlado pela empresa que o comprou.
  3. Quais são os quatro principais atributos que todos os produtos de software devem ter? Sugira quatro outros atributos que às vezes podem ser significativos.
    Resposta: Ser uma abstração da realidade, invisível, complexo e sujeito a mudanças.
  4. Qual é a diferença entre um modelo de processo de software e o processo de software? Sugira dois modos pelos quais um modelo de software pode ser útil para identificar possíveis aprimoramentos no processo.
    Resposta: Um processo de software é o conjunto de atividades com o objetivo de desenvolvimento ou evolução de um sistema, e um modelo de processo de software é a representação simplificada de um processo de software. O modelo de software pode ser útil para identificar erros e verificar quais melhorias podem ser feitas no desenvolvimento.
  5. Explique por que os custos de teste de sistema são particularmente altos para os produtos genéricos de software vendidos em um mercado amplo.
    Resposta: Porque após uma versão do produto ser lançada no mercado, o próximo desenvolvimento já é para o lançamento de uma nova versão / evolução do sistema, então o custo de teste acaba sendo o custo de desenvolvimento para uma próxima versão.
  6. Os métodos de engenharia de software tornaram-se amplamente usados somente quando a tecnologia CASE tornou-se disponível para apoiá-los. Sugira cinco tipos de apoio a métodos que podem ser fornecidos pelas ferramentas CASE.
    Resposta: Análise de requisitos, modelagem de sistema, depuração, teste, editores para as notações usadas no método, módulos de análises, geradores de relatório para auxiliar na criação da documentação do sistema, gerador de código-fonte com base no modelo, etc.
  7. Além dos desafios de heterogeneidade, entrega rápida e confiança, identifique outros problemas e desafios que a engenharia de software provavelmente está enfrentando no século 21.
    Resposta: Comunicação entre cliente e desenvolvedor fraca, fase de manutenção sobrecarregada, estimativas imprecisas, produtividade não acompanhando a demanda, qualidade menor que a solicitada, insatisfação, etc.
  8. Discuta se os engenheiros profissionais devem ter um diploma, assim como médicos e advogados.
    Resposta: Sim, pois todos são profissionais, independente da área, exercem sua formação profissional de acordo com suas funções.
  9. Para cada cláusula do Código de Ética apresentado no Quadro 1.1, sugira um exemplo apropriado que ilustre a cláusula.
    Resposta: PÚBLICO, os sistemas devem ser desenvolvidos de acordo com o que as pessoas querem usar ou precisam, para assim, o vender. CLIENTE E EMPREGADOR, deve chegar a um acordo que satisfaça a ambos, e também ao interesse do público. PRODUTO, deve sempre ser da melhor qualidade. JULGAMENTO E GERENCIAMENTO, deve sempre manter a ética e profissionalismo no desenvolvimento. PROFISSÃO, deve estar sempre buscando a melhor forma de atrair público. COLEGAS, trabalhar em equipe de forma justa e civilizada. INDIVÍDUO, deve manter o respeito e a ética no trabalho e na carreira profissional. 
  10. Para ajudar a conter o terrorismo, vários países estão planejando o desenvolvimento de sistemas de computador que monitorem 24 horas populações em grandes centros urbanos. Essa medida tem, obviamente, implicações quanto à privacidade. Discuta as questões éticas envolvidas no desenvolvimento desse tipo de sistema.
    Resposta: Em vários casos do nosso cotidiano, temos que fazer escolhas onde, pra conseguirmos uma recompensa, precisamos abrir mão de outra coisa. Privacidade é um assunto que em muitos casos, é envolvido a este tipo de questão. Um exemplo disso são os frequentes bloqueios do aplicativo Whats App pela justiça brasileira, devido à não-liberação de serviços que possam comprometer a privacidade de seus usuários. Mas por outro lado, como tudo em excesso tem algo que prejudique, privacidade demais pode também trazer maior falha no quesito segurança da sociedade. O assunto então, acaba gerando polêmica, e depende do ponto de vista de cada pessoa. Na minha opinião, vale a pena perder parte da privacidade, e ganhar mais segurança, do que o contrário.

Capítulo 2

  1. Explique por que outros sistemas dentro de um ambiente de sistema podem ter efeitos não previstos no funcionamento de um sistema.
    Resposta: Para um bom funcionamento de um sistema, é necessário que todas suas partes (subsistemas) estejam funcionando corretamente. Isto é, o sistema em geral depende de todas as suas partes para que o seu todo possa operar de forma correta. Assim, qualquer coisa equivocada em alguma parte daquele sistema, ou de outro sistema integrado à ele, pode ocasionar em um desempenho não aceitável no sistema inteiro, afetando seu resultado final.
  2. Explique por que a especificação de um sistema a ser usado em serviços de emergência para gerenciamento de desastres é um “problema perverso”.
    Resposta: Por causa da confiabilidade do sistema. Se houver falhas, as falhas podem se propagar através do sistema e afetar o funcionamento de outros componentes. Além disso, o sistema só irá “ser útil” após a emergência ocorrer, então não irá, de fato, preveni-la.
  3. Sugira como os sistemas de software usados em um automóvel podem auxiliar na desativação (descarte) do sistema todo.
    Resposta: Se houver erros, eles podem afetar os outros componentes. Assim, o software pode se comportar de maneira não prevista, podendo até ser necessário o desligamento total do sistema.
  4. Explique por que é importante produzir uma descrição geral da arquitetura do sistema no estágio inicial do processo de especificação do sistema.
    Resposta: Para especificar o que o sistema deve e o que não deve fazer. Para assim, auxiliar na busca de erros, e para verificar sua eficiência, e trabalhar em necessárias mudanças, além de deixar claro os objetivos para o cliente e o desenvolvedor.
  5. Considere um sistema de proteção que seja uma versão estendida do sistema mostrado na Figura 2.5, cuja finalidade seja proteger contra intrusos e detectar incêndios. Ele contém sensores de fumaça, sensores de movimento, sensores de portas, câmeras de vídeo sob controle de computador localizadas em diversos locais no prédio, um console de operador no qual o status do sistema é reportado e recursos de comunicação externa para chamar os serviços apropriados, tais como polícia e bombeiros. Elabore um diagrama de blocos de um possível projeto para esse sistema.
    Resposta: [pic 1]
  6. Um sistema para alerta contra enchentes será adquirido para emitir um alerta antecipado contra possíveis perigos em locais ameaçados por enchentes. O sistema incluirá um conjunto de sensores para monitorar a taxa de variação do nível dos rios, conexões com um sistema de meteorologia que forneça a previsão de tempo, conexões com sistemas de comunicação de serviços de emergência (polícia, guarda costeira, etc), monitores de vídeo instalados em locais selecionados e uma sala de controle equipada com consoles de operador e monitores de vídeo. Os controladores podem acessar informações de banco de dados e alternar entre displays de vídeo. O banco de dados do sistema inclui informações sobre os sensores, a posição dos locais de risco e as condições ameaçadoras nesses locais (por exemplo, maré alta, ventos vindos do sudoeste), tabelas de marés das localidades costeiras, o inventário e a localização de equipamentos de controle de enchentes, detalhes de contato de serviços de emergência, estações de rádio locais etc. Desenhe um diagrama de blocos de uma possível arquitetura para esse sistema. Você deve identificar os principais subsistemas e as ligações entre eles.
    Resposta: [pic 2]
  7. Um sistema de museu virtual multimídia que oferece experiências virtuais da Grécia Antiga será desenvolvido para um consórcio de museus europeus. O sistema deve fornecer, aos usuários, recursos para visualizar modelos 3D da Grécia Antiga por meio de um navegador Web padrão e deve também suportar uma experiência de imersão em realidade virtual. Que dificuldades políticas e organizacionais podem surgir quando o sistema for instalado nos museus que formam o consórcio?
    Resposta: Pode ser um desacato ás políticas de determinados locais, como exposição da área sendo assim um problema a ser resolvido com as organizações, independentes de cada uma.
  8. Explique por que os sistemas legados podem ser críticos para a operação de um negócio.
    Resposta: Porque deve ser um sistema que seja confiável, para que cumpra seu objetivo em um grande período de tempo, para que não sejam necessárias mudanças.
  9. Explique por que os sistemas legados podem causar problemas para as empresas que querem reorganizar seus processos de negócios.
    Resposta: Porque caso ocorra uma mudança ou atualização em um sistema antigo, pode comprometer a confiabilidade e eficiência, podendo ser necessário um novo hardware ou até a implementação total do novo sistema.
  10. Quais são os argumentos a favor e contra considerar a engenharia de sistemas como uma profissão independente, tais como a engenharia elétrica e a engenharia de software?
    Resposta: A favor, porque é uma área diferente, tanto que se não fosse, não teria um nome diferenciado para sua área. Contra, seria pelo motivo de engenharia de software englobar a engenharia de sistemas.
  11. Você é um engenheiro envolvido no desenvolvimento de um sistema financeiro. Durante a instalação, você descobre que esse sistema tornará dispensável um número significativo de pessoas. As pessoas no ambiente não permitem seu acesso às informações essenciais para concluir a instalação do sistema. Até onde você, como engenheiro do sistema, deve se envolver nisso? É sua responsabilidade profissional concluir a instalação como contratado? Você deve simplesmente abandonar o trabalho enquanto a organização compradora esclarece o problema?
    Resposta:
    Uma vez que eu seja contratado para desenvolvimento de tal sistema, creio que seja meu dever termina-lo da forma como foi pedido e objetivado. Então, sim, em minha opinião, é minha responsabilidade profissional concluir a instalação dele. Então, devo achar alguma maneira de resolver o problema, para sempre satisfazer a organização compradora e entrega-la um produto final de melhor qualidade.

Capítulo 3

  1. Quais são os três principais tipos de sistemas críticos? Explique as diferenças entre eles.
    Resposta: De SEGURANÇA, onde uma falha pode resultar em danos ao ambiente ou perda de vidas, de MISSÃO, onde uma falha pode trazer problemas na meta objetivada, e de NEGÓCIOS, onde uma falha pode trazer custos altos financeiros.
  2. Sugira seis razões por que a confiança é importante para sistemas críticos.
    Resposta: Porque sistemas sem confiança são rejeitados pelos usuários, podem causar perdas de informações, podem trazer altos custos, trazer danos irreparáveis, trazer falta de segurança e trazer problemas dificultando a atingir a meta do sistema.
  3. Quais são as dimensões mais importantes de confiança no sistema?
    Resposta: Disponibilidade, confiabilidade, segurança e proteção. Além de integridade e confidencialidade.
  4. Por que o custo para garantir a confiança é exponencial?
    Resposta: Porque conforme a validação de confiança aumenta, os custos também irão, proporcionalmente, aumentarem. Isto é, quanto mais for comprovar a confiabilidade do sistema, mais irá ser gasto em testes, melhorias e provas.
  5. Justificando sua resposta, sugira quais atributos de confiança são provavelmente os mais críticos para os seguintes sistemas:
    a. Um servidor de Internet provido por um ISP com milhares de clientes.
    b. Um bisturi controlado por computador usado em cirurgias.
    c. Um sistema de controle direcional usado no veículo lançador de satélites.
    d. Um sistema de gerenciamento de finanças  de pessoas baseado em internet.
    Resposta: a. Disponibilidade, para estar disponível para acesso aos clientes.
    b. Confiabilidade, deve ser testado a confiança para realizar uma cirurgia de risco.
    c. Proteção, para manter a meta sem acidentes.
    d. Segurança, para manter os dados em sigilo.

  6. Identifique seis produtos destinados ao consumidor que contêm ou que podem conter sistemas críticos de software no futuro.
    Resposta: Carros automáticos, sistema de compras e vendas online, banco de dados de clientes de um banco, sistema de controle de radiação, sistema de controle de desastres naturais e sistema de GPS.
  7. Confiabilidade e segurança são atributos de confiança relacionados, mas distintos. Descreva a distinção mais importante entre os atributos e explique por que é possível um sistema confiável ser não seguro e vice-versa.
    Resposta: Um sistema de segurança obviamente tem que ser confiável, porém, ele pode reagir de formas diferentes em situações críticas ou extremas, levando a falhas e podendo causar acidente. Assim, não podemos garantir que um sistema de segurança seja totalmente confiável, ou, vice-versa.
  8. Em um sistema médico projetado para emitir radiação para tratamento de tumores, sugira um perigo que pode vir a ocorrer e proponha um recurso de software que possa garantir que o perigo identificado não resulte em um acidente.
    Resposta: Em algum erro, a radiação pode ser emitida em níveis elevados ou até em locais não inadequados ao tratamento. Para evitar o acidente, o sistema deve garantir e exigir a confirmação antes de sua ação.
  9. Explique por que existe uma relação forte entre disponibilidade e proteção de sistema.
    Resposta: Um sistema pode ser disponível, confiável e seguro, mas isso não garante necessariamente que ele seja perfeitamente estável em todas suas condições. Por exemplo, um sistema que tenha o foco em ser totalmente disponível pode não ser totalmente confiável, ou vice-versa.
  10. Em termos de proteção de computador, explique as diferenças entre um ataque e uma ameaça.
    Resposta: Um ataque é quando o computador é atacado por alguém ou algum sistema malicioso. Uma ameaça, é uma possível prevenção de um ataque.
  11. É ético para um engenheiro concordar em liberar um sistema de software com defeitos conhecidos para um cliente? Isso faz alguma diferença se o cliente for avisado sobre a existência desses defeitos antecipadamente? Seria razoável fazer reclamações sobre a confiabilidade do software em tais circunstâncias?
    Resposta:
    Depende. Caso o engenheiro libere o sistema, ciente dos defeitos, sem os alertá-los para o cliente, é totalmente errado e não-ético. Agora, se o cliente tiver conhecimento sobre as falhas, e estiver de acordo, aí é a vontade do cliente, então não há problemas. E sim, seria viável reclamações sobre a confiabilidade do software em ambos os casos.
  12. Como especialista em proteção de computador, você foi contatado por uma organização que faz campanha pelos direitos de vítimas de tortura e lhe foi solicitado que ajude a organização a conseguir um acesso não autorizado aos sistemas de computador de uma empresa norte-americana. Isso irá auxiliá-los a confirmar ou negar que essa empresa está vendendo equipamento usado diretamente na tortura de presos políticos. Explique os dilemas éticos que esse pedido traz e como você reagiria a ele.
    Resposta: E mais uma vez, estamos na polêmica que envolve a privacidade e a segurança em lados totalmente distintos, com suas consequências. Para ajudar o caso, seria necessário a invasão da privacidade da empresa, de uma forma não legal, para auxiliar com as informações obtidas. Por outro lado, seria falta de ética e respeito com a empresa em si. Porém, eu tentaria chegar a um acordo que não afetasse em nenhum os lados, e somente tentaria o acesso não autorizado em último caso, se realmente fosse necessário, afinal, seria por uma boa causa.

Capítulo 4

  1. Justificando sua resposta com base no tipo de sistema a ser desenvolvido, sugira o modelo genérico de processo de software mais apropriado que poderia ser usado como base para gerenciar o desenvolvimento dos seguintes sistemas:
    a. Um sistema para controlar um antibloqueador de freios em um automóvel.
    b. Um sistema de realidade virtual para apoiar a manutenção de software.
    c. Um sistema de contabilidade de universidade que substitui um sistema existente.
    d. Um sistema interativo que permite aos passageiros encontrar o horário dos trens por meio de terminais instalados nas estações.
    Resposta: a) Modelo em cascata, para focar em validação de todas as partes do processo.
    b) Desenvolvimento evolucionário, desenvolvido em especificações abstratas para ver se o cliente se satisfaz.
    c) Engenharia de software baseada em componentes, pois já possuir um sistema existente a ser substituído, não é necessário começar do zero.
    d) Engenharia de software baseada em componentes, sistema irá ser desenvolvido baseado nos horários dos terminais instalados.

  2. Explique por que os programas desenvolvidos por desenvolvimento evolucionário são provavelmente difíceis de serem mantidos.
    Resposta: Pelo processo ser, muitas vezes, mal elaborado por ter sido desenvolvido rapidamente, e também por não ser visível.
  3. Explique como o modelo em cascata de processo de software e o modelo de prototipação podem ser acomodados no modelo de processo espiral.
    Resposta: Porque o modelo espiral é representado através de loops, uma forma mais complexa de ver o desenvolvimento de sistemas, então, os outros modelos podem “evoluir” para um modelo em espiral, para ser de melhor qualidade.
  4. Quais são as vantagens de fornecer as visões estática e dinâmica do processo de software como no Rational Unified Process?
    Resposta: Um melhor desenvolvimento e melhor qualidade do sistema, além de ser melhor produzido, e que as fases de processo de desenvolvimento não estão associadas a workflows especifícos.
  5. Sugira por que é importante fazer uma distinção entre o desenvolvimento dos requisitos de usuário e os requisitos de sistema no processo de engenharia de requisitos.
    Resposta: Porque o usuário pode exigir características que não sejam compatíveis com o sistema em si, dependendo de seus requisitos. Portanto, é importante fazer a distinção (e também, comparação) entre ambos.
  6. Descreva as principais atividades no processo de projeto de software e as saídas dessas atividades. Usando um diagrama, mostre os possíveis relacionamentos entre as saídas dessas atividades.
    Resposta: Especificação (compreender e definir quais serviços são necessários, e identificar as restrições, tendo a saída documentos de requisitos), desenvolvimento (processo de conversão de uma especificação de sistema em um sistema executável, tendo a saída a especificação do algoritmo), validação (mostrar que um sistema está em conformidade com sua especificação e que atende as expectativas do cliente, tendo como saída o resultado dos testes) e evolução (a modificação e geração de um novo sistema com base em um antigo, tendo saída um sistema novo).
    A relação entre todas essas saídas, são que basicamente formam a evolução do desenvolvimento de um sistema, nessa respectiva ordem.
    REQUISITOS -> DESENVOLVIMENTO E ALGORITMOS -> TESTES -> SISTEMA NOVO

  7. Quais são os cinco componentes de um método de projeto? Descreva os componentes de algum método conhecido. Avalie a abrangência do método escolhido.
    Resposta: Projeto de arquitetura (identificar e documentar os subsistemas), especificação abstrata (para cada subsistema, gerar restrições e especificação abstrata dos serviços), projeto de interface (projetar e documentar a interface), projeto de componente (projetar as interfaces dos componentes), projeto de estrutura de dados (projetar e especificar os dados usados na implementação do sistema) e de algoritmos (projetar e especificar os algoritmos usados no serviço).
  8. Projete um modelo de processo para executar os testes de sistema e registrar seus resultados.
    Resposta: [pic 3]
  9. Explique por que um sistema de software usado em um ambiente real deve mudar sob pena de tornar-se progressivamente menos útil.
    Resposta: Porque conforme o seu uso e as constantes mudanças no ambiente em nossa volta, ocasionando também as possíveis alterações nas necessidades do sistema, este deve sofrer alterações para sempre estar de acordo com a real necessidade para atingir o seu objetivo.
  10. Sugira como um esquema de classificação da tecnologia CASE pode ser útil para gerentes responsáveis pela aquisição de sistema CASE.
    Resposta: Para apoio no desenvolvimento de softwares.
  11. Faça um levantamento da disponibilidade de ferramentas em seu ambiente local de desenvolvimento e classifique as ferramentas de acordo com os parâmetros (função, atividade, abrangência de apoio) sugeridos neste livro.
    Resposta:
    No caso deste trabalho, por exemplo, ele está sendo desenvolvido com o auxílio de COMPUTADOR (Com a função de ser o sistema central do projeto, auxiliando para a execução dos outros subsistemas em si, sendo de total uso ao trabalho), SOFTWARE DE EDITOR DE TEXTO (Um subsistema do computador, onde sua função é permitir a elaboração das respostas e digitação das perguntas, tendo fundamental importância), E UM LIVRO (Com a função de fornecer as informações para pesquisas e conhecimento, além da obtenção das perguntas).
  12. Historicamente, a introdução de tecnologia causou profundas mudanças no mercado de trabalho e, pelo menos temporariamente, deixou as pessoas desempregadas. Explique se a introdução de tecnologia avançada de CASE apresenta probabilidade de causar as mesmas consequências para os engenheiros de software. Se você não achar que isso é possível, explique por quê. Se achar que isso reduzirá as oportunidades de trabalho, é ético que os engenheiros afetados resistam passiva ou ativamente à introdução dessa tecnologia?
    Resposta:
    Em minha opinião, como em todo tipo de trabalho, que antes manual, passa a ser tecnológico com auxílio de computadores e máquinas, a tecnologia avançada do CASE pode sim trazer consequências aos engenheiros de software, mas não ao ponto de substituí-los totalmente. Afinal, a função do engenheiro de software é participar do processo de desenvolvimento do sistema em si, e a máquina, caso ocasione falhas, poderá continuar falhando caso alguém não perceba o erro, diferente do humano, o engenheiro em si. Caso realmente reduzisse as oportunidades de trabalho, os engenheiros deveriam resistir ativamente, para se adaptar em uma condição onde não percam sua utilidade no trabalho para um sistema de inteligência artificial.

Capítulo 5

  1. Explique por que a intangibilidade dos sistemas de software apresenta problemas especiais ao gerenciamento de projetos de software.
    Resposta: Porque se o cronograma atrasa, o efeito sobre o produto é visível – partes da estrutura estarão não-concluídas. Assim, os gerentes do processo não podem ver o progresso e contam com outras pessoas para produzir a documentação necessária para examinar o progresso.
  2. Explique por que os melhores programadores nem sempre se tornam os melhores gerentes de software. Pode ser útil basear sua resposta na lista de atividades de gerenciamento apresentada na Seção 5.1.
    Resposta: Muitas vezes, em uma empresa, acontece o caso de o melhor funcionário de determinado área (Programador, no caso) ser promovido a um novo nível, gerente de software, por exemplo. Porém, nem sempre a pessoa ser boa na função que exerce significa que obrigatoriamente ela será a melhor em outra função, assim, pode acontecer da pessoa não lidar tão bem em uma nova função quanto na antiga.
  3. Explique por que o processo de planejamento de software é iterativo e por que um plano deve ser continuamente revisado durante um projeto de software.
    Resposta: Para prever os futuros erros que o sistema pode conter, e assim, já solucionar suas correções.
  4. Explique brevemente o propósito de cada uma das seções em um plano de projeto de software.
    Resposta: INTRODUÇÃO (Descrever objetivos e restrições), ORGANIZAÇÃO DO PROJETO (Descrever a organização), ANÁLISE DE RISCOS (Descrever os possíveis riscos do projeto), REQUISITOS DE RECURSOS DE HARDWARE E SOFTWARE (Especificar o hardware e software necessários para desenvolvimento), ESTRUTURA ANALÍTICA (Estabelecer a estrutura e identificar marcos e produtos), CRONOGRAMA DO PROJETO (Apresentar dependências e prazos), MECANISMOS DE MONITORAÇÃO E ELABORAÇÃO DE RELATÓRIOS (Definir os relatórios).
  5. Qual é a principal diferença entre um marco e um produto?
    Resposta: Um marco é um ponto final reconhecível de uma atividade do processo de software. Um produto é um resultado de projeto entregue ao cliente. Produtos são geralmente marcos, mas marcos não são geralmente produtos. Marcos podem ser resultados internos usados pelos gerentes para verificar o progresso do software, embora não sejam entregues ao cliente.
  6. A Tabela 5.8 estabelece uma série de atividades, durações e dependências. Elabore um diagrama de atividades e um diagrama de barras que mostre o cronograma do projeto.
    Resposta: [pic 4]
  7. A Tabela 5.2 apresenta as durações das atividades de projeto de software. Suponha que ocorra um problema sério e imprevisto e, em vez de levar 10 dias, a tarefa T5 leve 40 dias. Revise o diagrama de atividades de acordo com a nova situação, ressaltando o novo caminho principal. Elabore um novo diagrama de barras, que mostre como o projeto pode ser reorganizado.
    Resposta: [pic 5]
  8. Usando os exemplos de problemas de projeto apresentados na literatura, liste as dificuldades de gerenciamento nesses projetos de programação que falharam.
    Resposta: Falta de competência e tempo no desenvolvimento de projetos que podem ir se acumulando.
  9. Além dos riscos apresentados na Tabela 5.4, identifique seis outros riscos possíveis que podem surgir em projetos de software.
    Resposta: Perda de dados, falta de testes, não reconhecimento de possíveis falhas, alto custo em manutenção, mal elaboração do sistema e pouco tempo para muito a desenvolver.
  10. Os contratos de preço fixo, nos quais o fornecedor oferece um preço fixo para concluir o desenvolvimento de um sistema, podem ser usados para passar o risco do projeto do cliente para o fornecedor. Se algo der errado, o fornecedor deve pagar. Sugira como o uso de tais contratos pode aumentar a probabilidade de ocorrência de riscos de produto.
    Resposta: Como é o cliente quem deve sair satisfeito com o produto final, poderá ocasionar maiores chances de não atender a suas expectativas – causando assim problemas, falta de confiabilidade e até geração de mais custos.
  11. Seu gerente solicitou a entrega do software em um cronograma que você sabe que só poderá ser cumprido se sua equipe de projeto trabalhar horas extras sem remuneração. Todos os membros da equipe têm filhos pequenos. Explique se você deve aceitar esse pedido de seu gerente ou se você deve persuadir sua equipe a dar seu tempo para a organização em vez de a suas famílias. Que fatores podem ser significativos para sua decisão?
    Resposta:
    O melhor a fazer seria negociar um novo cronograma e prazo com o gerente. Afinal, uma equipe que trabalhará demais, sem focar em outros assuntos como família e lazer, estará sobrecarregado, assim, perdendo a qualidade do desenvolvimento de cada um e de todos, afetando a qualidade do sistema final em si.
  12. Como programador, você recebe uma promoção para gerente de projeto, mas sente que pode prestar uma contribuição mais eficiente na função técnica do que na administrativa. Explique se você deve aceitar a promoção.
    Resposta:
    Não aceitaria. Em muitos casos, um ótimo funcionário é promovido por sua competência, e na nova função, acaba se tornando um péssimo funcionário, por não ser tão eficiente neste novo setor como no seu antigo – onde já estava obtendo sucesso. Portanto, acho que a empresa deve sempre manter os bons funcionários no setor onde estiverem tendo boa produção, e trocar aqueles que não estiverem obtendo bons resultados.

Capítulo 6

  1. Identifique e descreva brevemente quatro tipos de requisitos que podem ser definidos para um sistema baseado em computador.
    Resposta:
  2. Explique os problemas do uso da linguagem natural para definição de requisitos de usuário e de sistema, e mostre, usando pequenos exemplos, como a estruturação de linguagem natural em formulários pode ajudar a evitar algumas dessas dificuldades.
    Resposta:
  3. Descubra ambiguidades e omissões na seguinte declaração de requisitos de parte de um sistema de emissão de passagens.
    Um sistema automático de emissão de passagens vende passagens de trem. Os usuários selecionam seu destino e inserem um cartão de crédito e um número de identificação pessoal. A passagem de trem é emitida e é debitada na conta do cartão de crédito. Quando o usuário pressiona o botão iniciar, uma tela de menu com possíveis destinos é ativada, junto com uma mensagem que solicita ao usuário selecionar um destino. Quando o destino é selecionado, solicita-se ao usuário a inserção de seu cartão de crédito. A validade do cartão é verificada e é solicitado ao usuário que insira um identificador pessoal. Quando a transação do cartão é validada, a passagem é emitida.
    Resposta:
  4. Reescreva a descrição anterior usando a abordagem estruturada descrita neste capítulo. Resolva as ambiguidades identificadas de maneira apropriada.
    Resposta:
  5. Desenhe um diagrama de sequência que mostre as ações realizadas no sistema de emissão de passagens. Podem-se supor quaisquer hipóteses razoáveis sobre o sistema. Preste atenção especial à especificação dos erros de usuário.
    Resposta:
  6. Usando a técnica sugerida neste capítulo, na qual a linguagem natural é apresentada de maneira padronizada, escreva requisitos plausíveis de usuário para as seguintes funções:

    - A função de liberar dinheiro em um caixa eletrônico de banco.
    - A função de verificação e correção de ortografia em um processador de texto.
    - Um sistema de bomba de gasolina de auto-atendimento que inclui um leitor de cartão de crédito. O cliente passa o cartão pelo leitor e, então, especifica a quantidade de combustível solicitada. O combustível é fornecido e o débito vai para a conta do cliente.
    Resposta:
  7. Descreva quatro tipos de requisitos não funcionais que podem ser definidos para um sistema. Forneça exemplos de cada um dos tipos de requisitos.
    Resposta:
  8. Escreva um conjunto de requisitos não funcionais para o sistema de emissão de passagens, estabelecendo a confiabilidade esperada e o tempo de resposta.
    Resposta:
  9. Sugira como um engenheiro responsável por definir os requisitos de um sistema pode manter o acompanhamento dos relacionamentos entre os requisitos funcionais e não funcionais.
    Resposta:
  10. Você conseguiu um emprego com um usuário de software que contratou seu empregador anterior para desenvolver um sistema para eles. Descobre depois que a interpretação dos requisitos da empresa é diferente da interpretação dada por seu empregador anterior. Explique o que você deve fazer em tal situação. Você sabe que os custos para seu atual empregador irão aumentar caso as ambiguidades não sejam resolvidas. Também tem a responsabilidade da confidencialidade em relação a seu empregador anterior.
    Resposta:

Capítulo 27

  1. Explique por que um processo de software de alta qualidade deve conduzir a produtos de software de alta qualidade. Explique os possíveis problemas com esse sistema de gerenciamento de qualidade.
    Resposta: A qualidade de processo tem uma influência significativa na qualidade de software, pois o gerenciamento de qualidade de processo e o aprimoramento podem certamente conduzir a poucos defeitos no software entregue. Um problema é que a equipe de garantia de qualidade pode insistir em que os processos padrões devem ser usados independentemente do tipo de software em desenvolvimento.
  2. Explique como os padrões podem ser usados para captar o conhecimento da organização sobre métodos eficazes de desenvolvimento de software. Sugira quatro tipos de conhecimentos que podem ser captados em padrões organizacionais.
    Resposta: O desenvolvimento de padrões de projeto de engenharia de software é um processo difícil e demorado, padrões gerais que podem ser aplicados em uma variedade de projetos. As equipes de garantia de qualidade que estão desenvolvendo padrões para uma empresa devem, normalmente, basear seus padrões organizacionais em padrões nacionais e internacionais. Alguns dos tipos que podem ser captados são: Formulário de revisão ao projeto; Estrutura de documentos de requisitos; Formato do cabeçalho do método; Formato de plano de projeto; etc.
  3. Explique a avaliação de qualidade de software de acordo com os atributos de qualidade mostrados no Quadro 27.1. Você deve considerar cada atributo por vez e explicar como ele pode ser avaliado.
    Resposta: SEGURANÇA – Facilidade de compreensão e portabilidade.
    PROTEÇÃO – Facilidade de testes e facilidade de uso.
    CONFIABILIDADE – A adaptabilidade e facilidade de reuso.
    FACILIDADE DE RECUPERAÇÃO – Modularidade e eficiência.
    ROBUSTEZ – Complexidade e facilidade de aprendizado.

  4. Projete um formulário eletrônico que possa ser usado para registrar comentários de revisões e ser usado para remeter eletronicamente os comentários aos revisores.
    Resposta:
  5. Descreva, brevemente, os possíveis padrões que poderiam ser usados para:
    a. O uso de construções de controle em C, C++ ou Java.
    b. Relatórios que podem ser enviados para um projeto de formatura em uma universidade.
    c. O processo de fazer e aprovar mudanças em um programa. (Veja o capítulo 29)
    d. O processo de comprar e instalar um novo computador.
    Resposta: a) Proteção e robustez.
    b) Segurança e facilidade de recuperação.
    c) Confiabilidade.
    d) Robustez e segurança.

  6. Suponha que você trabalhe para uma organização que desenvolve produtos de banco de dados para sistemas de microcomputadores. Essa organização está interessada em quantificar seu desenvolvimento de software. Redija um relatório que sugira métricas apropriadas e aponte como elas podem ser coletadas.
    Resposta:
  7. Explique por que as métricas de projeto são, por si sós, um método inadequado para prever a qualidade do projeto.
    Resposta: Porque os processos de software são precariamente definidos e controlados, e não são suficientemente maduros para se fazer uso de medições. E também, que não existem padrões para métricas, e também por ser impossível medir os atributos de qualidade de software diretamente.
  8. Consulte a literatura e descubra outras métricas de projeto sugeridas, além das explicadas aqui. Considere essas métricas detalhadamente e avalie se elas podem ser de valor real.
    Resposta: Extensão de código (quanto maior o código, mais complexo e propenso a erros o componente será); complexidade ciclomática (relacionada à facilidade de compreensão do programa); extensão de identificadores (quanto maior o identificador, mais eles serão significativos e por isso, mais compreensível será o programa); índice de Fog (quanto maior o valor para o índice, mais difícil será a compreensão de documentos), entre outros, e sim elas são de valores reais por serem essenciais a um desenvolvimento de qualidade.
  9. Explique por que é difícil validar o relacionamento entre os atributos internos de produto, como a complexidade ciclomática e atributos externos, como a facilidade de manutenção.
    Resposta: Por ser impossível medir os atributos de qualidade de software diretamente. Os atributos são influenciados por muitos fatores e não existe uma maneira simples para medi-los. Você deve medir algum atributo interno do software e presumir que há um relacionamento entre o que você pode medir e o que quer conhecer. Também deve haver um relacionamento claro e validado entre os atributos de software internos e externos.
  10. Sugira como as medições de software automatizadas podem ser usadas para apoiar a extreme programming (explicada no Capítulo 17).
    Resposta: Elas podem auxiliar na forma como é exercício o desenvolvimento, ajudando a evitar diversos tipos de erros e defeitos que o software possa trazer.
  11. Os padrões de software reprimem a inovação tecnológica?
    Resposta:
    Tecnicamente não, são apenas padrões que geralmente são seguidos para evitar os mais frequentes erros que possam ter no desenvolvimento de softwares. Isso não impede a inovação no software em si.
  12. Um colega, que é um programador muito bom, produz software com baixo número de defeitos, mas ele ignora consistentemente os padrões de qualidade da organização. Como os gerentes da organização devem reagir em relação a esse comportamento?
    Resposta:
    Se o software apresentar bom funcionamento e atingir o objetivo em que lhe foi proposto, ele deve ser aproveitado da mesma forma, sem problemas. Porém, ignorando os padrões de qualidade da organização, tem mais chances de ocorrer erros durante a aplicação que poderiam ser facilmente corrigidos seguindo aqueles padrões. Caso o software no caso tivesse inúmeros defeitos e erros graves, seria mais complicado reverter a situação pela falta de uso dos padrões de qualidade, então, deve ser orientado para que passe a segui-las. 

Capítulo 28

  1. Sugira modelos de processo para os seguintes processos:
    a. Acender fogo em madeira.
    b. Fazer uma refeição com três pratos. (Você escolhe o menu)
    c. Escrever um programa pequeno. (50 Linhas)
    Resposta: a)
    b)
    c)

  2. Sob quais circunstâncias a qualidade do produto provavelmente pode ser determinada pela qualidade da equipe de desenvolvimento? Dê exemplos de tipos de produtos de software particularmente dependentes do talento e da habilidade individuais.
    Resposta: A qualidade de software não depende de um processo de manufatura, mas de um processo de projeto no qual as capacidades individuais humanas são significativas. Para aplicações inovadoras em particular, as pessoas envolvidas no processo são mais importantes do que o processo em si. Um exemplo são produtos de pequeno porte, onde a qualidade da equipe notavelmente será mais alta, por não ser tão complexo. E cada indivíduo da equipe exerce uma função, sendo assim, cada um uma peça essencial do desenvolvimento do software.
  3. Explique por que um processo metódico não é necessariamente um processo gerenciado conforme definido na Seção 28.2.
    Resposta: Um PROCESSO METÓDICO é beneficiado do apoio de ferramenta CASE quando algum método definido de desenvolvimento é usado. Já o PROCESSO GERENCIADO é usado para conduzir o processo de desenvolvimento. Sendo assim, são bens diferentes.
  4. Sugira três ferramentas especiais de software que possam ser desenvolvidas para apoiar um programa de aprimoramento de processos em uma organização.
    Resposta:
  5. Suponha que o objetivo de aprimoramento de processos em uma organização seja aumentar o número de componentes reusáveis produzidos durante o desenvolvimento. Sugira três questões no paradigma GQM que possam conduzir a esse objetivo.
    Resposta:
  6. Descreva três tipos de métricas de processos de software que possam ser coletadas como parte de um processo de aprimoramento. Dê um exemplo de cada tipo de métrica.
    Resposta:
  7. Projete um processo para avaliação e priorização de propostas de mudança de processos. Documente esse processo como um modelo mostrando os papéis envolvidos.
    Resposta:
  8. Forneça duas vantagens e duas desvantagens da abordagem para avaliação e aprimoramento de processos incorporada aos frameworks de aprimoramento de processos como o CMMI.
    Resposta:
  9. Sob quais circunstâncias você recomenda o uso da representação por estágios do CMMI?
    Resposta:
  10. Qual é a diferença entre objetivos genéricos e específicos no CMMI?
    Resposta:
  11. Quais sao as vantagens e as desvantagens no uso de um modelo de maturidade baseado em objetivos em vez de baseado em práticas?
    Resposta:
    A vantagem é que ele define um caminho claro de aprimoramento para as organizações. A desvantagem é que pode ser mais adequado introduzir objetivos e práticas de níveis mais elevados antes das práticas de níveis inferiores.
  12. Os programas de aprimoramento de processos que envolvem medições do trabalho de pessoas no processo e na mudança do processo são inerentemente desumanos? Qual resistência ao programa de aprimoramento de processo pode surgir?
    Resposta:

...

Baixar como (para membros premium)  txt (42.8 Kb)   pdf (390.8 Kb)   docx (753.1 Kb)  
Continuar por mais 28 páginas »
Disponível apenas no TrabalhosGratuitos.com