Please enable JavaScript.
Coggle requires JavaScript to display documents.
Projeto e Implementação de Software - Coggle Diagram
Projeto e Implementação de Software
Padrões de Projeto
Elementos Essenciais
Nome
:
Referência significativa ao padrão.
Descrição do Problema
:
Áreas de aplicabilidade do padrão.
Descrição da Solução
:
Modelo abstrato para a solução do problema.
Consequências
:
Resultados e compromissos da aplicação do padrão.
Exemplos de Padrões
Observer
:
Utilizado para notificar objetos sobre mudanças de estado.
Façade
:
Simplifica interfaces complexas para objetos relacionados.
Iterator
:
Padroniza o acesso a elementos de uma coleção.
Decorator
:
Permite a extensão de funcionalidades em tempo de execução.
Questões de Implementação
Reúso
Níveis de Reúso
:
Nível de Abstração
: Uso de conhecimento abstrato representado por padrões de projeto e arquitetura.
Nível de Objeto
: Reúso direto de objetos de bibliotecas existentes.
Nível de Componentes
: Utilização de coleções de objetos e classes para fornecer funções relacionadas.
Nível de Sistema
: Reúso de sistemas de aplicação inteiros, geralmente envolvendo configuração.
Custos Associados ao Reúso
:
Tempo gasto na procura e avaliação do software para reúso.
Custos de aquisição do software reutilizável.
Custos de adaptação e configuração dos componentes de software.
Custos de integração de componentes de software de diferentes fontes.
Benefícios do Reúso
:
Desenvolvimento mais rápido.
Menos riscos.
Custos mais baixos.
Software reusado é geralmente mais confiável.
Importância do Reúso
:
Deve ser considerado desde o início do projeto.
Pode exigir adaptação do projeto para melhor reutilização.
Muitos sistemas de aplicação dependem fortemente do reúso de software.
Gerenciamento de Configuração
Atividades Fundamentais
:
Gerenciamento de Versões
: Manter o controle das diferentes versões de componentes de software e coordenar o desenvolvimento de diversos programadores.
Integração de Sistemas
: Definir quais versões dos componentes são usadas para criar cada versão de um sistema e construir o sistema automaticamente.
Rastreamento de Problemas
: Permitir aos usuários reportar bugs e outros problemas, além de permitir que todos os desenvolvedores possam ver quem está trabalhando nesses problemas e quando eles são resolvidos.
Ferramentas de Gerenciamento de Configuração
:
Sistemas integrados de gerenciamento de mudanças, como o ClearCase, que suportam gerenciamento de versões, integração de sistemas e rastreamento de problemas.
Ferramentas separadas, como Subversion para gerenciamento de versões, sistemas de construção como o GNU Make para integração de sistemas e Bugzilla para rastreamento de problemas.
Desenvolvimento Host-Target
Modelo Host-Target
:
Desenvolvimento de software em um computador (host) e execução em outro (target).
As plataformas de desenvolvimento e execução podem ser diferentes.
No desenvolvimento de sistemas embutidos, simuladores são comumente utilizados.
Plataforma de Desenvolvimento de Software
:
Oferece uma variedade de ferramentas para apoiar os processos de engenharia de software, como compiladores, depuradores, editores, ferramentas de teste, entre outros.
Ambientes de desenvolvimento integrado (IDEs) são comuns, como o Eclipse, que suporta diferentes linguagens e domínios de aplicação.
Decisões de Implantação
:
Devem considerar os requisitos de hardware e software dos componentes, disponibilidade do sistema e comunicações entre componentes.
Diagramas de implantação da UML são úteis para documentar como os componentes de software são distribuídos em diferentes plataformas de hardware.
Desenvolvimento de Sistemas Embarcados
:
Leva em conta as características do target, como tamanho físico, consumo de energia e necessidades de tempo real.
Considera o sistema operacional de tempo real, sensores, atuadores e requisitos de resposta rápida.
Desenvolvimento Open Source
Licenças Open Source
Modelos de Licença
GNU Lesser General Public License (LGPL)
: Variação da GPL que permite a ligação com código proprietário.
Berkley Standard Distribution (BSD) License
: Licença não recíproca que permite a inclusão em software proprietário.
GNU General Public License (GPL)
: Licença recíproca que exige que o código derivado seja open source.
Recomendações para Empresas
Estabelecer um sistema para rastrear componentes open source e suas licenças.
Compreender as diferentes licenças e decidir seu uso com base nisso.
Conhecer a evolução dos componentes e educar os desenvolvedores sobre open source.
Implementar sistemas de auditoria para garantir conformidade com as licenças.
Participar ativamente da comunidade open source.