O documento discute conceitos de modelagem de sistemas de informação, incluindo ciclo de vida de sistemas, engenharia de software, aplicações de software e diagramação de software. É apresentado o ciclo de vida de desenvolvimento de software segundo Yourdon (1989), assim como tipos de manutenção de software. A engenharia de software é definida e seus objetivos e fundamentos são descritos. Por fim, são explicados conceitos como diagrama de fluxo de dados e diagrama de entidade-relacionamento.
Princípios da engenharia de software (marcello thiry)Marcello Thiry
Apresentações para as disciplinas de Engenharia Software (graduação)
Princípios da Engenharia de Software
University of Vale do Itajaí
Univali
Incremental Tecnologia
Versão em Português
Princípios da engenharia de software (marcello thiry)Marcello Thiry
Apresentações para as disciplinas de Engenharia Software (graduação)
Princípios da Engenharia de Software
University of Vale do Itajaí
Univali
Incremental Tecnologia
Versão em Português
2. Sobre esta aula
Ciclo de Vida de Sistemas
Engenharia de Software
Aplicações de Software
Diagramação de Software
3. 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;
ti continua...
4. Ciclo de Vida de Sistemas
implementações: ajustes pós-
implantação;
maturidade: software sedimentado;
declínio: dificuldade de continuidade;
manutenção: tentativa de sobrevivência; manutenção: tentativa de sobrevivência;
morte: descontinuidade do software.
6. Ciclo de Vida de Sistemas
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;g q ;
descrição de procedimentos;
conversão de banco de dados;
instalação.
7. 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:
Manutenção por legislação: Quando o
software requer alguma alteração ou
ajuste em decorrência de aspectos
legais.
8. Manutenção do software
Manutenção por melhoria ou
implementação:
Quando o software necessita de ajustes
para otimização dos
processos e agregação de valor.p g g ç
Manutenção por correções de erros:
Quando o software necessita de
correções para eliminar erros,
manutenção considerada problemática.
9. Manutenção do software
Manutenção preventiva:
Quando há necessidade de modificação
para melhorar a confiabilidade ou uma
manutenção de ajustes futuros.
10. Interatividade
Quando o software requer alguma alteração
ou ajuste em decorrência de aspectos
legais, a qual tipo de manutenção refere-se:
a) Manutenção por legislação;
b) Manutenção por melhoria ou) ç p
implementação;
c) Manutenção por correções de erros;
d) Manutenção preventiva;
e) Manutenção corretiva;
11. Engenharia reversa
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.
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.
12. Engenharia 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.
Engenharia de software é a aplicaçãog p ç
sistemática, disciplinada e com
abordagem quantitativa para o
desenvolvimento, operação e
manutenção de software
13. Engenharia Software
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;
planejamento e gestão de atividades planejamento e gestão de atividades.
14. Engenharia Software
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,
difi ã t t t ãcodificação, teste e manutenção.
15. Engenharia Software
Objetivos da engenharia de software
Aprimoramento da qualidade dos
produtos de software.
Aumento da produtividade dos
engenheiros de software.g
Atendimento dos requisitos com
eficiência e efetividade.
O objetivo central da engenharia de
software é a qualidade em qualquer dos
pontos citados vemos que estápontos citados, vemos que está
diretamente ligado a padronização com
qualidade dos softwares desenvolvidos
ou
em desenvolvimento.
16. Fundamentos da engenharia de
software
A engenharia de software também é
baseada em algumas matérias
interdisciplinares, podemos citar as
seguintes:
Ciência da computação
Administração e projetos
Comunicação
Técnica de solução de problemas
17. Fundamentos da engenharia de
software
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.
Administração e projetos
Diretamente ligada ao gerenciamento de
projetos de desenvolvimento de software
(cronogramas, estimativas, atividade de
planejamento, estrutura organizacional),p j , g ),
transformando, assim, o engenheiro de
software em um gestor do projeto.
18. Fundamentos da engenharia de
software
Comunicação
Atividade de extrema importância para a
engenharia de software. A necessidade de
comunicação interpessoal escrita e/ou oral
é imprescindível para o andamento do
desenvolvimento do sistema.
Técnica de solução de problemas
Um engenheiro de software é conhecido
como um solucionador de problemas, um
gerador de soluções integradas eg ç g
inteligentes, isto se referindo à
construção, à implantação ou à
manutenção de produtos tecnológicos
19. 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.
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
20. Interatividade
Pode ser elaborada na criação de novos
sistemas a partir de sistemas antigos esta
afirmação refere-se:
a) Engenharia de software;
b) Engenharia de sistemas;) g ;
c) Engenharia reversa;
d) Engenharia inversa;
e) Engenharia transversa;
21. 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 desenhosa documentação bem como os desenhos
de diagramas e /ou fluxos, protótipos
etc.
Software básico
Conjunto de programas com o objetivo
de dar apoio a outros programas. Como
compiladores, editores, gerenciadores
de arquivos, drives.
22. Aplicação de software
Software em tempo real
Um software que monitora, analisa,
controla eventos em tempo real.
Software comercial
O processamento de informações 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 pontop ç p
de venda
23. Aplicação de software
Software científico e de engenharia
Caracterizado por algoritmos de
processamento de números, utilizado em
astronomia, mecânica automotiva,
biologia molecular e outros.
Software embutido
Reside na memória só de leitura e é
usado para controlar produtos e
sistemas industriais e de consumo como
exemplo:p
temos funções digitais em automóvel
como controle de combustível,
mostradores no painel
24. Aplicação de software
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.
Software modelo espiral
Desenvolvido para abranger os melhores
pontos de um ciclo de vida de projetopontos de um ciclo de vida de projeto,
planejamento, análise de riscos,
engenharia ou desenvolvimento do
produto, avaliação.
25. Aplicação de software
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.
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.
26. Aplicação de software
Software de tutores inteligentes
Programas que projetam técnicas de
comunidade de inteligência artificial,
chamada também de ciência cognitiva.
Software de gestão empresarialg p
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 Resource Planning (ERP) ép g ( )
um deles.
27. Aplicação de software
Software SIG
Fornecem informações para a tomada de
decisão
Software SAD
Fornecem informações a serem
utilizadas pelos usuários na tomada de
decisão.
Software EIS
Fornecem informações de forma simples
e amigável para os executivos de alto
nível, permitindo o acompanhamento
diário.
28. Interatividade
Tem como objetivo auxiliar o aprendizado e
contribuir para a educação geral refere-se a
qual aplicação de software:
a) Software de tutores inteligentes;
b) Software de gestão empresarial;) g p ;
c) Software de computador pessoal;
d) Software educacional;
e) Software modelo espiral;
29. 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.
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.
31. Diagramação de software
Di d fl d d d (DFD) 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.
32. Diagramação de software
DFD í l 0 DFD nível 0
visualização do todo;
macroprocessos visíveis;
apresentação das entidades externas,
fluxo de dados e deposito de dadosfluxo de dados e deposito de dados
principais.
DFD nível 1
explosão do nível zero;
maiores detalhes, mais completo;
possui tratamento de exceções.
33. Diagramação de software
Di d t t Diagrama de contexto
Visão global;
desenha o ambiente;
representado pelas entidades externas e
macrofluxos;macrofluxos;
um único macroprocesso;
sem depósito de dados.
34. Diagramação de software
Di d E tid d R l i tDiagrama de Entidade-Relacionamento
(DER)
O DER é uma técnica de modelagem de
dados que pode ser utilizada em conjunto
com outras técnicas de diagramas deg
software direcionadas ao desenvolvimento
de sistemas.
35. Diagramação de software
R l i t 1 1 ( ) Relacionamento 1:1 (um para um)
Quando cada departamento é gerenciado
por apenas um gerente, e cada gerência
possui apenas um departamento.
36. Diagramação de software
R l i t 1 it ( Relacionamento 1: muitos (um para
muitos) cada venda envolve um ou mais
itens, e cada item de venda é parte de
apenas uma venda.
37. Diagramação de software
R l i t it it ( it Relacionamento muitos: muitos (muitos
para muitos) cada fornecedor fornece
um ou mais produtos, e cada produto é
fornecido por um ou mais fornecedores.
38. Diagramação de software
E tid d d i t ã Entidade de interseção
É quando uma terceira entidade estabelece
relações.
39. Conclusão da aula
Falamos basicamente sobre ciclo de vida
de sistemas, engenharia de software,
aplicações de software e diagramação de
software
40. Interatividade
Ferramenta de diagramação de software
que possui diversos níveis, cada um deles
com características específicas refere-se a
qual tipo de diagramação de software:
a) Fluxograma
b) Organograma
c) Diagrama de fluxo de dados
d) Diagrama de caso de uso
e) Diagrama de classes