Você está na página 1de 49

Jovens

programando
Guia de programação para o ensino médio

Arquitetura de sistemas
Conteúdos 2. Arquitetura de Sistemas
2.1.Introdução e conceitos de análise de
sistemas e projetos
2.2.Modelos de ciclo de vida de sistema
2.3.Estudo de viabilidade
2.4.Especificação de requisitos
2.5.Estudos de cenários e a utilização
casos de uso relativos ao negócio do
cliente
2.6.Introdução aos processos de software
Arquitetura de Sistemas

A arquitetura de sistemas é uma área essencial no desenvolvimento de software e


tecnologia da informação. Ela é responsável por definir a estrutura do sistema, ou
seja, como as diferentes partes do sistema se relacionam e se comunicam entre si. A
arquitetura de sistemas é fundamental para garantir a qualidade, escalabilidade,
segurança e manutenibilidade dos sistemas de software.
Aqui estão alguns conceitos fundamentais da arquitetura de sistemas:
Componentização: a ideia de dividir o sistema em partes menores e independentes,
facilitando a manutenção, reuso e escalabilidade.
Modularidade: a capacidade de agrupar componentes em módulos, com interfaces
claras e bem definidas, para facilitar o desenvolvimento colaborativo e o
gerenciamento de complexidade.
Arquitetura em camadas: a divisão do sistema em camadas, onde cada camada tem
uma função específica, como interface do usuário, lógica de negócio e acesso a dados.
Arquitetura orientada a serviços: a ideia de expor funcionalidades do sistema
como serviços, com interfaces padronizadas e independentes de tecnologia,
permitindo a integração com outros sistemas.
Padrões de projeto: soluções comprovadas para problemas comuns na arquitetura
de sistemas, como o padrão MVC (Model-View-Controller) para separação de
responsabilidades em aplicações web.
Níveis de abstração
A arquitetura de sistemas pode ser vista de diferentes maneiras, chamadas de níveis
de abstração. Isso significa que podemos ter diferentes visões de um mesmo sistema,
cada uma com um nível de detalhamento diferente.

O primeiro nível é chamado de arquitetura de alto nível. Nessa visão, não entramos
em detalhes técnicos, mas temos uma visão geral do sistema, que serve para
comunicar a ideia para todas as pessoas envolvidas no projeto. É como um mapa que
mostra as principais partes do sistema, sem se aprofundar em detalhes. Para isso,
podemos usar diagramas de blocos e diagramas de contexto.

O segundo nível é a arquitetura de nível médio. Nessa visão, já entramos em mais


detalhes técnicos, mas ainda sem se aprofundar em como o sistema será
implementado. É como um mapa que mostra as partes do sistema em mais detalhes,
mas sem mostrar como elas funcionam juntas. Para isso, podemos usar diagramas
de componentes e diagramas de fluxo de dados.

O terceiro nível é a arquitetura de baixo nível. Nessa visão, já entramos em detalhes


técnicos muito específicos, como a linguagem de programação a ser usada e outras
questões técnicas importantes. É como um mapa que mostra todos os detalhes do
sistema, com as especificações necessárias para a implementação. Para isso,
podemos usar diagramas de classes, diagramas de sequência e diagramas de
estados.

É importante que os arquitetos de software sejam capazes de trabalhar em todos


esses níveis de abstração para poderem se comunicar com eficácia com todas as
partes envolvidas no projeto e fornecer soluções arquiteturais de qualidade. Isso
significa que os arquitetos precisam saber como usar diferentes tipos de diagramas
e técnicas para mostrar diferentes visões do sistema, desde uma visão geral até os
detalhes técnicos necessários para a implementação.
Vantagens

A arquitetura de sistemas é uma área de estudo que busca compreender, modelar e


projetar sistemas complexos, levando em conta os aspectos técnicos, funcionais e
organizacionais envolvidos. Esta abordagem oferece diversas vantagens para a
construção e manutenção de sistemas, e pode ser especialmente útil para estudantes
do ensino médio que estão se preparando para ingressar na área de tecnologia.

A seguir, apresentamos algumas das principais vantagens da arquitetura de


sistemas:

1. Compreensão do sistema como um todo: a arquitetura de sistemas


permite visualizar o sistema como um todo, levando em consideração todas
as suas partes e a forma como elas se relacionam. Isso é fundamental para
identificar possíveis problemas e para realizar melhorias no sistema como
um todo.
2. Melhoria da qualidade do sistema: ao adotar uma abordagem
arquitetônica, é possível projetar sistemas com uma maior qualidade,
levando em conta aspectos como a escalabilidade, a segurança, a
disponibilidade e a facilidade de manutenção.
3. Reutilização de componentes: a arquitetura de sistemas permite que os
componentes do sistema sejam projetados para serem reutilizáveis em
diferentes contextos, o que reduz o tempo e o custo de desenvolvimento de
novos sistemas.
4. Facilidade de manutenção: um sistema bem projetado com uma
arquitetura clara e bem definida é mais fácil de ser mantido, pois permite
identificar rapidamente os problemas e realizar mudanças sem afetar outras
partes do sistema.
5. Integração de sistemas: a arquitetura de sistemas permite integrar
diferentes sistemas de forma mais fácil e eficiente, permitindo que empresas
e organizações obtenham maior eficiência e reduzam seus custos.
6. Redução de custos e tempo de desenvolvimento: uma abordagem
arquitetônica pode reduzir os custos e o tempo de desenvolvimento de
sistemas, pois permite que os desenvolvedores trabalhem de forma mais
organizada e eficiente.
7. Flexibilidade e adaptação: uma arquitetura de sistemas bem projetada
permite que o sistema seja flexível e se adapte a novas demandas e mudanças
no ambiente em que está inserido.

Exemplos
1. Um sistema de reservas de passagens aéreas: este sistema deve ser capaz
de lidar com um grande volume de transações simultâneas, gerenciar o fluxo
de informações entre as companhias aéreas e os clientes, além de garantir a
segurança e a privacidade dos dados dos usuários. A arquitetura desse
sistema pode ser dividida em diferentes camadas, Abaixo, uma ilustração
simples de como as camadas podem ser distribuídas:
Para aquecer

Uma atividade interessante para introduzir a turma do ensino médio à arquitetura


de sistemas é um jogo de quebra-cabeça de arquitetura.
1. Divida a turma em grupos de 3 ou 4 alunos e forneça a cada grupo um
conjunto de peças de quebra-cabeça que representam componentes de um
sistema de software, como bancos de dados, servidores de aplicativos,
interfaces de usuário, etc.
2. Explique que cada grupo deve trabalhar juntos para montar um sistema de
software usando suas peças de quebra-cabeça. Eles devem se comunicar e
colaborar para garantir que cada componente esteja conectado corretamente
e que o sistema esteja funcionando adequadamente.
3. Depois que cada grupo tiver concluído seu quebra-cabeça, permita que eles
apresentem sua solução para a classe e expliquem como eles organizaram os
componentes e por que tomaram as decisões de design que tomaram.
Essa atividade pode ajudar os alunos a visualizar os componentes de um sistema de
software e a compreender como eles se encaixam. Além disso, pode encorajá-los a
trabalhar em equipe e a se comunicar efetivamente para resolver problemas de
arquitetura de software.

Componentes para colocar na dinâmica:


• Servidores de banco de dados
• Servidores de aplicativos
• Interfaces de usuário
• Dispositivos de armazenamento
• Servidores web
• Firewall
• Roteadores
• Switches
• Balanceadores de carga
• Protocolos de comunicação
Lembre-se de que você pode incluir qualquer componente que seja relevante para o
sistema que você deseja que os alunos construam, dependendo do escopo e dos
objetivos da atividade. Além disso, você pode personalizar o conjunto de peças de
quebra-cabeça com base no conhecimento prévio dos alunos sobre arquitetura de
sistemas.

Ponto de atenção
A dinâmica de quebra-cabeça de arquitetura de sistemas é uma atividade criativa e
flexível, não há uma resposta única sobre como as peças de quebra-cabeça devem
ser organizadas. Cada grupo pode ter sua própria abordagem para montar o sistema
de software, e isso pode depender do conjunto de peças de quebra-cabeça fornecido
e dos objetivos específicos da atividade.
Por exemplo, um grupo pode decidir que o servidor de banco de dados é o
componente principal do sistema e, portanto, colocar essa peça no centro do quebra-
cabeça. Em seguida, eles podem adicionar os outros componentes ao redor do
servidor de banco de dados, organizando-os de acordo com as conexões e interações
necessárias.
Outro grupo pode decidir que a interface do usuário é o componente mais
importante e, portanto, começar a construir o sistema a partir dessa peça. Eles
podem, então, adicionar os outros componentes ao redor da interface do usuário, de
modo a apoiar as funções e recursos exigidos por ela.
O importante é permitir que os alunos tenham a liberdade de explorar diferentes
abordagens e soluções para o desafio de construir um sistema de software com as
peças de quebra-cabeça fornecidas. No final, a discussão e a troca de ideias entre os
grupos podem ser tão valiosas quanto o resultado final do quebra-cabeça.
Introdução e conceitos de análise de
sistemas e projetos

A análise de sistemas e projetos é uma área fundamental para o desenvolvimento


de sistemas e softwares. De forma simplificada, pode-se dizer que a análise de
sistemas é o processo de compreender o problema que um sistema deve resolver
e de identificar quais as funções que esse sistema precisa ter para atender às
necessidades dos usuários.
Em outras palavras, a análise de sistemas é a etapa em que se estuda e
compreende a situação atual de um sistema, identificando problemas e
oportunidades de melhoria. A partir dessas informações, são definidos os
requisitos e as funcionalidades que o sistema deverá ter para atender aos
objetivos dos usuários.
Já o projeto de sistemas é o processo de criação do design e da estrutura do
sistema, com base nos requisitos e funcionalidades identificados na análise. É
nesta etapa que se define como o sistema funcionará, como as informações serão
armazenadas e como os diferentes componentes se comunicarão entre si.
Em resumo, a análise e o projeto de sistemas são etapas essenciais no
desenvolvimento de sistemas e softwares, permitindo que sejam construídos
sistemas eficientes, seguros e que atendam às necessidades dos usuários. A
análise e o projeto adequados também são importantes para garantir que o
sistema seja escalável e possa ser mantido e atualizado de forma fácil e
econômica ao longo do tempo.

Conceito
A análise de sistemas e projetos é uma disciplina chave em engenharia de
software e é fundamental para o desenvolvimento de sistemas e softwares.
Vamos explorar cada um desses conceitos com mais detalhes e fornecer
exemplos práticos de como eles são aplicados.
Análise de Sistemas:
A análise de sistemas é o processo de compreender o problema que um sistema
deve resolver e de identificar quais as funções que esse sistema precisa ter para
atender às necessidades dos usuários. Nesta etapa, é fundamental entender
como os usuários interagem com o sistema e quais são os seus requisitos. Por
exemplo, imagine que uma empresa deseja desenvolver um novo sistema de
vendas online. A análise de sistemas pode começar com a realização de
entrevistas com vendedores e clientes para entender suas necessidades e
expectativas. A partir dessas informações, é possível identificar quais as
funcionalidades que o novo sistema precisa ter, tais como registro de pedidos,
processamento de pagamentos e histórico de compras.

Outros exemplos:
1. Sistema de gerenciamento de estoque: imagine que uma empresa deseja
desenvolver um novo sistema de gerenciamento de estoque. A análise de
sistemas pode começar com a realização de entrevistas com funcionários do
setor de estoque para entender suas necessidades e desafios. Com base
nessas informações, é possível identificar as funcionalidades que o novo
sistema deve ter, como o controle de entrada e saída de produtos, o cálculo
do estoque disponível e a possibilidade de gerar relatórios de estoque.
2. Sistema de reserva de hotel: ao desenvolver um sistema de reserva de
hotel, a análise de sistemas pode envolver a realização de entrevistas com
clientes e funcionários de hotéis para entender suas necessidades e
preferências. A partir dessas informações, é possível identificar as
funcionalidades que o novo sistema deve ter, como a possibilidade de
pesquisa por datas e localização, visualização de fotos dos quartos
disponíveis, seleção de opções de pagamento e a geração de um comprovante
de reserva.
3. Sistema de controle de acesso: ao desenvolver um sistema de controle de
acesso, a análise de sistemas pode envolver a realização de entrevistas com
os usuários do sistema para entender como o controle de acesso é realizado
atualmente e quais as dificuldades enfrentadas. A partir dessas informações,
é possível identificar as funcionalidades que o novo sistema deve ter, como o
registro de entradas e saídas de pessoas, verificação de credenciais de acesso
e a possibilidade de geração de relatórios de atividades.
4. Sistema de atendimento ao cliente: ao desenvolver um sistema de
atendimento ao cliente, a análise de sistemas pode envolver a realização de
entrevistas com os clientes para entender suas necessidades e expectativas
em relação ao atendimento. A partir dessas informações, é possível
identificar as funcionalidades que o novo sistema deve ter, como a
possibilidade de abrir um chamado de suporte, o acompanhamento do status
do chamado e a geração de feedback após a conclusão do atendimento.

Aplicação no dia a dia

É possível aplicar a análise de sistemas no dia a dia utilizando desenhos e escrita.


Aqui estão algumas dicas de como fazer isso:
1. Crie um fluxograma: um fluxograma é uma representação visual do
processo que está sendo analisado. Para criar um fluxograma, desenhe os
diferentes passos do processo e conecte-os com setas que indicam a
sequência em que as etapas são realizadas. Escreva uma breve descrição de
cada passo ao lado do desenho.
2. Faça anotações: enquanto estiver analisando um processo, faça anotações
sobre as etapas envolvidas e as informações relevantes. Você pode usar uma
folha de papel para fazer esboços e anotações, ou utilizar um software de
diagramação para criar um diagrama mais profissional.
3. Identifique problemas e oportunidades de melhoria: ao analisar um
processo, tente identificar problemas ou gargalos que estejam afetando a
eficiência ou a qualidade. Também é importante estar atento a
oportunidades de melhoria, como a automação de tarefas repetitivas ou a
simplificação de etapas complexas.
4. Compartilhe sua análise: depois de concluir sua análise de sistemas,
compartilhe seus desenhos e anotações com outras pessoas envolvidas no
processo. Isso pode incluir colegas de trabalho, clientes ou gerentes. Use suas
anotações e desenhos para explicar sua análise e suas conclusões de forma
clara e concisa.
Ao aplicar a análise de sistemas no dia a dia, é importante lembrar que a chave para
o sucesso é manter-se focado nas necessidades dos usuários e nas metas do projeto.
Com a prática, você pode desenvolver habilidades de análise e resolução de
problemas que podem ser aplicadas em muitas áreas diferentes da vida.

Possíveis problemas
Existem vários possíveis problemas que podem surgir durante a análise de sistemas.
Alguns desses problemas incluem:
1. Falta de compreensão dos requisitos do usuário: se a equipe de análise
não entender completamente o que o usuário precisa, o sistema pode não
atender às suas expectativas e necessidades. Isso pode resultar em um
sistema ineficiente, ou até mesmo em um sistema que não é utilizado.
2. Mudanças frequentes nos requisitos do usuário: se os requisitos do
usuário mudarem com frequência, isso pode atrasar o processo de análise e
desenvolvimento, além de aumentar os custos. É importante estabelecer uma
comunicação clara com o usuário para entender suas necessidades e
minimizar as mudanças de requisitos.
3. Falta de alinhamento com os objetivos de negócios: se o sistema não
estiver alinhado com os objetivos de negócios da organização, ele pode não
ser eficaz ou não agregar valor aos processos existentes. É importante
considerar os objetivos de negócios ao analisar e desenvolver o sistema.
4. Falta de coordenação entre a equipe de análise e desenvolvimento: se a
equipe de análise e a equipe de desenvolvimento não trabalharem em
conjunto de forma eficiente, pode haver atrasos, erros e falta de qualidade no
sistema desenvolvido.
5. Falta de consideração de fatores externos: é importante considerar
fatores externos, como regulamentações e normas de segurança, ao analisar
e desenvolver o sistema. Caso contrário, o sistema pode não estar em
conformidade com essas normas e regulamentações, o que pode levar a
problemas legais e de segurança.
6. Falta de documentação adequada: é importante documentar todo o
processo de análise de sistemas de forma clara e detalhada. A falta de
documentação pode levar a problemas de comunicação e dificultar a
manutenção e a evolução do sistema no futuro.
Esses são apenas alguns dos possíveis problemas que podem surgir durante a
análise de sistemas. É importante estar ciente desses problemas e tomar medidas
para mitigá-los durante o processo de análise e desenvolvimento do sistema.

Projeto de Sistemas:
Segunda etapa, depois da análise. O resultado principal da fase de projeto de
sistemas é um projeto técnico que detalha as saídas, as entradas, as interfaces.
Especificando o hardware, o software, o banco de dados,
as telecomunicações, a equipe e os procedimentos de um sistema.
Existem dois aspectos fundamentais a serem considerados: projeto lógico e
projeto físico.
O projeto lógico do sistema está relacionado ao que o sistema fará.
O projeto físico, mostra como as tarefas serão executadas, como os
componentes funcionarão de forma conjunta ou em separado.
No projeto são tomadas decisões de alto nível sobre como resolver o problema.
Exemplo de decisões:
• Divisão do sistema em subsistemas.
• Projeto de Interface com usuário
• Especificações de cronograma
• Detalhamento de custos do projeto
• Divisão de tarefas

Exemplos:
Um projeto de sistemas pode ser de diferentes tipos e ter diferentes objetivos,
dependendo das necessidades e objetivos da organização. Abaixo, seguem alguns
exemplos de projetos de sistemas:
1. Implementação de um sistema de gestão de vendas: esse projeto pode ter
como objetivo melhorar a eficiência e a eficácia dos processos de vendas da
empresa. O sistema pode incluir funcionalidades como gestão de leads,
gestão de oportunidades de vendas, gestão de clientes, gestão de pedidos e
gestão de relatórios de vendas.
2. Desenvolvimento de um sistema de gestão de estoque: esse projeto pode
ter como objetivo melhorar a gestão do estoque da empresa, controlando as
entradas e saídas de produtos, gerenciando o estoque disponível e enviando
alertas quando o estoque atingir um nível crítico. O sistema pode incluir
funcionalidades como gestão de categorias de produtos, gestão de
fornecedores, controle de estoque e geração de relatórios de estoque.
3. Criação de um sistema de gestão de recursos humanos: esse projeto pode
ter como objetivo melhorar a gestão dos recursos humanos da empresa,
gerenciando informações dos funcionários como dados pessoais, cargos,
salários, benefícios e histórico profissional. O sistema pode incluir
funcionalidades como gestão de currículos, gestão de processos seletivos,
gestão de avaliação de desempenho e geração de relatórios de recursos
humanos.
4. Desenvolvimento de um sistema de gestão financeira: esse projeto pode
ter como objetivo melhorar a gestão financeira da empresa, controlando as
receitas e despesas, gerenciando contas bancárias e realizando a conciliação
bancária. O sistema pode incluir funcionalidades como gestão de contas a
pagar e a receber, gestão de fluxo de caixa e geração de relatórios financeiros.

Exercícios de fixação

1. O que é análise de sistemas?


2. Quais são os objetivos da análise de sistemas?
3. Cite três possíveis problemas que podem surgir durante a análise de
sistemas.
4. Dê três exemplos de projetos de sistemas.

Respostas:
1. Análise de sistemas é o processo de analisar as necessidades e objetivos de
uma organização e desenvolver soluções de sistemas para atender a essas
necessidades e objetivos. A análise de sistemas envolve a identificação de
requisitos, a análise de processos e a modelagem de sistemas.
2. Os objetivos da análise de sistemas são:
• Identificar e definir as necessidades e objetivos da organização.
• Identificar as áreas que precisam de melhorias nos processos.
• Definir as especificações e requisitos do sistema.
• Desenvolver soluções de sistemas que atendam aos requisitos da
organização.
• Garantir que o sistema desenvolvido seja eficiente, eficaz e atenda às
necessidades do usuário.
3. Possíveis problemas que podem surgir durante a análise de sistemas
incluem:
• Falta de compreensão dos requisitos do usuário.
• Mudanças frequentes nos requisitos do usuário.
• Falta de alinhamento com os objetivos de negócios.
• Falta de coordenação entre a equipe de análise e desenvolvimento.
• Falta de consideração de fatores externos.
• Falta de documentação adequada.
4. Exemplos de projetos de sistemas incluem:
• Implementação de um sistema de gestão de vendas.
• Desenvolvimento de um sistema de gestão de estoque.
• Criação de um sistema de gestão de recursos humanos.
• Desenvolvimento de um sistema de gestão financeira.
• Desenvolvimento de um sistema de monitoramento de produção.
• Criação de um sistema de atendimento ao cliente.
Modelos de ciclo de vida de um sistema

O ciclo de vida de um sistema é o processo pelo qual um sistema de software é


desenvolvido, desde a concepção até a sua desativação. O ciclo de vida é composto
por diferentes etapas, cada uma com seus próprios objetivos, atividades e
entregáveis. Entender o ciclo de vida de um sistema é importante para o
desenvolvimento de sistemas de qualidade que atendam às necessidades dos
usuários e da organização. Abaixo estão as principais etapas do ciclo de vida de um
sistema:
1. Análise de requisitos: Esta é a primeira etapa do ciclo de vida de um
sistema, onde os requisitos do sistema são identificados e definidos. Nesta
etapa, os analistas de sistemas trabalham com os usuários finais e as partes
interessadas para entender os requisitos do sistema e documentá-los de
forma clara e completa. O resultado dessa fase é a documentação de
requisitos, que inclui a descrição das funcionalidades e características que o
sistema deve ter.
2. Projeto: A etapa de projeto é onde o sistema é projetado de acordo com os
requisitos documentados na etapa anterior. Nesta etapa, os analistas de
sistemas definem a arquitetura do sistema, selecionam tecnologias
apropriadas e projetam a interface do usuário. O resultado dessa fase é o
projeto detalhado do sistema.
3. Implementação: A etapa de implementação é onde o sistema é realmente
construído. O código-fonte é escrito, os componentes do sistema são
integrados e os testes são executados. Esta etapa também envolve o
treinamento dos usuários finais e a instalação do sistema em produção.
4. Testes: A etapa de testes é onde o sistema é testado para garantir que ele
atenda aos requisitos especificados na etapa de análise de requisitos. Os
testes incluem testes de unidade, testes de integração e testes de aceitação.
O objetivo é detectar e corrigir defeitos no sistema antes de ser colocado em
produção.
5. Implantação: A etapa de implantação é onde o sistema é colocado em
produção e está disponível para uso pelos usuários finais. A implantação
pode envolver a migração de dados do sistema antigo para o novo sistema e
a configuração do ambiente de produção.
6. Manutenção: A etapa de manutenção é onde o sistema é mantido em
funcionamento e atualizado. Isso inclui correções de bugs, atualizações de
segurança e melhorias de desempenho. A manutenção pode ser corretiva,
preventiva ou evolutiva.
7. Desativação: A etapa final do ciclo de vida de um sistema é a desativação,
onde o sistema é retirado de produção. Isso pode ocorrer quando o sistema
é substituído por um novo sistema, ou quando o sistema se torna obsoleto ou
não é mais necessário.
Conhecer o ciclo de vida de um sistema é importante para garantir que os sistemas
sejam desenvolvidos de maneira eficiente e eficaz. O ciclo de vida permite que as
organizações gerenciem o desenvolvimento e a manutenção de seus sistemas de
forma estruturada, o que leva a sistemas de qualidade que atendem às necessidades
dos usuários e da organização.
Além das etapas mencionadas anteriormente, existem algumas outras atividades
importantes que podem ocorrer em diferentes fases do ciclo de vida de um sistema:
1. Revisões: As revisões são atividades que ocorrem em todas as fases do ciclo
de vida e têm como objetivo garantir a qualidade do sistema em
desenvolvimento. Isso inclui revisões de documentos, código-fonte e testes.
As revisões são realizadas por uma equipe de revisão, que pode incluir outros
analistas de sistemas, desenvolvedores e usuários finais.
2. Gerenciamento de configuração: O gerenciamento de configuração é uma
atividade que envolve o controle e gerenciamento de mudanças em todos os
itens relacionados ao sistema, incluindo código-fonte, documentação e
dados. Isso é importante para garantir que todas as mudanças no sistema
sejam rastreadas e controladas de forma adequada.
3. Gerenciamento de projetos: O gerenciamento de projetos é uma atividade
que envolve o planejamento, monitoramento e controle de um projeto de
desenvolvimento de sistema. Isso inclui a definição de objetivos,
cronogramas, orçamentos e recursos necessários para o projeto.
4. Manutenção corretiva: A manutenção corretiva é uma atividade que
envolve a correção de problemas identificados no sistema após sua
implantação. Isso pode incluir correções de bugs, atualizações de segurança
e reparos em hardware.
5. Manutenção preventiva: A manutenção preventiva é uma atividade que
envolve a manutenção regular do sistema para garantir que ele esteja
funcionando corretamente. Isso pode incluir limpeza de hardware,
atualizações de software e backups regulares.
Exemplos de ciclo de vida de um sistema incluem o ciclo de vida em cascata, modelo
em espiral e modelo ágil. O modelo em cascata é um modelo linear de
desenvolvimento de software, onde cada etapa é concluída antes de passar para a
próxima. O modelo em espiral é um modelo iterativo de desenvolvimento de
software, onde as etapas são repetidas várias vezes para refinar o sistema. O modelo
ágil é um modelo iterativo e incremental de desenvolvimento de software, que se
concentra na entrega de software funcional em ciclos curtos.
Em resumo, o ciclo de vida de um sistema é uma estrutura que ajuda as organizações
a gerenciar o desenvolvimento e a manutenção de seus sistemas de software. Ele
inclui várias etapas e atividades, cada uma com seus próprios objetivos e
entregáveis. O conhecimento do ciclo de vida do sistema é essencial para o sucesso
do desenvolvimento de software e ajuda a garantir a qualidade e a eficácia dos
sistemas em uso.
Segundo Dennis, Wixom e Roth (2014), o ciclo de vida para a criação de um sistema
de informação assemelha-se muito com a construção de uma casa, sendo realizado
em fases (etapas que devem ser seguidas quando se cria um produto de software).
Primeiramente o proprietário descreve a visão da casa para o projetista. Em seguida,
essa ideia é colocada na forma de desenhos e mostrada ao proprietário até ele
concordar que as ilustrações refletem o que ele necessita. Na sequência, são
desenvolvidos conjuntos de plantas detalhadas, apresentando informações
específicas sobre a casa (posição dos quartos, localização dos aparelhos hidráulicos,
tomadas etc.) e, por fim, a casa é erguida de acordo com essas plantas, podendo
sofrer algumas alterações enquanto está sendo construída. Construir um sistema de
informações segue um conjunto de quatro fases fundamentais: planejamento,
análise, projeto e implementação (DENNIS; WIXOM; ROTH, 2014).
Exemplo de solicitação para início de
projeto
De acordo com Pressman e Maxim (2016), o projeto de software inclui um conjunto
de princípios, conceitos e práticas, que levam ao desenvolvimento de um sistema ou
produto de alta qualidade, sendo o guia de trabalho que devemos desempenhar. A
atividade de projeto é crucial para uma engenharia de software bem-sucedida.
Segundo Dennis, Wixom e Roth (2014), um projeto é identificado quando alguém
reconhece a necessidade da empresa ou do negócio de construir um sistema. As
necessidades podem incluir um novo tipo de cliente ou algum ponto de insatisfação
dentro da organização, tais como: perda de mercado, taxas inaceitáveis de defeitos
em produtos, aumento da concorrência ou por meio da identificação e uso da TI
como estratégia competitiva.
Quando a necessidade de projeto é reconhecida pela empresa, surge uma pessoa (ou
grupo de pessoas) com interesse no sucesso do sistema. Esta pessoa ou grupo de
pessoas são os patrocinadores (sponsors). O patrocinador tem por objetivo garantir
que o projeto está na direção correta e é o principal contato com a equipe de projeto.
Uma vez determinado o patrocinador, a solicitação do sistema é documentada,
descrevendo os motivos que levam a empresa a construir o sistema e o valor
esperado que ele irá custar. Normalmente este documento é composto de cinco
elementos (DENNIS; WIXOM; ROTH, 2014):
• Patrocinador do projeto: pessoa que inicia o projeto e serve como ponto principal
de contrato no lado comercial. Exemplos: Gerente de TI, CIO, CEO etc.
• Necessidade de negócio: o motivo relacionado à atividade empresarial para o
sistema ser iniciado. Exemplos: aumento das vendas; melhoria da fatia de mercado;
diminuição dos defeitos nos produtos etc.
• Requisitos do negócio: capacidades empresarias que o sistema fornecerá.
Exemplos: fornecer acesso on-line às informações; produzir relatórios de gestão;
incluir suporte on-line aos clientes etc.
• Valor do negócio: vantagens que o sistema criará para a organização. Exemplos:
aumento de 3% nas vendas; economia de custos; redução das horas trabalhadas etc.
• Restrições: questões importantes e pertinentes à implementação do sistema e
que precisam ser conhecidas para aprovação. Exemplos: prazo final em 30 de maio
de 2018; necessidade que o sistema esteja pronto a tempo para o natal, etc
Atividade
Atividade 1:
Qual é o objetivo da etapa de análise de requisitos no ciclo de vida de um sistema?
Resposta: O objetivo da etapa de análise de requisitos é entender as necessidades do
usuário final e definir os requisitos do sistema que serão usados para orientar todo o
processo de desenvolvimento.
Atividade 2:
Quais são as principais etapas do ciclo de vida de um sistema?
Resposta: As principais etapas do ciclo de vida de um sistema incluem análise de
requisitos, design do sistema, implementação, teste e manutenção.
Atividade 3:
Por que o gerenciamento de configuração é importante no ciclo de vida de um
sistema?
Resposta: O gerenciamento de configuração é importante porque ajuda a garantir que
todas as mudanças no sistema sejam rastreadas e controladas de forma adequada. Isso
ajuda a evitar problemas com a integridade do sistema e também ajuda a garantir que
todas as alterações sejam documentadas e revertidas, se necessário.
Atividade 4:
Quais são os modelos de ciclo de vida mais comuns para o desenvolvimento de
software?
Resposta: Os modelos de ciclo de vida mais comuns são o modelo em cascata, o modelo
em espiral e o modelo ágil. O modelo em cascata é um modelo linear de
desenvolvimento de software, onde cada etapa é concluída antes de passar para a
próxima. O modelo em espiral é um modelo iterativo de desenvolvimento de software,
onde as etapas são repetidas várias vezes para refinar o sistema. O modelo ágil é um
modelo iterativo e incremental de desenvolvimento de software, que se concentra na
entrega de software funcional em ciclos curtos.
Atividade 5:
Qual é a diferença entre manutenção corretiva e manutenção preventiva em relação
ao ciclo de vida de um sistema?
Resposta: A manutenção corretiva é uma atividade que envolve a correção de
problemas identificados no sistema após sua implantação, enquanto a manutenção
preventiva é uma atividade que envolve a manutenção regular do sistema para
garantir que ele esteja funcionando corretamente. A manutenção corretiva é uma
resposta a problemas existentes, enquanto a manutenção preventiva é realizada para
evitar problemas futuros.
Estudo de viabilidade

Uma das principais etapas do desenvolvimento de sistemas é o estudo de


viabilidade, que tem como objetivo determinar se o sistema é viável, ou seja, se pode
ser desenvolvido dentro do orçamento, prazo e requisitos definidos. Nesta apostila,
abordaremos os principais conceitos e técnicas relacionados ao estudo de
viabilidade na arquitetura de sistemas.
Viabilidade é a capacidade de um sistema ser desenvolvido com sucesso dentro dos
recursos e prazos definidos. O estudo de viabilidade é um processo que envolve a
análise de diversos fatores que podem afetar o desenvolvimento do sistema, como
orçamento, recursos, requisitos, cronograma, riscos e benefícios.
Existem diferentes tipos de estudos de viabilidade, que podem ser realizados em
diferentes momentos do projeto. Entre os principais tipos, destacam-se:
• Viabilidade técnica: A viabilidade técnica é um tipo de estudo de viabilidade que
avalia a capacidade técnica da equipe de desenvolvimento para realizar o projeto. É
importante lembrar que a tecnologia é uma área que está sempre em constante
evolução e, portanto, é fundamental avaliar se a equipe tem as habilidades técnicas
necessárias para implementar o sistema.

Para realizar uma avaliação de viabilidade técnica, é necessário considerar


diversos fatores, como:
• Conhecimento técnico da equipe: é importante avaliar se a equipe
possui conhecimentos suficientes em linguagens de programação,
arquiteturas de sistemas, tecnologias, metodologias e padrões de
desenvolvimento.
• Capacidade de implementação: é necessário avaliar se a equipe
possui as habilidades necessárias para implementar as
funcionalidades requeridas pelo sistema. Isso inclui habilidades
técnicas, como programação, design de banco de dados, integração de
sistemas, entre outros.
• Escalabilidade: é importante avaliar se o sistema é escalável, ou seja,
se pode lidar com aumento de tráfego e usuários. Uma arquitetura de
sistemas que não é escalável pode causar problemas futuros, como
lentidão e queda do sistema.
• Manutenção e suporte: é necessário avaliar se a equipe tem a
capacidade de fornecer manutenção e suporte ao sistema após sua
implementação. Isso inclui a capacidade de corrigir bugs, atualizar o
sistema, adicionar novas funcionalidades e fornecer suporte aos
usuários.
• Compatibilidade: é importante avaliar se o sistema é compatível com
outras tecnologias e sistemas já existentes na empresa.
Ao realizar uma avaliação de viabilidade técnica, a equipe de desenvolvimento
pode identificar possíveis problemas técnicos que possam afetar o sucesso do
projeto. Com essa avaliação, é possível ajustar o escopo do projeto, adicionar
recursos técnicos à equipe ou procurar terceirizar certas partes do projeto para
garantir sua viabilidade técnica.
A viabilidade técnica é um tipo importante de estudo de viabilidade na
arquitetura de sistemas. É fundamental avaliar se a equipe de desenvolvimento
possui as habilidades técnicas necessárias para implementar o sistema, se o
sistema é escalável e compatível com outras tecnologias e sistemas existentes e
se a equipe tem a capacidade de fornecer manutenção e suporte ao sistema após
sua implementação. Com uma avaliação de viabilidade técnica bem-sucedida, é
possível garantir o sucesso do projeto e reduzir riscos e custos ao longo do
desenvolvimento.

• Viabilidade operacional: A viabilidade operacional é outro tipo de estudo de


viabilidade que avalia a capacidade da empresa de operar o sistema após sua
implementação. Esse tipo de estudo leva em consideração os processos
operacionais existentes na empresa e avalia se o sistema pode ser integrado com
esses processos de forma eficiente.

Ao realizar uma avaliação de viabilidade operacional, é necessário considerar


os seguintes fatores:
• Processos operacionais: é importante avaliar como o sistema será
integrado aos processos operacionais da empresa. Isso inclui a análise da
cadeia de valor, dos fluxos de trabalho e dos sistemas e processos existentes
na empresa.
• Treinamento: é necessário avaliar se a equipe da empresa tem o
conhecimento e as habilidades necessárias para operar o sistema. Se for
necessário, deve-se fornecer treinamento para que a equipe possa usar o
sistema com eficiência.
• Recursos: é importante avaliar se a empresa tem os recursos necessários
para operar o sistema após sua implementação. Isso inclui recursos
humanos, financeiros e tecnológicos.
• Segurança: é necessário avaliar se o sistema é seguro e se atende aos
padrões de segurança exigidos pela empresa.
• Custos operacionais: é importante avaliar os custos operacionais
associados à operação do sistema, incluindo manutenção, suporte e
atualizações.
Ao realizar uma avaliação de viabilidade operacional, a equipe de
desenvolvimento pode identificar possíveis problemas operacionais que
possam afetar o sucesso do projeto. Com essa avaliação, é possível ajustar o
escopo do projeto, fornecer treinamento adicional para a equipe ou realizar
mudanças nos processos operacionais da empresa para garantir a viabilidade
operacional do sistema.
A viabilidade operacional é um tipo importante de estudo de viabilidade na
arquitetura de sistemas. É fundamental avaliar a capacidade da empresa de
operar o sistema após sua implementação, considerando os processos
operacionais existentes, a necessidade de treinamento para a equipe, os
recursos disponíveis, a segurança do sistema e os custos operacionais. Com
uma avaliação de viabilidade operacional bem-sucedida, é possível garantir
o sucesso do projeto e reduzir riscos e custos ao longo da operação do
sistema.
• Viabilidade econômica: A viabilidade econômica é um tipo de estudo de
viabilidade que avalia a capacidade do projeto de arquitetura de sistemas gerar
lucro ou reduzir custos para a empresa. Esse tipo de estudo leva em consideração o
investimento necessário para implementar o sistema e o retorno financeiro
esperado ao longo do tempo.

Ao realizar uma avaliação de viabilidade econômica, é necessário considerar


os seguintes fatores:
• Investimento inicial: é importante avaliar o custo inicial de
implementação do sistema, incluindo a aquisição de hardware,
software e o custo de desenvolvimento e implementação.
• Custo de operação: é necessário avaliar os custos operacionais
associados à operação do sistema, incluindo manutenção, suporte,
atualizações e treinamento.
• Retorno financeiro: é importante avaliar o retorno financeiro
esperado ao longo do tempo, levando em consideração os benefícios
econômicos do sistema, como aumento de receita, redução de custos
operacionais e melhoria na eficiência e produtividade.
• Tempo de retorno: é necessário avaliar o tempo necessário para
recuperar o investimento inicial, levando em consideração o fluxo de
caixa projetado.
• Riscos financeiros: é importante avaliar os riscos financeiros
associados à implementação do sistema, como mudanças no mercado,
mudanças regulatórias ou tecnológicas e possíveis falhas no sistema.
Ao realizar uma avaliação de viabilidade econômica, a equipe de
desenvolvimento pode identificar possíveis problemas financeiros que
possam afetar o sucesso do projeto. Com essa avaliação, é possível ajustar o
escopo do projeto, reduzir custos ou realizar mudanças no plano de negócios
para garantir a viabilidade econômica do sistema.
A viabilidade econômica é um tipo importante de estudo de viabilidade na
arquitetura de sistemas. É fundamental avaliar a capacidade do sistema de
gerar lucro ou reduzir custos para a empresa, considerando o investimento
inicial, os custos operacionais, o retorno financeiro esperado, o tempo de
retorno e os riscos financeiros associados. Com uma avaliação de viabilidade
econômica bem-sucedida, é possível garantir o sucesso do projeto e
maximizar o retorno sobre o investimento ao longo do tempo.
• Viabilidade legal: A viabilidade legal é um tipo de estudo de viabilidade que
avalia a conformidade do projeto de arquitetura de sistemas com as leis e
regulamentações aplicáveis. Esse tipo de estudo leva em consideração as leis,
normas e regulamentos locais, regionais e nacionais que afetam o projeto.
Ao realizar uma avaliação de viabilidade legal, é necessário considerar os
seguintes fatores:
• Legislação e regulamentação: é importante avaliar as leis e
regulamentações que afetam o projeto, incluindo leis de proteção de
dados, leis de privacidade, leis trabalhistas e regulamentações
ambientais.
• Conformidade com padrões: é necessário avaliar se o projeto
atende aos padrões e normas relevantes, como ISO, NIST, PCI DSS,
entre outros.
• Licenças e permissões: é importante avaliar se o projeto requer
licenças ou permissões especiais para operar, como licenças de
software, licenças ambientais ou permissões de construção.
• Proteção de dados: é necessário avaliar se o projeto atende aos
requisitos de proteção de dados e privacidade, como o Regulamento
Geral de Proteção de Dados (GDPR).
• Propriedade intelectual: é importante avaliar se o projeto respeita
os direitos de propriedade intelectual, como patentes, direitos
autorais e marcas registradas.
Ao realizar uma avaliação de viabilidade legal, a equipe de desenvolvimento
pode identificar possíveis problemas legais que possam afetar o sucesso do
projeto. Com essa avaliação, é possível ajustar o escopo do projeto, obter
licenças e permissões necessárias e realizar mudanças no projeto para
garantir a conformidade com as leis e regulamentações aplicáveis.
A viabilidade legal é um tipo importante de estudo de viabilidade na
arquitetura de sistemas. É fundamental avaliar a conformidade do projeto
com as leis e regulamentações aplicáveis, considerando a legislação e
regulamentação, a conformidade com padrões, as licenças e permissões
necessárias, a proteção de dados e a propriedade intelectual. Com uma
avaliação de viabilidade legal bem-sucedida, é possível garantir o sucesso do
projeto e evitar problemas legais que possam prejudicar a empresa no futuro.

• Viabilidade ambiental: A viabilidade ambiental é um tipo de estudo de


viabilidade que avalia o impacto do projeto de arquitetura de sistemas no meio
ambiente. Esse tipo de estudo leva em consideração as práticas ambientais e
sustentáveis que devem ser implementadas para garantir a preservação do meio
ambiente.

Ao realizar uma avaliação de viabilidade ambiental, é necessário considerar


os seguintes fatores:
• Uso de energia: é importante avaliar como o projeto utiliza a energia
e identificar maneiras de reduzir o consumo, como o uso de fontes de
energia renováveis e a implementação de medidas de eficiência
energética.
• Emissões: é necessário avaliar as emissões de gases de efeito estufa e
outros poluentes que possam ser gerados pelo projeto, identificando
maneiras de reduzir ou neutralizar essas emissões.
• Gestão de resíduos: é importante avaliar como o projeto lida com a
gestão de resíduos, incluindo a redução, reutilização e reciclagem de
materiais.
• Impacto ambiental: é necessário avaliar o impacto geral do projeto
no meio ambiente, incluindo a qualidade do ar, da água e do solo, bem
como a biodiversidade local.
• Conformidade regulatória: é importante avaliar se o projeto atende
às regulamentações e normas ambientais locais, regionais e nacionais.
Ao realizar uma avaliação de viabilidade ambiental, a equipe de
desenvolvimento pode identificar possíveis problemas ambientais que
possam afetar o sucesso do projeto. Com essa avaliação, é possível ajustar o
escopo do projeto, implementar medidas sustentáveis e reduzir o impacto
ambiental do projeto.
A viabilidade ambiental é um tipo importante de estudo de viabilidade na
arquitetura de sistemas. É fundamental avaliar o impacto do projeto no meio
ambiente, considerando o uso de energia, as emissões, a gestão de resíduos,
o impacto ambiental e a conformidade regulatória. Com uma avaliação de
viabilidade ambiental bem-sucedida, é possível garantir o sucesso do projeto
e contribuir para a preservação do meio ambiente.
Exercício prático
Exercício 1:
A empresa XYZ está planejando desenvolver um novo aplicativo de comércio
eletrônico. A equipe de desenvolvimento realizou um estudo de viabilidade e
obteve os seguintes resultados:
• Viabilidade técnica: o projeto é viável do ponto de vista técnico.
• Viabilidade operacional: a equipe de desenvolvimento tem as habilidades e
recursos necessários para desenvolver o aplicativo.
• Viabilidade econômica: o projeto tem um bom potencial de lucro e o ROI
(retorno sobre o investimento) é superior a 100%.
• Viabilidade legal: o projeto atende às leis e regulamentações aplicáveis.
• Viabilidade ambiental: o projeto tem um impacto ambiental mínimo.
Com base nesses resultados, a empresa XYZ deve prosseguir com o
desenvolvimento do aplicativo?

Exercício 2:
A empresa ABC está planejando instalar um sistema de ar-condicionado em
seu escritório. A equipe de engenharia realizou um estudo de viabilidade e
obteve os seguintes resultados:
• Viabilidade técnica: o sistema de ar-condicionado é viável do ponto de vista
técnico.
• Viabilidade operacional: a equipe de manutenção tem as habilidades e
recursos necessários para manter o sistema.
• Viabilidade econômica: o custo total de instalação e manutenção do sistema
de ar-condicionado é superior ao orçamento da empresa.
• Viabilidade legal: o sistema de ar-condicionado atende às leis e
regulamentações aplicáveis.
• Viabilidade ambiental: o sistema de ar-condicionado tem um impacto
ambiental significativo.
Com base nesses resultados, a empresa ABC deve prosseguir com a instalação
do sistema de ar-condicionado?
Resposta

Resposta 1: Sim, a empresa XYZ deve prosseguir com o desenvolvimento do


aplicativo, pois todos os estudos de viabilidade indicaram que o projeto é viável
do ponto de vista técnico, operacional, econômico, legal e ambiental.

Resposta 2: Não, a empresa ABC não deve prosseguir com a instalação do


sistema de ar-condicionado, pois o estudo de viabilidade indicou que o projeto
não é viável do ponto de vista econômico e ambiental, além de exceder o
orçamento da empresa.
Especificação de requisitos

Quando se desenvolve um sistema, seja um software, um produto ou um


serviço, é fundamental que as necessidades dos usuários sejam consideradas
para que ele atenda às expectativas e necessidades. A especificação de
requisitos é uma técnica que ajuda a identificar e documentar as
necessidades dos usuários e as funcionalidades que devem ser
implementadas no sistema. Vamos abordar o tema de especificação de
requisitos e explicar suas principais etapas.
O que são requisitos?
Requisitos são especificações de funcionalidades ou características que um
sistema deve possuir para atender às necessidades dos usuários. Eles podem
ser divididos em dois tipos: requisitos funcionais e requisitos não funcionais.
• Requisitos funcionais: Os requisitos funcionais descrevem o que o sistema deve
fazer, ou seja, as funcionalidades que ele precisa ter para atender às necessidades
dos usuários. Vamos ver alguns exemplos de requisitos funcionais que podem ser
incluídos na especificação de um sistema de gerenciamento de tarefas:

• Criar tarefas: o sistema deve permitir a criação de novas tarefas, com


um título e uma descrição.
• Atribuir responsáveis: o sistema deve permitir a atribuição de uma
ou mais pessoas responsáveis pela execução de cada tarefa.
• Definir prioridades: o sistema deve permitir a definição de
prioridades para cada tarefa, como alta, média ou baixa.
• Definir prazos: o sistema deve permitir a definição de prazos para a
execução de cada tarefa, com a possibilidade de adicionar lembretes e
notificações.
• Editar tarefas: o sistema deve permitir a edição das informações das
tarefas já criadas, como título, descrição, responsáveis, prioridades e
prazos.
• Visualizar tarefas: o sistema deve permitir a visualização de todas as
tarefas criadas, com a possibilidade de filtrar por responsáveis,
prioridades ou prazos.
• Marcar tarefas como concluídas: o sistema deve permitir a
marcação de tarefas como concluídas quando forem executadas, com
a possibilidade de registrar observações ou anexar arquivos.
• Relatórios: o sistema deve gerar relatórios com as tarefas em
andamento, as tarefas concluídas, as tarefas atrasadas e as tarefas a
serem executadas.
Esses são apenas alguns exemplos de requisitos funcionais que podem ser
incluídos na especificação de um sistema de gerenciamento de tarefas. É
importante destacar que cada sistema terá seus próprios requisitos funcionais,
de acordo com as necessidades dos usuários e com as características do produto
ou serviço que está sendo desenvolvido
• Requisitos não funcionais: Os requisitos não funcionais são aqueles que
descrevem as características e propriedades que o sistema deve ter, como
desempenho, segurança, usabilidade, disponibilidade, entre outros. Vamos ver
alguns exemplos de requisitos não funcionais que podem ser incluídos na
especificação de um sistema de vendas online:

• Desempenho: o sistema deve ser capaz de suportar um grande


volume de transações simultâneas, com tempo de resposta máximo
de 5 segundos.
• Segurança: o sistema deve ter mecanismos de autenticação e
autorização de usuários, além de criptografar informações
confidenciais, como senhas e dados de cartão de crédito.
• Usabilidade: o sistema deve ser fácil de usar, com uma interface
intuitiva e instruções claras para os usuários, com suporte a
diferentes dispositivos e navegadores.
• Disponibilidade: o sistema deve estar disponível 24 horas por dia, 7
dias por semana, com tempo de inatividade máximo de 1 hora por mês
para manutenção programada.
• Confiabilidade: o sistema deve ser capaz de recuperar rapidamente
de falhas de hardware ou software, garantindo a integridade e a
consistência dos dados.
• Manutenção: o sistema deve ser fácil de atualizar e modificar, sem
comprometer a estabilidade e a segurança do sistema.
• Portabilidade: o sistema deve ser capaz de ser executado em
diferentes plataformas, como Windows, Linux e MacOS.
Esses são apenas alguns exemplos de requisitos não funcionais que podem
ser incluídos na especificação de um sistema de vendas online. É importante
destacar que cada sistema terá seus próprios requisitos não funcionais, de
acordo com as necessidades dos usuários e com as características do produto
ou serviço que está sendo desenvolvido.
Etapas da Especificação de Requisitos

1. Identificação dos requisitos: O primeiro passo na especificação de


requisitos é identificar as necessidades dos usuários e as funcionalidades que
o sistema deve ter para atender a essas necessidades. Isso pode ser feito por
meio de entrevistas com os usuários, pesquisas de mercado e análise de
processos existentes.
2. Análise dos requisitos: Após a identificação dos requisitos, é importante
analisá-los e avaliar sua relevância para o sistema. Os requisitos devem ser
claros, consistentes e viáveis de serem implementados.
3. Documentação dos requisitos: Os requisitos devem ser documentados de
forma clara e precisa. A documentação pode ser feita em formato de planilha,
diagrama de casos de uso, narrativas, entre outros.
4. Validação dos requisitos: Uma vez documentados, é importante validar os
requisitos com os usuários e outras partes interessadas para garantir que
eles estejam corretos e que atendam às necessidades do sistema.
5. Gerenciamento de requisitos: O gerenciamento de requisitos é a prática de
acompanhar e gerenciar os requisitos ao longo do ciclo de vida do sistema.
Isso inclui identificar mudanças nos requisitos, avaliar seu impacto no
sistema e atualizar a documentação dos requisitos quando necessário.
A especificação de requisitos é uma técnica importante para garantir que um
sistema atenda às necessidades dos usuários. Ao seguir as etapas descritas
nesta apostila, é possível identificar, documentar e validar os requisitos de
um sistema, garantindo que ele atenda às expectativas dos usuários e
funcione corretamente.
Exercício 1: Identificação de requisitos: Considere o seguinte cenário: um
sistema de gerenciamento de estoques para uma loja de roupas. Identifique
pelo menos três requisitos funcionais e três requisitos não funcionais para
este sistema.
Resposta: Requisitos funcionais:
1. O sistema deve permitir a criação de registros de estoque para cada item da
loja, incluindo informações como tamanho, cor e quantidade disponível.
2. O sistema deve permitir que os funcionários atualizem o estoque, adicionando
ou removendo itens quando necessário.
3. O sistema deve permitir que os gerentes gerem relatórios de estoque para
monitorar a disponibilidade de produtos.
Requisitos não funcionais:
1. O sistema deve ser capaz de lidar com um grande volume de transações
simultâneas.
2. O sistema deve garantir a segurança dos dados do estoque, protegendo-os
contra acessos não autorizados.
3. O sistema deve estar disponível 24 horas por dia, 7 dias por semana, com tempo
de inatividade máximo de 1 hora por mês para manutenção programada.

Exercício 2: Priorização de requisitos: Considere o seguinte conjunto de


requisitos para um sistema de gerenciamento de projetos:
1. O sistema deve permitir a criação de projetos com prazos definidos.
2. O sistema deve permitir a criação de tarefas para cada projeto, com
atribuição de responsáveis.
3. O sistema deve permitir a adição de comentários e anexos às tarefas.
4. O sistema deve permitir a geração de relatórios de progresso para cada
projeto.
5. O sistema deve ter uma interface amigável e fácil de usar.
6. O sistema deve ser capaz de suportar um grande volume de projetos e tarefas
simultâneas.
7. O sistema deve estar disponível 24 horas por dia, 7 dias por semana.
Classifique os requisitos acima em ordem de prioridade, começando pelo
mais importante.
Respostas
Resposta: Exercicio 1
1. O sistema deve permitir a criação de projetos com prazos definidos.
2. O sistema deve permitir a criação de tarefas para cada projeto, com atribuição
de responsáveis.
3. O sistema deve permitir a geração de relatórios de progresso para cada projeto.
4. O sistema deve ter uma interface amigável e fácil de usar.
5. O sistema deve permitir a adição de comentários e anexos às tarefas.
6. O sistema deve ser capaz de suportar um grande volume de projetos e tarefas
simultâneas.
7. O sistema deve estar disponível 24 horas por dia, 7 dias por semana.
Neste caso, os requisitos mais importantes são aqueles que garantem a
funcionalidade básica do sistema, como a criação de projetos e tarefas e a
geração de relatórios. A interface amigável e a capacidade de adicionar
comentários e anexos às tarefas são importantes, mas não tão cruciais quanto
os requisitos funcionais principais. A capacidade de suportar um grande
volume de projetos e tarefas e estar disponível 24/7 são requisitos importantes,
mas que podem ser considerados menos prioritários do que os outros.
1.1. Estudos de cenários e a utilização casos de uso relativos ao negócio do cliente
Antes de iniciar o desenvolvimento de um sistema de software, é fundamental que
sejam realizados estudos de cenários para compreender as necessidades do cliente
e como o sistema poderá ajudá-lo a atingir seus objetivos. Uma das técnicas
utilizadas para identificar as necessidades do cliente é a utilização de casos de uso
relativos ao negócio.
Os estudos de cenários são uma técnica que consiste em analisar as diferentes
situações em que o sistema poderá ser utilizado. Esse processo permite identificar
as características mais importantes do sistema, bem como as restrições que devem
ser consideradas no seu desenvolvimento. Para a realização de estudos de cenários
efetivos, é necessário compreender o ambiente em que o sistema será utilizado, bem
como as necessidades e expectativas dos usuários.
A utilização de casos de uso relativos ao negócio permite que sejam identificadas as
necessidades do cliente e como o sistema poderá ajudá-lo a atingir seus objetivos.
Casos de uso são representações de situações em que o sistema será utilizado,
descrevendo as interações entre o usuário e o sistema. Ao utilizar casos de uso, é
possível identificar os requisitos funcionais e não funcionais do sistema, bem como
as restrições que devem ser consideradas.
Os casos de uso são úteis para identificar os requisitos do sistema de forma clara e
precisa. Eles permitem que os desenvolvedores e os usuários do sistema tenham
uma compreensão clara das funcionalidades que o sistema deve oferecer, bem como
dos cenários em que o sistema será utilizado. Além disso, os casos de uso permitem
que os desenvolvedores realizem testes de validação do sistema, garantindo que ele
atenda às necessidades do cliente.
Ao utilizar estudos de cenários e casos de uso, é possível garantir que o sistema
desenvolvido atenda às necessidades do cliente de forma eficiente e efetiva. Com
isso, o sistema será capaz de oferecer os benefícios desejados, como aumento da
produtividade, melhoria na qualidade dos processos e redução de custos.

Os símbolos utilizados em um diagrama de caso de uso são:


1. Ator:
• Representa um usuário externo ou sistema que interage com o sistema em
questão.
• É representado por um ícone humano ou uma figura geométrica, como um
círculo ou retângulo.
2. Caso de uso:
• Representa uma funcionalidade ou uma tarefa que o sistema deve realizar.
• É representado por uma elipse ou oval.
3. Linha de comunicação:
• Representa a interação entre o ator e o caso de uso.
• É representado por uma linha sólida.
4. Inclusão:
• Representa um caso de uso que é utilizado por outros casos de uso.
• É representado por uma seta sólida com uma linha tracejada.
5. Extensão:
• Representa um caso de uso que pode ser estendido com novas
funcionalidades.
• É representado por uma seta sólida com uma linha tracejada que aponta para
o caso de uso estendido.
6. Generalização:
• Representa a relação de herança entre dois casos de uso, em que um caso de
uso é uma versão mais específica do outro.
• É representado por uma seta sólida com uma linha tracejada que aponta para
o caso de uso pai.
Exemplos:
Aqui estão alguns exemplos de casos de uso:
1. Realizar compra online:
• O usuário acessa a loja virtual
• O usuário pesquisa pelo produto desejado
• O usuário adiciona o produto ao carrinho de compras
• O usuário insere as informações de pagamento
• O sistema verifica as informações de pagamento e autoriza a compra
• O sistema exibe uma confirmação da compra ao usuário
• O sistema envia um e-mail com a confirmação da compra ao usuário

2. Gerenciar conta bancária:


• O usuário acessa a página de login do banco
• O usuário insere as informações de login
• O sistema verifica as informações e permite o acesso à conta
• O usuário pode visualizar o saldo da conta
• O usuário pode realizar transferências para outras contas
• O usuário pode visualizar o extrato de transações da conta
• O usuário pode alterar suas informações pessoais na conta
3. Agendar consulta médica:
• O usuário acessa a plataforma de agendamento de consultas médicas
• O usuário pesquisa pelo médico desejado
• O usuário seleciona a data e horário disponíveis para a consulta
• O sistema verifica a disponibilidade do médico e confirma a reserva da
consulta
• O sistema envia um e-mail de confirmação da consulta para o usuário
• O usuário recebe um lembrete da consulta por e-mail ou mensagem de texto
antes do horário marcado.
Atividades
1. Identificação de atores e casos de uso:
a) Identifique os atores e casos de uso em um sistema de reservas de
passagens aéreas.
Resposta: Atores: Cliente, Agente de Reservas, Companhia Aérea. Casos de Uso:
Realizar Reserva, Alterar Reserva, Cancelar Reserva, Emitir Bilhete, Consultar
Horários, Consultar Preços.
2. Criação de diagramas de caso de uso:
a) Crie um diagrama de caso de uso para um sistema de vendas online.
Resposta: Casos de Uso:
- Realizar Compra
- Cadastrar Produto
- Gerenciar Estoque
- Visualizar Pedidos
- Gerenciar Usuários
- Realizar Login
- Realizar Logout
Aqui estão algumas atividades práticas com respostas sobre caso de
uso:

b) Crie um diagrama de caso de uso para um sistema de


gerenciamento de estoque.
Resposta:
Casos de Uso:
- Cadastrar Produto
- Alterar Produto
- Excluir Produto
- Realizar Pedido
- Consultar Estoque
- Gerar Relatório de Vendas
- Realizar Login
- Realizar Logout
3. Análise de casos de uso:
a) Analise o caso de uso "Realizar Compra" do sistema de vendas
online criado anteriormente e identifique os passos necessários para
realizá-lo.
Resposta:
1. O comprador acessa a página do produto desejado.
2. O comprador adiciona o produto ao carrinho de compras.
3. O comprador visualiza o carrinho de compras.
4. O comprador insere as informações de pagamento e envio.
5. O sistema verifica as informações e autoriza o pagamento.
6. O sistema exibe uma confirmação da compra ao comprador.
7. O sistema envia um e-mail com a confirmação da compra ao comprador.
b) Analise o caso de uso "Cadastrar Produto" do sistema de
gerenciamento de estoque e identifique os passos necessários para
realizá-lo.
Resposta:
1. O gerente acessa a página de cadastro de produtos.
2. O gerente insere as informações do produto, como nome, descrição e preço.
3. O gerente insere as informações de estoque, como quantidade disponível e
fornecedor.
4. O sistema verifica as informações e cadastra o produto no estoque.
Introdução aos processos de software

Os processos de software são uma série de atividades que visam produzir software
de alta qualidade. Eles envolvem atividades como planejamento, análise, design,
implementação, teste e manutenção.

1. O que é um processo de software?


Um processo de software é um conjunto de atividades que são realizadas
para desenvolver um software. Essas atividades envolvem todas as etapas do
desenvolvimento de software, desde a concepção até a entrega do produto
final. Um processo de software é importante para garantir a qualidade do
software, aumentar a eficiência do desenvolvimento e reduzir os custos e o
tempo de entrega.

2. Por que os processos de software são importantes?


Os processos de software são importantes por várias razões. Eles ajudam a
garantir a qualidade do software, reduzindo o número de erros e problemas
no software. Além disso, eles ajudam a aumentar a eficiência do
desenvolvimento, reduzindo os custos e o tempo de entrega. Os processos de
software também ajudam a garantir que o software seja desenvolvido de
acordo com os requisitos dos usuários e as expectativas dos clientes.

3. Quais são as etapas de um processo de software?


Um processo de software geralmente inclui as seguintes etapas:
• Planejamento: nesta etapa, são definidos os objetivos do projeto e os
requisitos do software.
• Análise: nesta etapa, são analisados os requisitos do software e são
identificadas as principais funcionalidades do software.
• Design: nesta etapa, é criado um projeto detalhado do software, incluindo as
interfaces do usuário, a arquitetura do software e a estrutura dos dados.
• Implementação: nesta etapa, o software é criado, testado e integrado em um
sistema completo.
• Teste: nesta etapa, o software é testado para garantir que ele funcione
corretamente e atenda aos requisitos do usuário.
• Manutenção: nesta etapa, o software é atualizado e corrigido, se necessário.

4. Quais são os modelos de processos de software?


Existem vários modelos de processos de software, cada um com suas
próprias características e vantagens. Alguns dos modelos mais comuns são:
Modelo em cascata:
O modelo cascata, também conhecido como modelo de desenvolvimento em cascata,
é um dos modelos mais antigos e tradicionais de processo de software. Ele é
caracterizado por uma sequência linear de fases, em que cada fase deve ser
concluída antes que a próxima possa começar. Essas fases são geralmente definidas
como requisitos, análise, projeto, implementação, testes e manutenção.
A ideia por trás do modelo cascata é que cada fase do processo de desenvolvimento
de software é dependente da fase anterior. Por exemplo, antes de projetar o
software, é necessário entender os requisitos do usuário. Antes de implementar o
software, é necessário ter um design completo. E antes de testar o software, é
necessário ter uma implementação completa.
Uma das principais vantagens do modelo cascata é que ele é fácil de entender e
implementar. Além disso, ele fornece uma abordagem estruturada para o
desenvolvimento de software, ajudando a garantir que cada fase do processo seja
concluída antes de passar para a próxima. Isso ajuda a garantir que o software
atenda aos requisitos do usuário e seja entregue no prazo e dentro do orçamento.
No entanto, o modelo cascata também apresenta algumas desvantagens. Uma das
principais desvantagens é que ele é inflexível. Uma vez que uma fase é concluída, é
difícil voltar atrás e fazer alterações. Isso pode ser problemático se os requisitos do
usuário mudarem ao longo do tempo, ou se a equipe de desenvolvimento descobrir
problemas em uma fase posterior do processo.
Outra desvantagem do modelo cascata é que ele não fornece feedbacks frequentes
do usuário. Como cada fase é concluída antes de passar para a próxima, os usuários
só podem ver o software funcionando após a fase de implementação. Isso pode levar
a problemas se o software não atender às necessidades dos usuários, pois pode ser
difícil voltar atrás e fazer alterações.
Em resumo, o modelo cascata é um
modelo linear de processo de software
em que cada fase do processo deve ser
concluída antes que a próxima possa
começar. Ele é fácil de entender e
implementar, mas também é inflexível
e não fornece feedbacks frequentes do
usuário. O modelo cascata é mais
adequado para projetos em que os
requisitos são bem definidos e não
devem mudar muito ao longo do
processo de desenvolvimento.
Modelo incremental:
O modelo incremental é um modelo de processo de software que envolve a
entrega gradual e iterativa do produto final. O objetivo principal deste modelo é
dividir o processo de desenvolvimento em pequenos incrementos, cada um com
seu próprio conjunto de requisitos, design, implementação e testes.
A ideia é que cada incremento entregue funcionalidades adicionais ao software,
tornando-o gradualmente mais completo e capaz de atender às necessidades dos
usuários. O modelo incremental é um processo flexível, pois permite que os
requisitos mudem ao longo do tempo, permitindo que a equipe de
desenvolvimento ajuste seu trabalho para atender às novas demandas.
Existem várias vantagens em usar o modelo incremental. Em primeiro lugar, ele
permite que os usuários vejam o software funcionando e forneçam feedbacks
valiosos para a equipe de desenvolvimento. Isso ajuda a garantir que o software
atenda às necessidades dos usuários e clientes.
Além disso, o modelo incremental ajuda a reduzir os riscos associados ao
desenvolvimento de software. Como os incrementos são entregues em etapas, é
possível identificar problemas e erros em cada etapa antes de prosseguir para a
próxima. Isso reduz o risco de problemas serem encontrados apenas no final do
processo de desenvolvimento, o que pode levar a atrasos e aumento de custos.
No entanto, o modelo incremental também apresenta algumas desvantagens.
Uma das principais desvantagens é que pode ser mais difícil gerenciar os
diferentes incrementos do software, especialmente se houver muitos deles.
Além disso, é importante garantir que cada incremento entregue seja de alta
qualidade, pois qualquer problema em um incremento pode afetar todo o
projeto.
Em resumo, o modelo
incremental é um processo de
desenvolvimento de software
que envolve a entrega gradual e
iterativa do produto final. É uma
abordagem flexível que permite
que os requisitos mudem ao
longo do tempo e ajuda a reduzir
os riscos associados ao
desenvolvimento de software.
No entanto, é importante
gerenciar cuidadosamente cada
incremento entregue e garantir
que cada um seja de alta
qualidade.
Exemplo Modelo incremental:

Suponha que você está liderando uma equipe de desenvolvimento de


software que está criando um sistema de gerenciamento de tarefas para uma
empresa. Como você poderia aplicar o modelo incremental para o
desenvolvimento desse sistema? Quais seriam os incrementos a serem
entregues e como eles seriam definidos?

Resposta:
Para aplicar o modelo incremental ao desenvolvimento do sistema de
gerenciamento de tarefas, a equipe pode definir os incrementos de acordo com
as funcionalidades prioritárias identificadas. A seguir, segue um exemplo de
como a equipe pode dividir o processo de desenvolvimento em incrementos:
1. Incremento 1 - Cadastro de usuários e criação de tarefas: Neste primeiro
incremento, a equipe se concentraria na criação de funcionalidades para
permitir que os usuários se cadastrem no sistema e criem tarefas. Isso incluiria
a criação de formulários de cadastro e a validação de dados inseridos pelos
usuários.
2. Incremento 2 - Gerenciamento de tarefas: Neste incremento, a equipe se
concentraria no desenvolvimento de funcionalidades para permitir que os
usuários gerenciem suas tarefas. Isso incluiria a implementação de recursos
para a visualização, edição, exclusão e conclusão de tarefas.
3. Incremento 3 - Notificações e relatórios: Neste incremento, a equipe se
concentraria em adicionar funcionalidades de notificações e relatórios para o
sistema de gerenciamento de tarefas. Isso incluiria a criação de notificações
para lembrar os usuários de suas tarefas e a geração de relatórios para os
gerentes acompanharem o progresso das tarefas.
4. Incremento 4 - Integração com outras ferramentas: Neste último incremento,
a equipe se concentraria em adicionar recursos para integrar o sistema de
gerenciamento de tarefas com outras ferramentas utilizadas pela empresa,
como o calendário e o e-mail.
Ao seguir o modelo incremental, a equipe poderia entregar o sistema de
gerenciamento de tarefas em etapas, permitindo que os usuários testem e
forneçam feedbacks sobre cada incremento. Isso ajudaria a garantir que o
sistema atenda às necessidades dos usuários e reduziria os riscos associados ao
desenvolvimento de software.

Modelo em espiral:
O modelo espiral é um modelo de processo de software iterativo e incremental, que
combina elementos do modelo cascata e de prototipação. Ele foi proposto por Barry
Boehm em 1986 e é amplamente utilizado para projetos de grande escala e de alta
complexidade.
O modelo espiral é baseado em ciclos de atividades de planejamento, análise de
riscos, engenharia e avaliação. A cada ciclo, o software é desenvolvido em
pequenos incrementos, com base no feedback e nos requisitos atualizados do
usuário. As fases do modelo espiral são:
• Definição de objetivos: nesta fase, são definidos os objetivos do projeto,
incluindo os requisitos do usuário e as restrições do projeto.
• Análise de riscos: nesta fase, são identificados os riscos do projeto e a
equipe de desenvolvimento estima a probabilidade de cada risco ocorrer. Os
riscos são priorizados e a equipe toma medidas para mitigar ou evitar esses
riscos.
• Desenvolvimento e validação: nesta fase, o software é desenvolvido em
pequenos incrementos, com base no feedback e nos requisitos atualizados do
usuário. Cada incremento é validado antes de passar para a próxima fase.
• Planejamento: nesta fase, é feito um planejamento para a próxima iteração
do processo, com base no feedback e nos requisitos atualizados do usuário.
O modelo espiral tem várias vantagens sobre o modelo cascata. Em primeiro lugar,
ele é mais flexível e adaptável, permitindo que a equipe de desenvolvimento lide
com mudanças de requisitos ou riscos do projeto à medida que surgem. Além disso,
o modelo espiral fornece um feedback frequente do usuário, permitindo que a
equipe de desenvolvimento ajuste o software de acordo com as necessidades e
expectativas do usuário.
No entanto, o modelo espiral também apresenta algumas desvantagens. O processo
pode se tornar complexo e caro devido às várias iterações e à análise de riscos. Além
disso, a equipe de desenvolvimento deve ser capaz de gerenciar efetivamente os
riscos identificados, a fim de garantir que o projeto seja entregue no prazo e dentro
do orçamento.
Em resumo, o modelo espiral é um modelo iterativo e incremental de processo de
software que combina elementos do modelo cascata e de prototipação. Ele é mais
flexível e adaptável do
que o modelo cascata,
permitindo que a equipe
de desenvolvimento lide
com mudanças de
requisitos ou riscos do
projeto à medida que
surgem. No entanto, o
modelo espiral pode se
tornar complexo e caro
devido às várias
iterações e à análise de
riscos.
Modelo ágil
O modelo ágil de processo de software é uma abordagem iterativa e incremental
de desenvolvimento de software que enfatiza a entrega contínua de valor ao
cliente e a colaboração entre a equipe de desenvolvimento e o cliente.
Diferentemente do modelo cascata e do modelo espiral, que enfatizam a
documentação e os processos formais, o modelo ágil prioriza a comunicação
direta e a adaptação contínua aos requisitos e mudanças do projeto.
O modelo ágil foi criado em 2001, com a publicação do Manifesto Ágil de
Desenvolvimento de Software, que estabeleceu os seguintes valores:

a. Indivíduos e interações mais que processos e ferramentas


b. Software em funcionamento mais que documentação abrangente
c. Colaboração com o cliente mais que negociação de contratos
d. Responder a mudanças mais que seguir um plano

Com base nesses valores, foram desenvolvidas diversas metodologias ágeis,


como Scrum, XP (Extreme Programming), Kanban, entre outras.

O modelo ágil é baseado em ciclos curtos de desenvolvimento, chamados de


sprints, que geralmente duram de duas a quatro semanas. Cada sprint envolve
atividades de planejamento, desenvolvimento, revisão e retrospectiva. O
cliente é envolvido ativamente em todo o processo, fornecendo feedback sobre
o software e ajustando os requisitos do projeto à medida que surgem novas
necessidades.
O modelo ágil tem várias vantagens em relação aos modelos de processo de
software mais tradicionais. Em primeiro lugar, ele é mais flexível e adaptável,
permitindo que a equipe de desenvolvimento lide com mudanças de requisitos
ou riscos do projeto de forma mais eficaz. Além disso, o modelo ágil é mais
centrado no usuário, garantindo que o software desenvolvido atenda às
necessidades do cliente e gere valor para o negócio.
No entanto, o modelo ágil também apresenta algumas desvantagens. O processo
pode se tornar caótico ou desorganizado se a equipe de desenvolvimento não
tiver experiência ou habilidade para gerenciar o projeto de forma ágil. Além
disso, o modelo ágil pode ser desafiador para projetos de grande escala ou com
requisitos de segurança críticos, que exigem mais rigor e documentação formal.
Em resumo, o modelo ágil de processo de software é uma abordagem iterativa e
incremental de desenvolvimento de software que enfatiza a entrega contínua de
valor ao cliente e a colaboração entre a equipe de desenvolvimento e o cliente.
Ele é mais flexível e adaptável do que os modelos de processo de software
tradicionais, mas também pode ser mais desafiador de gerenciar.
Modelo ágil: Scrum

O Scrum é uma das metodologias ágeis mais populares, que consiste em uma série
de práticas e processos para gerenciar projetos de software. Nesta apostila,
abordaremos o Scrum, o backlog do produto, o sprint e outros conceitos
importantes para entender melhor essa metodologia.
O Scrum é um processo iterativo e incremental para gerenciamento de projetos de
software, que enfatiza a entrega contínua de valor ao cliente. O Scrum é baseado em
três pilares principais: transparência, inspeção e adaptação.
O Scrum é composto por três papéis principais: Product Owner, Scrum Master e
Equipe de Desenvolvimento. O Product Owner é responsável por gerenciar o
backlog do produto e definir as prioridades do que deve ser entregue ao cliente. O
Scrum Master é responsável por garantir que o Scrum esteja sendo implementado
corretamente e ajudar a equipe a remover quaisquer obstáculos que possam estar
impedindo o progresso. A Equipe de Desenvolvimento é responsável por entregar
as funcionalidades definidas no backlog do produto durante o sprint.
Backlog do Produto
O backlog do produto é uma lista priorizada de itens de trabalho que precisam ser
realizados para atender aos objetivos do projeto. Esses itens de trabalho são
geralmente expressos como requisitos de negócios ou funcionalidades do software.
O Product Owner é responsável por gerenciar o backlog do produto e garantir que
os itens mais importantes sejam concluídos primeiro.
Sprint
O sprint é um ciclo curto de desenvolvimento, geralmente de duas a quatro semanas,
em que a equipe de desenvolvimento trabalha em uma lista de itens de trabalho
selecionados do backlog do produto. Durante o sprint, a equipe de desenvolvimento
realiza uma série de atividades, incluindo planejamento, codificação, testes e
revisão.
O sprint começa com uma reunião de planejamento do sprint, onde a equipe de
desenvolvimento seleciona os itens de trabalho que serão abordados durante o
sprint. Durante o sprint, a equipe de desenvolvimento se reúne diariamente para
uma breve reunião chamada de Daily Scrum, onde cada membro da equipe
compartilha o que foi realizado no dia anterior e o que planeja fazer no dia seguinte.
No final do sprint, a equipe de desenvolvimento apresenta o trabalho concluído em
uma revisão do sprint. A equipe também realiza uma retrospectiva do sprint, onde
discute o que funcionou bem e o que precisa ser melhorado para o próximo sprint.
O Scrum é uma metodologia ágil popular para gerenciamento de projetos de
software que enfatiza a entrega contínua de valor ao cliente. O backlog do produto é
uma lista priorizada de itens de trabalho que precisam ser realizados para atender
aos objetivos do projeto. O sprint é um ciclo curto de desenvolvimento, geralmente
de duas a quatro semanas, em que a equipe de desenvolvimento trabalha em uma
lista de itens de trabalho selecionados do backlog do produto. Esperamos que esta
apostila tenha sido útil para entender melhor a metodologia ágil e como ela pode
ajudar no desenvolvimento de software.

5. Quais são as melhores práticas de processos de software?


Algumas das melhores práticas de processos de software incluem:
• Comunicação clara: manter uma comunicação clara e aberta entre as
equipes de desenvolvimento, gerentes e stakeholders é fundamental para o
sucesso do processo de software.
• Definição de requisitos: é importante definir claramente os requisitos do
software desde o início do processo de desenvolvimento. Isso ajuda a
garantir que o software atenda às necessidades dos usuários e clientes.
• Gerenciamento de mudanças: o gerenciamento de mudanças é essencial
para garantir que o software seja desenvolvido de acordo com as mudanças
dos requisitos ao longo do tempo.
• Teste contínuo: realizar testes contínuos durante todo o processo de
desenvolvimento ajuda a identificar problemas e erros rapidamente e a
corrigi-los antes da entrega final do produto.
• Iterações e entregas frequentes: realizar entregas frequentes do software
ajuda a garantir que o desenvolvimento estejam indo na direção correta e
permite feedbacks frequentes dos usuários e clientes.
• Uso de ferramentas de automação: o uso de ferramentas de automação
ajuda a aumentar a eficiência do processo de desenvolvimento e a garantir a
qualidade do software.
Os processos de software são essenciais para garantir a qualidade, eficiência e
sucesso de um projeto de desenvolvimento de software. Eles envolvem uma série de
atividades, desde o planejamento até a manutenção do software. Além disso,
existem vários modelos e práticas recomendadas para ajudar a garantir um
processo de desenvolvimento de software bem-sucedido. Ao seguir essas práticas,
os desenvolvedores podem garantir que o software atenda às necessidades dos
usuários e clientes, além de ser entregue dentro do prazo e do orçamento previstos.

Você também pode gostar