Paradigmas de análise e desenvolvimento de sistemas Metodologia de Análise e Desenvolvimento de Sistemas Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com rosefib.webnode.com.br
Tópicos abordados Conceitos de sistema e de análise Características dos sistemas Papel do analista de sistemas Sistema de Informação Fases de desenvolvimento de um SI xxxxxxxx
Conceitos básicos Análise Estudo aprofundado sobre qualquer coisa, parte por parte... Decomposição do todo nos seus elementos... (dicionário da língua portuguesa da Porto Editora) Sistema é um conjunto de elementos em interação dinâmica, organizadas em função de um objetivo (Rosnay, 1975) um sistema pode ser composto de um ou vários subsistemas. Exemplos.: sistema solar, sistema respiratório, sistema educativo, sistema de matrícula, etc
Características dos Sistemas Objetivo Razão fundamental da existência do sistema Componentes Diversas partes do sistema Estrutura relação existente entre os componentes, ou seja, a forma como se articulam para alcançar os objetivos Comportamento maneira de reagir a estímulos vindo do ambiente. Ciclo de vida inclui a concepção, evolução, desgaste ou envelhecimento e morte do sistema.
Análise de Sistemas É a coleção de notações, metodologias e ferramentas usadas para reunir detalhes e analisar um problema prévio e conceber uma solução (ou projeto) e acompanhar a sua implementação. Analisar um sistema implica realizar um estudo aprofundado para entender como ele funciona e se é necessário introduzir melhorias. Analisar um sistema consiste em: Conhecer seus objetivos Decompô-lo em componentes Conhecer cada um dos seus componentes e as relações entre si Diagnosticar problemas Juntar novamente as partes de forma a determinar o seu funcionamento geral
Papel do Analista de sistemas Identificar os objetivos do sistema, conhecendo os resultados que se pretende alcançar. Efetuar um levantamento prévio dos requisitos para análise do sistema. Criar modelos que representem o sistema, para facilitar a análise do mesmo. Encontrar soluções alternativas para alcançar os objetivos.
Fases de desenvolvimento de um sistema
Identificação dos requisitos
Identificação dos requisitos
Requisitos de software Requisitos Usuário = df Sistema Funcionais Não-funcionais Domínio
Requisitos de usuário Funções que o sistema deve fornecer Restrições sob as quais o sistema deve operar Descrito em linguagem natural ou diagramas Exemplo: O software deve oferecer um meio de efetuar matricula de aluno presencialmente ou a distância.
Requisitos de usuário Alto nível de abstração Comportamento externo do sistema visão do usuário Podem gerar problemas de: Falta de clareza: ambiguidade na linguagem Confusão de requisitos: requisitos conflitantes Fusão de requisitos: requisitos diferentes expressos em um único requisitos Dicas para minimizar os problemas Utilizar um padrão para especificação Utilizar linguagem de modo consistente. Distinguir requisitos obrigatórios e desejáveis
Requisitos de sistema Detalhamento das funções e restrições do sistema Também chamado de Especificação funcional Deve ser preciso Descrições detalhadas dos requisitos de usuário Serve como base para o contrato de desenvolvimento do sistema Utilizado como ponto de partida para o projeto do sistema A linguagem natural pode ser muito flexível, então alternativas devem ser utilizadas a exemplo de notações gráficas
Requisitos de software (exemplo) Requisito de usuário O sistema deve efetuar a matrícula dos alunos de graduação Requisito de sistema Cadastrar Aluno Gerar núvel de matrícula Selecionar disciplinas Checar pre-requisitos Gravar matrícula
Requisitos funcionais Declarações de funções que o sistema deve fornecer Devem ser completos e consistentes Na prática é quase impossível atingir a completeza e a consistência dos requisitos devido a complexidade dos sistemas À medida que as revisões acontecem, ou em fases posteriores, os problemas são descobertos e o documento de requisitos alterado
Requisitos não-funcionais Restrições sobre os serviços e as funções oferecidas pelo sistema. Podem estar relacionados a propriedades, tais como: confiabilidade, tempo de resposta, interoperabilidade, etc. Podem definir restrições para o sistema (dispositivos de E/S, p. ex.) Se referem ao sistema como um todo Surgem conforme a necessidade dos usuários (orçamento, políticas organizacionais, interoperabilidade com outros sistemas)
Requisitos não-funcionais Requisitos não funcionais são difíceis de serem verificados. Causam problemas, pois em geral ficam abertos à interpretações e a discussão quando o sistema é entregue. Solução seria expressar quantitativamente utilizando métricas.
Requisitos não-funcionais Métricas para especificação de requisitos não-funcionais.
Exemplo de Requisitos não-funcionais não especificados
Consequência de requisitos não especificados claramente Consequência de requisitos mal especificados => software de baixa qualidade O problema se propaga e se multiplica Perde-se dinheiro Perde-se tempo Difícil de manter As sementes dos principais desastres de software são usualmente lançadas nos primeiros três meses de início do projeto de software Caper Jones
Consequência de requisitos não especificados claramente
Exercício Identificação dos requisitos
Análise Também designada de Desenho Lógico. Consiste em analisar e propor uma solução para o sistema utilizando para isto uma metodologia de análise para realizar modelagem deste sistema. Metodologia de análise Indica os métodos a serem utilizados para modelar um sistema e de que maneira eles são utilizados. Método de análise Maneira de como padronizar e modelar um sistema.
Análise Principais métodos de análise utilizados: Método orientado a funções Função como foco principal do desenvolvimento (utilização de diagrama de fluxo de dados) Método orientado a dados Dados como foco do desenvolvimento Mapeamento de estruturas que representam estes dados (utilização de diagrama de entidade e relacionamento) Método orientado a objetos Combinação de dados e funções Abstrai o mundo real em objetos
Análise Metodologias de análise: Análise Estruturada Análise Essencial Análise Orientada a Objetos
Análise Metodologias de análise
Análise Essencial
Desenho físico
Codificação
Implementação e Teste