Uncategorized

Resumo do Livro Engenharia de Software de Ian Sommerville 8ª Ed.

Segue um resumo que preparei do livro de Ian Sommerville  – Engenharia de Software 8ª Ed. Esse resumo aborda os principais tópicos dos capítulos 1 ao 7. Aproveitem! Imagem

Introdução a Eng. De Software

É um ramo da engenharia com foco no desenvolvimento de softwares dentro de custos, prazos adequados e alta qualidade. Software é abstrato, não há limitações físicas. Essa falta de limitações pode torna-lo extremamente complexo e de difícil compreensão.

O conceito de ES foi proposto em 1968 em uma conferência para discutir o que foi chamado de “crise do software”, que resultava do surgimento de novos hardwares de computadores baseados em CI’s e tornava sistemas impensáveis até então em projetos realizáveis e mais complexos que os anteriores. O desenvolvimento informal não era suficiente, atraso, não confiável, difícil de manter, baixo desempenho. Novas técnicas surgiram pois o custo do hardware caía enquanto do software aumentava. Até hoje em dia essas técnicas não são aplicadas efetivamente por muitas empresas.

O QUE É SOFTWARE?

                Além do programa executável, são todos os dados de documentação(sistema e usuário), arquivos de conf. necessários a operação do software.

Existem 2 tipos de produtos de software:

  1. Produtos genéricos: Sistemas do tipo Stand-alone e vendido no mercado para qualquer cliente;
  2. Produtos sob encomenda (ou personalizados):  Encomendado por um determinado cliente/ ou modificado para ele;

DIFERENÇAS:

Nos produtos genéricos quem controla a especificação é a empresa que desenvolve. Já nos produtos sob encomenda, essa especificação é controlada pela empresa que compra o produto.  Existe também o caso em que um produto genérico é modificado para atender um cliente específico (ERP’s como SAP).

O QUE É ENG. DE SOFT.?

É uma disciplina de engenharia relacionada com todos os aspectos da produção de software, desde a especificação até a manutenção.

Por que Disciplina? – Os engenheiros aplicam teorias métodos e ferramentas onde for apropriado e de forma seletiva mesmo quando não existem teorias e métodos aplicáveis, e fazem as coisas funcionarem.  Trabalham também sob restrições organizacionais e financeiras.

Todos os aspectos? – Porque também se relaciona com atividades do gerenciamento do projeto, desenvolvimento de ferramentas, métodos e teorias que apoiem a produção.

Em geral utiliza-se uma abordagem sistemática e organizada, mas pode ser extremamente eficaz selecionar uma abordagem alternativa e menos formal para uma determinada circunstância.

DIFERENÇA ENTRE E.S. E C.C.

A C.C. diz respeito as teorias e os métodos que formam a base para computadores e softwares. A E.S. se dedica aos problemas práticos da produção de software. Teorias mais elaboradas da C.C. nem sempre podem ser aplicadas a E.S. nos seus problemas reais e complexos.

DIFERENÇA ENTRE ENG. DE SOFTWARE E DE SISTEMAS

A Eng. Sistemas trata de todos os aspectos do desenvolvimento e da evolução de sistemas complexos. Relacionada ao desenvolvimento de hardware, políticas e processos de implantação e a própria Eng. De Soft. Mais envolvida com definição de arquitetura, integração de partes e menos envolvidos com eng. Dos componentes, hardware, software etc.   Enquanto a Eng. De Soft. se dedica aos problemas práticos da produção do software e faz parte da engenharia de sistemas.

O QUE É PROCESSO DE SOFTWARE?

É um conjunto de atividades e resultados associados que produz um produto de software(software, documentação, etc).

Atividades de processos comuns a todos os processos:

1 – Especificação: Definição do que será produzido;

2 – Desenvolvimento: Projetado e programado;

3 – Validação: Verificação se o que foi feito é o que o cliente deseja.

4 – Evolução: Adaptação as mudanças futuras e/ou melhorias;

Diferentes tipos de sistemas necessitam de diferentes tipos de desenvolvimento. Ex.: Alguns podem requerer que sejam especificados totalmente antes do desenvolvimento, para outros, essas atividades podem ocorrem em paralelo. O uso de um processo inadequado pode reduzir a qualidade ou a utilidade do produto de software a ser desenvolvido e/ou aumentando os custos de desenvolvimento.

O QUE É UM MODELO DE PROCESSO DE SOFTWARE?

É uma descrição simplificada do processo sob uma determinada visão. Os modelos incluem atividades do processo, produtos de software e os papéis das pessoas envolvidas.

A maioria dos modelos é baseada em um dos 3 modelos gerais ou paradigmas de desenvolvimento:

  • CASCATA – Fases separadas de processos. Uma fase não inicia sem que outra termine e seja aprovada.
  • DESENVOLVIMENTO ITERATIVO – Intercala as atividades. Desenvolvido rapidamente com base em especificações abstratas e depois é refinado com informações dos clientes para que possa satisfazer a necessidade desse.
  • E.S. BASEADA EM COMPONENTES – Supões que partes do sistema da já existem. Concentra-se mais na integração dessas partes do que no seu desenvolvimento a partir do início.

QUAIS SÃO OS CUSTOS DA ENG. DE SOFT.?

Não existe uma resposta simples. No modelo cascata, os custos de especificação, projeto, implementação e integração são medidos separadamente. Nesse caso, integração e testes são as atividades mais caras, entre 40 e 50% do custo total de desenvolvimento.

Na abordagem iterativa, não existe uma linha precisa entre especificação, projeto e desenvolvimento. Custos de especificação reduzidos, pois apenas uma especificação de alto nível é produzida antes do desenvolvimento, e também precisa de uma atividade de teste independente uma vez que a implementação inicial esteja completa.

A CBSE  tem sido aplicada  apenas nos últimos tempos, e sabemos que os custos de desenvolvimento são menores que os custos de integração e testes, porque é necessário assegurar que os componentes utilizados, realmente satisfazem as especificações e funcionam conforme o esperado, mas além disso não há dados precisos para os custos.

Custos também incorrem em alterações após a sua liberação para o uso. Os custos de evolução variam muito de acordo com o tipo de sistema.

Essa abordagem de custos é válida para softwares sob encomenda.  Nos produtos genéricos, há uma abordagem evolucionária, e os custos de especificação são relativamente baixos. Já os custos de testes são mais altos justamente por serem previstos para rodar em diferentes ambientes de configuração.

Os custos de evolução de produtos genéricos são relativamente difíceis de serem estimados, pois não são avaliados separadamente como nos softwares sob encomenda, mas são simplesmente custos de desenvolvimento.

O QUE SÃO MÉTODOS DE ENG. DE SOFTWARE?

                Um método é uma abordagem estruturada para o desenvolvimento de software, cujo objetivo é facilitar a produção de software de alta qualidade dentro de custos adequados. Não há um método ideal, e diferentes métodos possuem diferentes áreas onde são mais aplicáveis. Todos os métodos são baseados na ideia de modelos de desenvolvimento.

O QUE É CASE?

São ferramentas utilizadas para dar apoio as atividades do processo de software, tais como análise, modelagem, depuração e testes. Todos os métodos vêm atualmente com uma tecnologia case associada.

OQUE SÃO ATRIBUTOS DE UM BOM SOFTWARE?

Os atributos de um software refletem o comportamento do software, enquanto esse está em execução, sua estrutura e organização dos fontes bem como a documentação associada.

Alguns atributos: Facilidade de entendimento dos fontes, tempo de resposta a uma consulta. O conjunto de atributos varia de acordo com a sua aplicação. Pode-se resumir em: Facilidade de manutenção, confiança, eficiência e aceitação.

QUAIS SÃO OS DESAFIOS CHAVES DA E.S.?

Hoje a E.S. se depara com 3 desafios:

Desafio da heterogeneidade: É necessário que os sistemas de software operem com sistemas distribuídos e também com sistemas mais antigos (legados). Necessário técnicas para desenvolver sistemas flexíveis e confiáveis para adaptar-se a essa heterogeneidade.

Desafio de entrega: Muitas técnicas tradicionais demandam tempo para obter a qualidade. O desafio da entrega consiste em reduzir os tempos de entrega dos sistemas grandes e complexos sem comprometer a qualidade.

Desafio da confiança:  Os softwares estão presentes em todos os aspectos da nossa vida e precisamos confiar nele. O desafio da confiança consiste em desenvolver técnicas que demonstrem aos usuários que é possível confiar nele.

RESPONSABILIDADE PROFISSIONAL E ÉTICA

Confidencialidade: respeitar a confidencialidade de seus funcionários ou clientes independente ou não de acordo formal.

Competência: Não deve conscientemente aceitar um trabalho que esteja fora da sua competência.

Direitos sobre propriedade intelectual: Estar ciente das leis locais, patentes e assegurar que a propriedade intelectual de funcionários e clientes esteja protegida.

Mau uso de computadores: Evitar mau uso desde o trivial (como jogos por exemplo) até o mais sério (disseminação de vírus).

Baixar o Resumo no formato PDF.

Abraços!

Padrão

7 comentários sobre “Resumo do Livro Engenharia de Software de Ian Sommerville 8ª Ed.

  1. Pingback: Software De Erp Acronym | Actual Percentil

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s