You are on page 1of 51

Desenvolvimento

de Sistemas

Luiz Felipe Carvalho Mendes, M.Sc.


Agenda
Processo de Desenvolvimento
Levantamento de Requisitos
Anlise de Requisitos
Projeto
Implementao
Testes
Implantao
Componente humano
Projetos de Software

Como o cliente descreveu Como o lder do Como o analista projetou


projeto entendeu
Projetos de Software

Como o programador Como o programa O que os beta-testers


implementou era estvel receberam
Projetos de Software

Como o consultor Como o projeto Como o projeto


de vendas descreveu foi documentado foi instalado
Projetos de Software

Como o cliente foi cobrado At onde o suporte Do que o cliente


tcnico pde ajudar realmente precisava
Processo de Desenvolvimento
Atividade extremamente complexa
Sobreposio das complexidades relativas dos diversos
componentes:
Software
Hardware
Procedimentos
Etc
No obstante comum projetos extrapolarem tempo e
custos estimados forando at mesmo o abandono do
mesmo
Processo de Desenvolvimento
Dados levantados no Chaos Report, estudo feito pelo
Standish Group sobre projetos de desenvolvimento de
1994 mostram que:
10% dos projetos que terminam dentro do prazo estimado
25% dos projetos so descontinuados antes de chegarem ao fim
60% dos projetos superam os custos estimados
Atraso mdio nos projetos: 1 ano
Processo de Desenvolvimento
Um processo de desenvolvimento compreende:
Definio
Desenvolvimento
Teste
Manuteno
Objetivos
Quais atividades sero executadas?
Quando, como, e por quem tais atividades sero executadas?
Prover pontos de controle
Padronizar forma de desenvolver software na empresa
Processo de Desenvolvimento
Classifica em atividades as tarefas realizadas
durante a construo do software
Existem vrios processos de desenvolvimento:
sequencial, espiral, prototipagem, etc
Cada um possui suas particularidades
Possuem atividades comuns
Processo de Desenvolvimento
Levantamento de Requisitos
Anlise de Requisitos
Projeto
Implementao
Testes
Implantao
Processo de Desenvolvimento
Estruturado
Em geral, envolve as seguintes atividades
Levantamento dos requisitos
Confeco de DFDs e MER
Projeto
Codificao
Testes
Implantao
Levantamento de Requisitos
Etapa de compreenso do problema aplicada ao
desenvolvimento de software
Usurios e desenvolvedores tenham a mesma
viso do problema
Levantamento das necessidades dos usurios
dentro do sistema
Levantamento de Requisitos
Definio
Condio ou capacidade que deve ser alcanada
ou possuda por um sistema ou componente deste
para satisfazer um contrato, padro, especificao
ou outros documentos formalmente impostos
Levantamento de Requisitos
So normalmente identificados a partir do
domnio do negcio
Domnio de negcio a rea de conhecimento
especfica na qual um determinado sistema ser
desenvolvido
Tambm chamado domnio do problema ou
domnio da aplicao
Levantamento de Requisitos
Compreende tambm um estudo exploratrio
das necessidades dos usurios e da situao do
sistema atual (se este existir)
Levantamento de Requisitos
H vrias tcnicas:
Leitura de obras de referncia e livros-texto
Observao do ambiente do usurio
Entrevistas com o usurio
Entrevistas com especialistas do domnio
Reutilizao de anlises anteriores
Comparao com sistemas pr-existentes no
mesmo domnio
Levantamento de Requisitos
Uma especificao de requisitos importante
porque:
Estabelece uma base de concordncia entre o cliente e
o fornecedor sobre o que o software far
Fornece uma referncia para a validao do produto
final
Uma especificao de requisitos de alta qualidade
um pr-requisito para um software de alta qualidade
Reduz o custo do desenvolvimento
Levantamento de Requisitos
O produto do levantamento o Documento dos
Requisitos
Normalmente escrito em linguagem natural
Principais sees do documento:
Requisitos funcionais
Requisitos no-funcionais
Requisitos Funcionais
Declaraes de funes que o sistema deve fornecer,
como o sistema deve reagir a entradas especficas e
como o sistema deve se comportar em situaes
particulares
Requisitos funcionais do usurio podem ser declaraes
de alto nvel daquilo que o sistema deve fazer
Requisitos funcionais do sistema devem descrever em
detalhes as funes do sistema
Requisitos ambguos podem ser interpretados de
maneiras diferentes por desenvolvedores e usurios
Requisitos No-Funcionais
Restries nas funes oferecidas pelo sistema, tais
como confiabilidade, tempo de resposta e requisitos
de armazenamento
Requisitos no-funcionais podem ser mais crticos
que requisitos funcionais. Se eles no forem
satisfeitos, o sistema pode ser intil
Requisitos No-Funcionais
Requisitos No-Funcionais
Requisitos (Padro IEEE 830)
Estrutura de um documento de requisitos
Ttulo
ndice
Introduo
Propsito
Escopo
Definies
Descrio Geral
Viso Geral
Perspectiva do Produto
Funes do Produto
Requisitos
Requisitos Funcionais
Requisitos No Funcionais
Requisitos Funcionais - Exemplos
Requisito Funcional 1: O sistema deve permitir secretaria
cadastrar cursos, contendo cdigo, descrio, carga horria,
professor coordenador, quantidade de perodos e tipo de curso
(Graduao, Especializao, Mestrado e Doutorado).
Requisito Funcional 2: O sistema deve permitir secretaria
cadastrar disciplinas, contendo curso, cdigo da disciplina,
descrio, perodo, nmero de aulas, ementa e bibliografia, bem
como seus pr-requisitos.
Requisito Funcional 3: O sistema deve permitir secretaria
cadastrar alunos contendo matrcula, nome, data de nascimento,
curso, ano de incio, semestre de incio, e-mail, telefone
residencial, telefone comercial, telefone celular, fotografia,
endereo completo (logradouro, nmero, complemento, bairro,
cidade, UF, CEP), CPF, documento de identidade (nmero,
rgo expedidor, UF e data expedio).
Requisitos Funcionais - Exemplos
Requisito Funcional 4: O sistema deve permitir
secretaria cadastrar professores, contendo matrcula,
nome, data de nascimento, data de admisso, e-mail,
telefone residencial, telefone comercial, telefone celular,
fotografia, endereo completo (logradouro, nmero,
complemento, bairro, cidade, UF, CEP), CPF, documento
de identidade (nmero, rgo expedidor, UF e data
expedio), titulao mxima (graduao, especializao,
mestrado e doutorado), tipo de contrato (substituto,
auxiliar, assistente ou adjunto), benefcios (vale transporte
e/ou vale alimentao) e alocao das disciplinas
lecionadas pelo professor.
Requisito Funcional 5: O sistema deve permitir secretaria
cadastrar turmas, contendo curso, disciplina, ano,
semestre, descrio da turma, nmero mximo de alunos,
horrios e professor responsvel.
Requisitos Funcionais - Exemplos
Requisito Funcional 6: O sistema deve permitir
secretaria matricular alunos em turmas especficas.
Requisito Funcional 7: O sistema deve permitir ao
professor cadastrar avaliaes e freqncia de alunos de
uma turma especfica.
Requisito Funcional 8: O sistema deve calcular a
aprovao de alunos, considerando 75% de freqncia
mnima. Alm disso, mdia menor do que 3 (trs), implica
em reprovao, mdia maior ou igual a 3 (trs) e menor
que 7 (sete) implica em prova final e mdia igual ou
superior 7 (sete) implica em aprovao. Para a prova
final, a mdia desta nota com a mdia anterior menor que
5 (cinco) implica em reprovao, caso contrrio, em
aprovao.
Requisitos Funcionais - Exemplos
Requisito Funcional 9: O sistema deve permitir ao
professor a emisso da relao de alunos por turmas,
contendo descrio do curso, nome da disciplina, ano,
semestre, turma, nome do professor, matrcula do aluno
e nome do aluno.
Requisito Funcional 10: O sistema deve permitir
secretaria a emisso da relao de disciplinas por curso,
contendo nome do curso, nome das disciplinas, total de
disciplinas por curso e total de todas as disciplinas.
Requisito Funcional 11: O sistema deve permitir
secretaria a emisso do histrico escolar, contendo
matrcula do aluno, nome do aluno, ano, semestre, nome
das disciplinas, nmero de aulas, nmero de faltas e
avaliaes.
Requisitos No Funcionais - Exemplos
Requisito no funcional 1: O sistema deve possibilitar
que todos os relatrios sejam pr-visualizados antes do
envio para a impressora.
Requisito no funcional 2: O sistema deve apresentar o
recurso de ajuda on-line sensvel ao contexto.
Requisito no funcional 3: O sistema deve processar
matrculas em, no mximo, 5 segundos
Levantamento de Requisitos
Qualidade do software est ligada ao atendimento dos
requisitos definidos
Para saber se o sistema atende aos requisitos
necessrio uma validao dos mesmos atravs de uma
maneira que possa ser entendida por leitores tcnicos e
no-tcnicos
Documento de requisitos no contm informaes
sobre as solues tcnicas
Enfoque no levantamento deve ser: O que o usurio
necessita do novo sistema?

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Levantamento de Requisitos
a etapa mais importante em termos de retorno em
investimentos feitos para o projeto
Muitos projetos so abandonados por falta de
dedicao na fase de levantamento
Um sistema de informao sempre pretende
automatizar processos do negcio da empresa
Estudo de 1997 com 6700 sistemas mostra que os
custos resultantes da m realizao desta etapa podem
ser 200x maiores que o necessrio

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Levantamento de Requisitos
O documento de requisitos estabelece o escopo de
sistema
Se muda o escopo necessrio rever recursos e tempo
Requisitos volteis
Quase nunca possvel levantar os detalhes todos inicialmente
Novos requisitos so descobertos na utilizao do sistema
Gerente x Colaborador
Ordenar requisitos por ordem de prioridade

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Anlise de Requisitos
Definio
Quebrar um sistema em seus componentes e estudar como
tais componentes interagem com o objetivo de entender como
esse sistema funciona
Estudo detalhado dos requisitos levantados para a
gerao dos modelos representativos
Tambm chamada de Especificao de Requisitos
No h relao com a tecnologia empregada na fase de
codificao (ainda!)

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Projeto
Foco no como o sistema ir funcionar para
atender os requisitos de acordo com os
recursos tecnolgicos existentes
H aspectos fsicos e de implementao

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Projeto
Aspectos contemplados (exemplos):
Arquitetura do sistema
Padro de interface grfica
Linguagem de programao
SGBD
Produz uma descrio computacional do que o
software deve fazer e coerente com a descrio
realizada na anlise

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Projeto - Arquitetura
Criao dos modelos lgicos a partir do MER
O projeto de arquitetura realizado por um
arquiteto de software

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Implementao
Codificao propriamente dita
Traduo da descrio computacional da fase
de projeto em linguagem executvel por
mquina
A implementao alm de tratar das classes
prprias do projeto pode utilizar componentes
de software e bibliotecas de classes pr-
existentes ou de terceiros para agilizar

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Testes
Diversas atividades so realizadas para a
verificao do sistema construdo levando-se
em conta a especificao feita na fase de
projeto
O principal produto dessa fase o relatrio de
testes contendo informaes sobre erros
detectados no software
Aps os testes os diversos mdulos so
integrados dando origem ao software final

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Implantao
O sistema instalado no ambiente do usurio
(desktop) ou disponibilizado no servidor para
acesso (via Web)
Manuais do sistema so escritos, dados so
importados e usurios so treinados para a
utilizao
Pode ocorrer migrao das informaes de
software preexistentes

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Componente humano
O desenvolvimento de software uma tarefa
altamente cooperativa
Tecnologias complexas demandam
especialistas em reas especficas. Exemplo:
Especialistas de TI
Especialistas de domnio

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Componente humano
Equipe de desenvolvimento bsica:
Gerente
Analistas
Projetistas
Programadores
Clientes
Grupos de avaliao de qualidade

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Gerente de Projeto
Profissional responsvel pela coordenao das
atividades necessrias construo do sistema
Estima oramento do projeto, tempo
necessrio de desenvolvimento, recursos
materiais e humanos necessrios
Define o processo de desenvolvimento,
cronograma, etc

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Gerente de Projeto
Acompanhamento das atividades verificando
se os diversos recursos alocados esto sendo
gastos na taxa esperada e, em caso de
problema, tomar as medidas necessrias
Identificar se o sistema factvel e escalonar a
equipe de desenvolvimento tambm so
atribuies

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Analista
O profissional que deve ter o conhecimento do
domnio do negcio e que se comunica com o
especialista de domnio
Responsvel por entender as necessidades e
repass-las aos demais desenvolvedores
Ponte entre desenvolvedores e cliente

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Analista
Capacidade de comunicao tanto escrita
quanto falada pois um agente facilitador
Bom relacionamento interpessoal
tica profissional (!!!!)

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Projetistas
Avaliar alternativas de soluo do problema
Gerar a especificao de uma soluo
computacional detalhada
Chamado projeto fsico em alguns casos

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Projetistas
Podem haver diversos tipos de projetistas:
Interface
Redes
Banco de Dados
Etc
Todos trabalham em cima dos modelos
resultantes da anlise para adicionar os
aspectos tecnolgicos

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Arquitetos de Software
Elaborar a arquitetura do sistema como um
todo
Quais so os subsistemas
Interfaces entre estes subsistemas
Decises globais e detalhadas
Trabalha em conjunto com o gerente para
priorizar e organizar o plano de projeto

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Programadores
Responsvel pela implementao do software
Todo analista tem um pouco de programador e
todo programador tem um pouco de analista
Programador no est envolvido em todas as
fases do desenvolvimento
Bons programadores podem ser bons
analistas? E o contrrio?

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Cliente
Cliente contratante x Cliente usurio

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos
Avaliadores de qualidade
Desempenho e confiabilidade so exemplos de
caractersticas que devem ser encontradas em
um sistema de software de boa qualidade
Avaliadores asseguram a adequao do
processo de desenvolvimento aos padres de
qualidade definidos pela organizao (!!)

Prof. Luiz Felipe Carvalho Mendes, M.Sc. - Anlise e Projeto de Sistemas Orientados a Objetos

You might also like