Caracterização de um Processo de Software
para Projetos de Software Livre
Um Modelo de sucesso, extremamente
simples.
Perguntas
• Como projetos de software livre produzem
software?
• Como pode ter sucesso o modelo de
desenvolvimento utiliza...
Processo de Desenvolvimento de Software?
Conceitos
• Software?
• Engenharia de Software?
• Processo de Desenvolvimento de Software?
Capability Maturity Model (CMM)...
Software Livre e Open Source.
Software Livre ???

alteração

liberdade
código-fonte aberto
Uso

redistribuição

modificado por qualquer pessoa
Open Source ???

Software Livre +

organização social
ponto de vista puramente técnico
Como projetos de software livre
produzem software?
Projeto de Software Livre.
Onde encontramos Software Livre?
Aspectos do desenvolvimento de Software livre

documentação

modelo projeto arquitetural
análise e definição de requisitos...
Conclusões
Obrigado ;)

Willian S. Rodriguez
Upcoming SlideShare
Loading in …5
×

Caracterização de um Processo de Software para Projetos de Software Livre

218
-1

Published on

Caracterização de um Processo de Software para Projetos de Software Livre

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
218
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Para projetar a construção de softwares existem processos, ferramentas, organizações alternativas, diversos modelos e esforços conjuntos além de normas como CMM, SPICE e ISO/IEC 12207.
    Simultaneamente a essas iniciativas uma porção crescente de software vem sendo desenvolvida por grupos individuais e independentes, organizados em comunidades e/ou grupos que trabalham geograficamente dispersos seguindo
    a filosofia original do software livre (open source).
  • Contrariando todas essas lógicas, procedimentos, modelos e padrões, a grande maioria dos projetos desenvolvidos por essas comunidades obtém sucesso.
    Projetos como o Sistema Operacional Linux e o servidor Web Apache, comprovam que qualquer que seja esse modelo de desenvolvimento ele funciona.
    Para entender esse modelo , precisariamos responder a duas perguntas:
  • Destacar os seguintes pontos quando citar a segunda pergunta:
    Lembrando que o modelo de desenvolvimento utilizado por esses grupos é fundamentado em trabalho de desenvolvedores amadores e/ou voluntários, coordenados de maneira pouco formal usando ferramentas extremamente simples.
    Responder à essas perguntas sem entender alguns conceitos e aspectos da engenharia e do processo de software, é um pouco complicado. Por isso precisamos rever alguns detalhes do processo de software.
  • Um Processo de Desenvolvimento de Software é um conjunto de atividades parcialmente ordenadas com a finalidade de obter um produto de software.
    Legal….. Mas o que é Software. Alguem aqui sabe definir o que é software?
  • Software é uma seqüencia de instruções a serem seguidas e/ou executadas na manipulação, redirecionamento ou modificação de um dado/informação ou acontecimento.
    Engenharia de Software é uma área do conhecimento da informática voltada para a especificação, desenvolvimento e manutenção de sistemas de software.
    Processo de Desenvolvimento de Software é um conjunto de atividades parcialmente ordenadas com a finalidade de obter um produto de software.
    Padrões -> padrões, que visam à certificação de empresas como possuidoras de um processo de desenvolvimento, o que garante certo grau de confiança aos seus contratantes.
    PADRÕES para desenvolvimento de software que EXISTENTES ATUALMENTE;
    CMMI, MPS/BR, ISO 12207;
    Modelo de Processos de desenvolvimento de software.
    Modeloe em Cascata, Processo iterativo, Processos Ageis.
    Qualidade de Software;
  • Alem disso precisamos ententer o que é Software Livre e o que é software Open Source;
  • Software livre é qualquer software cuja licença garanta ao seu usuário liberdades relacionadas ao uso, alteração e redistribuição. Seu aspecto fundamental é o fato do código-fonte estar livremente disponível para ser lido, estudado ou modificado por qualquer pessoa interessada.
  • A expressão Open Source é freqüentemente usada para descrever software da mesma categoria que Software Livre, em contextos bastante parecidos. O open source enfatiza os aspectos do processo e da organização social, enquanto software livre enfatiza os aspectos de livre redistribuição e troca de conhecimento.
    Esta nomenclatura e discurso foram forjados por Eric Raymond e outros fundadores da OSI para apresentar o software livre a empresas de uma forma mais agradável a visão das corporações.
  • Nosso trabalho, é focado na tentativa de responder essa pergunta.
    A alguns minutos atrás descobrimos que, produção de software não é algo simples existem modelos, que auxiliam e “padronizam” essa pratica.
    Também vimos que as a produção de software livre contraria todos esses modelos.
    No estudo dos processos e projetos de desenvolvimento de software livre identificamos os seguintes pontos relevantes:
  • Os projetos são organizações virtuais (comunidades) formadas por indivíduos que trabalham juntos no desenvolvimento de um software livre específico.
    Estes indivíduos trabalham geograficamente dispersos, utilizando ferramentas simples para coordenar e comunicar seu trabalho através da Internet.
    As equipes da grande maioria dos projetos são pequenas, tendo menos de cinco participantes.
    A maioria dos projetos tem requisitos fundamentalmente definidos pelos seus autores.
    A base de usuários de grande parte dos softwares é composta por seus desenvolvedores e pela comunidade de software livre.
    Uma parcela significativa dos projetos baseia-se em outros softwares existentes e em padrões previamente publicados.
    Há pouca atenção dispensada com as atividades de revisão de código e teste sistemático. Entre as ferramentas que os projetos utilizam se destacam as listas de discussão e os sistemas de controle de versão.
  • Os projetos de software livre se concentram nas áreas de engenharia e desenvolvimento de software, redes, segurança e aplicações multimídia.
  • modelo Cada projeto de software livre possui sua forma de organização, suas regras internas, seus meios de contato, seus diferentes artefatos, diferentes formas de organizar e oferecer estes artefatos. Este fato dificulta qualquer processo de padronização dos projetos.
    Análise e definição de requisitos é freqüentemente facilitado por levantamentos anteriores feitos por outras equipes, seja através de padrões estabelecidos e/ou documentados ou através de código-fonte herdado de outro projeto.
    Geralmente não há projeto arquitetural para um projeto de software livre que não seja patrocinado por uma empresa.
    A codificação de um software livre inicia em geral imediatamente após sua idealização
    Teste Unitário é a fase do processo onde é testada a menor unidade de software desenvolvida (pequenas partes ou unidades do sistema). Geralmente há uma troca onde cada desenvolvedor testa o código desenvolvido por outro.
    gerência de cronograma Normalmente software é desenvolvido com base em um prazo esperado (macro-grama) para sua entrega, em projetos iterativos ou de maior escala é freqüente um número de marcos (ou milestones) intermediários que permitem verificar o progresso do trabalho e o desempenho da equipe.
    gerência de configuração Controle de versões através de ferramentas como CVS
    documentação na maioria dos projetos é feita através de wikis
  • O processo de software livre parece variar substancialmente entre os projetos, generalizações amplas quando se trata desta população não devem ser feitas.
    A maior parte dos modelos de processo este é um modelo genérico, cada projeto de software livre implementa uma instância do processo
    de software que é influenciado primordialmente pela sua cultura interna, seu histórico e seus objetivos.
    Pode-se afirmar que este processo de software é tipicamente um processo de manutenção, a atenção maior é voltada para os eventos e atividades realizadas após seu primeiro lançamento público.
    Objetivo do software livre não é atender a um conjunto de requisitos estáveis como na maioria dos projetos de software e sim evoluir continuamente de acordo com as necessidades dos seus usuários.
  • Livreeeee..
  • Caracterização de um Processo de Software para Projetos de Software Livre

    1. 1. Caracterização de um Processo de Software para Projetos de Software Livre
    2. 2. Um Modelo de sucesso, extremamente simples.
    3. 3. Perguntas • Como projetos de software livre produzem software? • Como pode ter sucesso o modelo de desenvolvimento utilizado por esses grupos ?
    4. 4. Processo de Desenvolvimento de Software?
    5. 5. Conceitos • Software? • Engenharia de Software? • Processo de Desenvolvimento de Software? Capability Maturity Model (CMM) PadrõesISO 12207 MPS/BR Modelos de Processo Modelo em Cascata Processo Iterativo Processos Ágeis Qualidade
    6. 6. Software Livre e Open Source.
    7. 7. Software Livre ??? alteração liberdade código-fonte aberto Uso redistribuição modificado por qualquer pessoa
    8. 8. Open Source ??? Software Livre + organização social ponto de vista puramente técnico
    9. 9. Como projetos de software livre produzem software?
    10. 10. Projeto de Software Livre.
    11. 11. Onde encontramos Software Livre?
    12. 12. Aspectos do desenvolvimento de Software livre documentação modelo projeto arquitetural análise e definição de requisitos codificação gerência de configuração teste de unidade e integração de sistema gerência de cronograma modelo
    13. 13. Conclusões
    14. 14. Obrigado ;) Willian S. Rodriguez
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×