You are on page 1of 26

S12 - Software e Engenharia de

Software

ENGENHARIA DE SOFTWARE – PRESSMAN, 2011

Gilberto Wolff – UTFPR

Introdução

Introdução .

Introdução .

Roteiro ➢ Introdução ➢ Definindo software ➢ Conceitos de software ??? ➢ Características do software ➢ Curva de defeitos para o hardware ➢ Curva de defeitos para o software ➢ Campo de aplicação de software ➢ Novos desafios para Engenheiros de software ➢ Software legado ➢ A natureza única das WebApps ➢ Engenharia de software .

Definindo Software 1.INFORMAÇÃO DESCRITIVA tanto na forma impressa como na virtual. funções e desempenho desejados 2 .INSTRUÇÕES (programas de computador) que quando executadas fornecem características. descrevendo a operação e o uso dos programas .ESTRUTURAS DE DADOS que possibilitam aos programas manipular informações adequadamente 3 .

Conceitos de Software ✓ Software é um subsistema de um sistema computacional. . São os programas de computadores (REZENDE. É o elemento que realiza estruturas complexas e flexíveis que trazem funções. ✓ Software é a parte programável de um sistema. utilidades e agregam valor ao sistema (SOMMERVILLE. 2007). 2005).

. abrangendo praticamente qualquer mídia eletrônica (PRESSMAN. 2011). Conceitos de Software ✓ São os produtos desenvolvidos por profissionais de software. O software abrange programas executáveis em um computador de qualquer porte ou arquitetura. informações tanto na forma impressa como na forma virtual. conteúdos apresentados à medida que os programas são executados.

Ele não se desgasta mas se deteriora 3.A maioria dos softwares continua sendo construída de forma personalizada (sob encomenda) . Características do Software 1.Ele é desenvolvido ou passa por um processo de engenharia. ele não é fabricado no sentido clássico 2.

Curva de defeitos para o hardware Taxa de “desgaste” defeitos “mortalidade infantil” tempo .

Curva de defeitos para o software Aumento da taxa de Taxa de defeitos devido a defeitos efeitos colaterais curva real mudança curva idealizada tempo .

caracterizado por algoritmos para processamento de números EMBUTIDO .Campo de aplicações de software DE SISTEMA .programas sob medida que solucionam uma necessidade específica de negócio CIENTÍFICO / DE ENGENHARIA .conjunto de programas escritos para atender a outros programas DE APLICAÇÃO .residente num produto ou sistema e utilizado para implementar e controlar características e funções para o usuário final e para o próprio sistema .

faz uso de algoritmos não numéricos para solucionar problemas complexos que não são passiveis de computação ou de análise direta . Campo de aplicações de software PARA LINHA DE PRODUTOS . abarca uma vasta gama de aplicações DE INTELIGÊNCIA ARTIFICIAL . essa categoria é centralizada em redes.projetado para prover capacidade específica de utilização por muitos clientes diferentes PARA WEB .chamadas de “WebApps”.

.Novos desafios para Eng. tanto um mecanismo computacional... de forma que muitas pessoas possam contribuir para seu desenvolvimento Quais são os desafios????? .o rápido crescimento de redes sem fio pode. compartilhada.uma tendência crescente que resulta na distribuição de código fonte para aplicações de sistemas. conduzir a uma verdadeira computação distribuída e pervasiva (ampliada. rapidamente. em breve.) NETSOURSING (RECURSOS VIA INTERNET) .a internet está se tornando. como um provedor de conteúdo SOFTWARE ABERTO .º de Software COMPUTAÇÃO MUNDIAL ABERTA .

.. H. A proliferação de tais sistemas está causando dores de cabeça para grandes organizações que os consideram dispendiosos de manter e arriscados de evoluir (DAYANI-FARD... 1999) . MUITO ANTIGOS!!! Sistemas de software legado . Foram desenvolvidos a décadas atrás e tem sido continuamente modificados para se adequar a mudanças de requisitos de negócios e a plataformas computacionais. et al. Software legado SÃO SOFTWARES ANTIGOS.

2011) ➢ Os seguintes atributos são encontrados na maioria dos WebApps: ➢ Uso intensivo de redes. Desempenho. Segurança. Evolução contínua. Imediatismo. Carga não previsível. Estética . Sensibilidade no conteúdo. Orientadas a dados. Disponibilidade. A natureza única das WebApps (1990 – 1995) ➢WebApps – são os sistemas e aplicações baseados na Web (PRESSMAN. Simultaneidade.

Engenharia de Software Para desenvolver softwares preparados para enfrentar os desafios do século XXI. deve-se perceber alguns fatos reais: ➢ Os softwares estão incorporados em nossas vidas e o número de usuários é cada vez maior ➢ Os requisitos de tecnologia de informação demandados por indivíduos. em ordem crescente de software para decisões estratégicas e táticas ➢ À medida que o valor de uma aplicação específica aumente. a probabilidade é de que a sua base de usuários e longevidade também cresçam Essas constatações levam à Engenharia de Software . empresas e órgãos governamentais estão mais complexos a cada ano ➢ Indivíduos. negócios e governos dependem.

Engenharia de Software ➢ Surgiu com objetivo de utilizar princípios de engenharia no desenvolvimento de software para aumentar a qualidade dos produtos oferecidos. diminuir os custos e riscos relacionados e criar processos repetíveis e eficazes para serem utilizados nos ciclos de manutenção e desenvolvimento de software (ENGHOLM JÚNIOR. 2010) .

é a criação e utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica. Bauer apud Engholm Júnior.conceito ➢ Segundo Friedrich L. que seja confiável e que trabalhe eficientemente em máquinas reais . 2010. Engenharia de Software .

Engenharia de Software ➢ É uma tecnologia de camadas ➢ Deve estar fundamentada na qualidade (foco na qualidade) ➢ É o que dá sustentabilidade a ela. segundo Pressman. 2011 .

Seis Sigma. leva ao desenvolvimento de abordagens cada vez mais efetivas na engenharia de software . é esta cultura que no final das contas. Engenharia de Software – foco na qualidade – é a pedra fundamental ➢ A gestão da Qualidade Total. e filosofias similares. promovem uma cultura de aperfeiçoamento contínuo de processos e.

Engenharia de Software – processo ➢ A base para eng.ª de software é a camada de processo ➢ O processo de eng.ª de software é a liga que mantém as camadas de tecnologias coesas e possibilita o desenvolvimento de software de forma racional e dentro do prazo .

construção de programa. modelagem de projeto. testes e suporte .ª de software fornecem as informações técnicas para desenvolver software.ª de software ➢ Os métodos de eng. Engenharia de Software – métodos ➢ O processo define um método que deve ser estabelecido para entrega efetiva da eng. análise de requisitos. Os métodos envolvem as seguintes tarefas: comunicação.

Engenharia de Software – ferramentas ➢ Fornecem suporte automatizado ou semiautomatizado para o processo e para os métodos ➢ Quando as ferramentas são integradas. denominado eng. de modo que as informações criadas por uma ferramenta possam ser usadas por outra. é estabelecido um sistema para o suporte ao desenvolvimento do software.ª de software com auxílio do computador .

➢ Implementação de software. Engenharia de Software – áreas de conhecimento ➢ Segundo o SWEBOK apud Engholm Júnior. ➢ Gerência de configuração de software. ➢ Manutenção de software. ➢ Análise e desenho de software. e. 2010. . as áreas de conhecimento da engenharia de software são: ➢ Requisitos de software.

S. 3. Paula Filho. ed. Porto Alegre : AMGH.ed. Rio de Janeiro : LTC. São Paulo : Addison- Wesley Brasil. São Paulo : Brasport. 2007. Engenharia de software: fundamentos. Ian. R. W. PRESSMAN. . 8. Engenharia de software: uma abordagem profissional. 7. REZENDE. Referências ENGHOLM JÚNIOR. H. 2011. São Paulo : Novatec Editora. 2005. 2011. 2010. métodos e padrões. 3. ed. Engenharia de software e sistema de informação.ed. Engenharia de Software. de P. – Engenharia de software na prática. SOMMERVILLE. Denis A.