1/37 engenharia de software e sistemas alexandre monteiro

33
1/37 Engenharia de Software e Sistemas Alexandre Monteiro

Upload: kauane-alto

Post on 07-Apr-2016

213 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

1/37

Engenharia deSoftware e Sistemas

Alexandre Monteiro

Page 2: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

2/37

Engenharia de Software(Def.) Disciplina gerencial e tecnológica que lida com a produção e manutenção sistemática de produtos de software desenvolvidos dentro de estimativas de custo e tempo

Deve-se entender por engenharia a ciência relacionada com o uso prático de conhecimentos científicos

Page 3: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

3/37

O que é software? Programas de computador e

documentação associada Produtos de software podem ser

desenvolvidos para um cliente particular ou podem ser desenvolvidos para um mercado geral

Page 4: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

4/37

Objetivos de Engenharia de Software Obter software de qualidade Com produtividade no seu

desenvolvimento, operação e manutenção Empregando profissionais que

desenvolvam o software dentro de custos, prazos e níveis de qualidade controlados

E, além disso, obtenham o melhor nível entre Qualidade Produtividade possível

Page 5: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

5/37

Motivação Desenvolver sistemas de acordo

com a intenção do cliente/usuário Estabelecer noção sobre tempo e

custo de desenvolvimento Elaborar artefatos além de código Analisar artefatos para estabelecer

a qualidade do produto

Page 6: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

6/37

Características da Engenharia de Software A Engenharia de Software se refere

a software (sistemas) desenvolvidos por grupos ao invés de indivíduos

usa princípios de engenharia ao invés de arte, e

inclui tanto aspectos técnicos quanto não técnicos

Page 7: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

7/37

O Início de Tudo...

“A intenção do cliente é...”

Page 8: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

8/37

O Mais Importante Aqui é...

Idéiaé

Viável???

Page 9: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

9/37

O Que Devo Fazer Exatamente?

Ou, em outras palavras, quais são os requisitos da aplicação?

Page 10: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

10/37

Requisitos O Que devo fazer?

Funcionalidades Há restrições sobre as

funcionalidades? Limites de tempo, memória, etc.?

Há restrições mais amplas? Empresa, Governo, etc.?

Page 11: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

11/37

O que faço então?

“O documento de requisitos...”

Page 12: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

12/37

Como apresentar ao Cliente?

“O cliente não vai ler

500 páginas de requisitos!!

!”

Page 13: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

13/37

Uma Figura Vale Mais Que ...

Page 14: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

14/37

Mas Paralelamente ...“Precisamos saber quanto tempo levaremos para fazer nosso trabalho, quanto isso custará e o que pode nos atrapalhar... Precisamos Planejar!!!”

Page 15: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

15/37

Estimando Esforço Modelo de casos de uso pode ser

usado para calcular estimativa Baseia-se em uma série de fatores

que determinam a complexidade da aplicação

Há ferramentas para realizar o cálculo

Page 16: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

16/37

Estimando Esforço

X horasF( )

Page 17: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

17/37

Estimando Esforço

Page 18: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

18/37

Iniciando a Solução...

“Temos que identificar em nossos requisitos, quais são os elementos essenciais para satisfazê-los...”

Page 19: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

19/37

Iniciando a Solução...

Page 20: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

20/37

Iniciando a Solução...

Page 21: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

21/37

Sedimentando a Solução...

“A partir dos elementos essenciais, precisamos definir estratégias para satisfazê-los incluindo suas restrições...”

Page 22: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

22/37

Sedimentando a Solução...

Page 23: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

23/37

Sedimentando a Solução...

Page 24: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

24/37

Sedimentando a Solução...

Page 25: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

26/37

Operacionalizando a Solução...

“Com a solução definida, o passo final é operacionalizá-la. Isto é, codificá-la.”

Page 26: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

27/37

Classe Account...public class Account { private int balance; ... void debit(int amount) { if(amount<=balance) balance = balance – amount; else throw new AccountException(“...”); }...}

Page 27: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

28/37

Funciona???

“Com a implementação feita, podemos então executar os testes!!!”

Page 28: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

29/37

Avaliando a qualidadepublic class AccountTest extends TestCase {

void testDebit() { Account acc = new Account(10); acc.debit(10); assertEquals(0, acc.getBalance()); }

}

Page 29: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

32/37

Aulas de Laboratório Uso de ferramentas

Rose, JUnit, etc. Exercitar elementos de sala

Os monitores ajudarão/ministrarão as aulas práticas

Page 30: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

34/37

Avaliação da Disciplina Nota 1 (N1) = 1a. Prova * 0,2 Nota 2 (N2) = 2a. Prova * 0,3 Nota 3 (N3) = Apres. Projeto * 0,25 Nota 4 (N4) = Projeto * 0,25 Nota Geral = N1+N2+N3+N4

Obs: Equipes com no máximo 5 alunos

Page 31: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

35/37

Site sobre Projeto Deve conter no mínimo:

Equipe (nome, login) Documentos Cronograma atualizado Atas de reuniões Informações úteis a usuários finais

Definir um projeto até 17/05/2007

Page 32: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

36/37

Artefatos A entrega dos artefatos deve ser

feita ao monitor de sua equipe Artefatos devem constar do site

(Atualizado)

Page 33: 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

37/37

Referências Básica

Sommerville, I. Software Engineering. Extra

www.junit.org http://www.cs.iastate.edu/~leavens/JML/ Kruchten, P. The Rational Unified

Process: An Introduction. 2nd Ed Booch, G. et al. The Unified Modeling

Language User Guide. Pressman, R. Software Engineering.