[Engenharia de Software I] Flashcards
O que é Software
- São programas de computadores.
- Instruções que executam tarefas específicas
O que é Software Legado
É um software bastante antigo.
- Continuamente modificado para adequar-se às mudanças dos requisitos de negócio ou
às novas tecnologias - Considerado indispensável às funções de negócios fundamentais para a
empresa.
O que é Engenharia de Software?
Aplicação de princípios de engenharia para o desenvolvimento, manutenção e gestão de software. Ou seja, do ínicio ao fim (ciclo) do projeto
- Trabalha com quais ferramentas serão utilizadas, quais métodos/técnicas, os processos durante o ciclo de vida e o controle de qualdiade.
- Qualidade, desempenho, segurança e usabilidade ao criar software.
[Camadas da Engenharia de Software] - Qual a função da camada de Ferramenta?
4 camadas da engenharia de software
Refere ao conjunto de softwares e utilitários utilizados no processo de desenvolvimento de software.
- Exemplo → ferramentas CASE (Computer Aided Software Engineering).
- Exemplo → IDEs (ambiente de desenvolvimento integrado) para geração de códigos.
- Exemplo → Git e depuradores
[Camadas da Engenharia de Software] - Qual a função da camada de Método?
4 camadas da engenharia de software
Define as técnicas e abordagens utilizadas para realizar tarefas específicas no desenvolvimento de software.
- Comunicação,
- Análise de requisitos,
- Modelagem de projeto,
- Construção de software, testes e manutenção
Exemplo
- Programação orientada da objetos
- Programação orientada a testes
- Diagrama de caso de uso
[Camadas da Engenharia de Software] - Qual a função da camada de Processo?
4 camadas da engenharia de software
São os procedimentos e diretrizes que definem como o desenvolvimento de software é gerenciado, documentado e controlado em seu ciclo de vida.
- Exemplo → Metodologia ágeis (Scrum, Kanbam)
[Camadas da Engenharia de Software] - Qual a função da camada de Qualidade?
4 camadas da engenharia de software
Envolve atividades para garantir que o software atenda aos padrões de qualidade e requisitos
- Exemplo → Testes unitários (garantir que cada parte do código funcione)
- Exemplo→ CodeReview (Identificação de problemas e melhorias)
- Exemplo → Testes automatizados
CASE (Computer Aided Software Engineering), o que é?
Conjunto de ferramentas e métodos computacionais que auxiliam no processo de desenvolvimento de software.
- Projetadas para automatizar várias etapas do ciclo de vida do desenvolvimento de software
- Modelagem (Diagramas), a documentação, o projeto, a implementação e a manutenção.
- JIRA, Microsoft Visio, VIsual Paradigm
Exemplo de uso das 4 camadas de engenharia de software em um projeto
-
Ferramentas:
- Utilize um IDE (como o Visual Studio Code) para escrever o código-fonte do aplicativo.
- Use um sistema de controle de versão (por exemplo, Git) para rastrear e gerenciar o código-fonte do projeto.
- Um depurador (como o debugger embutido no IDE) pode ser usado para identificar e corrigir erros no código.
-
Métodos:
- Adote a programação orientada a objetos (POO) para estruturar o código em classes, objetos e métodos, o que facilita a manutenção.
- Use a metodologia ágil Scrum para gerenciar o projeto, com sprints curtas de desenvolvimento, reuniões diárias de scrum e foco na colaboração com os usuários.
-
Processos:
- Siga um processo de desenvolvimento em cascata para a definição de requisitos e design inicial do aplicativo.
- Use Scrum para a implementação, dividindo o projeto em iterações (sprints) com entregas incrementais.
- Realize revisões de código regularmente, seguindo um processo de revisão para garantir a qualidade do código.
-
Qualidade:
- Implemente testes de unidade para verificar se as funções do aplicativo estão funcionando conforme o esperado.
- Automatize testes de integração para verificar se diferentes partes do aplicativo funcionam bem juntas.
- Realize revisões de código para identificar problemas de qualidade e garantir que o código seja legível e siga padrões de codificação.
[Tipos de aplicações de Software] o que são, e quais são?
Os tipos de aplicações de software variam em função e propósito de acordo com as necessidades dos usuários e as indústrias em que são utilizadas.
Sistemas de Processamento de Transações (SPT)
Sistemas de Informações Gerenciais (SIG)
Sistemas de Apoio à Decisão (SAD)
Sistemas de Informação Executiva (SIE)
Sistemas Especialistas (SE)
Sistemas de Automação de Escritório (SAE)
[Tipos de aplicações de Software][SPT] - Sistemas de Processamento de Transações (SPT), o que é?
Sistemas tradicionais que coletam, guardam, modificam e recuperam as transações,
gerenciando as informações das organizações
- Transação → Evento que gera ou modifica algum dado
- Transações podem ser de:
- Negócio → Financeiras, mobiliárias
- Técnicas → Banco de dados, transações operacionais
Exemplo: Site bancário, compras pela internet, sistema de biblioteca
[Tipos de aplicações de Software][SIG] - Sistemas de Informações Gerenciais (SIG), o que é?
São sistemas que coletam, armazenam e processam dados para gerar relatórios e informações para a tomada de decisões em níveis gerenciais.
- Normalmente, são fornecidos como pacotes customizáveis.
- Esses sistemas envolvem três recursos primários: tecnologia, informações e pessoas.
Exemplos de SIG
- ERP – Enterprise Resource Planning ou Sistemas Integrados de Gestão Empresarial
- SCM - Supply Chain Management ou Gerenciamento da Cadeia de Suprimentos
- CRM - Customer Relationship Management ou Gestão do Relacionamento com Clientes
- KMS - Knowledge Management Systems ou Sistemas de Gestão de Conhecimento
[Tipos de aplicações de Software][SIG] - ERP (Enterprise Resource Planning), o que é?
É o planejamento dos recursos empresariais, que fornece uma Interface com banco de dados único para gerenciar todos os processos de negócios de uma empresa.
- Exemplo de aplicação → TOTVS Protheus: contabilidade, finanças, recursos humanos, estoque, produção e outros processos de negócios.
[Tipos de aplicações de Software][SIG] - SCM - Supply Chain Management, o que é?
Sistemas que permite uma gestão mais eficiente do negócio, integrando-o com fornecedores, fabricantes, atacadistas, varejistas até o consumidor final.
- Objetivo é garantir que os produtos certos estejam disponíveis no lugar certo, na hora certa e com o menor custo possível.
- Exemplo: SAP IBP → Software SCM
[Tipos de aplicações de Software][SIG] - CRM - Customer Relationship Management, o que é?
Apoia as empresas na gerência e em estreitar laços com clientes
- Gerenciar Contatos e Informações do Cliente: Armazenar informações sobre clientes, como nome, dados de contato, histórico de compras e preferências.
- Automatizar Tarefas de Vendas e Marketing: Atendimento ao cliente, envio de e-mail, atendimento online, rastreamento de lead de forma automatizada
- Melhorar o Atendimento ao Cliente: Atendimento personalizado
- Analisar feedback do cliente e aumentar a retenção do lead
- Integração de dados para obter as informações completas
[Tipos de aplicações de Software][SAD] - Sistemas de Apoio à Decisão (SAD), o que é?
São sistemas que analisam um grande número de variáveis e dados para que seja possível o posicionamento quanto a uma tomada de decisão.
- São interativos com os usuários
- Processam grande quantidade de informação para gerar
análises precisas - Geram relatórios analíticos da situação.
- Envolvem pesquisa de banco de dados, inteligência artificial, simulações e estatísticas
Exemplos:
- Análise de crédito, sistemas de BI (Business Inteligence) em geral.
[Tipos de aplicações de Software][SIG] - KMS - Knowledge Management Systems, o que é?
Recolhe, registra, organiza e recupera o conhecimento dos colaboradores para que fiquem internalizados na empresa.
- Documentos, registros contábeis, dados sem registro e procedimentos,
práticas e habilidades.
[Tipos de aplicações de Software][SAD] - Relacionamento passivo, ativo e cooperativo, Como é feito?
-
Passivo → sistema que auxilia o processo de tomada de decisão, mas não traz,
explicitamente, sugestões ou soluções; - Ativo → pode trazer sugestões ou soluções para o problema apresentado;
- Cooperativo → tomador de decisão que atua como conselheiro, oferecendo a capacidade de modificar, complementar ou refinar as sugestões de outros colaboradores para validação.
[Tipos de aplicações de Software][SAD] - Modelo de apoio, Como é feito?
- Model-driven: manipulação para análise de situações com base em dados e parâmetros dos usuários.
- Communication-driven: Auxilia a colaboração entre várias pessoas em tarefas compartilhadas.
- Data-driven: Gerencia informações não estruturadas em vários formatos de armazenamento.
- Knowledge-driven: Oferece especialização na resolução de problemas usando conhecimento armazenado, como fatos e regras.
- Tradeoff-driven: Ajuda na tomada de decisões que envolvem trade-offs entre vantagens e desvantagens, usando conhecimento armazenado.
[Tipos de aplicações de Software][SAD] - Escopo da aplicação (Empresarial / Desktop), o que é??
- Empresarial, que é ligado a um grande data-warehouse e a servidores de muitos gerentes em uma organização;
- Desktop, um sistema pequeno que roda para um gerente em um personal computer (PC)
[Tipos de aplicações de Software][SIE] - Sistema de Informação Executiva (SIE)), o que é??
Sistema de informações gerenciais destinado a facilitar e apoiar a informação e a tomada de decisão dos altos executivos.
- Forma especializada de SAD
- Apresenta os resultados em telas gráficas, fáceis de usar e de navegar, criando situações de detalhamento.
- Vem perdendo espaço para os sistemas de BI (Business Inteligence) com seus relatórios e painéis interativos.
> “CEO de uma empresa que utiliza o SIE para acessar rapidamente relatórios e gráficos de desempenho de negócios, permitindo-lhe tomar decisões estratégicas com base em informações atualizadas e relevantes, como vendas, finanças e indicadores-chave de desempenho.”
[Tipos de aplicações de Software][SIE] - Caracteristicas, o que é??
- Não exige experiência com computador.
- Fácil de usar.
- Fornece informações resumidas da empresa.
- Possui filtros de dados para a gestão.
- Os dados são obtidos das outras aplicações da organização.
- Essencialmente, é uma aplicação de consulta.
[Tipos de aplicações de Software][SIE] - Sistemas Especialistas (SE), o que é??
Programas de computador que utilizam conhecimento e regras específicas para tomar decisões ou fornecer aconselhamento em domínios de especialização
- Imitam o raciocínio humano para resolução de problemas
- Utilização de IA
Exemplo → Um sistema especialista médico que usa dados clínicos, sintomas do paciente e conhecimento médico para diagnosticar doenças ou sugerir tratamentos.
VANTAGENS:
Custo reduzido.
Perigo reduzido.
Múltiplos conhecimentos.
Aumento do nível de confiança.
Resposta rápida.
[Tipos de aplicações de Software][SIE] - Sistemas de Automação de Escritório (SAE), o que é??
São aplicativos que facilitam a vida dos funcionários de uma empresa realizando as
atividades que outrora eram manuais.
- Aumentam a produtividade e a qualidade das informações apresentadas
- Editores de texto, planilhas eletrônicas, e-mail, chats, correios de voz,
videoconferência, entre outros.