Escolar Documentos
Profissional Documentos
Cultura Documentos
Atividades fundamentais da Engenharia de Software Validação de software: teste de programa, em que o sistema é
Especificação do software: clientes e engenheiros definem executado com dados de testes simulados, é a principal técnica.
o software a ser produzido e as restrições de sua operação. Também pode envolver processos de verificação, como
(DEFINIÇÕES, RESTRIÇÕES E FUNCIONALIDADES) inspeções e revisões, em cada estágio do processo de software,
Projeto e implementação (Desenvolvimento) do software: o desde a definição dos requisitos de usuários até o
software é projetado e programado. (PRODUZIR O SOFTWARE desenvolvimento do programa.
DE ACORDO COM AS ESPECIFICAÇÕES)
Validação do software: o software é verificado para garantir
que é o que o cliente quer (escopo). (GARANTIR QUE ATENDE
ÀS NECESSIDADES DOS CLIENTES)
Evolução do software: o software é modificado para refletir
a mudança de requisitos do cliente e do mercado. (EVOLUIR
PARA REFLETIR MUDANÇAS SOLICITADAS)
Espeficificação de software: possuem quatro atividades Teste de componente: os componentes do sistema são
principais do processo de engenharia de requisitos. testados pelas pessoas que o desenvolveram. Cada
componente é testado de forma independente, separado
dos outros.
Teste de sistema: componentes do sistema são integrados
para criar um sistema completo. Esse processo se
preocupa em encontrar os erros resultantes das interações
inesperadas entre componentes e problemas de interface
do componente. Tambem visa mostrar que o sistema
satisfaz seus requisitos funcionais e não funcionais, bem
como testar as propriedades emergentes do sistema.
Teste de aceitação (teste alfa): é o estágio final do processo
de testes. O sistema é testado com dados fornecidos pelos
clientes e não com dados advindos de testes simulados.
Estudo de viabilidade: é feita uma estimativa acerca da Podem revelar erros e omissões na definição dos requisitos
possibilidade de se satisfazerem as necessidades do do sistema e problemas de requisitos.
usuário identificado usando-se tecnologias atuais de
software e hardware. Baseline é uma configuração de software especialmente criada
Elicitação e análise de requisitos: esse é o processo de para uma situação específica e aprovada em determinado
derivação dos requisitos do sistema por meio da momento do ciclo de vida de software para servir de base a
observação dos sistemas existentes, além de discussões desenvolvimentos posteriores.
com os potenciais usuários e compradores, entre outros.
Especificação de requisitos: é a atividade de traduzir as O Rational Unified Process – RUP é um exemplo de modelo de
informações obtidas durante a atividade de análise em um processo moderno, derivado de trabalhos sobre a UML e o
documento que defina um conjunto de requisitos. Tipos: Unified Software Development Process associado. É um bom
requisitos do usuário e requsitos de sistema. exemplo de processo híbrido (incremental, iterativo e
Validação de requisitos: essa atividade verifica os requisitos prototipação). Ele reúne elementos de todos os modelos de
quando a realismo, consistência e completude. processo genéricos. É o principal framework de processos
utilizado atualmente.
Projeto e implementação (Desenvolvimento) do software É iterativo e incremental.
Guiado por casos de uso.
Centrado na arquitetura.
Orientado a objetos.
Planejado por riscos.
Principais artefatos:
Notas de release: texto com informações sobre a
versão.
Artefatos de instalação: o que é necessário ter para Abordagem dirigida a planos identifica estágios distintos do
disponibilizar o sistema no ambiente alvo. processo de software com saídas associadas a cada estágio. As
Material de treinamento: guias de usuário e manuais saídas de um estágio são usadas como base para o
do sistema. planejamento da atividade do processo a seguir.
Histórias do usuário: conjunto de fases escritas pelo cliente e Requisitos: são as descrições do que o sistema deve fazer, os
desenvolvedores em linguagem comum para capturar os serviços que oferece e as restrições a seu funcionamento. O
requisitos. processo de descobrir, analisar, documentar e verificar esses
serviços e restrições é chamado de engenharia de requisitos.
Valores do XP Requisitos de usuário: são declarações, em uma linguagem
Comunicação; natural com diagramas, de quais serviços o sistema deverá
Simplicidade; fornecer a seus usuários e as restrições com as quais este
Feedback; deve operar. (declaração abstrata de alto nível)
Coragem (disciplina); Requisitos de sistema: são descrições mais detalhadas das
Respeito. funções, serviços e restrições operacionais do sistema de
software. (descrição detalhada e formal de uma função do
sistema)
4) Negociação: negociar as necessidades conflitantes, definir
prioridades e custo em conjunto com os recursos
necessários.
5) Especificação: apresentação formal do dados obtidos até o
momento. É o “documento” que irá guiar o desenvolvimento
futuro.
6) Validação: avaliação dos artefatos quanto a qualidade.
Examina-se a especificação para garantir que todos os
requisitos tenham sido declarados de acordo com os
padrões estabelecidos.
Stakeholder: pessoa ou papel que é de alguma forma afetada 7) Gestão de requisitos: visa identificar, controlar e ratrear
pelo projeto. requisitos e modificações nos requisitos ao longo do
projeto.
Requisitos funcionais: são declarações de serviços que o
sistema deve fornecer, de como o sistema deve reagir a entradas Os processos de engenharia de requisitos podem incluir quatro
específicas e de como o sistema deve se comportar em atividades de alto nível. Elas visam avaliar se o sistema é útil para
determinadas situações. Podem explicitar o que o sistema não a empresa (estudo de viabilidade), descobrindo requisitos
deve fazer. Exemplo: um usuário deve ser capaz de pesquisar (elicitação e análise), convertendo-os em alguma formapadrão
listas de agendamentos para todas as clínicas. (especificação), e verificar se os requisitos realmente definem o
sistema que o cliente quer (validação). É um processo iterativo
Requisitos não funcionais: são restrições aos serviços ou em que as atividades são intercaladas.
funções oferecidos pelo sistema. Em geral, aplicam-se ao sistema
como um todo. Não estão diretamente relacionados aos serviços Engenharia de requisitos (SOMMERVILLE)
específicos oferecidos para os usuários, mas podem estar
relacionados às propriedades emergentes do sistema, como 2) Elicitação e análise de requisitos: nessa atividade, os
confiabilidade, tempo de resposta e ocupação de área. Deixar de engenheiros de software trabalham com clientes e usuários
atender a um requisito não funcional pode significar a inutilizaçaõ finais do sistema para obter informações sobre o domínio
de todo o sistema. São divididos em: da aplicação, os serviços que o sistema deve oferecer, o
Requisitos de produto: especificam ou restringem o desempenho do sistema, restrições de hardware e assim
comportamento do software – requisitos de desempenho por diante.
quanto à rapidez e utilização de memória requerida,
requisitos de confiabilidade que estabelecem a taxa
aceitável de falhas, requisitos de proteção e requisitos de
usabilidade.
Requisitos organizacionais: são os requisitos gerais de
sistemas derivados das políticas e procedimentos da
organização do cliente e do desenvolvedor – requisitos de
processo operacional que definem como o sistema será
usado, requisitos de processo de desenvolvimento que
especificam a linguagem de programação, o ambiente ou
normas e requisitos ambientais. Descoberta de requisitos: essa é a atividade de
Requisitos externos: derivam de fatores externos ao interação com os stakeholders do sistema para
sistema e seu processo de desenvolvimento – requisitos descobrir seus requisitos. Os requisitos de domínio dos
reguladores, requisitos legais e requisitos éticos. stakeholder se da documentação também são
descobertos durante essa atividade.
Requisito de domínio: podem ser tanto funcionais e não Classificação e organização de requisitos: essa
funcionais, e refletem as características com relação ao domínio atividade toma a coleção de requisitos não
ao qual está inserido. estruturados, agrupa requisitos relacionados e os
organiza em grupos coerentes.
Metas estabelecem boas intenções, mas podem causar Priorização e negociação de requisitos: essa
problemas para os desenvolvedores do sistema, uma vez que atividade está relacionada com a priorização de
deixam margem para interpretação e, consequentemente, para requisitos e em encontrar e resolver os conflitos por
disputas, quando da entrega do sistema. meio da negociação de requisitos. Normalmente, os
stakeholders precisam se encontrar para resolver as
Engenharia de requisitos (PRESSMAN): abrange sete tarefas diferenças e chegar a um acordo sobre os requisitos.
distintas, algumas podendo ocorrer em paralelo e sendo todas Especificação de requisitos: os requisitos são
adaptáveis à necessidade do projeto. documentados e inseridos no próximo ciclo da espiral.
Documentos formais ou informais de requisitos podem
1) Concepção: objetiva entender o problema, quais os ser produzidos.
envolvidos, a natureza da solução e inicia o processo de
comunicação entre eles. (estudo de viabilidade) A elicitação e análise de requisitos é um processo iterativo, com
2) Levantamento: descobrir objetivos do sistema e do produto feedback contínuo de cada atividade para as outras atividades. O
– como o produto atende às necessidades da empresa e ciclo do processo começa com a descoberta de requisitos e
como será utilizado no dia a dia. (problemas de escopo, de termina com sua documentação. O entendimento do analista de
entendimento e de volatilidade) requisitos melhora a cada rodada do ciclo. Quando se completa o
3) Elaboração: refinamento das informações obtidas e documento de requisitos, o ciclo termina.
inclusão de modelagem de cenários e das classes.
Técnicas de Elicitação Prototipação: um modelo executável do sistema
Descoberta de requisitos: é o processo de reunir é demonstrado para os usuários finais e clientes.
informações sobre o sistema requerido e os sistemas Geração de casos de teste: requisitos devem
existentes e separar dessas informações os requisitos ser testáveis. Se é dificil projetar casos de testes,
de usuário e de sistema. então os requisitos serão dificeis de serem
Entrevistas: formais ou informais com stakeholders do implementados.
sistema. Podem ser fechadas ou abertas.
Cenários: descrições de exemplos de sessões de Gestão de requisitos: é o processo de compreensão e controle
interação – exemplos da vida real. das mudanças nos requisitos do sistema.
Casos de uso: técnica de descoberta de requisitos. O planejamento é o primeiro estágio essencial no processo
Identifica os atores envolvidos em uma interação e dá de gerenciamento de requisitos, e determina o nível de
nome ao tipo de interação. São documentados por um detalhamento requerido no GR.
diagrama de casos de uso de alto nível. O conjunto de O gerenciamento de mudanças deve ser aplicado a todas
casos de uso representa todas as possíveis iterações as mudanças propostas aos requisitos de um sistema.
que serão descritas nos requisitos do sistema. Avalia os benefícios da implementação de novos requisitos
Etnografia: técnica de observação que pode ser usada justificam os custos de implementação.
para compreender os processos operacionais e ajudar
a extrair os requisitos de apoio para esses processos. Qualidade de software é um conceito multifacetado que pode ser
(trabalho do dia a dia) O analista faz uma imersão no descrito seguindo 5 pontos de vista diferentes:
ambiente de trabalho em que o sistema será usado. É Visão trancendental: a qualidade é algo que se
particularmente eficaz para descobrir dois tipos de reconhece imediatamente, mas não consegue definir
requisitos – requisitos derivados da maneira como as explicitamente.
pessoas realmente trabalham e requisitos derivados da Visão do usuário: vê a qualidade em termos das metas
cooperação e conhecimento das atividades de outras específicas de um usuário final.
pessoas. Visão do fabricante: define qualidade em termos da
especificação original do produto.
3) Especificação de requisitos: é o processo de escrever os Visão do produto: a qualidade pode ser ligada a
requisitos de usuário e de sistema em um documento de caracteristicas inerentes de um produto.
requisitos. Idealmente, os requisitos de usuário e de Visão baseada em valor: mede a qualidade tomando
sistema devem ser claros, inequívocos, de fácil como base o quanto um cliente estaria disposto a pagar
compreensão, completos e consistentes. Pode ser um por um produto.
documento formal, um modelo gráfico, um modelo
matemático ou uma coleção de cenários de uso. Qualidade de projeto no desenvolvimento de software engloba
Documento de Requisitos de Software (SRS – um grau de atendimento às funções e características
Software Requirements Specification): declaração especificadas no modelo de requisitos.
formal do que os desenvolvedores deverão
implementar. Deve incluir tantos os requisitos de Qualidade de conformidade focaliza o grau em que a
usuário para um sistema, quanto uma implementação segue o projeto e o sistema resultante atende
especificação detalhada dos requisitos do suas necessidades e as metas de desempenho.
sistema.
Qualidade de software pode ser definida como uma gestão de
4) Validação de requisitos: processo pelo qual se verifica se os qualidade efetiva aplicada de modo a criar um produto útil que
requisitos definem o sistema que o cliente realmente quer. forneça valor mensurável para aqueles que o produzem e para
Ela se sobrepõem à analise, uma vez que está preocupada aqueles que o utilizam.
em encontrar problemas com os requisitos. Evita que erros
em um documento de requisitos possam gerar alto custo de Dimensões de qualidade de Garvin
retrabalho. Qualidade de desempenho.
Qualidade dos recursos.
Durante esse processo, diferentes tipos de verificação Confiabilidade.
devem ser efetuados com os requisitos no documento de Conformidade.
requisitos. Incluem (tipos de problemas comuns): Durabilidade.
Verificações de validade/corretude: a função era Facilidade de manutenção.
exatamente aquela? Estética.
Verificações de consistencia: diferentes requisitos Percepção.
não podem entrar em conflito.
Verificações de completude: todos os requisitos Fatores de qualidade de McCall, são divididos em:
necessários devem ter sido incluídos.
Verificações de realismo: os requisitos incluídos
devem poder realmente ser implementados.
Verificabilidade/Testabilidade: os requisitos
devem poder ser validados sobre o sistema
implementado.
Fatores de qualidade ISO 9126:foi desenvolvido como uma Um Sistema de Gestão da Qualidade compreende atividades
tentativa de identificar os atributos fundamentais de qualidade de pelas quais uma organização identifica seus objetivos e
softwrae. determina os processos e recursos necessários para alcançar os
Funcionalidade: o grau com que o software satisfaz ás resultados desejados. Seus princípios são: foco no cliente,
necessidades declaradas. liderança, engajamento das pessoas, abordagem de processo,
Confiabilidade: a quantidade de tempo que o software melhoria contínua, tomada de decisão baseada em evidência e
fica dispon[ivel para uso. gestão dos relacionamentos com as partes interessadas.
Usabilidade: o grau de facilidade de utilização do
software. Existem quatro subcategorias de Gerência de Qualidade de
Eficiência: o grau de otimização do uso, pelo software, Software:
dos recursos do sistema. Planejamento da Qualidade de Software.
Facilidade de manutenção: a facilidade com a qual uma Garantia da Qualidade de Software.
correção pode ser realizada no software. Controle da Qualidade de Software.
Portabilidade: a facilidade com a qual um softwrae pode Melhoria da Qualidade de Software.
ser transposto de um ambiente a outro.
O Controle de Qualidade é a aplicação desses processos de
qualidade visando eliminar os produtos que não atingiram o nível
de qualidade exigido.
Tarefas: é uma decomposição ou detalhamento de uma Usuário: realizada por uma pessoa ou usuário com ajuda
atividade. É a menor unidade de trabalho com significado de um sistema ou software.
executada por uma pessoa ou máquina. Manual: realizada por uma pessoal ou usuário sem ajuda
de um sistema ou software.
Atenção!! Um processo é formado por – entrada, atividade ou Serviço: utiliza ou executa um serviço externo (web service
tarefa, saída, regras e recursos. ou outra aplicação).
Script: executa uma expressão ou script.
Regra de negócio: executada por um sistema sem a
intervenção humana.
Envio de mensagem: envia uma mensagem a um
participante externo.
Recebimento de mensagem: aguarda o recebimento de
uma mensagem a ser enviada por um participante externo.
Blocos de construção: são divididos em itens (são abstrações), Diagrama de pacotes: organizam elementos do
relacionamentos (reúnem os itens) e diagramas (agrupam sistema em grupos relacionados a fim de minimizar a
coleções de itens). dependência entre eles.
Itens da UML: estruturais, comportamentais, de agrupamento e
anotacionais.
Estruturais: são os SUBSTANTIVOS dos modelos. É a
parte estática, representando elementos conceituais ou
físicos. São classificados em sete tipos – classes,
interfaces, colaborações, casos de uso, classes ativas,
componentes e nós.
Comportamentais: representam as partes dinâmicas
dos modelos. São os VERBOS, representando
comportamentos no tempo e no espaço. São
classificados em dois tipos – interação (mensagem) e Diagrama de objetos: descrevem a estrutura estática
máquina de estado. de um sistema em um determinado momento. Podem
De agrupamento: são as partes organizacionais dos ser usados para testar a precisão dos diagramas de
modelos de UML. São os blocos em que os modelos classes.
podem ser decompostos – pacotes (mecanismo de
propósito geral para a organização de elementos em
grupos).
Uma atividade representa uma operação em uma
classe do sistema que resulta na mudança do estado
do sistema.
Padrões de Projeto
Diagrama de colaborações: representam as Atenção!! Um projeto precisa ser modular, ou seja, o software
interações entre objetos em termos de mensagens em deve ser dividido logicamente em elementos ou subsistemas, de
sequencia. Descrevem tanto a estrutura estática como modo que seja fácil de testar e manter. Deve conter
o comportamento dinâmico do sistema. representações distintas de arquitetura, componentes, dados e
interfaces.
É um modelo de programação que permite a distribuição da É uma arquitetura que define como funções de negócios distintas,
aplicação funcionalmente por três sistemas independentes: implementadas por sistemas autônomos, devem operar
Componentes clientes em execução em estações de conjuntamente para executar um processo de negócio. Cada
trabalho; função de negócio(componente) é implementada como um
Processos em execução em servidores remotos; serviço.
Coleção discreta de banco de dados, gerenciadores de
recursos e aplicações de mainframe.