Ementa DSL Graduação
No IME temos apenas a disciplina de pós de Desenvolvimento de Software Livre:
Vários alunos da graduação têm solicitado o oferecimento dessa disciplina para a graduação também. Então gostaríamos de criar a disciplina na graduação para talvez oferecê-la em 2013 se houver disponibilidade de algum docente.
Dados para criação de disciplina
Nome da Disciplina
Desenvolvimento de Software Livre
Objetivo
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.
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, Maven, Cruise Control, Hudson, 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.
Ementa
(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.
Avaliação
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
1) BENKLER, Yochai. The Wealth of Networks: How Social Production Transforms Markets and Freedom. New Haven: Yale University Press. Disponível em http://cyber.law.harvard.edu/wealth_of_networks, 2006.
2) FALCÃO, Joaquim; FERRAZ JUNIOR, Tercio Sampaio; LEMOS, Ronaldo; MARANHÃO, Juliano; SOUSA, Carlos Affonso Pereira; SENNA, Eduardo. Estudo sobre o Software Livre - Comissionado pelo Instituto Nacional da Tecnologia da Informação (ITI): Fundação Getúlio Vargas, 2005.
3) FELLER, Joseph et al. Perspectives on Free and Open Source Software. MIT Press. 2005.
4) FOGEL, Karl. Producing Open Source Software. O'Reilly. Disponível em http://producingoss.com, 2006.
5) GOLDMAN, Ron; GABRIEL, Richard P. Innovation Happens Elsewhere. Morgan Kaufmann, 2005.
6) LAURENT, Andrew M. St. Understanding Open Source & Free Software Licensing. Sebastopol: O’Reilly, 2004.
7) LERNER, J.; TIROL E, J. The scope of open source licensing. Journal of Law, Economics and Organization, n. 21, p. 20–56, 2005.
8) O’MAHONY, Siobhán. The governance of open source initiatives: what does it mean to be community managed? Journal of Management & Governance, v. 11, n. 2, p. 139–150, 2007.
9) RAYMOND, Eric S. The Cathedral and the Bazaar. Disponível em http://catb.org/esr/writings/cathedral-bazaar,1997-2009.
10) ROSEN, Lawrence. Open Source Licensing: Software Freedom and Intellectual Property Law. New Jersey: Prentice Hall, 2005.
11) SANTOS JR., Carlos. Open Source Software Projects’ Attractiveness, Activeness, and Efficiency as a Path to Software Quality: An Empirical Evaluation of their Relationships and Causes. Tese de Doutorado — Department of Management Information Systems at SIUC, Carbondale, IL, 2009.
12) STALLMAN, Richard M. Free Software Free Society: selected essays of Richard M. Stallman. GNU Press. Disponível em http://shop.fsf.org/product/free-software-free-society, 2002.
13) TAPSCOTT, Don; WILLIAMS, Anthony D. Wikinomics: how mass collaboration changes everything. 375 Hudson Street, New York, NY: The Penguin Group, 2006.
Carga horária
Créditos Aula: 4
Créditos Trabalho: 2
Carga Horária Total: 120 h
Tipo: Semestral
Pré-requisito
MAC0122 - Princípios de Desenvolvimento de Algoritmos
É desejável boa experiência em desenvolvimento de software ou ter cursado a disciplina Programação Orientada a Objetos (MAC 441) ou equivalente e possuir bons conhecimentos de programação orientada a objetos em uma linguagem como Java, C#, Objective C, Python, Ruby ou Smalltalk.