Você está na página 1de 6

REVISÃO DA DISCIPLINA

ENGENHARIA DE SOFTWARE

Agenda 01
● O​ ​software​ é uma sequência de instruções a serem executadas. É composto
principalmente por funções, bibliotecas, módulos, entre outros elementos.
● A ​criação de ​software​ é uma tarefa extremamente complexa, por isso, é importante
que o desenvolvedor: Entenda o problema; Realize testes; Tenha clareza do código;
Produza uma documentação do ​software​.
● As ​camadas da Engenharia de ​Software​ são: Foco na qualidade; Processo; Métodos;
Ferramentas.
● A engenharia de ​software​ utiliza ​conceitos de engenharia​ para obter ​software​ de
maneira econômica e confiável.
● Os ​métodos ágeis ​foram apresentados com o intuito de propiciar entregas de ​software
mais simples e com maior rapidez, perfeito para projetos com requisitos que podem ser
incertos. Este método reduz os riscos e melhora consideravelmente a capacidade de
gerenciar mudanças.
● Os ​métodos tradicionais​ são mais eficazes em projetos com escopo e requisitos bem
definidos.
● No ​modelo incremental​ o ​software​ é dividido em partes que são entregues de forma
independente, elas partes juntam-se progressivamente ao sistema, para que ao fim,
resultem em um sistema completo.
o As vantagens: redução de custos com manutenção do sistema; melhor controle
de cronograma; maior probabilidade de atendimento dos requisitos do cliente.
o Desvantagens: dificuldade de gerenciamento; necessidade de disposição
constante do cliente para ​feedbacks;​ necessidade de compreensão do cliente
sobre entregas incrementais.

Agenda 02
● Ciclo de vida de ​Software​: ​É a estrutura dos estágios de concepção, projeto, criação
e implementação de um ​software.​ Nele contém todos os processos, atividades, e
tarefas previstas no desenvolvimento do ​software.​
● As ​fases de ciclo de vida de ​software​ genérico ​seguem:
o 1. Levantamento de Necessidades​;
o 2. Análise​;
o 3. Projeto​;
o 4. Implementação​.
● Tipos de ciclo de vida de ​software​: Cascata; Modelo em V; Incremental; Evolutivo;
RAD; Prototipagem; Espiral; Modelo de ciclo de vida associado ao RUP.
● Os problemas de um projeto e a influência de ciclo de vida de ​software​:
● Métodos ágeis de desenvolvimento e seu funcionamento dos processos de
software:​
o OpenUp​: Segue o processo unificado de engenharia de ​software​, porém com
uma cultura aberta e enxuta.
o Extreme Programming [XP]​: Neste modelo, os requisitos são expressos
através de cenários e implementados através de tarefas;
o Scrum​: No Scrum as iterações são chamadas de Sprints e podem durar de 1 à
4 semanas.

Agenda 03

www.catolicasc.org.br
● Conceitos gerais de manutenção de ​software:​ É um procedimento de atualização e
aperfeiçoamento um ​software​ já em operação, assim como conserto de defeitos e
imperfeições deste ​software.​
● Problemas que podem ocorrer na manutenção de ​software:​ Baixa qualidade na
documentação de software, problemas no desenvolvimento, problemas na definição
dos requisitos, entre outros.
● Tipo de de mudanças de ​software​ e seus motivos​:
o Manutenção Corretiva​: Visa o reparo de defeitos do ​software​.
o Manutenção Adaptativa​: Adaptações no software para funcionar em um
ambiente alterado;
o Manutenção Evolutiva​: Manutenção que visa melhorar o funcionamento do
sistema;
o Manutenção Preventiva​: Tem por objetivo, prevenir falhas no ​software​.
● Conceitos de testes​: Teste de ​software​ é a investigação do ​software​ a fim de fornecer
informações sobre sua qualidade em relação ao contexto em que ele deve operar.
o Testes unitários​: Os testes unitários visam a validação de uma pequena parte
do sistema.
o Testes de integração​: Os testes integrados visam validar o funcionamento de
várias partes do sistema em conjunto.
o Testes de sistemas​: Atestar o funcionamento do software em ambiente de
produção.
o Testes de aceitação​: Verificar o atendimento dos requisitos antes da entrega
do software.
o Outros testes​: De configuração; de instalação; de integridade; de segurança;
funcional; de volume; de performance; de usabilidade; de caixa branca e caixa
preta; de regressão; de manutenção.
● Ciclo de vida de testes de ​software:​ São as tarefas, atividades e tarefas, do
processo de software, que compreende todo o ciclo de vida do software. As etapas
deste processo seguem:
o Levantamento de necessidades:​ Nesta fase um modelo preliminar dos
requisitos é criado e validado;
o Análise: ​Os requisitos elencados na fase anterior são refinados e o software é
especificado;
o Projeto:​ É definida a arquitetura do sistema entre outros detalhes do sistema;
o Implementação: ​Codificar o sistema na plataforma definida;
o Manutenção e pós entrega: ​Treinamento e correção de bugs.
● Recursos técnicos que atuam nos testes​: Unitários; JUnit; PHPUnit; Flask; Sistema
e aceitação; Sikuli; Selenium WebDriver; Robotium.

Agenda 04
● O indicador é composto por uma ou mais métricas e proporciona uma visão mais
aprofundada do projeto.
● Métricas de ​software​: É definida por medições referentes a um sistema de ​software​,
processo ou sua documentação. São úteis na avaliação de eficácia que o gestor
acompanha.
● A classificação das métricas​ é composta por:
○ Diretas​: São medidas realizadas em termos de atributos observados (exemplo:
custo, esforço, número de linhas de código, ...).
○ Indiretas​: São medidas obtidas a partir de outras métricas (exemplo:
complexidade, eficiência, confiabilidade).
● A orientação das métricas ​pode ser feita em:
○ Métricas orientadas a tamanho​: Tamanho dos artefatos gerados no projeto
de software;

www.catolicasc.org.br
○ Métricas orientadas por função​: Métricas que visam determinar o tamanho e
a complexidade do software;
○ Métricas orientadas a fatores humanos​: Métricas obtidas a partir dos
participantes do projeto;
● Os tipos de métricas​ são:
○ Métricas de produtividade​: Velocidade de desenvolvimento;
○ Métricas de qualidade​: Nível de atendimento aos requisitos;
○ Métricas técnicas​: As características do técnicas do software como
reusabilidade, modularidade, etc.
● O processo de planejamento de ​software​ consiste nos seguintes passos:
○ 1. Estabeleça o escopo do projeto​: Define os limite de atuação do projeto.
○ 2. Determine a viabilidade​: Verifica a viabilidade técnica e financeira do
projeto;
○ 3. Analise os riscos​:​ E ​ lenca os riscos do projeto, sua probabilidade e ações
para mitigar os riscos;
○ 4. Defina os recursos necessários​: Define os recursos, tanto humanos
quanto materiais necessários para o projeto.
○ 5. Estime o custo com a mão de obra​: Estima o custo do desenvolvimento,
tanto de mão de obra quanto outros recursos.
○ 6. Desenvolva um cronograma de projetos​: Define as atividades, sua
atribuição e prazos;
● Métricas de gerenciamento do projeto:​ A utilização de métricas reduz
consideravelmente os problemas no gerenciamento de software, ainda que não
existem um conjunto comum de métricas que atende amplamente a todos os tipos de
projetos de software.​ ​As métricas mais utilizadas estão relacionadas a requisitos;
Linhas de código (LOCs); pontos de função (FPs); Atividades; Tempo; Risco; Custo.
● Ferramentas para auxílio na coleta de métricas e estimativas de ​software​: ​Trello;
Jira; MS Project.
● Técnicas de estimativas de tamanho e custo:
○ FPA (Function Points Analysis)​: Visa quantificar o esforço para o
desenvolvimento do ​software​ baseando-se em fatores como complexidade e
tarefas necessárias para a conclusão.
○ UCP (Use Case Points)​: Visa quantificar o esforço para o desenvolvimento do
software​ baseando-se em fatores como complexidade e tarefas necessárias
para a conclusão.
○ COCOMO (Constructive Cost Model)​: Cria estimativas de software
baseando-se em informações de projetos passados.

Agenda 05
● A ​qualidade de processo de software​ visa garantir que os processos e artefatos
necessários para a criação do software foram realizados.
● A ​qualidade de produto de software​ tem por objetivo, garantir que o software atende
aos requisitos definidos no projeto.
● Processo de garantia da qualidade de software: O processo de qualidade de
software visa criar etapas e atividades no processo para garantir o atendimento
aos atributos de qualidade de software​. ​Para isto, algumas ações são necessárias:
o Aplicar modelos técnicos​: aplicar modelos formais para garantir um nível de
maturidade de processo;
o Aplicar padrões e procedimentos formais​: Atividades relacionadas ao
planejamento, revisão e testes de software;
o Anotar e manter registros​: controle de documentos gerados durante o
processo de software;

www.catolicasc.org.br
● Revisões de softwares: ​Revisões técnicas com o objetivo de prever possíveis defeitos
de software e antecipar problemas.
● Processo de inspeções de softwares: ​1. Planejamento; 2. Visão Geral; 3.
Preparação Individual; 4. Reunião de inspeção; 5. Retrabalho; 6. Acompanhamento.
Durante a inspeção, um ​Checklist​ é preenchido avaliando os itens:
o Defeitos de dados: ​Defeitos ligados à má especificação dos dados;
o Defeitos de controle: ​Defeitos ligados ao controle do fluxo da aplicação;
o Defeitos de entrada/saída: ​Defeitos ligados a inserção ou leitura de
informações na aplicação;
o Defeitos de interface: ​Defeitos na interface do usuário, normalmente ligados a
usabilidade;
o Defeitos de gerenciamento de armazenamento: ​Defeitos ligados ao
armazenamento e recuperação dos dados;
o Defeitos de gerenciamento de exceções:​ Defeito no tratamento de exceções
da aplicação.
● Gerenciamento da qualidade de software: ​Existem três níveis de preocupação para
que qualidade de um produto de software seja alcançada:
o Preocupação no nível organizacional: ​Se preocupa em estabelecer um
quadro de processos organizacionais e padrões que resultarão em um software
de alta qualidade;
o Preocupação no nível do projeto 1: ​O gerenciamento envolve processos
quanto à aplicação de processos de qualidade;
o Preocupação no nível do projeto 2: ​O gerenciamento da qualidade
preocupa-se com o desenvolvimento de um plano de qualidade para o projeto;
o
● Atributos e princípios de qualidade de software:
Segurança Compreensibilidade Portabilidade

Proteção Testabilidade Usabilidade

Confiabilidade Adaptabilidade Reusabilidade

Resiliência Modularidade Eficiência

Robustez Complexidade Capacidade de


aprendizado
● Normas e modelos de qualidade de processo de software​:​ ​O grau de adequação
aos modelos de qualidade de software, podem ser medidos pelo nível de maturidade.
Os principais modelos são:
o Capability Maturity Model Integration ​(CMMI)​: Modelo de qualidade de
software mantido pelo SEI e reconhecido mundialmente.
o Melhoria do processo de ​software ​brasileiro (MPS-BR)​:​ ​Modelo de
qualidade de software, criado pelo governo, mantido pela SOFTEX e
reconhecido nacionalmente.

Agenda 06
● SWEBOK​: É um guia com assuntos essenciais na engenharia de software. Ele é
mantido pelo IEEE e a ACM (​Association for Computing Machinery)​ .
● Os ​objetivos do SWEBOK​ são:
o Alinhar critérios e normas adequados para a prática profissional de engenharia
de software e seus conteúdos.
o Esclarecer os limites da área de Engenharia de ​Software e​ outras disciplinas.

www.catolicasc.org.br
o Classificar os tópicos das áreas de Engenharia de ​Software​.
o Servir como base para desenvolvimento curricular e para certificação
individual.
o Auxiliar como material de apoio para execução dos projetos.
● As áreas de conhecimento ​do SWEBOK: São compreendidas 15 áreas de
conhecimento: Requisitos; Design; Construção; Testes; Manutenção; Configuração;
Gerenciamento; Processo; Ferramentas e métodos; Qualidade; Prática profissional de
software; Economia engenharia de software; Fundamentos da computação;
Fundamentos matemáticos; Fundamentos de engenharia.
● Modalidades de certificação ​do SWEBOK: Possui duas certificações:
o CSDA – ​Certificação de Associados para o Desenvolvimento de Software –
Certified Software Development Associate;
o CSDP –​ Certificação Profissional para Desenvolvimento de Software – ​Certified
Software Development Professional.

Agenda 07
● O ​processo unificado (PU) ​é um processo interativo e adaptativo para condução de
projetos de software.
● O PU tem como principal ​vantagem ​o fato de ser um processo robusto e bem definido.
Já entre as ​desvantagens​, destaca-se o fato de ser complexo e trabalhoso.
● Relacionar o desenvolvimento iterativo com o incremental​:
● O PU é constituído das seguintes ​fases​:
o Concepção/iniciação​:​ ​Nesta fase são realizadas tarefas de comunicação com
o cliente, planejamento do projeto, avaliação de riscos, estimativa de custos e
prazos, priorização e levantamento de requisitos;
o Elaboração​: Efetua-se a análise de forma mais detalhada, revisando os
requisitos do projeto;
o Construção​: construção do software visando o atendimento aos requisitos, a
componentização e a reutilização;
o Transição​: realização dos testes, treinamentos e entrega do software ao
cliente.

Agenda 08
● As ​principais metodologias de desenvolvimento de ​software ​e suas etapas ​são:
o No ​modelo cascata (ou sequencial linear)​, as fases do projeto são
executadas de maneira sequencial, sendo efetuada apenas uma entrega no
fim do projeto. Suas fases são: Análise; Projeto; Codificação; Testes;
Implementação.
o No​ desenvolvimento por prototipação​, é desenvolvido um protótipo para
esclarecer as principais dúvidas sobre o comportamento e funcionalidade do
software.​ Podem ser divididos em 3 categorias: ​Wireframes ​e rascunhos;
Protótipos visuais; Protótipos interativos.
o Nos ​métodos ágeis ​o desenvolvimento é dividido em ciclos, sendo feitas
entregas ao final de cada ciclo.
● Os ​papéis​ existentes em uma equipe de metodologia ágil são:
o Product Owner:​ Potencializa o valor de retorno do produto enviado ao cliente,
e abastece o ​Development Team​ ​com tarefas.
o Development Team​: Executam as tarefas. É uma equipe normalmente de três
a cinco pessoas e são responsáveis por entregar uma versão de produto com
as incrementações requisitadas ao final de cada iteração.
o Scrum Master​: Responsável por esclarecer todos sobre o processo e remover
obstáculos.
● Os ​artefatos ​que uma metodologia ágil possui são:

www.catolicasc.org.br
o Product backlog:​ requisitos que precisam ser implementados, são mantidos e
priorizados pelo Product Owner;
o Sprint Backlog​:​ l​ ista de itens que define o objetivo do Sprint;
o Definition of done:​ documento que explica as definições de pronto para as
user stories.
o Burndown​: gráfico que mostra o desenvolvimento do produto.
● As ​cerimônias ​em uma metodologia ágil possui são:
o Sprint planning​: Planejamento do sprint baseando-se no product backlog;
o Daily scrum (ou daily meeting)​: Reunião diária para acompanhamento do
projeto;
o Sprint review meeting:​ Revisão das funcionalidades desenvolvidas no
produto;
o Sprint retrospective:​ São elencados pontos positivos e negativos da Sprint.
● A​ história de usuário​ é uma curta e simples definição das necessidades do cliente,
contada sob a sua ótica.
● O acrônimo ​INVEST​ garante a qualidade na criação de uma história do usuário, e
significa:
o I de ​independent ​(​independente​);
o N de ​negotiable (​ ​negociável​);
o V de ​valuable ​(​de grande valor​);
o E de ​estimable (​ ​estimável​);
o S de ​small ​(​pequena​);
o T de ​testable (​ ​testável​).

Agenda 09
● Os ​modelos de melhoria e maturidade de processos e as normas internacionais
são ferramentas úteis para que as empresas avaliem a qualidade de suas estratégias
internas e aprimorar suas rotinas e processos. Dois modelos são:
o CMMI (integração do modelo de maturidade da capacidade): ​é um modelo
de qualidade de processo de software utilizado mundialmente.
o MPS-BR: ​é um modelo de qualidade de software brasileiro, mantido e
coordenado pela SOFTEX, permitindo a empresas com menos recursos,
adotarem um modelo de qualidade.
● O ​TSP​ é um modelo de processo de software ideal para equipes autogerenciadas.

www.catolicasc.org.br

Você também pode gostar