Buscar

CCT0875 - Aula_2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Segurança de aplicações
Aula 2: Metodologias tradicionais versus ágeis e Ferramentas
para desenvolvimento de software
Apresentação
O desenvolvimento de um software possui muitos desa�os desde o levantamento dos requisitos, como sua codi�cação e
implantação no cliente. Sendo um processo dinâmico, é essencial que seja estabelecida uma metodologia que
acompanhe todo o seu ciclo de desenvolvimento.
Historicamente, as chamadas metodologias tradicionais foram aplicadas para o processo de desenvolvimento de software
através da incorporação de conceitos aplicados a outras áreas de negócios que já possuíam processos e requisitos bem
de�nidos. Obviamente, mostraram-se inadequadas para o gerir o ciclo de vida de desenvolvimento de software.
Nesse sentido, as metodologias ágeis ganharam destaque por se ajustarem à dinâmica do desenvolvimento de software.
Além disso, a incorporação de ferramentas para o desenvolvimento viabilizou mais rapidez e robustez ao longo do
processo, exigindo mais treinamento para os integrantes da equipe de desenvolvimento de modo a acelerar a curva de
aprendizagem.
Objetivos
Comparar metodologias tradicionais versus ágeis;
Identi�car ferramentas para desenvolvimento de software.
Metodologias tradicionais versus ágeis
As metodologias tradicionais de desenvolvimento de software são baseadas em fases pré-de�nidas executadas em um ciclo
sequencial:
A ênfase do desenvolvimento está na execução de processos lineares que envolvem documentação, planejamento antecipado
e priorização. Nessa metodologia, as variáveis são o tempo e o orçamento.
Uma das principais representantes das metodologias tradicionais é a metodologia Cascata, em que cada fase possui
resultados especí�cos e documentação detalhada submetidos a um processo de revisão completo.
Atenção
Em projetos nos quais os requisitos são bem compreendidos, as abordagens tradicionais são adequadas. Um exemplo de um
projeto que atende a esse critério é a construção civil, na qual o resultado é compreendido por todos os envolvidos. Por outro
lado, na área de desenvolvimento de software, as metodologias tradicionais de desenvolvimento podem falhar, pois se trata de
um ambiente dinâmico.
Abaixo, seguem algumas das desvantagens dos métodos tradicionais de desenvolvimento de software:
A declaração da necessidade do cliente deve
ser de�nida com antecedência, ou seja, antes
do desenvolvimento do software. Além disso,
a solução também deve ser determinada
antecipadamente e não pode ser alterada ou
modi�cada.
Os requisitos do software devem ser
estabelecidos na fase inicial e não podem ser
alterados depois que o desenvolvimento
começa. Por exemplo, no início do projeto, os
requisitos iniciais para analisar os produtos
em termos de vendas são fornecidos. Após o
início do projeto, caso o usuário queira alterar
o requisito e analisar os dados sobre o
movimento regional de produtos, ele terá que
esperar até a conclusão dos requisitos iniciais
ou iniciar outro projeto.
Na metodologia tradicional, não podem ser feitas avaliações intermediárias a �m de garantir que o desenvolvimento do
software esteja alinhado e para que o produto atenda aos requisitos de negócios. O sistema que o cliente obtém está baseado
no entendimento do desenvolvedor. Portanto, a documentação assume alta prioridade e pode consumir bastante tempo para
ser criada.
Além disso, de um modo geral, devido ao atendimento a requisitos especí�cos, as chances de reutilizar os componentes é
menor.
Comentário
Por causa das desvantagens citadas, a entrega do software pode consumir mais dinheiro, esforço e tempo do que os pré-
estabelecidos e, por consequência, representa um impacto negativo no relacionamento com os clientes.
Devido à sequência rígida de como o projeto é desenvolvido, os testes só podem começar depois do término do processo de
desenvolvimento. Nesta fase — estágio de teste — não é possível voltar e ajustar algo que possa prejudicar as datas de entrega
e os custos do projeto. É possível, ainda, que os projetos sejam descartados, resultando, assim, na ine�ciência do tempo e
orçamento consumidos.


As metodologias tradicionais de desenvolvimento são:
Adequadas
apenas quando os requisitos são
precisos, ou seja, quando o cliente sabe
exatamente o que deseja e pode a�rmar
com segurança que não haverá grandes
alterações no escopo durante o
desenvolvimento do projeto.

Inadequadas
para projetos de desenvolvimento de
software, em que os requisitos não são
bem de�nidos no início e há margem
para modi�cações contínuas.
Metodologia ágil de desenvolvimento de software
Diferentemente das abordagens tradicionais de desenvolvimento de software, as metodologias de desenvolvimento ágil são
amigáveis ao cliente. Nas metodologias ágeis, o processo de desenvolvimento de software é adaptado para que os clientes
tenham a oportunidade de fazer modi�cações ao longo das fases de desenvolvimento do projeto.
Entre as vantagens das metodologias ágeis em relação às metodologias de desenvolvimento tradicionais estão:
1
A declaração das necessidades e solução do negócio podem ser modi�cadas a qualquer momento do desenvolvimento do
software.
2
Os requisitos e as histórias de usuário podem ser fornecidos ao longo das iterações do desenvolvimento, facilitando, assim,
o entendimento mútuo entre desenvolvedor e usuário.
3
O projeto é dividido em diferentes módulos e pode ser entregue periodicamente.
4
As chances de atingir o resultado �nal com qualidade aumentam, pois são feitas entregas parciais para o usuário que,
dessa forma, pode avaliar os módulos de solução para veri�car se a necessidade do negócio está sendo atendida.
5
Devido à natureza do desenvolvimento, é possível criar componentes reutilizáveis.
6
Há menos prioridade na documentação. Aqui cabe uma ressalva: As vantagens disso é que o tempo e despesas para
produção de documentação são reduzidos; por outro lado, isso pode ser um problema ao longo do desenvolvimento,
quando se faz necessário recuperar alguma etapa especí�ca do projeto.
Na Tabela 1, há uma comparação entre algumas características das metodologias tradicionais e ágeis.
 Tabela 1: Comparações das Metodologias Tradicionais e Ágeis (adaptado de KESHTA e MORGAN, 2017).
As metodologias ágeis são baseadas em uma abordagem incremental e iterativa do desenvolvimento. Um exemplo de como
funcionam as metodologias ágeis é a metodologia Scrum. As equipes que formam os projetos da metodologia Scrum são
compostas basicamente por três papéis:
Product Owner (dono
do produto)
Scrum Master 
 
Time de
Desenvolvimento
Em especial, o Scrum Master interage diariamente com a equipe de desenvolvimento e com o Product Owner para garantir que
o desenvolvimento do produto esteja sincronizado com as expectativas do cliente.
Veja como funciona.
1
Logo no início do projeto, o conjunto inicial de requisitos é dividido em Histórias de Usuários. O Scrum Master, ou o Product Owner, organiza essas histórias de
usuário e as separa em diferentes sprints. A quantidade de histórias de usuários que devem ser entregues ao �nal de cada Sprint é decidida de acordo com sua
complexidade.
2
Após a conclusão do planejamento da Sprint, as Histórias de Usuário selecionadas são divididas em Tarefas para que o desenvolvedor possa ter um roteiro do que
deve ser feito e obter resultados de qualidade. No �nal de cada Sprint, o resultado é apresentado para o cliente. Isto implica que ele pode fazer revisões sobre o
desenvolvimento do software caso perceba pendências ou desvios.
A�nal, qual a diferença entres a abordagem tradicional e a
abordagem ágil?
A principal diferença entre as abordagens tradicional e ágil é a implementação da sequência das fases do projeto:
Nas metodologias tradicionais de desenvolvimento as fases do projeto são desenvolvidas linearmente; nas metodologias ágeis,
de forma iterativa.
As Figuras1 e 2 mostram a diferença entre as metodologias tradicionais e ágeis.
Nos projetos de desenvolvimento de software,o escopo e os requisitos podem mudar ao longo do desenvolvimento, o que é
uma importante diferença em relação aos projetos de construção civil, por exemplo.
Comentário
Portanto, a utilização da metodologia ágil é preferível em relação às metodologias tradicionais, pois aumenta a produtividade e
acelera o processo de desenvolvimento.
Conclusão
As metodologias tradicionais são adequadas em projetos em que há rigidez dos requisitos, como, por exemplo, na construção
civil. No desenvolvimento de software, as metodologias ágeis são mais adequadas, pois é normal que os requisitos evoluam ao
longo do desenvolvimento do projeto.
Ferramentas para desenvolvimento de software
Somente título e texto
Uma Ferramenta de Desenvolvimento de Software ou Ferramenta de Programação de Software é um programa de computador.
Ela pode ser aplicada para criação, manutenção, suporte e depuração de outros programas.
As ferramentas de desenvolvimento atendem a diversos propósitos, como compiladores, editores de código, projetar interfaces
grá�cas, depuradores de código, ferramentas de análise de desempenho etc. Portanto, deve-se considerar alguns fatores ao
selecionar a ferramenta de desenvolvimento com base no tipo do projeto.
Entre esses fatores estão:

1
Atender às normas da empresa: Software com licença
comercial, ou gratuita; critérios de segurança.

2
Aplicação da ferramenta para atender às demandas de
negócio.

3
Integração entre ferramentas.

4
Ambiente em que a ferramenta será instalada: Sistema
operacional e outros pré-requisitos necessários para seu
uso.

5
Treinamento necessário para a equipe que vai utilizar a
ferramenta.
A seleção da ferramenta de desenvolvimento é uma etapa essencial para a e�ciência do projeto. As ferramentas para
desenvolvimento de software são criadas e aperfeiçoadas para atender às demandas da sociedade, de um modo geral.
Como exemplo, basta observar que o uso da internet e de
aplicativos móveis tem se tornado cada vez mais popular. É
por isso que existem muitas ferramentas disponíveis para
essas áreas.
Fonte: SHTTEFAN / Unsplash
Classi�cação de ferramentas e técnicas de software
As ferramentas de desenvolvimento são muito úteis para a codi�cação, testes e manutenção de software. É possível fazer a
classi�cação das ferramentas de desenvolvimento de software em algumas categorias(ver Tools And Techniques For Software
Development):
Clique nos botões para ver as informações.
Cada software possui um tipo de licença que pode depender do per�l do usuário, ou do período de uso do software.
Exemplo: Freeware: Tipo de software disponível gratuitamente na internet e que pode ser baixado por qualquer pessoa;
software de código aberto, qualquer pessoa pode contribuir com o código, como o sistema operacional Linux, por
exemplo.
Licença 
Linguagens de programação usadas para escrever o código fonte de um software.
Por exemplo: C, C ++, Java, C#, Fortran, Cobol, Java Script, Python, Haskell.
Idioma 
Ferramentas usadas para testar o software para veri�car se está sendo executado sem erros e se está executando as
funções para as quais foi projetado.
Exemplo: Ferramentas de teste de unidade, ferramentas de teste funcional, rastreamento de erros, gerenciamento de
casos de teste.
Teste 
Ferramentas usadas para gerenciar um projeto de software durante seu ciclo de vida.
Exemplo: Ferramentas de planejamento e Ferramentas de rastreamento de projeto.
Gerenciamento de projetos 
Uma plataforma consiste na arquitetura de hardware e na estrutura de software que permite a execução do software e
compreende a arquitetura, o sistema operacional, as linguagens de programação do computador, as bibliotecas
relacionadas e a interface grá�ca do usuário.
Exemplo: Windows, Linux.
Plataforma 
Essas ferramentas são usadas para armazenar grandes quantidades de dados, de forma que eles possam ser
recuperados facilmente e no formato necessário.
Exemplo: Oracle, MySQL, SQL Server, Postgresql.
Gerenciamento de dados 
De�nida com base na funcionalidade da ferramenta.
Exemplo: Editor, compilador, gerador de código.
Função da ferramenta 
Conclusão
As ferramentas de software são usadas para dar suporte no desenvolvimento dos processos de negócios, documentar seu
processo de desenvolvimento e otimizar todos os outros. Uma escolha adequada das ferramentas aumenta a produtividade
dos projetos e apoia o desenvolvedor na manutenção do �uxo de trabalho do projeto.
Atividades
1. As metodologias tradicionais têm como principal característica a execução do projeto em processos lineares. Selecione a
opção correta na qual as metodologias tradicionais são adequadas:
a) Desenvolvimento de Software;
b) Montagem de Automóveis;
c) Manutenção de Equipamentos Eletrônicos;
d) Manutenção de Software;
e) Projetos complexos.
2. Uma das desvantagens das metodologias tradicionais é a necessidade de fazer o levantamento detalhado dos requisitos
antes de começar o projeto. Selecione a opção correta sobre as metodologias tradicionais:
a) Na verdade, isso é uma vantagem, pois, com a definição clara dos requisitos de software no início do projeto, seu desenvolvimento
fica simplificado;
b) É uma desvantagem, pois tem como consequência a geração de muita documentação;
c) É uma desvantagem, pois o desenvolvimento de software é dinâmico e a compreensão dos requisitos é entendida ao longo do
projeto;
d) Na verdade, não se trata nem de uma desvantagem e nem de uma vantagem, pois é uma característica natural do processo de
desenvolvimento;
e)Trata-se de uma desvantagem, pois levanta muitas informações desnecessárias para a equipe de desenvolvimento.
3. As metodologias tradicionais e ágeis possuem muitas diferenças. Selecione a opção correta sobre essas diferenças:
a) As metodologias tradicionais são adequadas para o desenvolvimento de softwares complexos, enquanto as ágeis são aplicadas
para sistemas simples;
b) Nas metodologias tradicionais os processos de teste e desenvolvimento são executados simultaneamente, enquanto nas ágeis os
testes são executados no final do desenvolvimento;
c) As metodologias tradicionais não fornecem todas as funcionalidades do software, enquanto nas ágeis todas as funcionalidades são
fornecidas;
d)As metodologias tradicionais são bastante utilizadas e recomendadas exatamente por serem tradicionais, enquanto as ágeis são
pouco utilizadas, pois ainda estão se consolidando no mercado;
e) As metodologias tradicionais e ágeis possuem mais semelhanças do que diferenças.
4. As ferramentas de desenvolvimento são programas de computador aplicadas para criação, manutenção, suporte e
depuração de outros programas. Selecione a opção que não corresponde a um fator que deve ser levado em consideração para
selecioná-las:
a) Critérios relacionados ao tipo de licença;
b) Ser capaz de desenvolver aplicações web e móveis;
c) Ferramentas que se integram às outras da empresa;
d) Sistema operacional;
e) Curva de aprendizado da equipe que vai utilizar a ferramenta.
5) As ferramentas de desenvolvimento de software podem ser classi�cadas em algumas categorias. Selecione a opção correta
que relaciona categoria e sua explicação:
a) Licença: Como exemplo, podem ser freeware e software de código aberto;
b) Idioma: Tratam da língua do país em que o software está sendo desenvolvido;
c) Teste: Testa se toda a equipe está trabalhando na mesma versão do código;
d) Gerenciamento de projetos: Devem ser usada apenas na fase de planejamento;
e) Plataforma: Aplicada para definir se o desenvolvimento deve ser estruturado ou orientado a objetos.
Notas
CNE 1
Conselho Nacional de Educação.
Título modal 1
Lorem Ipsum é simplesmente uma simulação de texto da indústria tipográ�ca e de impressos. Lorem Ipsum é simplesmente
uma simulação de texto da indústria tipográ�ca e de impressos. Lorem Ipsum é simplesmente uma simulação de texto da
indústria tipográ�ca e de impressos.
Referências
KESHTA, N.; MORGAN, Y. Comparison between traditional plan-basedand agile software processes according to team size &
project domain (A systematic literature review),2017 8th IEEE Annual Information Technology, Electronics and Mobile
Communication Conference (IEMCON), Vancouver, BC, 2017, p. 567-575, doi: 10.1109/IEMCON.2017.8117128.
SPRING DIGITAL. Tools And Techniques For Software Development. Disponível em: https://www.springdigital.com.au/software-
apps/tools-and-techniques-for-software-development/ <https://www.springdigital.com.au/<em>software</em>-apps/tools-and-
techniques-for-<em>software</em>-development/> . Acesso em: 04 jun. 2020.
Próxima aula
Problemas relacionados à complexidade do código;
Escolha da linguagem de programação.
Explore mais
Leia os textos:
Leia o livro GIT--distributed-even-if-your-work�ow-isnt
Leia o livro 15 top ferramentas para desenvolvedores
https://www.springdigital.com.au/%3Cem%3Esoftware%3C/em%3E-apps/tools-and-techniques-for-%3Cem%3Esoftware%3C/em%3E-development/
javascript:void(0);
javascript:void(0);

Continue navegando