Skip to content

Latest commit

 

History

History
276 lines (183 loc) · 15.3 KB

Dupla_THAYS_AUGUSTO.md

File metadata and controls

276 lines (183 loc) · 15.3 KB

Dupla THAYS e AUGUSTO

Link para atividades

Atividade01:

(https://docs.google.com/spreadsheets/d/1aNAMo9I_oapSxBGUyZeVYfEjLQCOk5_2V6oyhY5v4Jk/edit?usp=sharing)

Atividade02:

(https://docs.google.com/document/d/1E4lbbeLnLmlgngp9UEUp7Jhbp2i7vm_b5nYqVztZqRA/edit?usp=sharing)

Atividade03:

1- Crie uma subseção ## Atividade 3 no seu arquivo de dupla e faça as atividades abaixo: (Obrigatória) Experimente os commandos do git em algum repositório de código. Utilize os commandos commit, push, pull, checkout, log, shortlog, etc. Descreva o que cada um desses comandos faz.

commit: Confirma as mudanças realizadas no repositório. push: Envia as alterações confirmadas no commit para o repositório remoto desejada. pull: Atualiza o repositório local com a versão mais atual. checkout: Usado para transitar entre repositórios. log: Utilizado para obter o id de commit. shortlog: O shortlog é uma versão diferente do log. Ele agrupa cada commit por autor e mostra a primeira linha de cada mensagem de commit.

2- Baixe o site da disciplina na sua máquina local, e rode um comando para imprimir uma saída de terminal similar a esta: ghlp$ git xxxx 5 Filipe Saraiva saraiva@ufpa.br 24 Gustavo Pinto gustavohenrique.86@gmail.com

Resposta - git shortlog -s -n -e : mostra a listas dos usuários, seus commits e o emails.

3- Link da tradução feita em Your First PR : https://github.com/yourfirstpr/yourfirstpr.github.io/pull/157

Atividade04:

Parte 1 Selecione e identifique em um determinado projeto de software livre se a página inicial ou alguma página logo em seguida tem (ou não) links para instação, documentação, documentação traduzida, e como contribuir. Coloque o projeto avaliado e os links encontrados (ou não);

Projeto : ifme https://github.com/ifmeorg/ifme

Instalação: https://github.com/ifmeorg/ifme/wiki

Documentação: https://github.com/ifmeorg/ifme/wiki

Documentação traduzida: não foi encontrado

Contribuir: https://github.com/ifmeorg/ifme/wiki/Contributor-Blurb

Parte 2 Revise uma página de um projeto de software livre e sumarize os problemas encontrados (o que falta para ela ser mais informativa);

Projeto : ifme https://github.com/ifmeorg/ifme

A página do projeto está bem organizada, contendo bem claros e fáceis o acesso aos links para funções como Instalação, Documentação, Contribuição, etc. Entretanto não foi encontrada a opção de tradução da documentação.

Parte 3 Traduza uma página que precise de ajuda

Feito tradução de arquivo Readme do Projeto : ifme https://github.com/ifmeorg/ifme

link do pull request: ifmeorg/ifme#1464

Atividade05:

1 -Justifique o que acontece se um projeto de software não tiver nenhuma licença definida. 2 -Procure um projeto sem licença de software e adicione uma. 3 -Baixe e instale a ferramenta ninka e rode em pelo menos cinco projetos não-triviais 4- Acesse o site choosealicense, e estude ao menos cinco licenças. Justifique porque o site da disciplina tem a licença que tem. 5 - Procure por projetos de software que utilize uma licença que não deveria ser empregada em projetos de software.

Respostas:

1 - Quando um software não tiver nenhum tipo de licença, é considerado conteúdo de direitos reservados.

2- Criado licença para projeto. O commit segue abaixo. https://github.com/anaisabelamr/ArqueiroJava/pull/1/commits/e03a124c0e2fe8ecadec23c75f00701236cf828c

4- A licença utilizada pela disciplina é a Creative Commons Attribution 4.0 International Public License, que não é recomendada para software. Ela permite quase qualquer uso, sujeita a fornecer aviso de crédito e licença. Ela é frequentemente usada para ativos de mídia e materiais educacionais. A licença mais comum para publicações científicas do Open Access.

Atividade06:

Questões escolhidas:

1- Encontre Roadmaps em pelo menos 3 projetos de software livre. Descreva os planos de curto e longo prazo desse projeto. 2- Selecione 5 projetos de software livre famosos (pelo menos 1000 estrelas) e coloque os links para seus respectivos site, repositório de código fonte, bug tracking e ferramentas de comunicação. 5- Encontre e discuta formas de priorizar requisitos em projetos de software livre

Respostas

1- Software livre : Audacity Link do Roadmap: https://wiki.audacityteam.org/wiki/Roadmap

A liderança do projeto deixa bem claro que, a curto prazo, existe o desejo de se manter toda e qualquer release deva ser estável e deva rodar em todas as três plataformas do projeto. 
A curto e longo prazo, é definido diversas features desejados, assim como a preocupação de se conseguir aumentar a satisfação da participação dos envolvidos no projeto.

Software livre: VirtualBox Link do Roadmap: https://www.virtualbox.org/wiki/Suggestions_for_Contributions

O Site sugere algumas opções de contribuição que não necessariamente define se irá afetar o projeto em curto médio ou longo prazo.
Um exemplo sugerido seria: Uma nova porta para OnpenBSD e NetBSD são sugestões de implementações. Oque poderia ser considerado algo de curto a médio prazo.
Uma interface D-BUS para a API XPCOM iria melhorar a integração com o desktop no Linux. Algo que poderia ser considerado de curto prazo.
Serviços de API Web em .NET implementados é uma outra sugestão que poderia ser considerada de longo prazo.

Outras adições são mencionadas para OPENBDS, NetBDS, etc. Implementações difíceis de definir prazo dependendo da característica de cada uma.

Software livre: Workrave Link do Roadmap: https://github.com/rcaelers/workrave/blob/branch_v1_10/TODO

As sugestões abaixo são as mostradas pelo site. Não foi dito pelo projeto se são consideradas de longo médio ou curto prazo: Fazer estatísticas mais robustas a arquivos corrompidos. Acrescentar opção para checar por updates e novas versões. Arcrescentar a opção de clique duplo para abrir e fechar as janelas de diálogo. Nova forma recursiva de procurar por figuras.

2 -

Software: Hyperion Site: https://hyperion-project.org/ Repositório: https://github.com/hyperion-project/hyperion BugTracking: https://github.com/hyperion-project/hyperion/issues Ferramentas de comunicação: https://hyperion-project.org/

Software: Mixxx Site: https://www.mixxx.org/ Repositório: https://github.com/mixxxdj/mixxx BugTracking: https://bugs.launchpad.net/mixxx Ferramentas de comunicação: Forúm: https://www.mixxx.org/forums/ BLOG: https://mixxxblog.blogspot.com/ Lista de discussão: https://sourceforge.net/projects/mixxx/lists/mixxx-devel Chat: https://mixxx.zulipchat.com/login/ Twitter: https://twitter.com/mixxxdj Facebook: https://www.facebook.com/mixxxdj/

Software: MuseScore Site: https://musescore.org/pt-br Repositório: https://github.com/musescore/MuseScore BugTracking: https://musescore.org/pt-br/project/issues/musescore Ferramentas de comunicação: Forúm: https://musescore.org/en/forum Grupos: https://musescore.com/groups/improving-musescore-com Facebook: https://www.facebook.com/groups/musescore/ Twitter: https://twitter.com/musescore Linkedin: https://www.linkedin.com/authwall?trk=bf&trkInfo=AQHM5nwiue-RFQAAAWqjmVSAGD4m0cxDd9mAd-HPfBBvb2MXdxBa8YfDAnn0d99bkLRXFtQY_IbvcXl61AFrjyhbX3E8lVOoW1mmRmtmOH2nkL82GRCY6-bLq9K6x9-3yKy4TNY=&originalReferer=&sessionRedirect=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fmusescore

Software: Open Broadcaster Software Site: https://obsproject.com/ Repositório: https://github.com/obsproject/obs-studio BugTracking: https://obsproject.com/forum/ https://discordapp.com/invite/obsproject https://obsproject.com/help https://obsproject.com/chat Ferramentas de comunicação: Forúm: https://obsproject.com/forum/ Discord: https://discordapp.com/invite/obsproject OBS Studio and Ideas: https://ideas.obsproject.com/

Software: Jellyfin Site: https://jellyfin.readthedocs.io/en/latest/ Repositório: https://github.com/jellyfin/jellyfin BugTracking: https://jellyfin.readthedocs.io/en/latest/contributor-docs/issues/#reporting-bugs Ferramentas de comunicação: Matrix: https://matrix.to/#/+jellyfin:matrix.org Forúm: https://forum.jellyfin.org/ Reddit: https://www.reddit.com/r/jellyfin Facebook: https://www.facebook.com/jellyfin.media/ Twitter: https://twitter.com/jellyfin

5 - A forma mais recorrente de priorizar requisitos de software livre segue a lógica de se trabalhar e produzir de acordo com a necessidade do usuário (to scratch the itch). Nesse modelo não planejado, os usuários dos projetos irão desenvolver soluções e adições ao programa de acordo com as necessidades que encontrar durante o uso. Dessa forma tanto o usuário quanto o projeto se beneficiam do trabalho feito.

Atividade08:

Atividades escolhidas:

-Explique o são Linters e qual a sua importância ?

Lint é uma aplicação utilizada para encontrar  erros e bugs em códigos-fontes. A importância de utilizá-los é de se tornar o código mais legível e livre de erros que possam comprometer o entendimento de terceiros que o leiam. 

-Indique um guia de boas práticas de codificação em linguagem de programação (exceto: Python, PHP e Java)

Guia de boas práticas de codificação da linguagem HTML5
Link: https://www.w3schools.com/html/html5_syntax.asp

-Indique um guia de boas práticas de codificação em frameworks de linguagem de programação.

O guia Laravel está no endereço abaixo:
https://johnatant.github.io/laraveltherightway/

Atividade09:

Atividades escolhidas:

-Explique o são métodos ágeis e qual a sua importância no processo de desenvolvimento de softwares ?

Métodos ágeis são um conjunto de práticas no desenvolvimento de software que visam uma entrega com rapidez e qualidade de produtos, abordando negócios de forma que haja alinhamento das necessidades do cliente, as necessidades da empresa  e o desenvolvimento do projeto.

-Procure um projeto e indique um commit que indique trabalho feito em par, ou seja, um commit que tenha múltiplos autores.

Commit para o repositório do Django Rest Framework realizado por 3 autores:
https://github.com/encode/django-rest-framework/commit/37f210a455cc92cb3f61a23e194a1d0de58d149b

-Procure um projeto e indique um commit que contenha indícios da metodologia TDD (Test Driven Development), ou seja, o desenvolvedor enviou o código fonte com o teste no mesmo commit.

Aplicação da metodologia TDD no Django:
https://github.com/topics/django?q=tdd+methodology&unscoped_q=tdd+methodology

Atividade10:

Atividade escolhidas:

  • Por que utilizar testes unitários? O teste unitário deve ser capaz de examinar o comportamento do código de acordo com a entrada e saída de dados utilizadas. Utilizar o teste unitário reduz a quantidade de bugs no projeto ao longo da implementação.

  • Quais vantagens de utilizar integração contínua? Testes unitários previnem regressão, pois com uma boa base de testes garante que a introdução de novos métodos não afetam o funcionamento do que já existe; Incentivam a refatoração, já que o processo de refatorar não deve afetar o que o código faz, refactoring consiste em mudar apenas a aparência do código, além disso os testes unitários também podem ser utilizados como documentação.

  • Adicionar um método e o respectivo teste no projeto calculadora.

https://github.com/wagnernegrao/calculadora-CI/pull/19

Atividade11:

Atividade escolhidas:

  • Explique detalhadamente qual é a diferença entre as métricas "truck factor" e "heroes" Truck factor é uma medida utilizada para se determinar o risco que um projeto pode estar correndo caso algum ou mais dos seus participantes não possam mais participar, seja qual for o motivo (inclusive ser atropelado por um caminhão, por isso o nome). Dependendo da atuação do membro na equipe, o truck factor pode ser mais alto ou baixo, pois existem pessoas que tem uma participação muito mais alta em um projeto que outras. A métrica de Heroes é aquela utilizada para se determinar se um projeto possui uma porcentagem pequena de colaboradores (do total de participantes) com a maior parte da participação no trabalho. Esses indivíduos são aqueles que justificam a medida do truck factor, pois acabam sendo essenciais para o andamento do projeto.

  • Cite pelo menos três outras métricas de saúde de projetos de software livre Defeitos no projeto, é a imperfeição na especificação técnica, no projeto de um componente ou na codificação de um software, que, em determinadas condições, causa uma falha observada. Assim, ao longo do tempo vão aparecendo falhas que constituem a curva de detecção de falhas. Por sua vez, os defeitos também podem ser analisados construindo curva de detecção de defeitos e curva de densidade de defeitos. A observação minuciosa dos defeitos proporcionam a verificação de tendência em direção à qualidade. Qualidade total, que proporciona uma visão geral das medidas de qualidade de projeto combinando 4 domínios: arquitetura, projeto, código e teste; com o objetivo de calcular a saúde do projeto. O FPA (Function Point Analisys) é a métrica que determina o tamanho e a complexidade de um software. Concentra-se na quantificação da funcionalidade do software e baseia-se na visão do usuário para medir o que é um sistema e o seu tamanho funcional. Também pode medir a relação do sistema com usuários e com outros sistemas.

  • Explique porque os meios para medir qualidade de um projeto de software "tradicional" tem pouca aderência em projetos de software livre? Softwares tradicionais são mantidos por instituições lucrativas que possuem um vínculo financeiro muito forte com seus colaboradores. Os meios utilizados de medir a qualidade desse tipo de software são fortemente dependentes dessa condição, recorrendo à sua estrutura hierárquica lucrativa para determinar aos colaboradores que cumpram com as metas de qualidade definidas. Softwares livres são mantidos, na maior parte, pela contribuição gratuita de pessoas ao redor do mundo. Essa estrutura hierárquica financeira é fraca e na maioria inexistente. Dessa forma , fica muito mais difícil se garantir que um colaborador cumpra uma meta de qualidade (ele faz se ele quiser). Outra condição, é que é muito difícil de se medir a qualidade de software livre baseada em commits, pois , muitas vezes, existe muito mais a ser visto na participação de um colaborador que a quantidade de commits que produziu (software livre não depende só do código).

Atividade12:

Perguntas escolhidas:

1 - Informar o LOC de pelo menos 1 projeto usando a ferramenta cloc 2 - Informar as métricas de Chidamber-Kemerer de pelo menos 1 projeto usando a ferramenta ck 3 - Proponha pelo menos três métricas para avaliar um projeto de software livre.

Respostas: 1- Informar o LOC de pelo menos 1 projeto usando a ferramenta cloc Repositório Libra imagem em: https://docs.google.com/document/d/1Yjhkf9D_bSLNnaW_QpuR4TtBVtbSkQWE99aWpncVsWs/edit?usp=sharing

2- Proponha pelo menos três métricas para avaliar um projeto de software livre.

Frequência dos códigos (dentro da opção Insights), quantidade de Forks e a data da última atualização.

3- Informar as métricas de Chidamber-Kemerer de pelo menos 1 projeto usando a ferramenta ck

Não conseguimos rodar o ck.