Modelagem de Software
A comunicação é importante, entre usuários e Analistas de Sistemas O usuário, na maioria das vezes, é quem detém o conhecimento das regras e normas da empresa
Cabe ao Analista de Sistemas, utilizar técnicas e ferramentas para Cabe ao Analista de Sistemas, utilizar técnicas e ferramentas para elicitação de requisitos e entendimento do negócio da empresa
É importante que os Analistas de Sistemas utilizem uma linguagem
clara e sem “jargões” de TI (Tecnologia da Informação) a fim de facilitar
o entendimento por parte dos usuários
Modelagem de Software
O Analista de Sistemas, deve decompor um problema em
subproblemas que possuam menor complexidade que o problema original (em seguida, possibilitar reconstruir o todo)
Às vezes os problemas são decompostos por pontos de vista diferentes, porém o objetivo de atender as necessidades do usuário com qualidade deve ser sempre mantido
deve ser sempre mantido
A resolução de questões de natureza técnica, antes do inicio da
construção do sistema, deve ser evitada
Modelagem de Software
Utilidades da Modelagem de Software:
Estabelecer uma visão comum do ambiente antes de colocar em produção
Servir como suporte para negociação e especificação de requisitos
Representar, avaliar e refinar conceitos do projeto e construção do sistemas
sistemas
Escalonar a informatização em fases, com produtos bem-definidos e dependência mínima de entre as fases
Tratar a complexidade do problema por níveis de abstração, começando pela abstração
Promover indicações quantitativas do escopo
Promover facilidades para geração de testes de aceitação
Modelagem de Software
Tipos de Modelos:
Modelo Funcional – que apresenta uma visão estruturada das funções ou dos processos que compõe a organização
Modelo de dados – apresenta uma visão dos dados que serão armazenados para serem usados pela organização.
armazenados para serem usados pela organização.
Modelo de controle – representa as transformações e controle e uma
visão do comportamento da organização em relação a diferentes
estados válidos
Modelagem de Software
Podemos definir requisito como sendo uma declaração de um serviço ou restrição de um sistema a ser desenvolvido
Requisito pode também ser definido simplesmente como “algo que um cliente necessita”
Do ponto de vista de um desenvolvedor, requisito pode também ser definido como “algo que necessita ser projetado”
definido como “algo que necessita ser projetado”
Modelagem de Software
Um requisito funcional está relacionado com um processo/
funcionalidade que o sistema deve executar ou com uma informação que o sistema deve manter
Determinam “o que” o software deve fazer
São identificados a partir do ponto de vista do usuário
Um requisito não-funcional está relacionado com as propriedades comportamentais que o sistema deve ter:
Desempenho, manutenibilidade, segurança, portabilidade, etc.
Modelagem de Software
Requisitos são problemas quando:
Os requisitos não refletem as necessidades reais do cliente Os requisitos são inconsistentes e/ou incompletos
É caro fazer alterações aos requisitos depois destes terem sido É caro fazer alterações aos requisitos depois destes terem sido acordados
Dificuldade de comunicação e compreensão entre clientes, analistas,
e profissionais que desenvolvem e mantêm o software
Modelagem de Software - Realidade
Desenvolvimento de Sistemas
Atualmente, o desenvolvimento de sistemas de informação envolve processos bem definidos baseando-se em métodos técnicas e
ferramentas propostos pela Engenharia de Software
O termo ENGENHARIA DE SOFTWARE é mais comumente usado para referir-se a:
para referir-se a:
modelos de ciclo de vida métodos e ferramentas
técnicas para estimativa de custos documentação
técnicas para controle da qualidade
Desenvolvimento de Sistemas
A Engenharia de Software é definida pela “criação e a utilização de sólidos princípios de engenharia a fim de obter softwares
econômicos que sejam confiáveis e que trabalhem eficientemente em
máquinas reais”
Desenvolvimento de Sistemas
A Engenharia de Software se baseia em:
Ferramentas
Proporcionam apoio automatizado ou semi-automatizado aos métodos. Podem ser informatizados (CASE) ou não, como no caso de formalismos, modelos, conhecimentos, etc.
Método Método
Descrevem os detalhes sobre “como fazer” para construir o software e envolvem um amplo conjunto de tarefas que incluem:
planejamento e estimativa de projeto, análise de requisitos;
concepção e projeto, implementação, testes e manutenção
Processo
São o elo de ligação entre os métodos e as ferramentas. Definem a
Arcabouço do Processo de Software
Um arcabouço de processo (ou framework) estabelece o alicerce para um processo de software completo pela identificação de um pequeno número de atividades aplicáveis a todos os projetos de software,
independentemente de seu tamanho ou complexidade
Este arcabouço envolve um conjunto de atividades que são aplicáveis durante o desenvolvimento de qualquer software
Comunicação Planejamento Modelagem Construção Implantação
Paradigmas da Engenharia de Software
Comunicação
Envolve alta comunicação e colaboração com o usuário e abrange o levantamento de requisitos e outras atividades relacionadas
Planejamento
Descreve as tarefas técnicas a ser conduzidas, os riscos prováveis, os recursos que serão necessários, os produtos e um cronograma do trabalho
trabalho
Modelagem
Criação de modelos que permitem ao desenvolvedor e ao cliente, entender melhor os requisitos do software e o projeto que vai satisfazer os requisitos
Construção
Essa atividade combina geração de código (manual ou automática) e os
testes necessários para revelar erros no código
Modelos de Processo
Normalmente, as atividades escolhidas envolvem: comunicação, planejamento, modelagem, construção e implantação
A Engenharia de Software propõe vários modelos chamados de
prescritivos, pois prescrevem um conjunto de elementos de processo – atividades de arcabouço, ações de Engenharia de Software, tarefas, produtos de trabalho, mecanismos de garantia de qualidade e controle de modificações. São eles:
de modificações. São eles:
Modelo em Cascata
Modelos Incrementais (Incremental e RAD)
Modelos Evolucionários (Prototipagem e Espiral)
Modelo em Cascata
Modelo em Cascata é normalmente chamado de ciclo de vida clássico e sugere uma abordagem sequêncial:
Planejamento Estimativas Comunicação
Iniciação do Projeto Levantamento de Requisitos
Estimativas Cronograma Monitoração
Modelagem Análise Projeto
Construção Codificação
Teste Implantação Entrega