1 / 33

Engenharia de Software e Sistemas

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

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

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

  4. 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, que obtenham o melhor custo-benefício possível entre Qualidade  Produtividade

  5. 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 do código • Analisar artefatos para estabelecer a qualidade do produto

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

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

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

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

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

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

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

  13. Uma Figura Vale Mais Que ...

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

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

  16. Estimando Esforço X horas F( )

  17. Estimando Esforço

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

  19. Iniciando a Solução...

  20. Iniciando a Solução...

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

  22. Sedimentando a Solução...

  23. Sedimentando a Solução...

  24. Sedimentando a Solução...

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

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

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

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

  29. Aulas de Laboratório • Uso de ferramentas • Exercitar elementos de sala • Os monitores ajudarão/ministrarão as aulas práticas

  30. Avaliação da Disciplina • Nota 1 (N1) = (Prova 1 + Prova 2) / 2 • Nota 2 (N2) = Projeto • Nota Geral = (N1+N2) / 2 • Obs: Equipes com no máximo 5 alunos

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

  32. Artefatos • A entrega dos artefatos deve ser feita ao monitor de sua equipe • Artefatos devem constar do site (Atualizado)

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

More Related