Metodologia_de_desenvolvimento_de_sistema_aula04

Download Report

Transcript Metodologia_de_desenvolvimento_de_sistema_aula04

Faculdade de Ciências Aplicadas e Sociais de Petrolina – FACAPE
Teoria Geral de Sistemas - TGS
Metodologia de
desenvolvimento de
sistemas
Profa. Cynara Carvalho
[email protected]
Introdução

Para haver sucesso no desenvolvimento de
sistemas, torna-se necessária à utilização de
uma metodologia de trabalho.
Histórico das Metodologias







Crise do Software (~1970)
Desenvolvimento de Software como “arte” – desenho
de telas e arquivos
Problemas de execução - erros
Prazos extrapolados
Custos inesperados – correção de erros e adaptação do
código às reais necessidades do usuário
Empresas dependentes de computadores com sistemas
legados que necessitavam modificações mas com
código/documentação ilegível ou inexistentes.
Insatisfação de usuários
Problemas

Pouco tempo para coletar dados sobre o
desenvolvimento do software
 Comunicação durante o desenvolvimento
muito fraca
 Falta de testes complexos
O que é Metodologia?

Uma metodologia pode ser entendida como
uma dissertação sobre a maneira de se utilizar
um conjunto coerente e coordenado de métodos
para atingir um objetivo, de modo que se evite a
subjetividade na execução do trabalho.
Conceitos importantes



Um método pode ser entendido como um procedimento
a ser adotado para se atingir um objetivo. O método se
vale de um conjunto de técnicas.
Uma técnica pode ser entendida como sendo um modo
apropriado de se investigar matematicamente um
determinado universo de interesse ou domínio de um
problema. Uma técnica faz uso de uma notação.
Uma notação é um conjunto de caracteres, símbolos e
sinais formando um sistema convencionado de
representação ou designação.
Benefícios




Aumento da qualidade dos sistemas: Os desenvolvedores têm a
sua disposição métodos que permitem levantar com precisão as
necessidades dos usuários e construir sistemas melhor
estruturados.
Independência de indivíduos: Como os sistemas são bem
estruturados e têm documentação padronizada e atualizada, um
analista consegue, em pouco tempo, dar manutenção a um sistema
que não conhece, evitando a figura do “dono do sistema”.
Facilidade de manutenção: Pelos mesmos motivos acima citados:
sistemas bem documentados e estruturados.
Aumento da produtividade: Sistemas bem construídos têm mais
partes reutilizáveis. E, como o sistema é bem especificado e
projetado, gasta-se menos tempo em testes e “emendas” para
atender ao usuário.
Principais Objetivos




Criar uma ferramenta que possibilite o desenvolvimento de projetos
na empresa em harmonia com os princípios elementares da
administração tais como: planejamento, previsão, organização,
decisão, comando, coordenação e controle;
Promover o cumprimento de prazos, eficiência e qualidade do
serviço, visando uma maior produtividade por meio da padronização
das atividades de desenvolvimento e da racionalização dos
controles e dos itens de documentação;
Servir de apoio ao desenvolvimento de projetos em suas etapas,
orientando a execução das atividades requeridas em todos os
níveis de setores envolvidos, de uma forma padronizada e
integrada;
Estabelecer uma estrutura de documentação padronizada e
compatível com a organização das fases e necessidades
operacionais.
Características de uma boa Metodologia




Apresentar definição clara de “quem” faz “o
que”, “quando”, “como” e até mesmo “onde”.
Definir o papel dos técnicos, dos usuários e da
administração da empresa.
Instituir
um
conjunto
de
padrões
preestabelecidos (evitar subjetividade)
As técnicas adotadas devem ser estáveis.
Características de uma boa Metodologia




Uma metodologia deve definir quais as fases do trabalho previstas
para o desenvolvimento de sistemas. Para cada fase quais técnicas
adotadas. São exemplos das técnicas: Análise estruturada, análise
essencial e projeto estruturado.
A metodologia deve ainda definir para cada técnica adotada, quais
as ferramentas utilizadas. São exemplos de ferramentas: DFD,
MER, Digrama de transição de estados.
Cada ferramenta irá produzir um tipo de modelo. São exemplos de
modelos: modelo funcional, modelo conceitual de dados e modelo
de controle;
A metodologia deve estabelecer ainda pontos de controle e padrões
de qualidade.
Análise de Sistemas


Embora as ferramentas de modelagem sejam muito
importantes, por razões diversas, na prática algumas
empresas ainda relutam na sua adoção.
Uma das queixas comuns entre os que relutam em
aceitar, é que acreditam que com a adoção destas
técnicas, o desenvolvimento de sistemas estende-se
muito longamente.
Análise de sistemas

3 hipóteses para o uso das ferramentas de modelagem aumentou o
tempo de desenvolvimento:

O prazo para o desenvolvimento foi realmente mal estimado, sendo
que neste caso mesmo com métodos tradicionais não se teria
acertado na previsão do tempo.
Os profissionais que atuaram no desenvolvimento do sistema ainda
não dominavam a utilização das ferramentas adotadas pela técnica.
O diagnostico que aponta perda de tempo é distorção de parâmetro,
isto por que com a utilização de ferramentas que permitem um
mecanismo mais rigoroso de verificação, muitas situações
específicas de níveis abstracionais mais altos, foram corretamente
analisadas. Análises mais pobres podem até economizar tempo,
mas não cobrem a riqueza de situações que deve identificar em
análises extremamente mais abrangentes e aderentes ao mundo
real.


Perfil do analista

O analista de sistemas deve possuir uma formação que vai além das
disciplinas voltadas para o conhecimento de computadores. O seguinte
conjunto de habilidades seria mais adequado para o bom desempenho na
atividade de análise de sistemas de informação:
 Comunicação: entendida como capacidade para ouvir, redigir, expor
idéias com clareza e precisão, aprender e expressar o conteúdo do
aprendizado com facilidade.
 Capacidade de análise: entendida como aptidão para realizar
operações mentais com abstrações sobre o recorte da realidade em
estudo. Possuir uma visão sistêmica e critica do contexto em análise,
além de habilidade para distinguir e conceituar categoria de significado
de noções concretas e abstratas associadas ao negócio da empresa.
Perfil do analista




Conhecimento da área usuária: entendido, principalmente, como
aquele tipo de conhecimento que não pode ser obtido através de
treinamento, mas adquirido por meio da experiência.
Capacidade de negociação: entendida como habilidade em obter
resultado desejado, e capacidade de organizar conflitos de
interesses interpessoais que surjam durante o trabalho em grupo.
Administração de projetos: entendida como noções sobre alocação
de tempo e recursos, financeiros e materiais necessários a projetos,
nos quais participam pessoas de formações diferentes, num
empreendimento de característica interdisciplinar, procurando
sempre a efetividade, garantindo eficácia e eficiência do processo de
obtenção dos resultados a serem alcançados.
Conhecimento técnico: entendido como a capacidade de especificar
sistemas de informação, principalmente nas suas fases de nível de
abstração mais alto
Perfil do analista

As funções do analista, projetista e programador são, às vezes, confundida.
Para esclarecer, podemos dizer, a rigor, que o papel do analista de
sistemas é especificar quais são os requisitos do sistema do ponto de vista
da eficácia, ou seja, garantir que o sistema alcance os objetivos globais da
empresa.

O analista deve certificar-se de que o sistema fará o que precisa ser feito,
fará o que é certo ser feito, independentemente da instrumentação que
será usada para chegar a este objetivo. Por sua vez, o projetista tem um
papel voltado para a eficiência, isto é, voltado para obtenção do melhor
desempenho individual dos componentes do sistema. O papel do
programador é construir (implementar) o sistema, de acordo com as
especificações feitas pelo projetista.
O aprendizado e a comunicação




Para realizar bem a especificação de um sistema de informação, o
primeiro passo é reconhecer que a atividade de desenvolvimento de
sistema é, em essência, o processo de solução de problemas.
Esse processo compõem-se de uma fase de aprendizado
(entendimento dos requisitos do sistema) e outra de comunicação
(apresentação da solução encontrada para aprovação dos
usuários).
Normalmente quando um analista inicia o desenvolvimento de um
sistema, ele sabe pouco ou quase nada sobre o sistema a ser
desenvolvido.
O desenvolvimento começa com uma fase de aprendizado.
O aprendizado e a comunicação

A fase de aprendizado é de grande complexidade, e varias são as teorias
sobre os mecanismos sobre os quais ela se processa.

O aprendizado pode ser divido em três grandes etapas:
Síncrise – partimos da observação da realidade, tentando obter uma
visão global do assunto em estudo. É um processo informal, através do
qual tentamos juntar todos os fatos relevantes.
 Análise – partimos de uma visão global obtida na fase anterior; nessa
hora, o processo de aprendizagem passa pela construção de uma
espécie de maquete. Os pontos chaves para construção de um modelo
simplificado de suas estrutura.
 Síntese – se proporão nesta fase, hipóteses e soluções a serem
adotadas. Ao seu final, tem-se idéia de todo o sistema, quais as suas
partes e qual a solução proposta para o problema.

O aprendizado e a comunicação


Uma vez terminada a fase de aprendizado, entramos na fase de
comunicação com o usuário.
Os principais gargalos num processo de comunicação ocorrem por conta
dos problemas das seguintes naturezas:
 Problemas psicológicos: relacionados com percepção, atenção,
motivação, atitudes, memória, hábitos de pensamento;
 Problemas semiológicos: relacionados com o emprego de códigos para
comunicar: palavras, gestos, tom de voz, coisas escritas, etc.
 Problemas semânticos: relacionados com o significado das palavras;
 Problemas sintáticos: relacionados com a estrutura ou organização dos
conteúdos;
 Problemas cibernéticos: relacionados com a retroinformação e o
diálogo, com a quantidade de idéias transmitidas por diversos canais;
A Análise auxilia na comunicação entre as pessoas envolvidas no
gerenciamento da complexidade e na redução dos custos de
desenvolvimento.
Evolução da Análise
Técnicas
Abordagens
Ferramentas
Análise tradicional
Funcional
Textos
Fluxogramas
Análise Estruturada
Funcional
Dados
DFD
Diagrama de estrutura de dados
Miniespecificações
Normalização
Dicionário de dados
Análise Essencial
Funcional
Dados
Controle
Tabela de eventos
DFD
Diagrama de entidade Relacionamento
Diagrama de transição de estados
Diagrama de estrutura de dados
Normalização
Miniespecificações
Dicionário de dados
Análise tradicional



Basicamente, um documento
Apenas uma ferramenta
Abordagem era quase que exclusivamente
voltada para perspectivas das funções do
sistema.
Análise Estruturada






Enfatiza a perspectiva das funções, com ênfase nos
processos.
Utiliza as seguintes ferramentas:
Diagrama de Fluxo de Dados.
Dicionário de Dados.
Especificação da Lógica de Processos.
A análise estruturada clássica não modela o
comportamento
temporal,
nem
complexos
relacionamentos de dados.
Análise Estruturada
Pedido_preços
E2
Fornecedores
E1
Departamento
de produção
Entidade
externa
Lista_materiais
necessários
P1
Escolher
fornecedor
Preços_material
Processo
Lista
D1 Fornecedores
P2
Pedir
materiais
Depósito
De dados
Nota_encomenda
Fluxo de dados
Análise Essencial



É uma evolução da Análise Estruturada por
adicionar a preocupação com o controle.
Usa uma lista de eventos externos como base
para o particionamento do sistema.
O modelo essencial é construído sem
considerar
restrições
de
implementação
(assume uma tecnologia perfeita) – essência do
sistema
Análise Essencial

O modelo essencial é formado pelo:
 Modelo Ambiental – define a fronteira entre o sistema e o
ambiente.
 Modelo Comportamental – descreve o comportamento interno
do sistema.
 Modelo de Informação – modela os dados necessários às
atividades essenciais do sistema.
 Modelo de Implementação – extensão do modelo essencial com
restrições de implementação
Modelo Ambiental


Diagrama de Contexto - Define as interfaces
entre o sistema e o ambiente. São identificadas
informações externas e as produzidas como
saída.
Lista de Eventos - Identifica os eventos que
ocorrem no ambiente e como o sistema deve
reagir.
Modelo Comportamental




Mostra o comportamento interno do sistema.
Usa como ferramenta DFD com abordagem diferente.
Constrói um DFD para cada evento (DFD de resposta a
eventos). A partir dele é feito o agrupamento para formar
os diagramas superiores e inferiores.
Dicionário de Dados e Especificação de processos
Modelo de Informação






Representa os dados necessários ao sistema.
Ferramentas utilizadas são:
Diagrama de entidade e relacionamento
Deriva da lista de eventos
Representa a estrutura estática dos dados
Dicionário de Dados
1
Empregado
n
Dependente
Modelo de implementação


Insere restrições de implementação aos
modelos comportamental e de dados
Fronteiras de automação, tempo de execução,
capacidade de armazenamento, comunicação,
etc.