Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo
Ementa
Modelos de ciclo de vida e de processos. Definição das fases de um processo e das atividades de apoio.
Objetivos
desenvolvido.
Contextualização
Hoje em dia, para qualquer lado que olhemos encontraremos lá a presença do software. Ele está tão presente
em nossas vidas, que nem nos damos conta. No nosso celular, naquela televisão moderna de LCD, nos
modernos carros, em centrais de energia elétrica e nuclear, na área médica, petroquímica aeronáutica, isso
Marcadamente, a partir da década de 70, a indústria de software obteve um crescimento fabuloso e, ainda
hoje, continua crescendo. Com o objetivo de agregar maior qualidade e menores custos à construção de
software, esta indústria foi buscar conceitos da Engenharia convencional e buscou aplicá-la ao Software.
Especificação de requisitos, projeto, construção e testes, termos comuns em outras Engenharias, vêm sendo
Pelo exposto, pode-se inferir, então, a Engenharia de Software como: “O uso de princípios de engenharia para
Conteúdo
2.1 Introdução
2.2.1 Comunicação
2.2.2 Planejamento
2.2.3 Modelagem
2.2.4 Construção
2.2.5 Implantação
3.4 Medição
4.1 Introdução
4.2 Codifica-remenda
4.3.1 Características
4.4 Prototipação
4.4.1 Características
4.5 Espiral
4.5.1 Características
4.6.1 Características
4.7.1 Características
“Mais que uma atividade ou um corpo de conhecimentos, a engenharia é um verbo, uma palavra de ação, uma
Nesta aula você estudará o conceito de Engenharia de Software. Aqui, você saberá como se inicia o processo,
em que desenvolvedores, clientes e usuários de software unem-se para transformar necessidades de negócio
em software.
A Engenharia de Software é definida pelo IEEE (apud PRESSMAN, 2006) como: a aplicação de uma abordagem
Para Pressman (2006), a Engenharia de Software é uma tecnologia em camadas (Figura 1.1). É um processo
automatizadas). Ela deve se apoiar no compromisso que a organização tem com a qualidade do software (foco
softwares de computador. É a base para o controle de projetos e para o estabelecimento do contexto em que
os métodos serão aplicados e para a produção dos trabalhos. Nele há o estabelecimento dos marcos, da
garantia da qualidade, assim como da gerência de mudanças no software. O processo define a abordagem que
O método é um procedimento formal para produzir algum resultado (PFLEEGER, 2004). Ele fornece a técnica de
como fazer para construir softwares e abrange tarefas que incluem comunicação, análise de requisitos,
A ferramenta é:
um instrumento ou sistema automatizado utilizado para realizar uma tarefa da melhor maneira. Essa maneira
pode significar que a ferramenta torna-nos mais precisos, eficientes e produtivos ou que melhora a qualidade
Ela oferece apoio automatizado ou semi-automatizado para os processos e para os métodos. Quando os
resultados das informações geradas por uma ferramenta passam a ser usados por outra, é estabelecido um
(PRESSMAN, 2006).
A definição da Engenharia de Software como uma tecnologia em camadas é ilustrada na Figura 1.1 a seguir:
Figura 1.1 – Engenharia de Software em Camadas
resultado. Por exemplo, os planos de testes descrevem os procedimentos de testes, indicando as ferramentas
que serão utilizadas, os dados e as circunstâncias em que deverão ocorrer os testes, para saber se o software
Os modelos de processos de software (ou ciclos de vida), que serão estudados com mais detalhe nas aulas
seguintes, determinam uma abordagem para a construção de software. Cada ciclo de vida tem suas vantagens
e desvantagens. O mais adequado para um determinado projeto vai depender das características desse projeto.
Os métodos, técnicas, procedimentos e processos de software são utilizados para apoiar a melhoria da
desenvolvimento de software. Antes de iniciar a construção do sistema, é preciso saber o que o cliente quer e
desenvolvimento. Essas pessoas têm responsabilidades e desempenham diferentes papéis ao longo do projeto.
No entanto, existem projetos em que a mesma pessoa pode vir a desempenhar diferentes papéis ao mesmo
tempo.
Segundo Pfleeger (2004), os participantes dos projetos são classificados em três categorias: cliente, usuário e
Cliente – É a empresa, organização ou pessoa que paga para que o sistema de software seja
desenvolvido.
Usuário – É aquele que realmente utilizará o sistema (para inserir ou ler resultados); muitas vezes,
cliente.
A Figura 1.2, a seguir, ilustra a relação entre essas categorias de participantes do desenvolvimento de
sistemas.
A próxima seção apresenta as subdivisões da categoria desenvolvedor, com a indicação dos papéis que atuam
Clientes, usuários e desenvolvedores têm uma importante atuação na definição e criação de sistemas. Os
Analista de Requisitos – Trabalha com o cliente, para saber o que ele quer, e documenta os requisitos. As
necessidades são divididas em componentes que possam ser melhor entendidos. Esse papel é conhecido por
diferentes nomes, alguns deles são: analista, analista de sistemas, engenheiro de sistemas, projetista de
sistemas chefe, programador/analista, entre outros. Independentemente do nome adotado pelas organizações,
usuário/cliente.
para gerar uma descrição, em nível do sistema, do que o sistema deve fazer.
Programadores – Os projetistas trabalham com os programadores para descrever o sistema, de modo que os
programadores possam gerar as linhas de código que implementam o que foi especificado nos requisitos.
Testadores – Ajudam a encontrar os defeitos que os programadores não identificaram. As unidades de código
(programadores) para verificar se o sistema construído, a partir da integração das partes, funciona
adequadamente ou de acordo com as especificações. As equipes de testes e cliente trabalham juntas para
verificar se o sistema completo é o que o cliente quer; eles comparam o sistema em funcionamento com o
Equipe de manutenção – Corrige os defeitos depois de o sistema ter sido aceito pelo cliente. Com o passar
do tempo, os requisitos do cliente podem mudar; à equipe de manutenção compete realizar tais mudanças.
Resumo
Nesta aula, você aprendeu o conceito de Engenharia de Software como uma tecnologia em camadas.
Apresentamos as diferentes camadas e a base que apóia cada uma delas. Como foi dito por Scott Whitmire, a
engenharia é uma ação, então você estudou quais são os papéis que atuam na realização das atividades da
Na próxima aula, você estudará quais são as atividades genéricas da Engenharia de Software, ou seja, o
arcabouço de processo, que pode ser aplicado aos diferentes modelos de processo de software.
Antes de iniciar a próxima aula, aproveite para refletir e pesquisar um pouco mais sobre o assunto estudado
ATIVIDADES
desenvolvedor).
papéis. Analise os papéis dos membros de uma equipe de desenvolvimento e descreva a importância
de engenharia de software quais são as atividades que precisam ser realizadas? Todos os projetos de
desenvolvimento de software executam o mesmo processo? O mesmo conjunto de atividades? Se sim, o que
acontece quando os projetos têm características diferentes? Mas, afinal, o que é um processo de software?
Nesta aula, você estudará o conceito de arcabouço de processo. Nela, apresentaremos atividades de arcabouço
2.1 Introdução
Você sabe o que é um processo de software? É um arcabouço para as tarefas que são necessárias para
construir software de alta qualidade. E o que vem a ser um arcabouço de processo? Segundo Pressman (2006),
um arcabouço:
Estabelece o alicerce para um processo de software completo pela identificação de um pequeno número de
complexidade. Além disso, o arcabouço de processo engloba um conjunto de atividades guarda-chuva que são
Quando você elabora um produto ou sistema, é Em nível de detalhe, o processo adotado depende do
importante percorrer uma série de passos previsíveis – software que se está construindo. Um processo poderia
um roteiro que ajuda a criar, a tempo, um resultado de ser apropriado à criação de softwares para o sistema
alta velocidade. O roteiro que você segue é chamado de aviônica de uma aeronave, enquanto um processo
seguem. Além disso, as pessoas que solicitaram o Do ponto de vista de um engenheiro de software, os
software têm um papel a desempenhar no seu produtos de trabalho são os programas, documentos e
para uma atividade que pode, se deixada sem Existem diversos mecanismos de avaliação do processo
controle, tornar-se bastante caótica. No entanto, uma de software que permitem às organizações determinar
precisa ser “ágil”. Precisa exigir apenas atividades, a qualidade, pontualidade e viabilidade em longo prazo
projeto e ao produto que deve ser produzido. indicadores da eficácia do processo usado.
A Figura 2.1 ilustra um arcabouço de processo de software. Cada atividade do arcabouço tem um conjunto de
ações de Engenharia de Software. Essas atividades são refletidas em termos de tarefas que geram produtos de
trabalho.
O arcabouço tem um conjunto de atividades genéricas que são aplicáveis à maioria dos processos de software
também usadas como base para os modelos de processo (PRESSMAN, 2006), que serão estudados nas
próximas aulas.
Figura 2.1 – Um Arcabouço de Processo de Software
2.2.1 Comunicação
Envolve alta comunicação e colaboração com o cliente (e outros interessados) e abrange o levantamento de
requisitos e outras atividades relacionadas (PRESSMAN, 2006). O levantamento de requisitos tem foco na
identificação das necessidades do cliente em relação ao produto. Essas necessidades são expressas em uma
e Kang (apud PRESSMAN, 2006) identificaram alguns dos principais problemas relacionados ao levantamento
de requisitos:
Problemas de escopo – O limite do sistema é mal definido ou o cliente especifica detalhes técnicos
necessário; têm pouca compreensão das capacidades e limitações de seu ambiente computacional;
não têm pleno domínio do problema, têm dificuldade de informar as necessidades ao engenheiro de
sistemas; omitem informações que acreditam ser “óbvias”; especificam requisitos conflitantes com as
de testar.
Outra dificuldade é que, durante o levantamento de requisitos, embora muitas pessoas contribuam para esse
processo, cada uma tem pontos de vista diferentes e, algumas vezes, conflitantes (PFLEEGER, 2004). Uma das
habilidades necessárias ao analista de requisitos é entender cada ponto de vista e conceber requisitos que
Técnicas de Apoio
Existem algumas técnicas que apóiam o analista durante o levantamento de requisitos. Nesta aula,
discutiremos duas dessas técnicas que colaboram para a eficácia das atividades de levantamento e para a
Prototipação
O protótipo (descartável) é construído com o objetivo de demonstrar aos usuários o que o analista conseguiu
captar quanto aos requisitos do produto, ou parte dele. O protótipo deve ser construído de forma rápida, em
Em projetos maiores, o protótipo também pode ser usado para resolver problemas de desenho e
foco em áreas menos compreendidas; e oportunidade de treinamento dos programadores menos experientes,
software. Ela é muito útil para o levantamento e a negociação de requisitos. Nessas reuniões participam
Traz à baila, o mais cedo possível, problemas políticos que possam interferir no projeto.
Existem alguns problemas que podem comprometer a eficácia do JAD, são eles:
A não participação das pessoas que desempenham papéis-chave nos processos de uso do produto.
A participação das pessoas não comprometidas com o produto (observadores não devem ser
iniciantes, a 15, para grupos experientes). Caso o cliente não libere o seu pessoal para participar das
Pressman (2006) propõe dez princípios da prática de comunicação que são transcritos a seguir:
Princípio 1 – Escute:
Tente se concentrar nas palavras do interlocutor, em vez de se concentrar na formulação de sua resposta a
essas palavras. Peça esclarecimento se algo estiver obscuro, mas evite interrupções constantes. Nunca torne
suas próprias palavras ou ações desagradáveis por exemplo, virar os olhos ou sacudir a cabeça quando uma
entender o jargão dominante do negócio. Se você é responsável pela condução de uma reunião, prepare uma
Toda reunião de comunicação deve ter um líder (facilitador): (1) para manter a conversa, em uma direção
produtiva; (2) para mediar qualquer conflito; (3) para garantir que os outros princípios sejam seguidos.
Costuma funcionar melhor quando alguma outra representação da comunicação relevante é apresentada. Por
exemplo, um participante pode criar um desenho ou um documento provisório que serve como foco da
discussão.
As coisas têm um modo de escorrer por entre os dedos. Alguém que participe da comunicação deve servir como
Colaboração e consenso ocorrem quando o conhecimento coletivo dos membros da equipe é combinado para
descrever funções ou características do produto ou do sistema. Cada pequena colaboração serve para construir
Quanto mais pessoas estiverem envolvidas em uma comunicação, provavelmente, mais aquela discussão vai
ficar saltando de um tópico para outro. O facilitador deve manter a conversa modular, abandonando um tópico
apenas depois que tiver sido resolvido (no entanto, veja o princípio número 9).
A comunicação verbal só vai até certo ponto. Um esboço ou um desenho pode, freqüentemente, fornecer
com algo, prossiga; (c) Se uma função ou característica não está clara e não pode ser esclarecida no
momento, prossiga:
A comunicação, como qualquer outra atividade da Engenharia de Software, leva tempo. Em vez de iterar sem
fim, as pessoas que participam devem reconhecer que muitos tópicos requerem discussão (veja o princípio
Princípio 10 – Negociação não é um concurso ou um jogo. Funciona melhor quando ambas as partes
ganham:
Existem muitas instâncias nas quais o engenheiro de software e o cliente precisam negociar funções e
características, prioridades e datas de entrega. Se a equipe colaborar bem, todas as partes terão uma meta em
2.2.2 Planejamento
Esta atividade estabelece um plano para o trabalho de Engenharia de Software que será seguido. Descreve as
tarefas técnicas a serem conduzidas, os riscos prováveis, os recursos que serão necessários, os produtos a
Para comunicar os itens planejados aos envolvidos no projeto, o gerente de projeto deve produzir um
documento chamado “plano de projeto”. Um bom plano de projeto deve incluir, pelo menos, os seguintes itens
(PFLEGEER, 2004):
Escopo – Define os limites do sistema, explicando o que será e o que não será incluído nele e
entregues e uma linha de tempo para mostrar o que acontecerá em cada momento do ciclo de vida do
projeto. Deve ser possível identificar a relação de dependência entre as atividades. Segundo Pressman
(2006), um cronograma bem planejado define as tarefas e os marcos que devem ser acompanhados e
suas atividades. Nem todo o pessoal será necessário durante todo o tempo de desenvolvimento do
projeto, por isso o plano deve prever a distribuição dos recursos-humanos e a quantidade necessária
em cada momento.
métodos que serão utilizados, tais como: algoritmos, ferramentas, técnicas de revisão ou inspeção,
outras técnicas ajudarão a avaliar a qualidade e a assegurar que as necessidades do cliente serão
atendidas.
Plano de gerência de configuração – Informa como serão controladas as mudanças nos requisitos,
quando isso ocorrerá; e, de acordo com o plano de gerência de configuração, descreve como esses
Plano de gerência de dados – O plano deve explicitar como os dados serão obtidos, armazenados,
Plano de gerência de recursos – O plano deve explicar como os recursos serão utilizados. Por
como parte do plano de projeto, deveria explicar que dados estão em cada disco e como os disk packs
Plano de testes – Descreve a abordagem de testes utilizada no projeto. Ele deve estabelecer como
serão gerados os dados de teste, como cada módulo do programa será testado; como os módulos do
programa serão integrados e testados, como o sistema inteiro será testado e quem realizará cada tipo
de teste.
Plano de treinamento – Explica como o treinamento ocorrerá, descrevendo cada aula, software de
Plano de segurança – Mostra como o sistema protegerá os dados dos usuários e o hardware. Uma
vez que a segurança envolve confidencialidade, disponibilidade e integridade, o plano deverá explicar
Plano de gerência de riscos – Avalia os riscos que podem afetar o resultado do projeto ou a
próxima aula.
depois que ele for entregue ao usuário, o plano deverá estabelecer as responsabilidades pelas
alterações no código, pelo conserto do hardware e pela atualização da documentação de apoio e dos
materiais de treinamento.
A gerência de projetos deve ser apoiada por ferramentas. Pressman (2006) exemplifica algumas ferramentas
de apoio:
Project Control Panel – Fornece ao gerente de projeto uma indicação direta do estado do projeto. A
ferramenta tem sensores parecidos com um painel de controle e é implementada como o Microsoft
Excel.
(PRESSMAN, 2006).
Para quem deseja pesquisar outras ferramentas de gestão de projetos e de produtos, Pressman (2006) indica o
site www.infogoal.com/pmc/pmcswr.htm.
Pressman (2006) elencou dez princípios da prática de planejamento, os quais são listados a seguir:
É impossível usar um roteiro se você não souber para aonde está indo. O escopo fornece à equipe de software
um destino.
O cliente define prioridades e oferece restrições de projeto. Para acomodar essas realidades, os engenheiros de
software precisam, freqüentemente, negociar a ordem de entrega, os prazos e outros tópicos relacionados ao
projeto.
Um plano de projeto nunca é gravado em pedra. Quando um trabalho tem início, é muito provável que as
coisas modifiquem-se. Como conseqüência, o plano deve ser ajustado para acomodar essas modificações. Além
disso, modelos de processo iterativos e incrementais determinam o replanejamento (após a entrega de cada
A intenção de uma estimativa é fornecer uma indicação do esforço, do custo e da duração das tarefas com base
no entendimento atual da equipe quanto ao trabalho a ser feito. Se a informação for vaga ou não confiável, as
Se a equipe definir riscos que têm grande impacto e alta probabilidade, será necessário o planejamento de
contingência. Além disso, o plano do projeto, inclusive o cronograma, deve ser ajustado para acomodar a
As pessoas não trabalham 100% a cada dia. Sempre há ruído em qualquer comunicação humana. Omissões e
ambigüidades são fatos da vida. Modificações ocorrerão. Mesmo os melhores engenheiros de software cometem
erros. Essas e outras realidades devem ser consideradas quando um plano de projeto for estabelecido.
Granularidade refere-se ao nível de detalhe que é introduzido à medida que um plano de projeto é
desenvolvido. Um plano de “granularidade fina” fornece detalhes significativos das tarefas de trabalho que são
planejadas por incrementos de tempo relativamente curtos (de modo que o acompanhamento e o controle
ocorram freqüentemente). Um plano de “granularidade grossa” fornece tarefas de trabalho mais amplas,
planejadas por períodos de tempo mais longos. Em geral, a granularidade move-se de fina para grossa à
O plano deve identificar como a equipe de software pretende garantir a qualidade. Se revisões técnicas formais
tiverem de ser conduzidas, elas devem estar nos cronogramas. Se a programação aos pares tiver de ser usada
Mesmo o melhor planejamento pode ser comprometido por modificações descontroladas. A equipe de software
deve identificar como as modificações devem ser acomodadas, à medida que o trabalho da engenharia de
software prossegue. Por exemplo, o cliente pode solicitar uma modificação a qualquer momento. Quando a
modificação for solicitada, a equipe é obrigada a implementá-la imediatamente? Como é avaliado o impacto e o
custo da modificação?
Projetos de software atrasam um dia de cada vez. Assim, faz sentido acompanhar o progresso diariamente,
procurando áreas de problema e situações em que o trabalho programado não esteja de acordo com o trabalho
2.2.3 Modelagem
Inclui a criação de modelos que permitam ao desenvolvedor e ao cliente entender melhor os requisitos do
software e o projeto que vai satisfazer a esses requisitos (PRESSMAN, 2006). A atividade de modelagem é
Ao longo da análise, o foco do analista está em saber o que deve ser feito, e não o como deve ser feito. Os
elementos do modelo de análise fornecem a base para a elaboração dos modelos de projeto (dados/classes,
Pressman (2006) propõe cinco princípios da prática de Modelagem – de Análise. Eles são transcritos a seguir:
O domínio da informação abrange os dados que fluem para dentro do sistema (vindos dos usuários finais, de
outros sistemas ou de dispositivos externos); os dados que fluem para fora do sistema (pela interface do
usuário, por interfaces de rede, relatórios, gráficos e outros meios) e os depósitos de dados que coletam e
organizam os objetos de dados persistentes (isto é, os dados que são mantidos permanentemente).
As funções do software fornecem benefício direto aos usuários finais e também dão apoio interno às
características que são visíveis ao usuário. Algumas funções transformam os dados que fluem para dentro do
sistema. Em outros casos, as funções efetuam algum nível de controle sobre o processamento interno do
software ou sobre elementos externos do sistema. As funções podem ser descritas em vários níveis de
abstração diferentes, que vão desde uma declaração geral de objetivo até uma descrição detalhada dos
representado:
O comportamento do software de computador é guiado por suas interações com o ambiente externo. Entradas
fornecidas pelos usuários finais, dados de controle fornecidos por um sistema externo ou monitoramento de
dados coletados em uma rede, todos fazem com que o software comporte-se de um modo específico.
permite que os profissionais entendam melhor o problema e estabelece uma base para a solução (projeto).
Problemas complexos são difíceis de serem resolvidos como um todo. Por isso, usamos uma estratégia de
dividir e conquistar. Um problema complexo, grande, é dividido em subproblemas, até que cada subproblema
seja relativamente fácil de entender. Esse conceito é chamado de particionamento e é uma estratégia-chave na
modelagem de análise.
problema é descrita sem qualquer consideração de como uma solução será implementada. Por exemplo, um
videogame exige que o jogador “instrua” seu protagonista sobre em qual direção prosseguir quando entra em
como parte do modelo de projeto) indicam como a essência será implementada. No videogame, pode-se usar
uma entrada de voz. Alternativamente, um comando de teclado pode ser digitado ou um joystick (ou mouse)
Os nove princípios da prática de Modelagem - de Projeto – são listados abaixo (PRESSMAN, 2006):
comportamento do sistema e o conjunto de classes de análise que empacotam objetos do negócio com os
métodos que os servem. O modelo de projeto traduz essa informação em uma arquitetura: um conjunto de
realizado pelas classes de análise. Com exceção do projeto associado à infra-estrutura do software, os
A arquitetura do software é o esqueleto do sistema a ser construído. Ela afeta as interfaces; as estruturas de
dados, o fluxo de controle e o comportamento do programa; o modo pelo qual o teste pode ser conduzido; a
manutenibilidade do sistema resultante e muito mais. Por todas essas razões, o projeto deve começar com
Princípio 3 – O projeto dos dados é tão importante quanto o projeto de funções de processamento:
O projeto dos dados é um elemento essencial do projeto arquitetural. A maneira pela qual os objetos são
realizados no projeto não pode ser deixada ao acaso. Um projeto de dados bem estruturado ajuda a simplificar
o fluxo do programa, torna o projeto e a implementação dos componentes de software mais fáceis e deixa o
Princípio 4 – As interfaces (tanto externas quanto internas) precisam ser projetadas com cuidado: A
maneira como os dados fluem entre os componentes de um sistema tem muito a ver com a eficiência de
processamento, a propagação de erros e a simplicidade de projeto. Uma interface bem projetada torna a
integração mais fácil e ajuda o testador na validação das funções dos componentes.
usuário final. No entanto, em cada caso, ele deve enfatizar a facilidade de uso:
A interface do usuário é a manifestação visível do software. Não importa quão sofisticadas sejam suas funções
internas, quão abrangentes suas estruturas de dados, quão bem projetada a sua arquitetura, um projeto de
fornecida por um componente deve ser coesiva – isto é, deve enfocar apenas uma e apenas uma função ou
subfunção.
Princípio 7 – Os componentes devem ser fracamente acoplados uns aos outros e ao ambiente
externo:
O acoplamento é conseguido de muitos modos: via interface de componentes, por mensagens ou por meio de
dados globais. À medida que o nível de acoplamento aumenta, a probabilidade de propagação de erros também
aumenta e a manutenibilidade global do software diminui. Assim, o acoplamento de componentes deve ser
O objetivo do projeto é comunicar a informação para os profissionais que vão gerar código, para aqueles que
vão testar o software e para outros que podem vir a manter o software no futuro. Se o projeto for difícil de
Princípio 9 – O projeto deve ser desenvolvido iterativamente. A cada iteração, o projetista deve
Como quase todas as atividades criativas, o projeto ocorre iterativamente. As primeiras iterações trabalham
para refinar o projeto e corrigir erros, mas as últimas iterações devem procurar tornar o projeto o mais simples
possível.
2.2.4 Construção
Combina a geração de código (manual ou automática) e os testes necessários para revelar erros no código
realização dos testes descobre defeitos de função, lógica e implementação (PRESSMAN, 1995).
Pressman (2006) propõe alguns princípios da prática de Construção. Eles são listados a seguir:
Princípios de Preparação:
3. Escolher uma linguagem de programação que satisfaça às necessidades do software a ser construído
4. Selecionar um ambiente de programação que forneça ferramentas para facilitar o seu trabalho.
5. Criar um conjunto de testes unitários que será aplicado tão logo o componente que você está
Princípios de Codificação
Quando começar a escrever o código, certifique-se de:
8. Criar uma disposição visual (por exemplo, alinhamento e linhas em branco) que auxilie o
entendimento.
Princípios de Validação
3. Refabricar o código.
Os princípios das práticas de teste são propostas por Davis (apud PRESSMAN, 2006). Os cinco princípios são
listados a seguir:
O objetivo do teste de software é descobrir erros. Segue daí que os defeitos mais severos (do ponto de vista do
cliente) são aqueles que fazem com que o programa deixe de satisfazer aos seus requisitos.
O planejamento dos testes pode começar assim que o modelo de análise for completado. A definição detalhada
dos casos de teste pode começar tão logo o modelo de projeto tenha sido consolidado. Assim sendo, todos os
testes podem ser planejados e projetados antes que qualquer código tenha sido gerado.
O princípio de Pareto significa que 80% de todos os erros descobertos durante o teste estarão, provavelmente,
relacionados a 20% de todos os componentes do programa. O problema, sem dúvida, é isolar esses
Os primeiros testes planejados e executados concentram-se geralmente nos componentes individuais. À medida
que o teste progride, o foco se desloca numa tentativa de encontrar erros em conjuntos integrados de
excepcionalmente grande. Por essa razão, é impossível executar todas as combinações de caminho durante o
teste. É possível, no entanto, cobrir adequadamente a lógica do programa e garantir que todas as condições do
2.2.5 Implantação
A implantação ocorre quando o software (como unidade completa ou incremento parcialmente completo) é
entregue ao cliente, que avalia o produto entregue e fornece feedback com base na avaliação (PRESSMAN,
Muito freqüentemente, o cliente espera mais do que o prometido pela equipe de desenvolvimento, e, assim, o
desapontamento é imediato. Isso resulta em feedback não produtivo e arruína a moral da equipe. Em seu livro
sobre expectativas de gestão, Naomi Karten (apud PRESSMAN, 2006) afirma: “O ponto inicial da gestão de
expectativas é tornar-se mais consciente do que você comunica e de como o faz”. Ela sugere que um
engenheiro de software deva ser cuidadoso com o envio de mensagens conflitantes ao cliente (por exemplo,
prometer mais do que você pode realmente entregar na data combinada, entregar mais do que em um
Um CD-ROM ou outra mídia contendo todo o software executável, os arquivos de dados de suporte, os
documentos de suporte e outras informações relevantes deve ser montado e rigorosamente testado por testes
beta e com usuários reais. Todos os documentos de instalação e outras características operacionais devem ser
Um usuário final espera receptividade e informação segura quando uma questão ou um problema surge. Se o
suporte é ad hoc, ou pior, inexistente, o cliente ficará insatisfeito imediatamente. O suporte deve ser planejado,
o material de suporte preparado e os mecanismos adequados de registros devem ser estabelecidos, de modo
que a equipe de software possa conduzir uma avaliação categórica das espécies de suporte necessárias.
Princípio 4 – Os materiais institucionais adequados devem ser fornecidos aos usuários finais:
A equipe de software entrega mais do que o software em si. Ajuda de treinamento adequado (se necessária)
deve ser desenvolvida, diretrizes de apuração devem ser fornecidas e uma descrição de “o-que-é-diferente-
Pressionadas pelo tempo, algumas organizações de software entregam incrementos de baixa qualidade com um
aviso ao cliente de que os defeitos “serão consertados na versão seguinte”. Isso é um erro. Há um ditado no
negócio de software que diz: “Os clientes esquecerão que você entregou um produto de alta qualidade alguns
dias depois, mas eles nunca esquecerão os problemas que um produto de baixa qualidade causou-lhes. O
Além das atividades de arcabouço de processo de software que você acaba de estudar, existem também as
atividades guarda-chuva. Atividades guarda-chuva são aquelas que podem ser executadas ao longo de todo o
Resumo
Existem algumas atividades que são imprescindíveis na Engenharia de Software. Elas são chamadas de
atividades de arcabouço e geralmente são executadas para qualquer projeto de software, podendo ser inseridas
Na próxima aula, você estudará como as atividades guarda-chuva complementam e apóiam as atividades de
arcabouço. Mais adiante, estudará também as características dos modelos de processo de software e perceberá
ATIVIDADES
3. Selecione um modelo de processo e descreva como esse modelo lida com uma mudança significativa
em requisitos.
Engenharia de Software. Agora vamos ler um pouco mais sobre as atividades guarda-chuva, que são aquelas
que complementam as atividades de arcabouço de processo e são aplicadas ao longo de todo processo de
desenvolvimento.
Nesta aula, serão estudadas as características de algumas atividades típicas dessa categoria.
O acompanhamento e controle de projeto permitem à equipe de software avaliar o processo com base no plano
de projeto e tomar a ação necessária para manter o cronograma (PRESSMAN, 2006). No PMBOK (2004):
O grupo de processo de monitoramento e controle mede e monitora regularmente o progresso para identificar
variações em relação ao plano de gerenciamento do projeto, de forma que possam ser tomadas ações
Conduzir reuniões periódicas sobre o estado do projeto em que cada membro da equipe relate o
progresso e os problemas.
software.
Comparar a data de início real com a data de início planejada para cada tarefa do projeto
(cronograma).
Reunir informalmente os profissionais para obter sua avaliação subjetiva do progresso alcançado e
Todos os itens que compõem o plano de projeto devem ser monitorados durante o andamento do projeto. As
ações corretivas provenientes de monitoração devem ser gerenciadas até a sua conclusão. John Reel (apud
PRESSMAN, 2006) define dez sinais que indicam quando um projeto está comprometido:
Exemplos de ferramentas que podem ser utilizadas para apoiar as atividades de planejamento e
acompanhamento de projeto foram discutidas na aula 2, no item 2.2.2 referente a Planejamento de Projeto.
Segundo Kim Heldman (2006), os riscos associados a um projeto, normalmente, dizem respeito aos objetivos
do projeto e podem interferir em tempo, custo, escopo, qualidade (ou qualquer combinação desses quatro
itens). Para Pressman (2006), a gestão de risco avalia os riscos que podem afetar o resultado do projeto ou a
qualidade do produto. Os riscos devem ser monitorados ao longo do projeto e podem ou não impactar o projeto
Segue abaixo uma lista parcial que aborda possibilidades de riscos em um projeto (PRESSMAN, 2006):
Orçamento/fundos de reserva
Cronogramas
Plano do projeto
Processo de gerenciamento do projeto
Problemas técnicos
Hardware
Contratos
Problemas políticos
Riscos empresariais
Risco legal
Risco ambiental
Essa lista não é exaustiva, portanto cabe ao gerente de projeto identificar e documentar todos os riscos do
projeto. O plano de gerenciamento de riscos deve especificar como os riscos serão definidos, monitorados e
controlados ao longo do projeto, esse plano faz parte do plano de projeto (HELDMAN, 2006).
Heldman (2006) sugere que uma das ferramentas para planejamento e gerenciamento dos riscos são as
reuniões com os envolvidos no projeto (cliente, equipe, gerente etc.) para discutir e documentar os principais
planos para gerenciar os riscos. Alguns dos resultados dessas reuniões são:
A garantia da qualidade define e conduz as atividades necessárias para garantir a qualidade do software
(PRESSMAN, 2006). Sua meta é garantir à gerência informações sobre a qualidade do produto, ou seja, indicar
se a qualidade do produto está ou não satisfazendo as suas metas. No caso da identificação de problemas, cabe
à gerência do projeto fornecer os recursos necessários para que eles sejam resolvidos.
Pressman (2006) declara que existem pelo menos dois papéis envolvidos nas atividades de garantia da
qualidade. O primeiro é o dos engenheiros de software (membros da equipe de projeto), que buscam a
qualidade do projeto por meio da aplicação de métodos e medidas técnicas sólidas, da condução de revisões
técnicas formais e da execução de testes de software bem planejados. O segundo é o do grupo de garantia da
qualidade, que deve ajudar a equipe de engenheiros a obter um produto de software de qualidade com
planejamento, supervisão, registro, análises e relatos de garantia da qualidade. O detalhamento macro das
O plano deve ser elaborado durante o planejamento do projeto e revisado por todos os
Algumas das informações registradas no plano são: (a) as avaliações, auditorias e as revisões a
serem realizadas; (b) as normas que são aplicáveis ao projeto; (c) os procedimentos para
qualidade revisa a descrição do processo para garantir que este atenda as políticas
de software definido:
desvios.
Revisão dos produtos de trabalho que foram selecionados para revisão, identificação,
Os desvios podem ser encontrados no plano de projeto, na descrição do processo, nas normas
Os itens que não atendem ao padrão são acompanhados até que sejam resolvidos.
3.4 Medição
define e reúne medidas de processo, projeto e produto que ajudam a equipe a entender um software que
satisfaça às necessidades do usuário; pode ser usada conjugada com todas as outras atividades de arcabouço e
guarda-chuva.
Segundo Kan (2003), métricas de software podem ser classificadas em três categorias: métricas de processo,
Métricas de Processo
Podem ser usadas para melhorar um processo de desenvolvimento ou de manutenção de software. Exemplos
dessas métricas podem ser a efetividade de remoção de defeitos durante o desenvolvimento; o tempo de
resposta para corrigir um problema etc. No que se refere à manutenção, pode-se citar o percentual de
Métricas de Projeto
Descrevem as características do projeto e de sua execução, como por exemplo, número de desenvolvedores,
Métricas de Produto
qualidade. A norma ISO/IEC 9126 (2001) propõe um conjunto de métricas para avaliar a qualidade de um
produto de software.
As métricas são poderosos instrumentos para a melhoria de processo. Contudo, é preciso ter muito cuidado
para que elas não sejam mal utilizadas e gerem mais problemas que benefícios à organização. Grady (apud
PRESSMAN, 2006) sugere uma “etiqueta de métricas de software”. Segundo esta etiqueta, quando um
Fornecer, regularmente, realimentação aos indivíduos e equipes que coletam medidas e métricas.
Trabalhar com profissionais e equipes, estabelecendo metas claras e métricas que deverão ser usadas
para alcançá-las.
Não considerar negativos os dados de métricas que indicam uma área problemática; esses dados são
Não ficar obcecado por uma única métrica em detrimento de outras importantes.
A revisão técnica formal é uma atividade de garantia da qualidade. Segundo Pressman (2006), ela avalia os
produtos de trabalho da Engenharia de Software, num esforço para descobrir e remover erros, antes que eles
sejam propagados para a próxima ação ou atividade. Os objetivos das revisões são:
Para Pressman (2006), as revisões podem também ser usadas como forma de treinamento, pois pessoas mais
jovens têm a oportunidade de observar abordagens diferentes para realização de análise, projeto e
implementação. Sem contar que outras pessoas ficam familiarizadas com o software, o que, de alguma forma,
garante a continuidade dele. A revisão técnica formal deve gerar um relatório que responda, no mínimo, às
seguintes questões:
A gestão de configuração é definida por Pressman (2006) como a gerência dos efeitos das modificações ao
longo de todo o processo de software. A modificação pode ocorrer em qualquer época, por qualquer motivo.
1. As novas condições do negócio ou do mercado ditam modificações nos requisitos do produto ou nas
regras de negócio.
2. As novas necessidades do cliente exigem modificação dos dados produzidos por sistemas de
em computador.
A gestão de configuração define um conjunto de atividades com o objetivo de gerenciar as mudanças ao longo
do ciclo de vida do software. As atividades do processo de gestão de configuração de software têm quatro
objetivos principais:
configuração).
4. Garantir que a qualidade do software seja mantida à medida que a configuração evolui ao longo do
tempo.
De acordo com Pressman (2006), para que um processo atinja esses quatro objetivos é preciso que ele seja
caracterizado de forma que a equipe consiga ter respostas para um conjunto de questões complexas. São elas:
Como uma equipe de software identifica os elementos discretos de uma configuração de software?
Como uma organização gera várias versões existentes de um programa (e sua documentação) para
Como uma organização controla modificações antes e depois de o software ser entregue a um cliente?
É fundamental o uso de uma ferramenta para apoiar as atividades de gestão de configuração. Pressman (2006)
exemplifica uma lista de ferramentas que podem ser utilizadas com este objetivo:
CVS (Concurrent Versions System) – Ferramenta usada para controle de versão. Disponível para
CCC/Harvest – Ferramenta usada para controle de mudança – Disponível para download em:
www.ca.com.
ClearCase – Ferramenta que fornece uma família de funções de sistema de controle de mudança –
www.cmcrossroads.com/directory.html.
A gestão da reusabilidade define os critérios para a reutilização dos produtos de trabalho (inclusive
baseado em componentes leva à reusabilidade, e estudos comprovam: (a) redução de 70% do prazo do ciclo
A comunidade de engenheiros de software tem demonstrado poucas dúvidas no que diz respeito ao
vantagens do reuso são refletidas não apenas no reuso de componentes, mas também dos demais produtos de
trabalho.
Além das atividades guarda-chuva apresentadas nesta aula, ainda existem outras que podem apoiar as
atividades de arcabouço de processo. Os modelos de qualidade CMMI (SEI, 2006), MPS.BR – Melhoria do
Processo de Software Brasileiro - (MPS.BR, 2007) e a norma ISO/IEC 12207 (NBR ISO/IEC 12207, 1998)
oferecem uma lista mais abrangente de processos e maiores detalhes sobre o que vem a ser cada uma dessas
Resumo
Essa aula ilustrou a importância das atividades guarda-chuva no arcabouço de processo da Engenharia de
ATIVIDADES
1. Liste pelo menos três métricas que podem ser usadas para apoiar a atividade de acompanhamento e
controle do projeto.
2. Pesquise quais são os itens que compõem o planejamento de projeto e como deve acontecer seu
acompanhamento e controle.
3. Pesquise o conceito de análise de valor agregado e identifique como ela pode ser usada para
acompanhamento do projeto.
as atividades guarda-chuva. Agora é preciso saber como essas atividades são refletidas nos modelos de
Uma pergunta que precisa ser respondida: Qual o modelo de processo que a organização deve adotar para um
determinado projeto?
Para isso, é preciso conhecer quais são as características e os principais problemas encontrados nos modelos de
4.1 Introdução
Os requisitos são entradas para um processo de software, e a saída é o fornecimento do produto (PFLEEGER,
2004). Em um processo de desenvolvimento de software, a escolha do ciclo de vida é o ponto de partida para a
É possível associar as atividades do arcabouço de processo da Engenharia de Software a cada um dos modelos
de processo de software que você estudará nesta aula. O que muda em cada um desses processos é a ênfase
que se dá às atividades do arcabouço e à definição do fluxo de trabalho que envolve essas atividades
(PRESSMAN, 2006).
O ciclo de vida de um processo de desenvolvimento é também conhecido como modelo de processo de
4.2 Codifica-Remenda
Segundo Pádua (2001), um ciclo de vida caótico é chamado Codifica-Remenda, em que, partindo-se da
especificação (ou nem isso), os desenvolvedores começam a codificar. Quando um erro aparece, o código é
remendado para resolver o problema. Nenhum processo é seguido, ou muitas vezes, ele nem mesmo é
definido. Sendo assim, o modelo torna-se interessante para muitos desenvolvedores, pois não exige
O ciclo de vida cascata ou clássico também conhecido como “linear seqüencial” foi um dos primeiros modelos
propostos e é . Sua característica principal é que os estágios são executados sequencialmente. As atividades
genéricas da Engenharia de Software podem ser facilmente acomodadas nesse modelo de processo (Figura
4.2).
A seguir, listamos as principais características e problemas do ciclo de vida cascata ou clássico segundo os
Os estágios são executados em seqüência e assim, é possível demarcá-los como ponto de controle
bem definido.
Sua simplicidade o torna fácil de explicar aos clientes não familiarizados com o desenvolvimento de
software.
Outros modelos mais complexos são variações do modelo cascata, incorporando loops de feedback e
atividades extras.
Pode ser considerado um processo rígido e burocrático, pois as atividades de requisitos, análise e
Projetos reais raramente seguem o fluxo seqüencial proposto pelo modelo. O software é resultado de
Não fornece para os gerentes e desenvolvedores a orientação de como tratar as mudanças nos
Oferece baixa visibilidade para o cliente, que só recebe o resultado no final do projeto.
4.4 Prototipação
Segundo Pfleeger (2004), o objetivo geral desse modelo de processo é reduzir os riscos e a incerteza do
desenvolvimento. Ele inicia com a definição dos objetivos gerais do software (comunicação) e, a partir daí, as
necessidades conhecidas indicam as áreas que necessitam de mais definições. É feito um planejamento rápido
e, em seguida, a modelagem, que leva à construção e implantação. O protótipo é avaliado pelo cliente, e o
feedback é usado para refinamento dos requisitos do software. Uma nova iteração ocorre para satisfazer as
necessidades do cliente.
A seguir, apresentamos algumas características e problemas encontrados nesse ciclo de vida (PFLEEGER, 2004,
4.4.1 Características
Pode ser usada como uma técnica de levantamento de requisitos dentro do contexto dos outros
Ajuda a equipe de desenvolvimento a entender melhor o que deve ser desenvolvido quando os
no protótipo.
Partes do protótipo podem ser usadas para gerar programas executáveis rapidamente.
Um sistema operacional ou uma linguagem de programação inapropriada podem ser usados pelo fato
Com o passar do tempo, o desenvolvedor pode se habituar com as escolhas de conveniência, que
desenvolvedor devem estar cientes de que o protótipo será descartado, ou pelo menos boa parte dele,
4.5 Espiral
A principal preocupação do modelo espiral, ilustrado na Figura 4.4, está focada na análise e controle dos riscos,
em que são combinadas as atividades genéricas da Engenharia de Software com o gerenciamento de riscos. Em
cada iteração, a análise de riscos avalia as alternativas em relação aos requisitos e restrições da iteração em
Os problemas e características desse ciclo são listados a seguir (PFLEEGER, 2004, PÁDUA, 2001 e PREESMAN,
2006):
4.5.1 Características
Cada nova iteração corresponde a uma volta no espiral (em sentido horário) e as últimas iterações
riscos.
Insere no processo de desenvolvimento uma etapa para avaliar riscos e protótipos alternativos.
A prototipação avalia viabilidade e adequação antes que se decida por alguma alternativa.
Quando identificam-se riscos, a gestão de projetos decide como eliminar ou minimizar cada risco.
O modelo espiral permanece operacional desde a definição do software até que ele seja descontinuado
(retirado de operação).
Figura 4.4 – Modelo de Processo Espiral
Pode ser difícil convencer o cliente de que a abordagem evolucionária pode ser controlada.
A gestão do projeto deve ser sofisticada para ser previsível e confiável. O gerente de projetos deve
Exige muita competência do gerente de projeto na avaliação de riscos e depende dessa competência
Os modelos de processos mais recentes têm como objetivo diminuir o tempo de desenvolvimento e evitar que
os usuários tenham que esperar indefinidamente até a entrega do sistema. O desenvolvimento em fases, como
mostra a Figura 4.5, permite que um grupo de funcionalidades seja entregue enquanto as demais
Nesse modelo de processo, o planejamento das atividades para construção das versões do sistema pode ser
feito de diferentes formas, mas as duas abordagens mais comuns, segundo Pfleeger (2004), são: o
subsistemas por funcionalidades. As versões são definidas, começando por um pequeno subsistema funcional e,
O desenvolvimento iterativo entrega um sistema completo desde o começo e, então, muda a funcionalidade de
cada subsistema a cada nova versão. A Figura 4.7 ilustra três versões de um desenvolvimento iterativo.
Figura 4.7 – Desenvolvimento Iterativo
4.6.1 Características
Cada seqüência produz incrementos de software possíveis de serem entregues. Cada incremento deve
Os primeiros incrementos são versões simplificadas do produto final, mas são operacionais para o
usuário.
O fluxo de processo para qualquer incremento pode incorporar o paradigma da prototipagem (modelo
de processo Prototipação).
O primeiro incremento normalmente é chamado de “núcleo do produto”. Esse núcleo é usado pelo
Um plano é desenvolvido para o próximo incremento, como resultado do uso e/ou avaliação. O plano
É útil quando não há mão-de-obra disponível para uma implementação completa dentro do prazo
Este modelo de processo trabalha com uma abordagem incremental com foco em ciclos de desenvolvimento
curtos. É uma adaptação do modelo cascata (PRESSMAN, 2006), em que o ciclo de desenvolvimento deve ser
rápido com uma variação de 60 a 90 dias. A capacidade de desenvolvimento rápido se baseia na construção e
reutilização de componentes.
4.7.1 Características
O planejamento é essencial para o RAD, pois várias equipes trabalham em paralelo. Cada função pode
ser tratada por uma equipe RAD distinta, e depois integrada para formar um todo.
A modelagem estabelece as representações de projeto, que servem como base para as atividades de
construção.
necessárias para completar o sistema em um curto espaço de tempo, ou os projetos RAD falharão.
Se o sistema não puder ser adequadamente modularizado, a construção dos componentes necessários
Se for necessário um alto desempenho, e esse desempenho tiver de ser conseguido ajustando as
Pode não ser adequado quando os riscos técnicos são altos (por exemplo: quando uma nova aplicação
Além dos ciclos de vida apresentados acima, a literatura discute outros modelos de processo de software que
não foram tratados nesta aula, alguns exemplos são: Técnicas de Quarta Geração; Modelo em V; Modelo
Modelo Transformacional. Existem ainda os ciclos que são adaptados por meio da combinação de dois ou mais
modelos.
Segundo Pressman (2006), todos os modelos de processo de software se enquadram nas atividades do
arcabouço de processo da Engenharia de Software. No entanto, esses modelos devem ser selecionados e
adaptados de acordo com as características de cada projeto (problema, equipe e cultura organizacional). Os
No grau em que as tarefas de trabalho são definidas dentro de cada atividade do arcabouço.
Resumo
Nessa aula você estudou os modelos de processo de software (ou ciclos de vida). A seleção de um ciclo de vida
é o ponto de partida para dar início a um projeto de desenvolvimento de software. O ciclo de vida deve ser
Existem outros modelos de processo de software além daqueles apresentados aqui. Antes de ir para a próxima
aula, aproveite para pesquisar um pouco mais sobre esses ou outros modelos que você considere interessantes.
ATIVIDADES
1. Esboce, graficamente, um processo de software que tenha a combinação de pelo menos dois dos
ciclos de vida estudados anteriormente. Faça uma descrição do ciclo de vida que você criou.
Sistematização
Chegamos ao final da disciplina. Agora é hora de colocar em prática o aprendizado adquirido durante as aulas.
acha que elas são aplicadas uniformemente em todo o processo ou são mais concentradas em uma ou
2. Dentre os processos de software estudados em aula, qual deles lhe dá mais flexibilidade para mudar
3. Uma organização de desenvolvimento de software deveria adotar um único modelo de processo para
5. Descreva como a atividade guarda-chuva de garantia da qualidade pode apoiar cada uma das
(*) Algumas questões foram baseadas nos livros de Pressman (2006) e Pfleeger (2004).
Referências
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR ISO/IEC 12207:1998. Tecnologia da Informação –
Avaliação, versão 1.2, junho 2007. Disponível em: www.softex.br Acesso em: 20 fev. 2008.
KAN, M. Stephen. Metrics and models in software quality engineering. 2nd ed., Addison-Wesley, 2003.
PÁDUA, Wilson de Paula. Engenharia de software: fundamentos, métodos e padrões. 1. ed. LTC, 2001.
SEI. SOFTWARE ENGINEERING INSTITUTE. CMMI for Development (CMMI-DEV), Version 1.2, Technical report
CMU/SEI-2006-TR-008. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2006.
Glossário
Ação corretiva – Ato ou ação utilizados para remediar uma situação, remover um erro ou ajustar uma
condição.
Análise de valor agregado – É uma medida de progresso. Ela permite avaliar a “porcentagem de execução”
Arcabouço de processo – Estabelece o alicerce para um processo de software completo pela identificação de
conjunto de atividades guarda-chuva que são aplicáveis durante todo o processo de software.
Atividade guarda-chuva – Atividades que são aplicadas durante todo o processo de software.
CMMI (Capability Matury Model Integration) – Metamodelo de processo, desenvolvido pelo SEI (Software
Engineering Institute), baseado em um conjunto de capacidades de engenharia de software que devem estar
presentes à medida que as empresas alcançam diferentes níveis de capacidade e maturidade de processo.
D
Desenvolvedor – É a empresa, organização ou pessoa que está construindo o sistema de software para o
cliente. Pessoa responsável pelo desenvolvimento da funcionalidade necessária do software, de acordo com os
procedimentos e os padrões adotados no projeto. Isto inclui a realização de atividades em qualquer uma das
Ferramenta – É um instrumento ou sistema automatizado utilizado para realizar uma tarefa. Fornece apoio
Impacto (de riscos) – É a quantidade de danos (ou ganhos) que um evento de risco representa para um
projeto.
software.
Joint Application Develpment (JAD) – É uma técnica estruturada de condução de reuniões, aplicável a
Procedimentos – Combinam as ferramentas e os métodos para que eles produzam um determinado resultado.
Processo de software – Uma série de passos previsíveis – um roteiro que ajuda criar, a tempo, um resultado
Software – É o produto que os profissionais de software constroem e, depois, mantêm ao longo do tempo.
São: (1) instruções (programas de computadores) que quando executadas fornecem características, funções e
desempenhos desejados; (2) estruturas de dados que permitem aos programas manipular adequadamente a
Técnica – É como fazer para construir softwares; abrange tarefas que incluem comunicação, análise de