O documento descreve as principais etapas do ciclo de vida de sistemas, incluindo concepção, construção, implantação, manutenção e morte. Também discute os objetivos, fundamentos e aplicações da engenharia de software.
1. 21
MODELAGEM DE SISTEMAS DE INFORMAÇÃO
Unidade III
5
10
4 CICLO DE VIDA DE SISTEMAS
Um software geralmente vive como criança, tendo em
média um ciclo de vida de cinco anos – isto quando não sofre
implementações.
Um ciclo abrange as seguintes fases:
• concepção: nascimento do software;
• construção: análise e programação;
• implantação: testes e disponibilização aos clientes e/ou
usuários;
• implementações: ajustes pós-implantação;
• maturidade: software sedimentado;
• declínio: dificuldade de continuidade;
• manutenção: tentativa de sobrevivência;
• morte: descontinuidade do software.
Concepção
ConstruçãoImplantaçãoImplementações
M
aturidade
Declínio
M
anutenção
M
orte
2. 22
Unidade III
Segundo Yourdon (1989), o ciclo de vida de desenvolvimento
de um software segue as fases:
• estudo de viabilidade;
• análise de sistemas;
• projeto;
• implementação;
• geração de teste de aceite;
• garantia de qualidade;
• descrição de procedimentos;
• conversão de banco de dados;
• instalação.
4.1 Manutenção do software
Mudanças são inevitáveis quando se constroem sistemas
baseados em computadores e pessoas, e principalmente com
interferências políticas, científicas e atualidades.
Dentro da manutenção podemos dividir alguns tipos:
4.1.1 Manutenção por legislação
Quando o software requer alguma alteração ou ajuste em
decorrência de aspectos legais.
4.1.2 Manutenção por melhoria ou implementação
Quando o software necessita de ajustes para otimização dos
processos e agregação de valor.
4.1.3 Manutenção por correções de erros
Quando o software necessita de correções para eliminar
erros, manutenção considerada problemática.
5
10
15
20
3. 23
MODELAGEM DE SISTEMAS DE INFORMAÇÃO
4.1.4 Manutenção preventiva
Quando há necessidade de modificação para melhorar a
confiabilidade ou uma manutenção de ajustes futuros.
4.2 Engenharia reversa
Surge a partir de encontrar e entender o que consta dentro
da caixa preta do sistema, ou seja, descobrir e entender os
segredos do software em questão, fazer o processo de traz para
frente, recuperar as especificações, documentação, arquitetura
de dados, todo o levantamento do que já foi construído e
documentado para poder reescrever se necessário.
A engenharia reversa também pode ser elaborada na
criação de novos sistemas a partir de sistemas antigos,
quando normatizam todos os seus depósitos de dados
(Heuser, 2000).
A reengenharia não só recupera os dados como também
utiliza suas informações para construção de inovações para
softwares já existentes.
5 ENGENHARIA DE SOFTWARE
Engenharia de software vem da arte da construção, com
base no conhecimento científico e empírico adequado ao
atendimento das necessidades humanas.
Ela é uma metodologia de desenvolvimento e manutenção
de sistemas modulares com algumas características:
• roteiro dinâmico, integrado e inteligente;
• adequação de requisitos funcionais do negócio do
cliente;
• efetivação dos padrões de qualidade e produtividade;
5
10
15
20
4. 24
Unidade III
• planejamento e gestão de atividades.
Engenharia de software é a aplicação sistemática,
disciplinada e com abordagem quantitativa para
o desenvolvimento, operação e manutenção de
software (IEEE, 1990).
O método de engenharia de software proporciona os
detalhes de como fazer para construir software. Para isso são
necessários:
• planejamento;
• estimativa;
• análise de requisitos;
• projeto da estrutura de dados;
• arquitetura de programa e algoritmo, codificação, teste e
manutenção.
Além do método, a engenharia possui apoio automatizado
ou semiautomatizado aos métodos, com o uso de técnicas como
CASE, CAB, análise estruturada, orientação a objetos, banco de
dados, linguagens de programação etc.
E para fazer um elo dos métodos e das ferramentas de
engenharia de softwaree possibilitar o desenvolvimento racional
e oportuno do software, são utilizados os procedimentos de
engenharia de software.
Define a sequência em que os métodos serão aplicados, os
produtos a serem entregues e os controles de qualidade.
Podemos concluir neste momento que a engenharia
de software é a metodologia para o desenvolvimento de
solução em software, um roteiro que pode utilizar diversas
técnicas.
5
10
15
20
25
5. 25
MODELAGEM DE SISTEMAS DE INFORMAÇÃO
5.1 Objetivos da engenharia de software
• Aprimoramento da qualidade dos produtos de software.
• Aumento da produtividade dos engenheiros de software.
• Atendimento dos requisitos com eficiência e efetividade.
Oobjetivocentraldaengenhariadesoftwareéaqualidadeem
qualquer dos pontos citados, vemos que está diretamente ligado
a padronização com qualidade dos softwares desenvolvidos ou
em desenvolvimento.
5.2 Fundamentos da engenharia de software
A engenharia de software também é baseada em algumas
matérias interdisciplinares; segundo Maffeo (1992), podemos
citar as seguintes:
5.2.1 Ciência da computação
É dela que provêm os fundamentos científicos da
engenharia de software de modo análogo que vem da física
e da química.
Estes fundamentos são a base tecnológica do engenheiro de
software, pois abrange arquitetura de computadores, lógica de
programação, estrutura de dados, algoritmos e outros.
5.2.2 Administração e projetos
Diretamente ligada ao gerenciamento de projetos de
desenvolvimento de software (cronogramas, estimativas,
atividade de planejamento, estrutura organizacional),
transformando, assim, o engenheiro de software em um
gestor do projeto (administrando equipe, atividades, prazos e
custos).
5
10
15
20
6. 26
Unidade III
5.2.3 Comunicação
Atividade de extrema importância para a engenharia de
software. A necessidade de comunicação interpessoal escrita
e/ouoraléimprescindívelparaoandamentododesenvolvimento
do sistema.
É por meio dela que, como dito anteriormente, o gestor
administra seus recursos humanos, prazos, podendo envolver
diversos interlocutores e/ou pessoas chaves ao sistema.
5.2.4 Técnica de solução de problemas
Um engenheiro de software é conhecido como um
solucionador de problemas, um gerador de soluções integradas
e inteligentes, isto se referindo à construção, à implantação ou
à manutenção de produtos tecnológicos.
Tais técnicas devem gerar base para as atividades de
planejamento, gerenciamento, análise, design ou protótipos,
desenvolvimento, implantação, validação e manutenção
contínua.
Ter uma escolha consciente de ferramentas e métodos
apropriados para cada atividade realizada.
De forma geral, desenvolver softwareenvolve não só escrever
um programa de computador, e sim duas vertentes: a tecnologia
que engloba o desenvolvimento real do sistema e a gerencial,
que tem a abordagem de acompanhar o cronograma, equipe, o
desenrolar do projeto em si.
5.3 A importância da engenharia de software
O software deve ser desenvolvido e distribuído com
inteligência embutida, padrões visuais, seguindo as necessidades
do usuário e/ou cliente, modulares e em redes complexas.
5
10
15
20
25
7. 27
MODELAGEM DE SISTEMAS DE INFORMAÇÃO
Deve ter sempre o foco no negócio e com o objetivo principal
de auxiliar os processos de tomada de decisão estratégicos,
gerenciais e operacionais.
5.4 Aplicação de software
Um sistema ou software pode ser aplicado a todo e qualquer
negócio e/ou situação, desde que o mesmo seja mapeado com
os envolvidos usuários e/ou clientes previamente e seja gerando
a documentação bem como os desenhos de diagramas e /ou
fluxos, protótipos etc.
5.4.1 Software básico
Conjunto de programas com o objetivo de dar apoio a outros
programas. Como compiladores, editores, gerenciadores de
arquivos, drives.
5.4.2 Software em tempo real
Um software que monitora, analisa, controla eventos em
tempo real.
5.4.3 Software comercial
O processamento de informações comerciais, reestruturação
dos dados de forma que facilitam as operações e a tomada
de decisão, tais como: folha de pagamento, contas a pagar,
processamento de transações em ponto de venda.
5.4.4 Software científico e de engenharia
Caracterizado por algoritmos de processamento de números,
utilizado em astronomia, mecânica automotiva, biologia
molecular e outros.
5
10
15
20
8. 28
Unidade III
5.4.5 Software embutido
Reside na memória só de leitura e é usado para controlar
produtos e sistemas industriais e de consumo como exemplo
temos funções digitais em automóvel como controle de
combustível, mostradores no painel.
5.4.6 Software de computador pessoal
São os softwares de contínua inovação no projeto de
interface com seres humanos. Tendo uma constância na sua
evolução e criação. Software estes como planilhas, editores de
texto, diversões, aplicações financeiras pessoais, etc.
5.4.7 Software modelo espiral
Desenvolvido para abranger os melhores pontos de um ciclo
de vida de projeto, planejamento, análise de riscos, engenharia
ou desenvolvimento do produto, avaliação.
5.4.8 Software com linguagem 4ª geração
4GL é um conjunto de ferramentas de software que
possibilita ao desenvolvedor especificar o software em um nível
mais elevado.
O uso do 4GL segue um ciclo de vida diferenciado:
• coleta de requisitos;
• estratégia do projeto;
• implantação usando 4GL;
• testes.
5
10
15
9. 29
MODELAGEM DE SISTEMAS DE INFORMAÇÃO
5.4.9 Software educacional
Tem como objetivo auxiliar o aprendizado e contribuir para a
educação geral. Englobam sistemas de multimídia interativa ou
não, software de entretenimento, livros eletrônicos etc.
5.4.10 Software de tutores inteligentes
Programas que projetam técnicas de comunidade de
inteligência artificial, chamada também de ciência cognitiva.
5.4.11 Software de gestão empresarial
São softwares que integram todas as funções da empresa
gerando uma base única de dados de onde provem informações
operacionais e gerenciais. O Enterprise Resources Planning (ERP)
é um deles.
5.4.12 Software SIG – Sistema de Informações Gerenciais
Fornecem informações para a tomada de decisão
5.4.13 Software SAD – Sistema de Apoio a Decisão
Fornecem informações a serem utilizadas pelos usuários na
tomada de decisão.
5.4.14 Software EIS – Executive Information System
Fornecem informações de forma simples e amigável para os
executivos de alto nível, permitindo o acompanhamento diário.
5.5 Engenheiro de software
5.5.1 Quem é
Um profissional que desenvolve soluções utilizando recursos
de software, seguindo os requisitos previamente levantados,
5
10
15
10. 30
Unidade III
observando as necessidades do cliente e/ou usuário e
principalmente observando e seguindo os padrões de qualidade
requeridos.
5.5.2 O que preciso
Este profissional vem da área de tecnologia ou de ciências
da computação.
5.5.3 Habilidades necessárias
Deve possuir métodos definidos para o desenvolvimento de
software:
• muita dedicação;
• domínio das ferramentas;
• disposição para constante aprendizado;
• disponibilidade para se reciclar em conhecimentos;
• conhecimentos do negócio;
• criatividade;
• conceitos e vivência em qualidade.
5.6 Diagramação de software
A diagramação de software pode ser realizada de diversas
formas a partir da definição e a utilização de uma metodologia
de desenvolvimento de software.
5.7 Fluxogramas
Muito utilizado pelos analistas de processos ou antigos
analistas de OM, principalmente para documentar processos
de negócio, administrativos e industriais. Não recomendado para
a engenharia, por não possuir uma especificação estruturada.
5
10
15
20
11. 31
MODELAGEM DE SISTEMAS DE INFORMAÇÃO
Início
Entrada de
dados
Transformação
Dados
corretos
Imprime
Fim
5.8 Diagrama de fluxo de dados (DFD)
Ferramenta de diagramação de software que possui diversos
níveis, cada um deles com características específicas.
5.8.1 Diagrama de fluxo de dados
• Imagem do sistema;
• modelo da organização;
• apresentação em etapas com aumento gradativo de
detalhes;
• modularização;
• hierarquização.
5
12. 32
Unidade III
5.8.2 DFD nível 0
• Visualização do todo;
• macroprocessos visíveis;
• apresentação das entidades externas, fluxo de dados e
deposito de dados principais.
5.8.3 DFD nível 1
• Explosão do nível zero;
• maiores detalhes, mais completo;
• possui tratamento de exceções.
5.8.4 Diagrama de contexto
• Visão global;
• desenha o ambiente;
• representado pelas entidades externas e macrofluxos;
• um único macroprocesso;
• sem depósito de dados.
5.9 Simbologias
5.9.1 Entidades externas
Objetos que representam origem ou destino de dados
são representações de pessoas (físicas ou jurídicas), sistemas,
departamentos ou unidades de negócio. Desenhados conforme
figura abaixo:
X – letra para identificação
Nome – nome da entidade (cliente, sistema)
5
10
15
13. 33
MODELAGEM DE SISTEMAS DE INFORMAÇÃO
X
Nome
5.9.2 Fluxo de dados
É o meio por onde as informações trafegam. Neste caso,
sempre envolvem processos, pois não é possível enviar de uma
entidade para outra entidade, entidade para depósito de dados
e vice-versa ou, ainda, de depósito de dados para depósito de
dados.
Para o desenho, temos as seguintes regras:
Nome – nome do dado (comandos, solicitação de pedidos).
Arg – argumento de acesso a um depósito de dados quando
conhecido (CPF, código).
Nome
arg
5.9.3 Processos
São os módulos do sistema que se transformam em fluxo
de dados numa atividade. Para facilitar o desenho do processo,
deve-se levantar o máximo de requisitos funcionais possível
para o sistema que será desenvolvido.
Para o desenho, temos as seguintes regras:
Nr – número de referência do processo (nível 0 ou 1 = 1,2,3
e demais níveis 1.1,1.2).
5
10
15
14. 34
Unidade III
Função ou nome – descrição do processo no verbo infinitivo
(registrar, tratar, gerar relatórios).
Loc – local físico onde o processo ocorre (área financeira,
departamento de contabilidade).
Nr.
Nome
loc
5.9.4 Depósito de dados
Local no qual são armazenados os dados ou as informações;
são arquivos proprietários. Podemos considerar como depósito
de dados três tipos de arquivo:
Cadastral – cliente, fornecedores, itens, produtos.
Demovimento–queéajunçãodedoisdepósitos:movimento
de caixa, movimento financeiro.
Tabelas–quecontêmdomíniosgeralmentecomdoiscampos:
tabela de classe, tabela de tipo, tabela de cidade.
Para o desenho, temos as seguintes regras:
Dn – número do depósito (nível 0 e/ou1 = D1,D2).
Nome – nome do depósito (cliente, contas a pagar).
|| duplicação ou repetição do depósito no desenho.
Dn NomeDn Nome
5
10
15
15. 35
MODELAGEM DE SISTEMAS DE INFORMAÇÃO
Não temos uma regra ou modelo definido para a elaboração
de um DFD, porém, podemos utilizar como sugestão para
elaboração e construção dos desenhos do DFD alguns passos:
• identificar e enumerar os requisitos funcionais;
• identificar as entidades externas;
• associar ao fluxo de dados as entidades externas que
recebem e/ou enviam dados destas;
• identificar as manipulações dos depósitos de dados e
associá-los às respectivas entidades.
Ao desenhar o primeiro DFD, procurar sempre:
• iniciar do lado esquerdo com a entidade externa
principal;
• preferencialmente deixar todas as entidades externas nos
cantos (à esquerda as de origem e à direita as de destino);
• desenhar somente fluxos necessários;
• não se preocupar ainda com o começo e o fim do
sistema;
• não numerar os processos neste momento;
• verificar se todas as entradas e saídas foram incluídas;
• associar manipulações necessárias a depósitos de dados;
• redesenhar o DFD minimizando a interseções;
• discutir com o cliente e anotar as mudanças necessárias;
• explodir ou derivar os processos complexos em níveis
inferiores.
O importante na elaboração de um DFD é lembrar o princípio
básico de processamento de dados:
5
10
15
20
25
16. 36
Unidade III
Entrada
SaídaSaídaSaídaProcessamento
Todo o DFD parte desse pressuposto básico e a partir dele
se constrói um diagrama de fluxo de dados com qualidade,
coerência e de forma concisa.
5.10 Diagrama de Entidade-Relacionamento
(DER)
Este diagrama representa os objetos de dados e seus
relacionamentos, desta forma cada entidade termina
representada pelo menos por uma tabela de dados e geralmente
é expressa em um depósito de dados do DFD. A utilidade principal
é mostrar as coisas importantes que a empresa tem e quais são
importantes armazenar e, além disso, como elas se relacionam
entre si.
O DER é uma técnica de modelagem de dados que pode ser
utilizada em conjunto com outras técnicas de diagramas de
software direcionadas ao desenvolvimento de sistemas.
O desenho para os objetos de dados é o retângulo rotulado,
e para os relacionamentos, utiliza-se o losango:
Fabricante Constrói Carro
5.10.1 Relacionamento 1:1 (um para um)
Quando cada departamento é gerenciado por apenas um
gerente, e cada gerência possui apenas um departamento.
Departamento Gerência
5
10
15
17. 37
MODELAGEM DE SISTEMAS DE INFORMAÇÃO
5.10.2 Relacionamento 1: muitos (um para muitos)
Cada venda envolve um ou mais itens, e cada item de venda
é parte de apenas uma venda.
Venda Itens de venda
5.10.3 Relacionamento muitos: muitos (muitos para
muitos)
Cada fornecedor fornece um ou mais produtos, e cada
produto é fornecido por um ou mais fornecedores.
Fornecedor Produto
5.10.4 Entidade de interseção
É quando uma terceira entidade estabelece relações.
Fornecedor
Origem do
produto
Produto
5