1 / 30

Engenharia de Software e Sistemas

Engenharia de Software e Sistemas. Alexandre Vasconcelos (amlv@cin.ufpe.br). 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

knut
Download Presentation

Engenharia de Software e Sistemas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Engenharia deSoftware e Sistemas Alexandre Vasconcelos (amlv@cin.ufpe.br)

  2. 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

  3. O Início de Tudo... “A intenção do cliente é...”

  4. O Mais Importante Aqui é... Idéia é Viável???

  5. O Que Devo Fazer Exatamente? Ou, em outras palavras, quais são os requisitos da aplicação?

  6. 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.?

  7. O que faço então? “O documento de requisitos...”

  8. Como apresentar ao Cliente? “O cliente não vai ler 500 páginas de requisitos!!!”

  9. Uma Figura Vale Mais Que ...

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

  11. 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

  12. Estimando Esforço X horas F( )

  13. Estimando Esforço

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

  15. Iniciando a Solução...

  16. Iniciando a Solução...

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

  18. Sedimentando a Solução...

  19. Sedimentando a Solução...

  20. Sedimentando a Solução...

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

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

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

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

  25. Avaliando a qualidade public class AccountTest extends TestCase { void testDebit() { Account acc = new Account(10); acc.debit(10); assertEquals(0, acc.getBalance()); } }

  26. Avaliando a qualidade • Também poderemos usar ferramentas baseadas nos contratos do projeto • jmlc (JML Compiler) • jmlunit (JML + JUnit) • escjava2 (Static Checker for Java)

  27. 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

  28. 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

  29. 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/2006 Máximo de 12 equipes na turma

  30. 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.

More Related