[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.
[Gestão de projetos] - o que é?
Para tratar de problemas, a Engenharia de Software possui uma disciplina chamada: Gestão de projetos.
Gestão de projetos
Tem com objetivo: Permitir que as empresas ciem um software de acordo com a seguinte ordem:
- O que foi solicitado (Escopo) → Identificar com clareza e detalhes os requisitos
- Prazo → Realizado a estimativa de tempo e recurso para a entrega do que foi solicitado
- Orçamento → Com a definição dos recursos e tempo, estima-se os valores do projeto
-
Qualidade → Se o atendimento às necessidades do cliente se cumprem
- Faz parte do processo de desenvolvimento do software
- Deve ser verificada durante todo o ciclo
[Gestão de projetos] - Processo base da qualidade de software
[Gestão de projetos] - Aspectos de qualidade de um produto
- Funcionalidade: Identifica os procedimentos de funcionamento de um produto.
- Confiabilidade: O produto não deve apresentar problemas junto aos clientes, caso contrário, o fornecedor deverá resolvê-los.
- Usabilidade: Deve-se testar o produto o máximo possível e constatar o resultado de seu uso como satisfatório.
- Eficiência: Comprovação, pelo cliente, de sua satisfação com o produto.
- Manutenibilidade: Garantia de correções dos problemas.
- Portabilidade: O produto muda de ambiente e a operação ocorre da mesma forma satisfatória.
[Processo de desenvolvimento de software] - O que é?
Abordagem estruturada e organizada para criar, projetar, testar e manter software de forma eficiente.
- Etapas e atividades que permitem aos desenvolvedores e equipes de projeto transformar requisitos e ideias em um produto de software funcional
[Processo de desenvolvimento de software] - Pra que serve um processo?
- Para definir as atividades a serem conduzidas no projeto.
- Garantir a compreensão de todos os envolvidos no que deve ser desenvolvido.
- Manter um padrão de desenvolvimento para a empresa, afim de garantir uma organização e um sistema eficaz.
- Viabilizar o controle mais fácil por parte da gerência.
[Processo de desenvolvimento de software] - O que é a fase de Concepção
Processo de desenvolvimento de software
Este estágio inicial compreende a geração e refinamento de ideias, definição de requisitos, e estabelecimento das bases para o projeto.
- Análise e modelagem do software
Identificação do Problema
Análise e definição de Requisitos
Criação de modelos
Prototipagem
Avaliação e Validação: Revisão e validação de modelos e protótipos criados.
Decisões de Design e Arquitetura
Documentação
[Processo de desenvolvimento de software] - O que é a fase de Elaboração
Processo de desenvolvimento de software
Fase de definição e o estabelecimento da arquitetura do sistema. Dada pelas seguintes etapas:
- Refinamento dos Requisitos: Detalhamento e refinamento dos requisitos identificados.
- Elaboração da Arquitetura: Definição e estabelecimento da arquitetura do software.
- Prototipagem e Modelagem: Desenvolvimento de protótipos para validar a arquitetura proposta.
- Análise de Riscos: Identificação e avaliação de possíveis riscos no projeto.
- Plano de Desenvolvimento: Elaboração de um plano detalhado para a implementação do sistema.
[Processo de desenvolvimento de software] - O que é a fase de Construção
Processo de desenvolvimento de software
Focada na implementação, teste e integração de código para criar um sistema robusto e de alta qualidade, de acordo com as diretrizes estabelecidas na fase de elaboração.
- Implementação de Código: Escrever e desenvolver o código do software com base na arquitetura definida.
- Testes: Realização de testes unitários, integração e funcionais para garantir a qualidade do software.
- Integração: Combinação e teste de todos os módulos para formar um sistema coeso.
- Revisões e Ajustes: Revisões contínuas do código, correções e ajustes conforme necessário.
- Documentação: Registro detalhado do código, funcionalidades e processos para referência futura.
[Processo de desenvolvimento de software] - O que é a fase de Transição
Processo de desenvolvimento de software
A etapa de transição na engenharia de software refere-se ao período em que o software desenvolvido é preparado para ser lançado e utilizado pelos usuários finais.
[Processo Pessoal de Software (Objetivos do PSP (Processo pessoal de software)PSP)] - o que é?
Metodologia de desenvolvimento de software que se concentra no aprimoramento das habilidades e práticas de um único desenvolvedor.
- Planejamento Pessoal: Estabelecimento de metas e planos de desenvolvimento.
- Acompanhamento de Tempo e Tamanho: Registro do tempo gasto e tamanho do código.
- Análise de Qualidade: Avaliação da qualidade do trabalho após cada tarefa.
- Análise de Processo: Identificação de padrões e melhorias no processo.
- Previsão de Qualidade: Projeções de qualidade para tarefas futuras baseadas na análise dos dados.
[Processo Pessoal de Software (Objetivos do PSP (Processo pessoal de software)PSP)] - Quais os objetivos?
- Melhorar o planejamento;
- Melhoria das estimativas de prazos;
- Estabelecer processos de revisão de projeto e código;
- Gerenciar a qualidade;
- Executar a fase de projeto de maneira mais formal;
- Identificar pontos de melhoria da qualidade.
Processo para a Equipe de Software (TSP -Team Software Process) - O que é?
TSP é uma metodologia de engenharia de software que se concentra na melhoria de processos e na qualidade do trabalho em equipe em projetos de desenvolvimento de software.
- Baseado no PSP (Processo Pessoal de Software)
1. Planejamento do Projeto: Estabelecimento de metas, tarefas e cronograma.
2. Acompanhamento e Controle: Monitoramento regular para identificar problemas.
3. Avaliação e Revisão: Revisões para identificar defeitos e aprender lições.
4. Melhoria Contínua: Adaptação do processo para melhorias baseadas em dados.
Processo para a Equipe de Software (TSP -Team Software Process) - Quais os objetivos?
- Planejar e gerenciar um projeto em equipe;
- Definir processos – Incremental;
- Distribuir papéis – Disciplina;
- Construir um trabalho em equipe;
- Estabelecer medidas de qualidade;
- Ter equipes eficazes.
[Modelos de ciclo de vida de software] - O que é?
São abordagens e estratégias que definem as etapas, atividades e processos envolvidos no desenvolvimento de software, desde a concepção até a entrega e manutenção.
- Organizar o trabalho;
- Estabelecer fluxos de trabalho;
- Garantir a qualidade do software produzido.
O modelo é escolhido baseado no:
- Tipo de Software;
- Métodos e ferramentas que serão utilizados;
- Nos controles e nos produtos intermediários e finais a serem entregues.
[Modelos de ciclo de vida de software] - Etapas do modelo mais comum, quais são?
Etapas mais comuns do ciclo de vida de um software
- Requisitos: Identificar o que o software deve fazer.
- Análise das Alternativas: Avaliar opções de sistemas para atender aos requisitos.
- Projeto: Planejar a estrutura e a aparência do software.
- Desenvolvimento: Escrever o código do software e a aquisição do hardware necessário.
- Implementação: Colocar o software em uso após os testes que foram realizados (sistema é transferido para ambiente produtivo).
- Manutenção: Atualizar e corrigir o software ao longo do tempo.
[Modelo de ciclo de vida] [Modelo Codifica-Remenda] - o que é?
Desenvolvedores abordam de problemas à medida que surgem e aplicam correções ou atualizações diretamente no código-fonte.
- Não existe nenhum processo definido e nenhum é seguido;
- Modelo mais caótico e de mais alto-risco;
- Sem separação de papeis, todos realizam as atividades de codificação-reparação.
[Modelo de ciclo de vida] Modelo Cascata (waterfall) - o que é?
É um modelo, onde o desenvolvimento é baseado numa cascata com processos sequenciais distintos e bem definidos.
- Surgiu na década de 1970. Até meados da década de 1980.
- Mais rígido e menos administrativo
- Orientado para a documentação → Criação e manutenção de documentação abrangente ao longo de todo o ciclo.
[Modelo de ciclo de vida] Modelo Cascata (waterfall) - Quais as dificuldades e quando usar?
Dificuldades
- Os projetos nem sempre são sequenciais e as mudanças sempre trazem problemas;
- O produto somente é visível no final de todo o ciclo
Quando utilizar?
- Projetos com requisitos bem definidos;
- Projetos pequenos com duração de, até, 2 meses.
[Modelo de ciclo de vida] Modelo Incremental - o que é?
Divide o projeto em partes menores, chamadas de incrementos. Cada incremento é desenvolvido de forma independente.
- A cada etapa, funcionalidades adicionais são construídas e integradas ao sistema.
- O processo se repete até que o produto esteja completo.
- O incremento inicial é chamado de núcleo do produto → Isto quer dizer que os requisitos básicos devem ser satisfeitos logo no início do projeto.
[Modelo de ciclo de vida] Modelo Incremental - quais as vantagens e desvantagens?
-
VANTAGENS
- Entregas parciais facilitam a validação do cliente;
- Feedback constante aumenta a qualidade;
- Cada incremento é uma parte de software utilizável.
-
DESVANTAGENS
- Cliente pode não aceitar a divisão em módulos
[Modelo de ciclo de vida] Modelo Incremental - quando utilizar?
Quando utilizar o Modelo Incremental?
- Para sistemas que podem ser divididos em módulos.
- Para sistemas com muitas alterações de requisitos.
- Quando o usuário necessita utilizar uma parte do produto antes do final de um projeto
- Quando há um prazo de entrega que não pode ser modificado.
[Modelo de ciclo de vida] Modelo RAD (Rapid Application Development) - o que é?
É uma abordagem de desenvolvimento de software que se concentra em criar sistemas de software de maneira rápida, iterativa e colaborativa.
- Objetivo do RAD é acelerar o ciclo de desenvolvimento
- Permite que os sistemas sejam desenvolvidos mais rapidamente do que por meio de abordagens tradicionais.
- Incremental e contém um ciclo de desenvolvimento curto (em média de 60 a 90 dias). - Pode ser dividido entre as várias equipes RAD e, ao final, integrada para formar o todo.
[Modelo de ciclo de vida] Modelo RAD (Rapid Application Development) - quando utilizar?
- As restrições de tempo devem ser (em média de 60-90 dias).
- Se as funcionalidades principais e o software podem ser divididos em componentes, os quais, devem ser completos em 60-90 dias
- Cada função principal pode ser tratada por uma equipe distinta e, depois, integrada para formar um todo.
[Modelo de ciclo de vida] Modelo RAD (Rapid Application Development) - Quais as vantagens e desvantagens?
-
VANTAGENS
- Ciclo curto de desenvolvimento;
- Usa a prototipação interativa e viva;
- Aumento do reuso do código.
-
DESVANTAGENS
- Não indicado para projetos grandes e complexos;
- Não aplicado a projetos com alto risco técnico.
[Modelo de ciclo de vida] Modelo de prototipação - O que é?
Uma abordagem de desenvolvimento de software na qual um protótipo ou modelo inicial do software é criado para ajudar na definição e no refinamento dos requisitos do projeto.
- Pode ser usado em qualquer modelo
- Utilizado para identificar e validar os requisitos
- Permite a visualização prévia de como o sistema ficará
[Modelo de ciclo de vida] Modelo de prototipação - Quais as vantagens e desvatagens ?
-
VANTAGENS
- Reduz o número de mudanças;
- Aumenta a qualidade;
- Pode reduzir o tempo de desenvolvimento
-
DESVANTAGENS
- O cliente acha que o produto está pronto;
- O projetista pode incorporar as soluções inadequadas.
[Modelo de ciclo de vida] Modelo espiral - o que é?
Esse modelo é representado como uma espiral, onde cada volta da espiral representa uma fase do processo de desenvolvimento do software
- Usado para softwares de grande porte.
- Para softwares que possuem riscos no seu desenvolvimento.
- Com o uso de prototipação, tem-se melhor conhecimento de requisitos do sistema.
[Modelo de ciclo de vida] Modelo espiral - Quais as fases desse modelo?
- Determinação de Objetivos → estabelecidos objetivos, identificados os riscos e avaliadas as alternativas para o desenvolvimento do software.
- Análise e Avaliação de Riscos → Riscos são avaliados e estratégias são desenvolvidas para gerenciá-los. Esta fase é crucial para identificar problemas potenciais antecipadamente.
- Desenvolvimento e Testes → Aqui, o software é desenvolvido, testado e aprimorado. A construção do produto ocorre de maneira incremental, permitindo revisões contínuas.
- Planejamento: Após testar e revisar, é feito um planejamento para a próxima iteração. Dependendo dos resultados, o projeto pode continuar para a próxima espiral ou ser encerrado.
[Modelo de ciclo de vida] Modelo espiral - Quais as vatangens e desvantagens?
-
Vantagens:
- É uma alternativa ao ciclo cascata;
- Primeiro modelo a incluir a análise de riscos;
- Permite uma maior interação com o cliente.
-
Desvantagens:
- Difícil convencer o cliente que uma abordagem “evolutiva” é melhor;
- Exige experiência na avaliação de riscos e no uso do modelo.
[Modelo de ciclo de vida] Processo unifcado - o que é?
É um framework de desenvolvimento de software. Ele fornece uma abordagem para o desenvolvimento iterativo e incremental, focado na gestão de projetos de software.
- Iterativo e Incremental: Desenvolvimento em etapas progressivas.
- Gerenciado e Controlado: Ênfase em controle, gestão de mudanças e riscos.
- Centrado na Arquitetura: Foco na estrutura e organização do sistema.
- Focado nos Casos de Uso: Utilização dos casos de uso para capturar requisitos e guiar o desenvolvimento.
[Modelo de ciclo de vida] Processo unifcado - Quais as desvatagens e vantagens?
-
Vantagens:
- Tolerância às mudanças de requisitos;
- Elementos de um software são integrados progressivamente;
- Incorpora, formalmente, a gerência de projeto ao ciclo.
-
Desvantagens:
- Cliente não aceita o processo interativo;
- Complexidade de suas fases e seus fluxos;
- Indispensáveis que os profissionais sejam capacitados no processo.
[Modelo de ciclo de vida] RUP (Processo Unificado Racional) - O que é?
É um processo de engenharia de software que fornece uma abordagem disciplinada para a atribuição de tarefas e responsabilidades dentro de uma organização de desenvolvimento de software.
- Baseado no PU (Processo Unificado)
- Interativo e incremental
- Modulado em fases, disciplinas, iterações e papéis.
[Modelo de ciclo de vida] RUP (Processo Unificado Racional) - Quais as Fases?
- Iniciação: Define o escopo do projeto, identifica riscos e estabelece a viabilidade do projeto.
- Elaboração: Refina os requisitos, a arquitetura do sistema e planeja as iterações.
- Construção: O desenvolvimento real do software ocorre, incluindo a codificação, testes e integração.
- Transição: Prepara o produto para o lançamento, incluindo testes finais e treinamento.
[Modelo de ciclo de vida] RUP (Processo Unificado Racional) - Quais as Disciplinas?
Representam áreas de conhecimento e atividades específicas necessárias para o desenvolvimento de software.
- Modelagem de Negócios: Descreve como o sistema se encaixa no ambiente de negócios mais amplo.
- Requisitos: Captura, prioriza e gerencia os requisitos do sistema.
- Projeto: Define a arquitetura do sistema com base nos requisitos.
- Implementação: Traduz o design em código.
- Testes: Garante a qualidade verificando se o software funciona como esperado.
- Implantação: Prepara o software para uso no mundo real.
- Gerenciamento de Configuração e Mudanças: Gerencia a evolução do software ao longo do tempo.
[Modelo de ciclo de vida] RUP (Processo Unificado Racional) - Quais as Papeis?
Representam as responsabilidades e funções desempenhadas por indivíduos ou grupos de indivíduos em um projeto de desenvolvimento de software
- Define funções como Analista de Negócios, Arquiteto de Sistema, Desenvolvedor, Testador, Gerente de Projeto, entre outros.
[Modelo de ciclo de vida] Processo Praxis - o que é??
Fornece suporte para projetos realizados individualmente ou por pequenas equipes, com
duração de seis meses a um ano.
- Abrange requisitos, análise, desenho, testes e implementação, quanto métodos gerenciais,
- como gestão de requisitos, gestão de projetos, garantia da qualidade e gestão
de configuração. - Propõe um ciclo de vida composto por fases.
- Gera artefatos (documentos e modelos).
[Modelo de ciclo de vida] Clean Room - o que é??
O Clean Room (Sala Limpa) é uma metodologia de desenvolvimento de software que se concentra na produção de software livre de defeitos por meio de técnicas de verificação rigorosas. Normalmente usado em softwares que trazem risco a perda de vidas (controle de trens, usinas, aviões)
- Baseada em métodos formais de desenvolvimento e testes estatísticos e matemáticos.
- Método de especificações formais → definem os requisitos de software de forma precisa e rigorosa, usando linguagem matemática ou lógica formal para representar as funcionalidades esperadas do sistema.
[Modelo de ciclo de vida] Clean Room - quais as vantagens e desvantangens??
-
Vantagens:
- Alta qualidade;
- Baixo número de erros.
-
Desvantagens:
- Processo muito complexo;
- Requer conhecimento matemático;
- Produtividade é menor.