Engenharia de
Software e Sistemas
Alexandre Vasconcelos
([email protected])
1/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 tempo
Deve-se entender por engenharia a ciência
relacionada com o uso prático de
conhecimentos científicos
2/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
3/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
4/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
5/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
6/34
O Início de Tudo...
“A intenção do cliente é...”
7/34
O Mais Importante Aqui é...
A Idéia
é
Viável???
8/34
O Que Devo Fazer
Exatamente?
Ou, em outras
palavras, quais
são os requisitos
da aplicação?
9/34
Requisitos

O Que devo fazer?


Há restrições sobre as
funcionalidades?


Funcionalidades
Limites de tempo, memória, etc.?
Há restrições mais amplas?

Empresa, Governo, etc.?
10/34
O que faço então?
“O documento de requisitos...”
11/34
Como apresentar ao Cliente?
“O cliente
não vai ler
500 páginas
de
requisitos!!!”
12/34
Uma Figura Vale Mais Que ...
13/34
Mas Paralelamente ...
“Precisamos saber
quanto tempo
levaremos para fazer
nosso trabalho, quanto
isso custará e o que
pode nos atrapalhar...
Precisamos Planejar!!!”
14/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
15/34
Estimando Esforço
F(
)
X horas
16/34
Estimando Esforço
17/34
Iniciando a Solução...
“Temos que identificar
em nossos requisitos,
quais são os elementos
essenciais para
satisfazê-los...”
18/34
Iniciando a Solução...
19/34
Iniciando a Solução...
20/34
Sedimentando a Solução...
“A partir dos elementos
essenciais, precisamos
definir estratégias para
satisfazê-los incluindo
suas restrições...”
21/34
Sedimentando a Solução...
22/34
Sedimentando a Solução...
23/34
Sedimentando a Solução...
24/34
Operacionalizando a Solução...
“Com a solução definida, o
passo final é
operacionalizá-la. Isto é,
codificá-la.”
26/34
Classe Account...
public class Account {
private int balance;
...
void debit(int amount) {
if(amount<=balance)
balance = balance – amount;
else throw new AccountException(“...”);
}
...
}
27/34
Funciona???
“Com a implementação
feita, podemos então
executar os testes!!!”
28/34
Avaliando a qualidade
public class AccountTest extends TestCase {
void testDebit() {
Account acc = new Account(10);
acc.debit(10);
assertEquals(0, acc.getBalance());
}
}
29/34
Aulas de Laboratório


Uso de ferramentas
Exercitar elementos de sala

Os monitores ajudarão/ministrarão as
aulas práticas
30/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


31/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
32/34
Artefatos


A entrega dos artefatos deve ser
feita ao monitor de sua equipe
Artefatos devem constar do site
(Atualizado)
33/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.
34/34
Download

Apresentacao de ESS