Você está na página 1de 16
FACULDADE METROPOLITANA DE MANAUS Resumo do Capitulo 1 do Livro Engenharia de Software – Uma

FACULDADE METROPOLITANA DE MANAUS

Resumo do Capitulo 1 do Livro

Engenharia de Software Uma Abordagem Profissional (7º Edição)

Autor: Roger S. Pressman

MANAUS

2018

FACULDADE METROPOLITANA DE MANAUS

SISTEMAS DE INFORMAÇÃO

Allan Felipe de Oliveira Dantas

Geane Nunes de Souza Parente

Gabrielle Maciel da Silva

Monique Regis da Rocha

Resumo do Capitulo 1 do Livro

Engenharia de Software Uma Abordagem Profissional (7º Edição)

Autor: Roger S. Presman

Resumo para obtenção de nota parcial, disciplina de Engenharia de Software, ministrado pelo Professor Marcelo Alves da Cruz.

MANAUS

2018

 

Sumário

Introdução

4

Engenharia de Software

6

Panorama

6

A

Natureza do Software

7

Definindo Softwares

8

Campos de Aplicação de Softwares

8

Software Legado

10

A

Natureza Única das WebApps

10

Engenharia de Software

11

O

Processo de Software

12

Prática da Engenharia de Software

13

Princípios Gerais

13

Como Tudo Começou

14

Conclusão

15

Introdução

Atualmente a indústria de desenvolvimento de softwares se tornou uma das mais importantes indústrias do cenário mundial, o software já se tornou uma tecnologia indispensável para todas as áreas abrangendo desde a economia, ciência, engenharia, telecomunicações, entretenimento, medicina e está cada vez mais onipresente em nosso cotidiano. Mas ao se analisar o software mais profundamente vemos que ele já assumiu um duplo papel onde ele é ao mesmo tempo um produto e um veículo de entrega de um produto.

Como um produto ele nos disponibiliza todo o potencial de computação presente no hardware de nossos computadores, seja gerenciando um simples celular seja atuando em supercomputadores capazes processar milhares de informações por segundo. E como um veículo ele nos entrega o mais importante produto de nossa época: A Informação. Ele é capaz de processar e organizar dados mais simples com uma velocidade e precisão que nunca imaginadas a poucos anos atrás.

O software de computadores passou por mudanças significativas nos

últimos 50 anos, e influenciando de significativa o desenvolvimento do próprio hardware forçando profundas modificações na própria arquitetura de fabricação dos computadores, criando sistemas cada vez mais sofisticados e complexos.

Nos anos 40, quando se iniciou a evolução dos sistemas computadorizados, grande parte dos esforços, e consequentes custos, era concentrada no desenvolvimento do hardware, em razão, principalmente das limitações e dificuldades encontradas na época. À medida que a tecnologia de hardware foi sendo dominada, as preocupações se voltaram, no início dos anos 50, para o desenvolvimento dos sistemas operacionais, onde surgiram então as primeiras realizações destes sistemas, assim como das chamadas linguagens de programação de alto nível, como FORTRAN e COBOL, e dos respectivos compiladores.

A tendência da época foi de poupar cada vez mais o usuário de um

computador de conhecer profundamente as questões relacionadas ao funcionamento interno da máquina, permitindo que este pudesse concentrar

seus esforços na resolução dos problemas computacionais em lugar de preocupar-se com os problemas relacionados ao funcionamento do hardware. Já no início dos anos 60, com o surgimento dos sistemas operacionais com características de multiprogramação, a eficiência e utilidade dos sistemas computacionais tiveram um considerável crescimento, para o que contribuíram também, de forma bastante significativa, as constantes quedas de preço do hardware. Uma consequência deste crescimento foi a necessidade, cada vez maior, de desenvolver grandes sistemas de software em substituição aos pequenos programas aplicativos utilizados até então. Desta necessidade, surgiu um problema nada trivial devido à falta de experiência e à não adequação dos métodos de desenvolvimento existentes para pequenos programas, o que foi caracterizado, ainda na década de 60 como a "crise do software", mas que, por outro lado, permitiu o nascimento do termo "Engenharia de Software". Atualmente, apesar da constante queda dos preços dos equipamentos, o custo de desenvolvimento de software não obedece a esta mesma tendência. Pelo contrário, corresponde a uma percentagem cada vez maior no custo global de um sistema informatizado. A principal razão para isto é que a tecnologia de desenvolvimento de software implica, ainda, em grande carga de trabalho, os projetos de grandes sistemas de software envolvendo em regra geral um grande número de pessoas num prazo relativamente longo de desenvolvimento.

Engenharia de Software

Elemento-chave

na evolução de produtos e sistemas baseados em

computador e uma das mais importantes tecnologias o cenário mundial.

Panorama

O que é?

São produtos de Software de computadores desenvolvidos com suporte

a longo prazo. Abrange processos, métodos, práticas, profissionais e ferramentas.

Quem realiza?

Engenheiros de softwares.

Por que ele é importante?

Atualmente está incorporado em vários aspectos como: vida social, comércio, cultura e vida cotidiana.

Quais são as etapas envolvidas?

Aplica-se processos adaptável e ágil, que traga resultado de qualidade.

Qual é o artefato?

Para um engenheiro são ferramentas que contenham dados. Para um usuário informações relevantes de utilidade geral.

Softwares de computadores atualmente é uma tecnologia importante no cenário atual. Antigamente ninguém poderia prever isto, que seria algo tão relevante para tomadas de decisões em negócios, ciência, engenharia, que iria viabilizar a criação de novas tecnologias e que iria revolucionar a forma como os computadores pessoais iriam revolucionar o mercado mundial.

Softwares trouxeram para comércios locais, a possibilidade da evolução

da forma de vendas, para produtos ou serviços. Influenciariam em companhias

e indústrias. Com o surgimento da internet, tudo mudou e se revolucionou sejam,

pesquisas, compras realizadas pelos consumidores e, hábitos cotidianos entre adultos e jovens.

Os softwares foram incorporados em todas as áreas como medicina, transportes, telecomunicação, militar, industrial, entretenimento e dentre outros.

Com isto ninguém previa que sistemas e programa de computadores teriam que se modificar ou adaptar na medida em que foram ampliados. Sendo assim isto trouxe o surgimento de novas tecnologias para tornar o desenvolvimento mais fácil, rápido e barato.

A Natureza do Software

Atualmente o software assume dois papeis ao mesmo tempo, sendo um produto e um veículo de seu próprio produto.

Como produto, um transformador de informações simples ou complexas, transformando, modificando ou exibindo informações.

Como um veículo de distribuição do produto, atua como base para controle de computador (Sistemas Operacionais) e comunicação entre redes.

O papel desempenhado pelo software, vem passando por mudanças, sejam elas: aperfeiçoamento de softwares, desempenho de hardware, mudanças na arquitetura computacionais, complexidade, sofisticação. Isto carretou dois fatores importantes, sendo: resultados impressionantes quando o sistema é bem-sucedido e problemas para os que precisam desenvolver sistemas robustos.

Porém, atualmente após a evolução das formas de desenvolvimento de softwares entre equipes e o programador que antes era solitário, nos remete a questões sobre os modernos sistemas computacionais que são desenvolvidos como:

Por que concluir um software leva tempo?

Por que os custos são caros?

Os motivos pelo de entregas de softwares ainda apresentando erros?

Esforços mantendo programas descontinuados.

Dificuldade de medir progresso de desenvolvimento de software e o quanto ele está sendo mantido.

Definindo Softwares

Para tal definição é importante examinar as características distintas entre softwares e hardwares. Embora existam semelhanças entre a fabricação de ambas, cada uma existe a sua particularidade.

Em ambas a qualidade é obtida através de um bom projeto. Mas quando falamos em correção, para hardware são problemas corrigíveis través de troca de peças, mas quando se trata de software a dependência de correção se dá através de estudo, análise e recursos com pessoas.

Se tratando de durabilidade, um software pode chegar a longo prazo sem deterioração de componentes como em um hardware. Que sofrem efeitos externos ou males ambientais.

Porém, se tratando em hardware muitas vezes, há peças que podem ser substituídas com peças de reposição, mas em softwares não existem peças de reposição, há a necessidade explícita de manutenção, que envolvem mudanças, solicitações, tarefas ou análise.

A medida que a indústria evolui, componentes novos são projetados e padronizados para um hardware, em softwares os mesmos podem ser projetados para implementação em outros softwares, ferramentas que tornam trabalho do desenvolvedor menos complexo e mais eficiente. Podendo surgir novos métodos, paradigmas ou arquiteturas.

Campos de Aplicação de Softwares

Softwares de Sistemas Programas que atendem outros programas, podem processar estruturas e interfaces complexas.

Software de Aplicação

Solução para necessidades de negócios, facilita tomadas de decisão ou processam dados comerciais.

Software cientifico/de engenharia Algoritmos de processamento numérico pesado, dinâmica orbital e simulação de sistemas e outras aplicações interativas.

Software Embutido Implementa e controla características e funções para o usuário final para o próprio sistema.

Software para linha de produtos Provem capacidade de utilização para múltiplos cliente.

Aplicações para Web As chamadas “WebApps”, são um conjunto de arquivos de hipertexto interconectados, podem e integrados a banco de dados.

Software de inteligência artificial Uso de algoritmos complexos e não numéricos, mas que solucionam problemas complexos.

Computação mundial aberta Computação pervasiva, e vários sistemas distribuídos se comuniquem através de redes.

Netsoursing Provedor de conteúdo e um mecanismo computacional.

Software aberto Código-fonte open source, e que possam contribuir para o desenvolvimento do sistema.

Software Legado

São softwares que são utilizados em um amplo campo de aplicação, mas que possuem características de programas mais antigos.

Possuem características presentes de baixa qualidade, código trincado, documentação pobre ou inexistente, histórico de modificação mal registrado, histórico de administração mal registrado, porém, alguns são vitais de regras de negócios e indispensáveis. Podem passa frequentemente por adaptações e muitas vezes evoluem pelas razões: atender novas necessidades; implementação de novos requisitos;

A Natureza Única das WebApps

Com o tempo as ferramentas de hipertexto e a capacidade computacional que veio junto a internet juntamente com as informações, nasciam as aplicações baseadas em web.

Atributos encontrados nas WebApps:

Uso intenso de redes Atende a necessidade de uma comunidade diversificada de clientes.

Simultaneidade Múltiplos usuários acessando.

Disponibilidade Acesso a qualquer hora ou lugar.

Orientadas a dados Apresentação de textos, gráficos, mídias, áudio ou vídeos para o usuário final.

Sensibilidade no conteúdo Qualidade e natureza estética.

Evolução Contínua Constantes adaptações e surgimentos de novas ferramentas.

Imediatismo Rápido implantação em produção.

Segurança Proteção de conteúdos sensíveis e oferecer modos seguros de transmissão de dados.

Estética Interface intuitiva e ergonômica.

Engenharia de Software

Os softwares estão incorporados no cotidiano, ou seja, o número de pessoas interessadas em seus recursos ou funções tem crescido exponencialmente.

Os requisitos de diversos tipos de usuários têm complexos.

se tornado mais

Cada vez mais usuários tem sentido a necessidade de tomada de decisões através de softwares para táticas de estratégia assim como controles cotidianos.

Todos os softwares devem ser passíveis de manutenção, uma vez que a probabilidade de longevidade também cresça.

Todos os softwares devem passar por processo de engenharia.

A engenharia de software nos traz pouco sobre aspectos técnicos da qualidade, ou seja, não trata diretamente da satisfação do cliente. Mas a abordagem nos traz sistematicamente a quantidade, ou a tecnologia em camadas de processos. No contexto no qual são aplicados métodos técnicos que envolvem tarefas, comunicação, análise de requisitos, modelagem de projeto, construção de programas, teste e suporte.

O Processo de Software

É um conjunto de atividades ações e tarefas realizadas na criação de algum produto de trabalho. Uma metodologia de processos para engenharia de software compreende as atividades a seguir:

Comunicação Compreensão dos objetivos do cliente

Planejamento Criação de planejamento de software

Modelagem Esboços e protótipos

Construção Geração de código e testes para tratamento de erros

Emprego Freedback baseado em avaliações

Contudo existem atividades de apoio típicas a engenharia de software:

Controle e planejamento de projeto Possibilita verificar o progresso da equipe

Administração de riscos Avaliação de riscos que afetam a qualidade

Garantia da qualidade de software Trata-se de qualidade

Revisões Técnicas Tratamento de erros para as atividades seguintes

Medição Auxilia na entrega do software

Gerenciamento da configuração de software

Mudança de processos

Gerencia de Reusabilidade Estabelece mecanismos reutilizáveis

Prática da Engenharia de Software

Nesta fase, tendemos a compreender o problema, planejar a solução, executar o plano e examinar o resultado para ter precisão.

Princípios Gerais

Primeiro Princípio: A razão do existir A importância da geração de valor a seus usuários, todas as decisões tomadas devem basear-se deste principio

Segundo princípio: faça de forma simples Compreensão de entender e manter o software.

Terceiro princípio: mantenha a visão Compreensão da visão arquitetônica

Quarto princípio: o que produz outros consomem Implementar de forma entendível

Quinto princípio: esteja aberto para o futuro Sistemas preparados para adaptações e mudanças.

Sexto princípio: planejamento Reutilização de códigos para minimizar tempo

Sétimo princípio: pense

Realizar analise.

Como Tudo Começou

Todo projeto nasce de uma necessidade. Geralmente inicialmente essa necessidade é expressa como parte simples da conversa.

Mesmo após a sua evolução na medida que tudo se encaixa, este projeto de software pode ter suas medidas de sucesso e fracasso.

Afinal o mercado só utiliza os softwares que atendem uma necessidade expressa.

Conclusão

Concluímos que a engenharia de software é primordial para o desenvolvimento de tecnologias para produtos e sistemas. O engenheiro de software é responsável pelo desenvolvimento do processo como um todo garantindo a qualidade e entrega do produto assertivo.

As naturezas do software veem passando por mudanças dependendo do fator de complexidade da entidade a qual está destinado o sistema, sendo assim desenvolveu-se a necessidade de uma engenharia de software conjunta e métodos adotados para atendimento das necessidades dessas entidades em um prazo aceitável. Definimos as características distintas entre Software e Hardware, software são muito mais complexos do que hardware, pois o mesmo tende a ter problemas que requerem estudo especifico e orientado para corrigi- los.

Os campos de aplicação de software são inúmeros e são divididos entre as unidades de negócios dos mais variados segmentos de mercado, e com a Engenharia de Software crescendo exponencialmente, a procura por excelência em criação dessas aplicações foi resultando em um crescimento de demanda nos últimos tempos. Com isso a eficiência em Engenharia de Software está voltada para processos de acompanhamento especifico e com metodologias assertivas para cada processo da criação.