conceito de analise de desenvolvivento de sistemas
TRANSCRIPT
1 - Introdução 1
Análise de Sistemas
Conceito de análise de sistemas Sistema: Conjunto de partes organizadas (estruturadas) que concorrem para atingir
um (ou mais) objectivos.
Sistema de informação (SI): sub-sistema de uma organização cujas funções
incluem a recolha, armazenamento, tratamento e comunicação de
informação para um propósito específico, por forma a que esta esteja
disponível em qualquer momento ou local.
Análise: Definida de um modo geral como o estudo de um problema antes de
passar à sua resolução.
Análise (no estudo de SI e sua informatização): Estudo de um sub-sistema de
informação (SSI), descrição das suas características e funcionalidades.
Envolve a caracterização de um sistema informático que apoie
(automatize) esse SSI.
1 - Introdução 2
Enquadramento da análise de sistemas no processo de informatização
Um processo de desenvolvimento de uma aplicação é desencadeado quando:
• se reconhece que existe um problema na forma como uma actividade é
desempenhada;
• se identifica uma oportunidade de melhoramento de uma actividade.
Ciclo de vida
O processo de desenvolvimento de uma aplicação pode, numa visão genérica, ser
estruturado em três fases distintas que correspondem ao seu ciclo de vida:
• Fase de definição, ou concepção inicial do produto;
• Fase de desenvolvimento;
• Fase de manutenção, que decorre desde a entrega ao cliente até ao
envelhecimento do produto.
Fase de definição
Identifica-se o problema: que informação deve ser processada, que funções e
desempenho são pretendidos, que interfaces são necessários, que
restrições devem ser consideradas e que critérios devem ser utilizados na
avaliação do projecto.
Tipicamente, engloba três tipos de tarefas:
• Estudo de exequibilidade - definição do problema, identificação de soluções
alternativas e estimativa dos custos, benefícios e prazo de entrega, para cada
solução alternativa;
• Análise de requisitos - identificação e especificação dos requisitos funcionais,
de desempenho, de interface, etc.
• Planeamento do projecto - análise dos riscos, custos e recursos alocados pelo
projecto, definição de tarefas e plano de execução.
1 - Introdução 3
Fase de Desenvolvimento
Identifica-se a solução: como é que as estruturas de dados, arquitectura do produto
e funções serão realizadas; como é que o desenho se traduzirá numa
linguagem de programação; e como serão efectuados os testes do
produto.
Tipicamente engloba três tarefas:
• Desenho - tradução dos requisitos num conjunto de representações (texto,
gráfico) que descrevem a estrutura de dados, arquitectura e funções;
• Codificação - tradução do desenho em instruções;
• Teste - procura e eliminação de defeitos na funcionalidade do produto.
Fase de Manutenção
Focada nas alterações do produto, devidas a erros não detectados nas fases
anteriores ou alterações propostas pelo cliente. Volta a aplicar as fases de
definição e desenvolvimento mas partindo do código já desenvolvido.
Tipicamente, engloba três tipos de tarefas:
• Correcção - eliminação de erros;
• Adaptação - modificação do produto devido a alterações no ambiente;
• Evolução - extensão do produto a pedido do cliente.
1 - Introdução 4
Princípios no desenvolvimento de Software
(Diversidade de métodos e técnicas que devem ser seguidas de modo a atingir as
propriedades desejadas quer para o produto quer para o processo.)
• Rigor e formalidade - Aproximação destinada a melhorar a confiabilidade do
produto, produtividade e controlo do processo;
• Separação de preocupações - Separar os diferentes aspectos de um problema
com o intuito de reduzir a complexidade:
- Separação de qualidade - Por exemplo, desenhar um produto correcto e mais
tarde aumentar a sua eficiência;
- Separação de vistas - Por exemplo, analisar separadamente fluxos de dados e
de controlo;
- Separação em partes - Modularidade;
• Modularidade - Decompor o produto em partes; Destinada a aumentar a
compreensibilidade, reutilização e portabilidade do produto. Deve caracterizar-
se por:
- Elevada coesão dos elementos do módulo;
- Reduzida interdependência entre módulos;
• Abstracção - Processo destinado a identificar os aspectos importantes e ignorar
os detalhes
- Principio largamente utilizado em linguagens de programação, algoritmos e
modelos;
• Antecipação das alterações - Facilitar a reparação e alteração do produto;
• Generalidade - Tentar descobrir o problema mais genérico por detrás do
problema a resolver;
• Incrementalidade - Caracteriza um processo que se desenvolve iterativamente.
1 - Introdução 5
Caracterização da actividade de análise
Actividades englobadas pela análise:
• Percepção - Envolve o estudo do SSI do sentido de identificar: objectivos,
estrutura, informação relevante, funções a desempenhar e seus requisitos;
• Especificação - Elaboração de um documento de especificação que descreva o
sistema que deve ser construído, independentemente da natureza e tecnologias a
utilizar na implementação. Desta fase resulta um documento de especificação
de requisitos:
- analisado e confirmado pelo cliente;
- utilizado para desenvolver uma solução que realize os requisitos.
Características desejáveis no documento de especificação:
• Recurso a linguagens gráficas, com suporte adequado de detalhe textual, por
forma a facilitar o diálogo entre os intervenientes no processo de informatização
(“Uma imagem vale por mil palavras”);
• Apresentação do problema decompondo-o em sub-problemas de dimensão
tratável;
• Fácil manutenção, de modo a que mais facilmente se efectuem actualizações, o
que implica uma minimização de redundância.
Tipos de intervenientes no processo de análise:
• Utilizadores finais, ou seja, aqueles que vão efectivamente utilizar o sistema
informático que se pretende desenvolver;
• Responsáveis, aos vários níveis hierárquicos da organização, pelas actividades
que se pretende automatizar;
• Analistas, ou seja, técnicos de informática que conduzem à análise.
1 - Introdução 6
Algumas dificuldades:
• Estudo a desenvolver contempla novas áreas de conhecimento prático fora da
área de especialidade do analista;
• Processo de análise envolve esforços multidisciplinares que introduzem
problemas de comunicação devido à utilização de “linguagens diferentes”;
• Diferentes concepções da mesma realidade geram descrições inconsistentes
(Por vezes, cada utilizador só refere os aspectos que estão sob a sua
responsabilidade, esquecendo os restantes);
• Problemas de relacionamento pois recolher informações implica contactos
pessoais e os utilizadores nem sempre adoptam uma atitude amigável;
• A resistência à mudança assumida ou “camuflada”;
• A necessidade de consensos entre analistas e utilizadores;
• As constantes e frequentes mudanças nos requisitos;
• A determinação do fim desta actividade
“A análise de sistemas é frustrante, cheia de relacionamentos interpessoais
complexos, indefinida e difícil. Numa só palavra é fascinante. Depois de
experimentada, os antigos prazeres da construção de um sistema nunca mais são
suficientes em termos de satisfação.” (Tom DeMarco, 1978)
1 - Introdução 7
Importância da análise
A análise entendida como um processo sistemático de aquisição e representação de
conhecimento, reveste-se de extrema importância, nomeadamente quando se
procura a excelência do software. Alguns dos principais motivos desta importância
incluem:
• Utilidade comprovada, pelo exame dos problemas do passado, que mereceu o
desenvolvimento de metodologias e desencorajou a passagem directa para a
implementação
=> estudos efectuados de determinação da origem dos erros surgidos no
desenvolvimento de programas produziram as seguintes estimativas:
- 64% dos erros são associados à (ausência da) fase de análise & desenho
(apenas 30% destes erros são corrigidos antes da entrega);
- 36% dos erros são atribuídos à fase de codificação (75% destes erros são
corrigidos antes da entrega);
• Apesar de a análise ser uma tarefa que consome tempo, e consequentemente
outros recursos, a contabilização final favorece a sua utilização, com base no
ganho proporcionado em tempo e custos pois:
- promove a aprendizagem, permite antecipar novas necessidades e problemas e
prevenir e detectar falhas prematuramente;
- o tempo e o custo da correcção de problemas aumentam
desproporcionalmente ao longo do ciclo de vida, sendo por vezes impossível
uma correcção adequada (=> “remendos”);
• Proporciona uma base documental comum de grande utilidade, quer para
actividades de desenvolvimento, pelo facto de permitir que diferentes pessoas
trabalhem simultaneamente em diferentes partes do mesmo sistema, quer para a
inevitável actividade de manutenção.
1 - Introdução 8
Procedimentos e instrumentos da Análise de Sistemas
Metodologias
Como devem ser organizadas as actividades que levam à realização do produto:
• Considerar todo o ciclo de vida do produto: desde a sua concepção inicial até ao
seu envelhecimento;
• Definir um processo de produção;
• Aplicar os princípios do desenvolvimento de Sistemas de Informação.
Uma metodologia pode ser considerada como um conjunto formado por:
• Técnicas de representação de conhecimento (MODELOS) - representação do
universo do discurso realçando os aspectos considerados mais importantes.
• Estratégias de abordagem ao problema (MÉTODO) - como conduzir o
processo de obtenção de conhecimento sobre o problema em causa e como
conduzir a sua resolução;
• Técnicas de validação do conhecimento obtido, e representado nos modelos, no
que respeita a:
- Coerência (inexistência de informações contraditórias);
- Correcção (adequação à realidade estudada).
Limitações:
• A adesão a uma metodologia não deve ser muito rígida pois, nenhuma
metodologia é perfeita, nem completamente abrangente, sendo necessário
questionar e utilizar bom senso;
• Dada uma metodologia, procedimentos concretos e bons modelos não é possível
impedir a escolha e uso incorrecto e inadequado das ferramentas
proporcionadas.
1 - Introdução 9
Modelos
Modelo: representação abstracta de uma realidade, ou seja, representação dos
aspectos de uma realidade considerados relevantes em determinado
contexto e/ou sob determinado ponto de vista.
Construímos modelos para:
• Focalizar aspectos relevantes (essência) do sistema deixando para segundo plano
(abstraindo) aspectos menos importantes, para:
- Discutir alterações e correcções de requisitos do utilizador a baixo custo e com
risco mínimo;
- Verificar se a análise do sistema traduz correctamente o ambiente do utilizador;
• Documentar a análise efectuada de forma a que o sistema possa ser construído
por outros elementos da mesma ou de outra equipa.
Cada modelo dá ênfase a um aspecto do sistema:
características funcionais
estrutura de dados e seus relacionamentos
considerações temporais
=> construir vários modelos
A modelação de um SI pode, numa visão genérica, ser dividida em:
• Modelação de dados - informação relevante e sua estruturação;
• Modelação de processos - circuitos de informação e tratamentos dados á
informação.
1 - Introdução 10
Principais tópicos a abordar:
• Introdução aos processos de análise e modelação de sistemas;
• Técnicas de modelação de dados;
• Técnicas de modelação funcional e de comportamento e de descrição de
componentes;
• Estratégias de modelação;
• Metodologias de desenvolvimento de Sistemas de Informação – Análise
Estruturada.