metodologia de desenvolvimento de sistemas profa. cynara carvalho [email protected]...

28
Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho [email protected] .br Faculdade de Ciências Aplicadas e Sociais de Petrolina – FA Teoria Geral de Sistemas - TGS

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

Metodologia de desenvolvimento de

sistemasProfa. Cynara Carvalho

[email protected]

Faculdade de Ciências Aplicadas e Sociais de Petrolina – FACAPETeoria Geral de Sistemas - TGS

Page 2: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

Introdução

Para haver sucesso no desenvolvimento de sistemas, torna-se necessária à utilização de uma metodologia de trabalho.

Page 3: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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

Page 4: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

Problemas

Pouco tempo para coletar dados sobre o desenvolvimento do software

Comunicação durante o desenvolvimento muito fraca

Falta de testes complexos

Page 5: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 6: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 7: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 8: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 9: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 10: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 11: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 12: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 13: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 14: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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

Page 15: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 16: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 17: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 18: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 19: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

Evolução da Análise

Técnicas Abordagens Ferramentas

Análise tradicional Funcional TextosFluxogramas

Análise Estruturada FuncionalDados

DFDDiagrama de estrutura de dadosMiniespecificaçõesNormalizaçãoDicionário de dados

Análise Essencial FuncionalDadosControle

Tabela de eventosDFDDiagrama de entidade RelacionamentoDiagrama de transição de estadosDiagrama de estrutura de dadosNormalizaçãoMiniespecificaçõesDicionário de dados

Page 20: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

Análise tradicional

Basicamente, um documento Apenas uma ferramenta Abordagem era quase que exclusivamente

voltada para perspectivas das funções do sistema.

Page 21: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 22: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

Análise Estruturada

E1Departamentode produção

E2Fornecedores

P1Escolher

fornecedor

P2Pedir

materiais

D1 Fornecedores

Lista_materiaisnecessários

Pedido_preços

Preços_material

Nota_encomenda

Lista

Dados_fornecedor

Dados_f

orneced

or

Entidade externa

Fluxo de dadosDepósitoDe dados

Processo

Page 23: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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

Page 24: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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

Page 25: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.

Page 26: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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

Page 27: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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

Empregado Dependente

1 n

Page 28: Metodologia de desenvolvimento de sistemas Profa. Cynara Carvalho cynaracarvalho@yahoo.com.br Faculdade de Ciências Aplicadas e Sociais de Petrolina –

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.