Buscar

Aps engenharia de software

Prévia do material em texto

Atividade Prática Supervisionada - APS 
Engenharia de software 
 
Luiz Alberto da Silva Melin Para-Assú 
Maurício Ludovico 
Guilherme de Freitas Raio 
Matheus Moreira Lima 
 
 
Ciclo Iterativos 
O ciclo de vida de um projeto que usa desenvolvimento iterativo contém 
várias iterações. A iteração combina um conjunto quase contínuo de tarefas em 
proporções quase diferentes em modelagem de negócios, requisitos, análise e 
design, implementação, teste e implementação, dependendo de sua posição no 
ciclo de desenvolvimento. As iterações nas fases inicial e de design enfocam o 
gerenciamento, requisitos e atividades de design. A iteração durante a fase de 
construção se concentra no projeto, implementação e teste. As iterações da fase de 
transição se concentram em testes e implementação. As iterações devem ser 
gerenciadas em um estilo de frame de tempo, ou seja, o plano de iteração deve ser 
considerado fixo, e o escopo do conteúdo da iteração deve ser gerenciado 
ativamente para estar em conformidade com este plano. 
 
Ciclo Incrementais 
O processo incremental refere-se ao processo de construção / distribuição de 
software / produtos. Cada bloco ou incremento representa um subconjunto da 
função completa. O incremento pode ser pequeno ou grande, por exemplo, ele só 
pode mudar de uma tela de relatório simples para um conjunto de telas de 
gerenciamento de dados altamente flexível. Cada incremento foi completamente 
codificado e testado, e geralmente se espera que este trabalho possa tirar as 
conclusões mais completas. 
 
Os métodos ágeis são iterativos e incrementais. São iterativos, pois o 
trabalho concluído é sempre aprimorado nos ciclos subsequentes. Eles também são 
incrementais porque o trabalho planejado é entregue em partes, que foram 
adicionadas a todo o projeto. 
 
Métodos agile que são iterativos 
 
● Scrum; 
● Scaled Agile Framework (SAFe); 
● Feature Driven-Development (FDD); 
● Test Driven Development (TDD); 
● eXtreme Programming (XP)​; 
● Entre outros. 
 
Métodos agile que são incrementais 
● Dynamic Systems Development Method (DSDM); 
● Microsoft Solutions Framework (MSF); 
● Adaptative Software Development (ASD); 
● Entre outras. 
Métodos tradicionais que são iterativos 
● Modelos básicos que requerem um estudo mais amplo e demoram mais, 
porém vão sendo desenvolvidos junto com a opinião do consumidor. 
 
Métodos tradicionais que são incrementais 
● Modelos básicos que requerem um estudo mais amplo e demoram mais, são 
sendo lançados aos poucos sempre que tiver atualização 
 
Quais as empresas usam que usam modelos de desenvolvimento agile 
 
● Zara; 
● Appe; 
● FaceBook; 
● PayPal; 
● Globo; 
● Yahoo; 
● Locaweb; 
● Google; 
● Entre outros. 
 
Quais as empresas usam que usam modelos de desenvolvimento Interativos 
 
● Rumo; 
● Pormade; 
● SulAmérica; 
● Renault; 
● Gazeta do Povo; 
● Entre outros. 
 
 
Agile 
 
Desenvolvimento Ágil de Software também conhecido como Método ágil 
estuda um conjunto de comportamentos, processos, práticas ferramentas utilizados 
para a criação de produtos e sua subsequente disponibilização para os usuários 
finais. 
 
O Manifesto Ágil é uma declaração de princípios que fundamentam o 
desenvolvimento ágil de software, o mesmos nos traz 12 princípios que são : 
 
● Garantir a satisfação do cliente, entregando rápida e continuamente software 
funcional; 
● Até mesmo mudanças tardias de escopo no projeto são bem-vindas. 
● Software funcional é entregue frequentemente (semanal ou mensal - o menor 
intervalo possível); 
● Cooperação constante entre as pessoas que entendem do 'negócio' e os 
desenvolvedores; 
● Projetos surgem por meio de indivíduos motivados, devendo existir uma 
relação de confiança. 
● A melhor forma de transmissão de informação entre desenvolvedores é 
através da conversa 'cara a cara' 
● Software funcional é a principal medida de progresso do projeto; 
● Novos recursos de software devem ser entregues constantemente. Clientes e 
desenvolvedores devem manter um ritmo até a conclusão do projeto. 
● Design do software deve prezar pela excelência técnica; 
● Simplicidade – a arte de maximizar a quantidade de trabalho que não é feito 
– é essencial; 
● As melhores arquiteturas, requisitos e designs emergem de equipes 
auto-organizáveis. 
● Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e 
então refina e ajusta seu comportamento. 
 
Os métodos ágeis enfatizam comunicações em tempo real, preferencialmente 
cara a cara, a documentos escritos. A maioria dos componentes de um grupo ágil 
deve estar agrupada em uma sala. Isso inclui todas as pessoas necessárias para 
terminar o software: no mínimo, os programadores e seus clientes (clientes são as 
pessoas que definem o produto, eles podem ser os gerentes, analistas de negócio, 
ou realmente os clientes). Nesta sala devem também se encontrar os testadores, 
projetistas de iteração, redatores técnicos e gerentes. 
 
Métodos ágeis também enfatizam o software funcional como uma medida 
primária de progresso. Combinado com a comunicação cara-a-cara, métodos ágeis 
produzem pouca documentação em relação a outros métodos, sendo este um dos 
pontos que podem ser considerados negativos, mas reduzindo o tempo de produção 
de documentação mais útil. 
 
 
Comparativo 
 
A metodologia tradicional tem etapas bem definidas sendo o planejamento do 
projeto, uma estimativa em termos de prazo e orçamento, a execução e entrega no 
final. Por exemplo, em um desenvolvimento de software financeiro, teríamos o 
seguinte fluxo: 
 
● Planejamento do software (como ele ficará no final) 
● Planejamento das atividades que serão necessárias (programação, design, 
etc) 
● Definição de prazos e custos 
● Execução 
● Testes 
● Implantação 
 
 
A metodologia ágil apesar do nome, a palavra ágil aqui não significa agilidade 
e sim o poder de “quebrar” o projeto em partes menores. Ao contrário da 
metodologia tradicional que você faz apenas uma entrega já com o projeto final, 
aqui você faz entregas constantemente até entregar todo o projeto. 
 
A preocupação com custo, qualidade e prazos são as mesmas da 
metodologia tradicional, porém você consegue controlar e gerenciar as mudanças 
que provavelmente irão aparecer no decorrer do projeto. Na metodologia ágil o foco 
principal é a entrega de valor ao cliente, por isso é priorizado a entrega à 
documentação, por exemplo. Mas isso não quer dizer que não é documentado, não 
planejado, assim como na tradicional. Na metodologia ágil também existem esses 
aspectos, mas de maneiras diferentes. Por exemplo, o planejamento da metodologia 
ágil é de forma iterativa e incremental enquanto a da tradicional planeja com muita 
antecedência como será cada etapa do projeto. 
Dentro desta metodologia o mais utilizado e que provavelmente você já ouviu 
falar é o Scrum. 
 
Cascata 
O modelo de cascata é um modelo sequencial no qual o processo é visto 
como um fluir constante para frente (como uma cascata)​. O modelo em cascata 
apresenta uma grande vantagem quando o escopo do trabalho é claramente 
definido, como licitações e serviços específicos para órgãos públicos, neste cenário 
o modelo em cascata leva vantagem. Entretanto percebe-se a fragilidade do modelo 
nos dias dehoje em virtude da pouca ou quase nenhuma flexibilidade do modelo. 
Para seguir um modelo em cascata, o progresso de uma fase para a próxima 
se dá de uma forma puramente sequencial. 
 
Espiral 
O modelo de espiral é um modelo de voltas onde cada volta no espiral 
percorre todas as fases do processo, as voltas devem ser repetidas quantas vezes 
forem necessárias até que o projeto possa ser finalizado. 
Se aplicado adequadamente, reduzirá os riscos antes que se tornem 
problemáticos, as estimativas se tornam mais realistas e o tempo de implementação 
é reduzido, mais versátil para testar e lidar com mudanças. 
Todas as vantagens podem se tornar desvantagens caso não for aplicado 
adequadamente, não tendo uma avaliação dos riscos de um analista com 
experiência, se um risco importante não for descoberto e gerenciado corretamente, 
fatalmente ocorrerão problema 
 
RUP 
O modelo RUP ou IRUP (Após ser adquirido pela IBM) utiliza uma 
abordagem de orientação a objetos em sua concepção e é projetado e 
documentado utilizando a notação UML para ilustrar os processos em ação. 
Contém características como iterativo (quando ocorre processo com 
tentativas sucessivas) e incremental. 
Utilizando o RUP, é possível obter: Qualidade de software, produtividade no 
desenvolvimento, operação e manutenção de software, controle sobre 
desenvolvimento dentro de custos, prazos e níveis de qualidade desejados, 
estimativa de prazos e custos com maior precisão. 
O RUP utiliza pequenos ciclos de projeto (mini-projetos) que correspondem a 
uma iteração e que resultam em um incremento no software. Iterações referem-se a 
passos e incrementos a evolução do produto, cada ciclo de vida possui 4 fases: 
Concepção, elaboração, construção e transição. 
 
 
 
Bibliografia 
https://pt.wikipedia.org/wiki/Modelo_em_cascata 
https://medium.com/contexto-delimitado/o-modelo-em-espiral-de-boehm-ed1d85b7df 
https://www.treinaweb.com.br/blog/o-que-e-rup-rational-unified-process/ 
http://walderson.com/IBM/RUP7/LargeProjects/core.base_rup/guidances/supporting
materials/develop_iteratively_1F6AE780.html 
https://wiki.sj.ifsc.edu.br/index.php/Ciclo_de_Vida_Iterativo_e_Incremental 
https://www.culturaagil.com.br/o-que-e-safe/ 
https://www.euax.com.br/2019/04/metodologias-ageis/ 
https://administradores.com.br/artigos/metodologias-ageis-ou-tradicionais-qual-e-a-
melhor-para-meu-projeto 
https://www.jornalcontabil.com.br/o-modelo-tradicional-de-desenvolvimento-de-empr
esas-nao-funciona-mais/ 
https://www.treinaweb.com.br/blog/metodologias-agil-x-tradicional-quais-as-diferenc
as/ 
https://pt.wikipedia.org/wiki/Desenvolvimento_%C3%A1gil_de_software 
https://pt.wikipedia.org/wiki/Manifesto_%C3%81gil 
 
https://pt.wikipedia.org/wiki/Modelo_em_cascata
https://medium.com/contexto-delimitado/o-modelo-em-espiral-de-boehm-ed1d85b7df
https://www.treinaweb.com.br/blog/o-que-e-rup-rational-unified-process/
http://walderson.com/IBM/RUP7/LargeProjects/core.base_rup/guidances/supportingmaterials/develop_iteratively_1F6AE780.html
http://walderson.com/IBM/RUP7/LargeProjects/core.base_rup/guidances/supportingmaterials/develop_iteratively_1F6AE780.html
https://wiki.sj.ifsc.edu.br/index.php/Ciclo_de_Vida_Iterativo_e_Incremental
https://www.culturaagil.com.br/o-que-e-safe/
https://www.euax.com.br/2019/04/metodologias-ageis/
https://administradores.com.br/artigos/metodologias-ageis-ou-tradicionais-qual-e-a-melhor-para-meu-projeto
https://administradores.com.br/artigos/metodologias-ageis-ou-tradicionais-qual-e-a-melhor-para-meu-projeto
https://www.jornalcontabil.com.br/o-modelo-tradicional-de-desenvolvimento-de-empresas-nao-funciona-mais/
https://www.jornalcontabil.com.br/o-modelo-tradicional-de-desenvolvimento-de-empresas-nao-funciona-mais/
https://www.treinaweb.com.br/blog/metodologias-agil-x-tradicional-quais-as-diferencas/
https://www.treinaweb.com.br/blog/metodologias-agil-x-tradicional-quais-as-diferencas/
https://pt.wikipedia.org/wiki/Desenvolvimento_%C3%A1gil_de_software
https://pt.wikipedia.org/wiki/Manifesto_%C3%81gil

Continue navegando