Engenharia de Software
description
Transcript of Engenharia de Software
Engenharia de Software
Aula 1Apresentaçãoe Introdução a Engenharia de Software
2
Profa. Maria Lina Buscariolli Formação Acadêmica
– Fundação Bradesco – Tecnóloga Processamento de Dados– FIEO – Bacharel em Direito– IPT – Mestre em Engenharia de Computação, Área de
concentração: Engenharia de Software
Experiência Profissional– 21 anos em TI, com especialização em desenvolvimento de
sistemas para Atendimento ao Cliente, Ouvidoria e Call Center.
Atualmente– Coordenadora de Sistemas na TAM Linhas Aéreas
3
Objetivos Apresentar o conceito e a importância da
Engenharia de Software no desenvolvimento e manutenção de software
Detalhar a disciplina e sua aplicabilidade
Bibliografia Engenharia de Software
Roger S. Pressman, 6ª edição Engenharia de Software
Sommerville, 8ª edição
4
Metodologia de Ensino Aulas teóricas
– Apresentação do conteúdo da disciplina correlacionando seu conteúdo com questões práticas do dia a dia nas organizações de TI.
Trabalhos de participação- Trabalhos de participação, Debates e Dinâmicas sobre os principais
conceitos.- Os trabalhos serão realizados e corrigidos em sala e como as datas
já estão pré agendadas não poderão ser entregues em data diferente data da aula em que o trabalho foi dado.
- Trabalhos sem qualidade não receberão a nota de participação.- Ao final do trabalho os participantes assinarão uma lista de presença
na qual constará a distribuição da nota feita pelo próprio grupo.
5
Critérios de Avaliação 10 pontos, distribuídos da seguinte forma:
6
Referências Referências Bibliográficas (Básica)
PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. 7.ed. Porto Alegre: Bookman, 2011.
PRESSMAN, R. S. Software Engineering: a practitioner's approach. 7.ed. Boston : McGraw-Hill, 2010.
SOMMERVILLE, I. Engenharia de Software. 8.ed. São Paulo: Pearson, 2007.
Referências Bibliográficas (Complementar)
SCHWABER, K. Agile Project Management With Scrum. 1st ed. Redmond: Microsoft C.B.Learning, 2004.
Referências Web1. http://www.sei.cmu.edu/2. www.ieee.org
7
Expectativas !!!
8
Introdução a Engenharia de Software
9
Conceitos
O que é Hardware ?Parte tangível de um computador, equipamentos, periféricos. Está limitado a
espaços físicos com recursos finitos.No ser humano poderia ser comparado ao crânio.
O que é Software ?Não é material, intangível, não limitado a espaços físicos ou recursos naturais.
Seu potencial é infinito e conseqüente sua complexidade pode se tornar tão elevada, que pode passar a ser difícil de ser compreendido.
No ser humano poderia ser comparado com os pensamentos.
10
Hardware
Software
Falhas de hardware no início são inerentes à sua fabricação e no final relativas ao desgaste ambiental das peças (poeira, aquecimento, vibração). Na fase mediana a estabilidade se dá pela facilidade de substituição de uma peça ou outra que apresente falha. Conclusão: é fácil ter estabilidade quando é fácil atuar exatamente no ponto gerador do problema.
Durante a vida do software modificações introduzem novas falhas, se a manutenção desta falha for de difícil acesso¹, o índice de correção é baixo, trazendo novas falhas. . Conclusão: é difícil ter estabilidade quando é difícil atuar exatamente no ponto gerador do problema.
¹ Exemplo de difícil acesso = código macarrônico
Hardware x Software
11
Linha Tempo T.I.Evolução do Hardware
Evolução do Software
Registros ArgilaAbaco
Calculadora IBM (1924)Televisão
Máquina DiferençaTelégrafoRádioTelefone
IBM-CartãoPerfuradoIBM-Máq. Escrever Ele
Prim. Compu. PGM
RAM, CPUTransistor
Prim. Compu. Com.
Modem
Memória VirtualIBM 360
Chip 8 bitsMonitorTeclado Calculadora mão
MicroprocessadorImpres. LaserImpres. Jato Tinta
AppleMicrosoftt
Compu. < 11kh
IBM PCCD ROM
Super Compu.
1.2 milhõestransistores
Acesso ráp. www
4.000-1200 ac
www cel.
1935-37 1941
1947-49
1600-1800 dc
1800-1900
1951
1958-59
1960-61
1962
19671971
1976
1977
1981
1982-84
1985
1bi oper/seg
1989
1995 2000
Tear controla produçãoLógica x Símbolos
Base Algoritmos CompiladorModem
Transmissão dados7 bits
Data ddmmyyCOBOL Cria Bug Milênio
Processador
Windows 1.0
19371949-19511800-1937
1958-59
1959
1963
1968 19721977
1980
1981-83
1985 1986-89
1990-95
TextoDesenv. Sist.
1975
Desenv. Softw
Anál. EstruturadaPlanilha Eletr.
DOS
1 Ger.BD
COCOMOAutoCadTCP/IPC++OO
CASECMM“Verme”Modelo Espiral
WWWUMLhttp1 browserToyStory
1995-2000
Windows 95/NTJavaNapster57tri msg/anoOffice2000MP3Bug milênio
Serão estudados em Engenharia de Software
(~5.600 anos)
(~200 anos)
(~100 anos) (~84 anos)
(~84 anos)Fonte: IEEE Computer Society
Crise do Software
12
A engenharia é a ciência e a profissão de adquirir e de aplicar os conhecimentos matemáticos, técnicos e científicos na criação, aperfeiçoamento e implementação de
utilidades (funcionalidades)
Nos processos de criação, aperfeiçoamento e implementação, a engenharia conjuga os vários conhecimentos especializados no sentido de viabilizar as utilidades.
A engenharia é uma ciência bastante abrangente que engloba uma série de ramos mais especializados, cada qual com uma ênfase mais específica em determinados campos de
aplicação e em determinados tipos de tecnologia.
O que é Engenharia?
Fonte: Wikipedia
Engenharia – Processo – Implementa, Realiza
13
A Engenharia de Software é um ramo da Engenharia, que tem como foco o desenvolvimento de softwares dentro de determinados padrões de
custo e qualidade.
Engenharia de Software
O que é Engenharia de Software?
Arquitetura: organização do espaço e de seus elementos; ordenamento de componentes.
14
Um produto de software novo, ou uma grande manutenção são produzidos por meio de um projeto. Este, por um determinado período de tempo, se
compromete a construir um produto.
Um projeto é uma função entre Escopo, Recurso e Tempo
P = F (E, R, T)
O que é Engenharia de Software?
O tempo, que deveria ser variável, geralmente se mostra fixo segundo a necessidade do cliente. Com isto o projeto de construção ou manutenção
se reduz a uma função de Escopo e Recurso.
15
Com apenas essas duas variáveis o Engenheiro de Software precisa conseguir produzir produtos dentro dos padrões de custo e qualidade.
Com menos tempo, como conseguir entregar o mesmo produto com a mesma qualidade e pelo mesmo preço?
Procurar não errar. Utilizar processos e métodos já testados por outras pessoas.
Reutilizar o que já estiver pronto -
“ Os componentes reutilizáveis foram criados para que o Engenheiro possa se preocupar com os elementos realmente inovadores do projeto.”
O que é Engenharia de Software?
16
Com menos tempo, como conseguir entregar o mesmo produto com a mesma qualidade e pelo mesmo preço?
“ Sempre que você pensar que não tem tempo para a Engenharia de Software pergunte a si mesmo: Eu teria tempo para fazer tudo de novo?”
O que é Engenharia de Software?
17
Modelos
IncrementalCascata RAD Prototipação Espiral
Modelos usados na Engenharia de Software
Modelos: conjunto de atividades, ações, tarefas, marcos, roteiros e produtos necessários para fazer com que a Engenharia de Software produza com qualidade. Cada projeto de software pode usar um modelo específico, segundo uma determinada necessidade.
18
Dúvidas