A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1/37 Engenharia de Software e Sistemas Alexandre Monteiro.

Apresentações semelhantes


Apresentação em tema: "1/37 Engenharia de Software e Sistemas Alexandre Monteiro."— Transcrição da apresentação:

1 1/37 Engenharia de Software e Sistemas Alexandre Monteiro

2 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

3 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

4 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

5 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

6 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

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

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

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

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

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

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

13 13/37 Uma Figura Vale Mais Que...

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

15 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

16 16/37 Estimando Esforço X horas F( )

17 17/37 Estimando Esforço

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

19 19/37 Iniciando a Solução...

20 20/37 Iniciando a Solução...

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

22 22/37 Sedimentando a Solução...

23 23/37 Sedimentando a Solução...

24 24/37 Sedimentando a Solução...

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

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

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

28 28/37 Funciona??? “Com a implementação feita, podemos então executar os testes!!!”

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

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

31 31/37 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

32 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

33 33/37 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

34 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

35 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

36 36/37 Artefatos A entrega dos artefatos deve ser feita ao monitor de sua equipe Artefatos devem constar do site (Atualizado)

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


Carregar ppt "1/37 Engenharia de Software e Sistemas Alexandre Monteiro."

Apresentações semelhantes


Anúncios Google