1/34 Engenharia de Software e Sistemas Alexandre Vasconcelos (amlv@cin.ufpe.br)

Post on 22-Apr-2015

111 views 3 download

Transcript of 1/34 Engenharia de Software e Sistemas Alexandre Vasconcelos (amlv@cin.ufpe.br)

1/34

Engenharia deSoftware e Sistemas

Alexandre Vasconcelos (amlv@cin.ufpe.br)

2/34

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 tempoDeve-se entender por engenharia a ciência relacionada com o uso prático de conhecimentos científicos

3/34

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/34

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/34

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/34

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/34

O Início de Tudo...

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

8/34

O Mais Importante Aqui é...

A Idéiaé

Viável???

9/34

O Que Devo Fazer Exatamente?

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

10/34

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/34

O que faço então?

“O documento de requisitos...”

12/34

Como apresentar ao Cliente?

“O cliente não vai ler

500 páginas de requisitos!!

!”

13/34

Uma Figura Vale Mais Que ...

14/34

Mas Paralelamente ...

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

15/34

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/34

Estimando Esforço

X horasF( )

17/34

Estimando Esforço

18/34

Iniciando a Solução...

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

19/34

Iniciando a Solução...

20/34

Iniciando a Solução...

21/34

Sedimentando a Solução...

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

22/34

Sedimentando a Solução...

23/34

Sedimentando a Solução...

24/34

Sedimentando a Solução...

26/34

Operacionalizando a Solução...

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

27/34

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

28/34

Funciona???

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

29/34

Avaliando a qualidadepublic class AccountTest extends TestCase {

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

}

30/34

Aulas de Laboratório Uso de ferramentas Exercitar elementos de sala

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

31/34

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

32/34

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

33/34

Artefatos A entrega dos artefatos deve ser

feita ao monitor de sua equipe Artefatos devem constar do site

(Atualizado)

34/34

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.