Download - Engenharia de Software e Sistemas
![Page 2: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/3.jpg)
O Início de Tudo...
“A intenção do cliente é...”
![Page 4: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/4.jpg)
O Mais Importante Aqui é...
Idéiaé
Viável???
![Page 5: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/5.jpg)
O Que Devo Fazer Exatamente?
Ou, em outras palavras, quais são os requisitos da aplicação?
![Page 6: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/7.jpg)
O que faço então?
“O documento de requisitos...”
![Page 8: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/8.jpg)
Como apresentar ao Cliente?
“O cliente não vai ler
500 páginas de requisitos!!
!”
![Page 9: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/9.jpg)
Uma Figura Vale Mais Que ...
![Page 10: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/12.jpg)
Estimando Esforço
X horasF( )
![Page 13: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/13.jpg)
Estimando Esforço
![Page 14: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/15.jpg)
Iniciando a Solução...
![Page 16: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/16.jpg)
Iniciando a Solução...
![Page 17: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/18.jpg)
Sedimentando a Solução...
![Page 19: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/19.jpg)
Sedimentando a Solução...
![Page 20: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/20.jpg)
Sedimentando a Solução...
![Page 21: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/22.jpg)
Operacionalizando a Solução...
“Com a solução definida, o passo final é operacionalizá-la. Isto é, codificá-la.”
![Page 23: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/24.jpg)
Funciona???
“Com a implementação feita, podemos então executar os testes!!!”
![Page 25: Engenharia de Software e Sistemas](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022081515/56814037550346895daba2d1/html5/thumbnails/30.jpg)
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.