MAC0470  Desenvolvimento de Software Livre

Por | Em

OBJETIVOS:  Familiarizar os alunos com o ecossistema do Software Livre incluindo os principais aspectos relacionados à produção de software seguindo o modelo aberto e colaborativo de produção e compartilhamento.

RESPONSÁVEIS:  Fabio Kon

PROGRAMA RESUMIDO:  O modelo de desenvolvimento colaborativo de software conhecido como Software Livre tem se mostrado capaz de produzir sistemas e aplicações de software de excelente qualidade. Na última década, as ferramentas e sistemas de software livre passaram a constituir uma plataforma robusta a partir da qual a indústria de TI pode construir e oferecer os seus serviços. Este modelo aberto e colaborativo de produção apresenta uma série de vantagens para uma grande gama de empreendimentos de desenvolvimento de software, tanto acadêmicos quanto comerciais. Esta disciplina irá expor os alunos às vantagens e desvantagens desse modelo bem como aos desafios a serem enfrentados por aqueles que o adotam. Dessa forma, os alunos estarão melhor preparados a participar de projetos de desenvolvimento de software livre.

PROGRAMA:  O modelo de desenvolvimento colaborativo de software conhecido como Software Livre tem se mostrado capaz de produzir sistemas e aplicações de software de excelente qualidade. Na última década, as ferramentas e sistemas de software livre passaram a constituir uma plataforma robusta a partir da qual a indústria de TI pode construir e oferecer os seus serviços. Este modelo aberto e colaborativo de produção apresenta uma série de vantagens para uma grande gama de empreendimentos de desenvolvimento de software, tanto acadêmicos quanto comerciais. Esta disciplina irá expor os alunos às vantagens e desvantagens desse modelo bem como aos desafios a serem enfrentados por aqueles que o adotam. Dessa forma, os alunos estarão melhor preparados a participar de projetos de desenvolvimento de software livre. Os tópicos abordados na disciplina são os seguintes: História do Software Livre: o movimento "Free Software" e o movimento "Open Source", a FSF e a OSI. Aspectos jurídicos de software livre: a legislação brasileira de propriedade intelectual, copyright, licenças, compatibilidades e incompatibilidades. Comunidades de software livre: formas de organização e participação, gerenciamento de contribuições e atratividade de projetos. Modelos de negócio e empreendedorismo com software livre. Desenvolvimento distribuído: ferramentas de desenvolvimento colaborativo à distância. Gerenciamento de código: CVS, Subversion, Baazar, Git, Mercurial, etc. Gerenciamento de requisitos e de relatos de erros (bugzilla, trac, XPlanner, etc.) Boas práticas de codificação, estilo e padronização de código Métodos Ágeis e Software Livre Testes e integração contínua (xUnit, Selenium, Cruise Control, etc.) Documentação Usabilidade Avaliação de qualidade de projetos de software livre Os estudantes terão contato com este material através de aulas teóricas, exercícios práticos cobrindo tópicos específicos e seminários. Em grupos de 2 a 10 alunos, será também desenvolvido um projeto de duração de 12 semanas onde espera-se uma real contribuição a um projeto de software livre; esta contribuição pode ser na forma de nova documentação, novas funcionalidades a um projeto existente ou consertos de erros e melhorias em um software livre existente.

PRÉ-REQUISITO:  MAC0121.

CARGA HORÁRIA SEMANAL E NÚMERO DE CRÉDITOS:  4 horas, 4 créditos-aula e 2 créditos trabalho.

CRITÉRIO DE AVALIAÇÃO DA APRENDIZAGEM: 
Método:  Participação em projeto de desenvolvimento de software livre, elaboração de seminário e contribuições à Wikipedia.

Critério:  Média ponderada de notas dadas a exercícios, trabalhos práticos e apresentação de seminários.

Norma de Recuperação:  Trabalho extra para alunos que ficarem de recuperação.

BIBLIOGRAFIA BÁSICA: 

  • M. Anthony and N. Biggs, Computational Learning Theory -- An Introduction, Cambridge University Press, 1992.

OBSERVAÇÃO:  Disciplina optativa eletiva no currículo do BCC.

 

[Veja dados da disciplina no JúpiterWeb]