# data[].attributes.body
Quais são os cinco níveis de maturidade do CMMI?

1) Inicial. O processo é caracterizado como sendo imprevisível e ocasionalmente caótico. Poucos processos são definidos e o sucesso depende de esforços individuais e, muitas vezes, heróicos.

2) Gerenciado. Processos básicos de gerenciamento de projeto são estabelecidos para controle de custos, prazos e escopo. A disciplina de processo permite repetir sucessos de projetos anteriores em aplicações similares.

3) Definido. Um processo composto por atividades de gerenciamento e engenharia, é documentado, padronizado e integrado em um processo padrão da organização. Todos os projetos utilizam uma versão aprovada e adaptada do processo organizacional para desenvolvimento e manutenção de produtos e serviços tecnológicos.

4) Quantitativamente Gerenciado. Métricas detalhadas dos processos e dos projetos são coletadas. Tanto os processos como os projetos são quantitativamente compreendidos e controlados.

5) Em otimização. A melhoria contínua do processo é estabelecida por meio de sua avaliação quantitativa, e da implantação planejada e controlada de tecnologias e idéias inovadoras.

# data[].attributes.body
Áreas-chave de Processo (KPA)
• Inicial - 1: não existem KPA’s para este nível;

• Repetível - 2: interesses relacionados ao estabelecimento do controle básico de administração de projeto;

• Definido - 3: problemas organizacionais e de projeto;

• Gerenciado - 4: estabelecer um entendimento quantitativo do processo de software e do produto;

• Otimizado - 5: cobrem os problemas que a organização e os projetos devem endereçar para implementar uma melhora contínua e mensurável do processo de software.

# data[].attributes.body
Criptografia Simétrica

Conhecida por ser uma chave secreta e atualmente muito utilizada. DES , 3DES , AES e RC4 são apenas alguns dos algoritmos que usam criptografia simétrica.

Sua vantagem está relacionada na agilidade de algoritmos, mas não são tão seguros quanto a criptografia assimétrica, sendo que uma vez utilizada para cifrar a informação, é partilhada entre várias máquinas.

Portanto, a sua forma de usar é bem simples. A chave que é partilhada entre o emissor e o receptor, é usada para cifrar e decifrar.

Criptografia Assimétrica

Por outro lado, criptografia assimétrica se trata de uma criptografia de chave pública.

Sua forma de usar, é através de um par de chaves distintas (chave privada e chave pública). A chave pública é utilizada para cifrar (encriptar, “esconder”). A chave privada é utilizada para decifrar (desencriptar, “revelar”).

Por fim, quanto mais complexa a criptografia for, menos chances de ser quebrada. Porém, existem outras possibilidades que influenciam essa segurança, como por exemplo, a capacidade de manter as chaves privadas bem guardadas.

Além disso, a criptografia pode evitar: intercepção, manipulação e falsificação dos dados enviados. Concluindo, a criptografia tem a função de enviar informações sensíveis por um meio seguro.

# data[].attributes.body
Um processo de software é uma sequência de atividades que são realizadas durante a produção de um software. Existem quatro atividades fundamentais que são comuns a todos os processos de software:

1. Especificação. Aqui, os clientes e engenheiros de software definem os requisitos (condições, exigências) que o sistema a ser produzido deverá cumprir e quais as restrições quanto ao seu funcionamento.

2. Desenvolvimento. O software é projetado e programado.

3. Validação. O software é verificado e testado para garantir que possui o que o cliente exige.

4. Evolução. O software é modificado para atender novos requisitos do cliente e exigências do mercado.

Todos os processos de software contém estas atividades, porém alguns incluem etapas extras.

Alguns exemplos de tipos de processos de software:

1. Modelo em cascata. Nesse modelo, as atividades principais são consideradas como fases separadas seguindo uma ordem estrita, formando uma cascata (origem de seu nome) ou o ciclo de vida do software.

2. Desenvolvimento Incremental. Nessa abordagem, as atividades de especificação, desenvolvimento e validação são intercaladas. O desenvolvimento do sistema gera uma série de versões (incrementos), onde cada versão adiciona uma nova funcionalidade à versão anterior.

3. Engenharia de software orientada à reutilização. A base dessa abordagem é a existência de um número significativo de componentes reutilizáveis, tornando o processo de desenvolvimento do sistema mais focado na integração desses componentes do que no desenvolvimento do zero.

# data[].attributes.body
O modelo de qualidade é a base de um sistema de avaliação da qualidade do produto. O modelo de qualidade determina quais características de qualidade serão levadas em consideração ao avaliar as propriedades de um produto de software.

Foi definido na ISO/IEC 25010 compreende as oito características de qualidade mostradas abaixo:

Adequação funcional

Representa o grau em que um produto ou sistema fornece funções que atendem às necessidades declaradas e implícitas.

Eficiência de desempenho

Representa o desempenho em relação à quantidade de recursos usados nas condições estabelecidas. Possui as seguinte características:

Comportamento temporal;

Utilização de recursos;

Capacidade.

Compatibilidade

Representa a forma de como um produto, sistema ou componente pode trocar informações com outros produtos, sistemas ou componentes e/ou executar suas funções necessárias.

Usabilidade

Representa como os usuários utilizam o produto para atingir objetivos específicos com eficácia, eficiência e satisfação. Alguns dos tópicos a se destacar neste princípio

Operabilidade;

Estética da interface do usuário;

Acessibilidade.

Confiabilidade

Representa como um produto ou componente executa funções especificadas sob condições especificadas por um período de tempo especificado. Possui as seguinte subcaracterísticas:

Disponibilidade;

Tolerância a falhas;

Recuperabilidade.

Segurança

Representa como o sistema protege informações e dados para que pessoas ou outros produtos ou sistemas tenham o grau de acesso aos dados apropriado aos seus tipos e níveis de autorização. Possui as seguinte subcaracterísticas:

Confidencialidade – grau em que um produto ou sistema garante que os dados sejam acessíveis apenas para aqueles autorizados a ter acesso.

Integridade – grau em que um sistema, produto ou componente impede o acesso não autorizado ou modificação de programas de computador ou dados.

Autenticidade – grau em que a identidade de um sujeito ou recurso pode ser comprovada como reivindicada.

Capacidade de Manutenção

Representa o grau de eficácia e eficiência com que um produto ou sistema pode ser modificado para melhorá-lo. Possui as seguinte subcaracterísticas:

Reutilização;

Modificabilidade;

Testabilidade.

Portabilidade

Representa a eficácia e eficiência com que um sistema, produto ou componente pode ser transferido de um hardware, software ou outro ambiente operacional ou de uso para outro. Possui as seguinte subcaracterísticas:

Adaptabilidade;

Instalabilidade;

Capacidade de substituição.

# data[].attributes.attachment_link.readable_text
Apresentação do podcast e alguns conceitos básicos de qualidade de software são explicados para servirem de base para os próximos episódios que detalharão itens de vagas de trabalho da área. Feedbacks, dúvidas e sugestões enviar para drops@marcelodebittencourt.com

LinkedIn: Marcelo de Bittencourt / Instagram: marcelodebittencourt / Site: https://marcelodebittencourt.com / Twitter: marcelodebitt / Facebook: marcelodebittencourtqualidade Créditos da música deste episódio: Music by DanoSongs, título Bright Brazil. Créditos do ícone utilizado na arte: Icons made by Freepik from Flaticon.

# data[].attributes.attachment_link.description
Listen to this episode from Drops de Qualidade de Software on Spotify. Apresentação do podcast e alguns conceitos básicos de qualidade de software são explicados para servirem de base para os próximos episódios que detalharão itens de vagas de trabalho da área.