30
Engenharia de Software e Sistemas Alexandre Vasconcelos ([email protected])

Engenharia de Software e Sistemas

  • Upload
    knut

  • View
    24

  • Download
    1

Embed Size (px)

DESCRIPTION

Engenharia de Software e Sistemas. Alexandre Vasconcelos ([email protected]). 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Engenharia de Software  e Sistemas

Engenharia deSoftware e Sistemas

Alexandre Vasconcelos ([email protected])

Page 2: Engenharia de Software  e Sistemas

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 3: Engenharia de Software  e Sistemas

O Início de Tudo...

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

Page 4: Engenharia de Software  e Sistemas

O Mais Importante Aqui é...

Idéiaé

Viável???

Page 5: Engenharia de Software  e Sistemas

O Que Devo Fazer Exatamente?

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

Page 6: Engenharia de Software  e Sistemas

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 7: Engenharia de Software  e Sistemas

O que faço então?

“O documento de requisitos...”

Page 8: Engenharia de Software  e Sistemas

Como apresentar ao Cliente?

“O cliente não vai ler

500 páginas de requisitos!!

!”

Page 9: Engenharia de Software  e Sistemas

Uma Figura Vale Mais Que ...

Page 10: Engenharia de Software  e Sistemas

Mas Paralelamente ...

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

Page 11: Engenharia de Software  e Sistemas

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 12: Engenharia de Software  e Sistemas

Estimando Esforço

X horasF( )

Page 13: Engenharia de Software  e Sistemas

Estimando Esforço

Page 14: Engenharia de Software  e Sistemas

Iniciando a Solução...

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

Page 15: Engenharia de Software  e Sistemas

Iniciando a Solução...

Page 16: Engenharia de Software  e Sistemas

Iniciando a Solução...

Page 17: Engenharia de Software  e Sistemas

Sedimentando a Solução...

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

Page 18: Engenharia de Software  e Sistemas

Sedimentando a Solução...

Page 19: Engenharia de Software  e Sistemas

Sedimentando a Solução...

Page 20: Engenharia de Software  e Sistemas

Sedimentando a Solução...

Page 21: Engenharia de Software  e Sistemas

Classe Account...

public class Account { private int balance; /*@ invariant balance>=0 @*/ ... void debit(int amount) { /*@ requires amount <= balance @*/ /*@ ensures balance = \old(balance) - amount @*/ }...}

Page 22: Engenharia de Software  e Sistemas

Operacionalizando a Solução...

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

Page 23: Engenharia de Software  e Sistemas

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

Page 24: Engenharia de Software  e Sistemas

Funciona???

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

Page 25: Engenharia de Software  e Sistemas

Avaliando a qualidadepublic class AccountTest extends TestCase {

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

}

Page 26: Engenharia de Software  e Sistemas

Avaliando a qualidade Também poderemos usar

ferramentas baseadas nos contratos do projeto jmlc (JML Compiler) jmlunit (JML + JUnit) escjava2 (Static Checker for Java)

Page 27: Engenharia de Software  e Sistemas

Aulas de Laboratório Uso de ferramentas

Rose, JML, JUnit, etc. Exercitar elementos de sala

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

Page 28: Engenharia de Software  e Sistemas

Avaliação da Disciplina Nota 1 (N1) = (Testes 1 e 2) / 2 Nota 2 (N2) = Exercício Escolar Nota 3 (N3) = Projeto Nota Geral = (N1+N2+N3) / 3

Page 29: Engenharia de Software  e Sistemas

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é 20/11/2006Máximo de 12 equipes na turma

Page 30: Engenharia de Software  e Sistemas

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.