UNIT-V Open Source Software Development: Starting from what you have, Choose a license and apply it, Setting the tone, Technical infrastructure: What a.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Teaching Using the Internet in Your Classroom.
DOCUMENT TYPES. Digital Documents Converting documents to an electronic format will preserve those documents, but how would such a process be organized?
Systematic Review Data Repository (SRDR™) The Systematic Review Data Repository (SRDR™) was developed by the Tufts Evidence-based Practice Center (EPC),
Process of Making Multimedia
Examine Quality Assurance/Quality Control Documentation
RSS RSS is a method that uses XML to distribute web content on one web site, to many other web sites. RSS allows fast browsing for news and updates.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Software Development, Programming, Testing & Implementation.
Android 4: Creating Contents Kirk Scott 1. Outline 4.1 Planning Contents 4.2 GIMP and Free Sound Recorder 4.3 Using FlashCardMaker to Create an XML File.
Web Content Management Systems. Lecture Contents Web Content Management Systems Non-technical users manage content Workflow management system Different.
An Introduction to Content Management. By the end of the session you will be able to... Explain what a content management system is Apply the principles.
Lecturer: Ghadah Aldehim
Sudheesh Singanamalla. Editable and Free Every open source software is free to download and use for a lifetime. At the same time it gives the transparency.
Open Source Workshop1 IBM Software Group Working with Apache Tuscany A Hands-On Workshop Luciano Resende Haleh.
Chapter 8: Systems analysis and design
16-1 The World Wide Web The Web An infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that information.
© 2011 Delmar, Cengage Learning Chapter 7 Managing a Web Server and Files.
Internet Searching Made Easy Last Updated: Lesson Plan Review Lesson 1: Finding information on the Internet –Web address –Using links –Search.
Moodle (Course Management Systems). Managing Your class In this Lecture, we’ll cover course management, including understanding and using roles, arranging.
Copyright (c) Cem Kaner. 1 Software Testing 1 CSE 3411 SWE 5411 Assignment #1 Replicate and Edit Bugs.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Development of Multiplatform, VR Applications Pablo Figueroa 1, Pierre Boulanger 1, H. J. Hoover 1, Mark Green 2, Robyn Taylor 1 1.University of Alberta.
COMP 208/214/215/216 – Lecture 8 Demonstrations and Portfolios.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
The Software Development Process
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
 Programming - the process of creating computer programs.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
Blogging. Website and blog A website, also written as web site,or simply site, is a set of related web pages typically served from a single web domain.
Making a great Project 2 OCR 1994/2360. Implementation This is about how you make your system. It should have enough detail for a competent user to be.
Overview In this tutorial you will: learn what an e-portfolio is learn about the different things e-portfolios may be used for identify some options for.
1 Multimedia Development Team. 2 To discuss phases of MM production team members Multimedia I.
PowerTalk automatically speaks the text in presentations while you operate PowerPoint as usual. It uses computer speech that comes with Windows XP and.
 System Requirement Specification and System Planning.
1 April 14, Starting New Open Source Software Projects William Cohen NCSU CSC 591W April 14, 2008.
Free Software - Introduction to free software and the GPL Copyright © 2007 Marcus Rejås Free Software Foundation Europe I hereby grant everyone the right.
Chapter 3 Applications Software: Getting the Work Done.
Advanced Higher Computing Science
INTRO. To I.T Razan N. AlShihabi
Open source development model and methodologies.
Human Computer Interaction Lecture 21 User Support
Web Development & Design Foundations with HTML5 7th Edition
Architecture Review 10/11/2004
David Hatten Developer, UrbanCode 17 October 2013
Development Environment
Mobile Testing - Bug Report
Developing WordPress Plugins
Annual Performance Management Cycle Management Training Tutorial
System Software EIT, © Author Gay Robertson, 2016.
The COSMO Coding Standards Some Highlights
Software Documentation
UNIT 15 Webpage Creator.
Issue Tracking Systems
Are my Sources Reliable?
Editing & Polishing your Assignment
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
The Object-Oriented Thought Process Chapter 05
Problems when using the Internet?
Unit 6: Application Development
Managing a Web Server and Files
Podcasting “Podcast” is one of those words that we hear tossed around a lot these days – it sounds kind of intimidating -- but what exactly is a podcast?
We know who they are and what they do, but how do we help them?
Planning and Storyboarding a Web Site
Git started with git: 2018 edition
Open Source Development Challenges
Introduction to RefWorks
BEMS user Manual Fundación cartif.
Presentation transcript:

UNIT-V Open Source Software Development: Starting from what you have, Choose a license and apply it, Setting the tone, Technical infrastructure: What a project needs, Mailing lists, Version Control, Bug Tracker, RSS Feeds, Wikis, Websites.

 1.Starting from what you have What We Mean by Users and Developers The terms user and developer here refer to someone's relationship to the open source software project in question, not to her identity in the world at large. For example, if the open source project is a JavaScript library intended for use in web development, and someone is using the library as part of her work building web sites, then she is a "user“ of the library (even though professionally her title might be "software developer"). But if she starts contributing bug fixes and enhancements back upstream -- that is, back into the project -- then, to the extent that she becomes involved in the project's maintenance, she is also a "developer" of the project.

Starting From What You Have You've looked around, found that nothing out there really fits your needs, and decided to start a new project. What now? The hardest part about launching a free software project is transforming a private vision into a public one. You or your organization may know perfectly well what you want, but expressing that goal comprehensibly to the world is a fair amount of work. that is, decide its limitations, what it won't do as well as what it will — and write up a mission statement.

In a perfect world, perhaps, every new open source project would start out life with a thorough design document, a complete user manual (with special markings for features planned but not yet implemented), beautifully and portably packaged code, capable of running on any computing platform, and so on.

a) Choose a Good Name A good name will not automatically make your project successful, and a bad name will not doom it. A good name: • Gives some idea what the project does Is easy to remember Is not the same as some other project's name If possible, is available as a domain name in the .com, .net, and .org top-level domains. You should pick one, probably .org, to advertise as the official home site for the project;

b)Have a Clear Mission Statement Once they've found the project's web site, the next thing people will look for is a quick description, a mission statement, so they can decide (within 30 seconds) whether or not they're interested in learning more. c) State That the Project is Free Those who remain interested after reading the mission statement will next want to see more details, perhaps some user or developer documentation, and eventually will want to download something. But before any of that, they'll need to be sure it's open source. Note: The front page must make it unambiguously clear that the project is open source.

  d) Features and Requirements List There should be a brief list of the features the software supports and the kind of computing environment required to run the software

The features and requirements list would give the details, clarifying the mission statement's scope: Features: • Searches plain text, HTML, and XML • Word or phrase searching • (planned) Fuzzy matching • (planned) Incremental updating of indexes • (planned) Indexing of remote web sites Requirements: • Python 2.2 or higher • Enough disk space to hold the indexes (approximately 2x original data size) With this information, readers can quickly get a feel for whether this software has any hope of working for them, and they can consider getting involved as developers too.

e) Development Status People always want to know how a project is doing. For new projects, they want to know the gap between the project's promise and current reality. Alpha and Beta The term alpha usually means a first release, with which users can get real work done and which has all the intended functionality, but which also has known bugs. The main purpose of alpha software is to generate feedback, so the developers know what to work on.

The next stage, beta, means the software has had all the serious bugs fixed, but has not yet been tested enough to certify for release. The purpose of beta software is to either become the official release, assuming no bugs are found, or provide detailed feedback to the developers so they can reach the official release quickly.

f) Downloads The software should be downloadable as source code in standard formats. When a project is first getting started, binary (executable) packages are not necessary, unless the software has such complicated build requirements or dependencies that merely getting it to run would be a lot of work for most people.

g) Version Control and Bug Tracker Access Downloading source packages is fine for those who just want to install and use the software, but it's not enough for those who want to debug or add new features. Note that bug trackers are often used to track not only software bugs, but enhancement requests, documentation changes, pending tasks, and more.

h) Communications Channels Visitors usually want to know how to reach the human beings involved with the project. Provide the addresses of mailing lists, chat rooms, and IRC channels, and any other forums where others involved with the software can be reached. Make it clear that you and the other authors of the project are subscribed to these mailing lists, so people see there's a way to give feedback that will reach the developers.

I) Developer Guidelines Basic elements of developer guidelines are: • pointers to forums for interaction with other developers • Instructions on how to report bugs and submit patches j) Documentation A good rule of thumb is that it should meet the following minimal criteria: Tell the reader clearly how much technical expertise they're expected to have Describe clearly and thoroughly how to set up the software Give one tutorial-style example of how to do a common task Label the areas where the documentation is known to be incomplete

Example Output and Screenshots If the project involves a graphical user interface, or if it produces graphical or otherwise distinctive output, put some samples up on the project web site. In the case of interface, this means screenshots; for output, it might be screenshots or just files

Choosing a License and Applying It There are a great many free software licenses to choose from. Most of them we needn't consider here, as they were written to satisfy the particular legal needs of some corporation or person, and wouldn't be appropriate for your project. We will restrict ourselves to just the most commonly used licenses; The "Do Anything" Licenses If you're comfortable with your project's code potentially being used in proprietary programs, then use an MIT/X-style license. It is the simplest of several minimal licenses that do little more than assert nominal copyright (without actually restricting copying) and specify that the code comes with no warranty.

The GPL If you don't want your code to be used in proprietary programs, use the GNU General Public License. (http://www.gnu.org/licenses/gpl.html). The GPL is probably the most widely recognized free software license in the world today. How to Apply a License to Your Software Once you've chosen a license, you should state it on the project's front page. You don't need to include the actual text of the license there; just give the name of the license, and make it link to the full license text on another page.

This tells the public what license you intend the software to be released under, but it's not sufficient for legal purposes. For that, the software itself must contain the license. The standard way to do this is to put the full license text in a file called COPYING (or LICENSE), and then put a short notice at the top of each source file, naming the copyright date, holder, and license, and saying where to find the full text of the license. There are many variations on this pattern, so we'll look at just one example here. The GNU GPL says to put a notice like this at the top of each source file:

Copyright (C) <year> <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Technical infrastructure: Free software projects rely on technologies that support the selective capture and integration of information. The more skilled you are at using these technologies, and at persuading others to use them, the more successful your project will be. This only becomes more true as the project grows

What a Project Needs Most open source projects offer at least a minimum, standard set of tools for managing information: Web site Mailing lists / Message forums Version control Bug tracking Real-time chat

Web site Primarily a centralized, one-way conduit of information from the project out to the public. The website may also serve as an administrative interface for other project tools. Mailing lists / Message forums Usually the most active communications forum in the project, and the "medium of record." Version control Enables developers to manage code changes conveniently, including reverting and "change porting". Enables everyone to watch what's happening to the code.

Bug tracking Enables developers to keep track of what they're working on, coordinate with each other, and plan releases. Enables everyone to query the status of bugs and record information (e.g., reproduction recipes) about particular bugs. Can be used for tracking not only bugs, but also tasks, releases, new features, etc. Real-time chat A place for quick, lightweight discussions and question/answer exchanges. Not always archived completely.