1 January 14, Evaluating Open Source Software William Cohen NCSU CSC 591W January 14, 2008 Based on David Wheeler, “How to Evaluate Open Source.

Slides:



Advertisements
Similar presentations
HOMEWORK PAGE STAND ALONE PROGRAMS FUNCTION ON THEIR OWN AND SOMETIMES CANNOT SHARE DATA WITH OTHER PROGRAMS. INTEGRATED SOFTWARE COMBINES.
Advertisements

FIRST COURSE Computer Concepts Internet and Microsoft Office Get to Know Your Computer.
I Information Systems Technology Ross Malaga 3 "Part I Understanding Information Systems Technology" Copyright © 2005 Prentice Hall, Inc. 3-1 SOFTWARE.
SDLC Phase 2: Selection Dania Bilal IS 582 Spring 2009.
Lesson 46: Using Information From the Web copy and paste information from a Web site print a Web page download information from a Web site customize Web.
OPEN-SOURCE SOFTWARE BY: SAMANTHA HERALD  Otherwise known as OSS, is computer software that is available with source code: normally reserved for copyright.
CHAPTER 6 OPEN SOURCE SOFTWARE AND FREE SOFTWARE
CIS 2200 Kannan Mohan Department of CIS Zicklin School of Business, Baruch College.
Linux Operations and Administration
Fundamentals of Networking Discovery 1, Chapter 2 Operating Systems.
Creating Web Pages Overview. Design – Start with a Purpose Before you start any web page, you need to design the website. The first question that should.
© 2011 Delmar, Cengage Learning Chapter 7 Managing a Web Server and Files.
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
Chapter 2 – Software Part A. Definition Computer is made up of two components Hardware Physical components Software Instructions for the computer Two.
Section 2 Software.
OPEN SOURCE AND FREE SOFTWARE. What is open source software? What is free software? What is the difference between the two? How the two differs from shareware?
Software Writer:-Rashedul Hasan Editor:- Jasim Uddin.
UEC 01 : Computer Skills & Programming Concepts I 1PUA – Computer Engineering Department – UEC01 – Dr. Mona Abou - Of Lecture 6: Applications Software.
Software Development Process.  You should already know that any computer system is made up of hardware and software.  The term hardware is fairly easy.
Introduction After seeing the pressure of license and proprietary software users where a lot of money is needed to make sure the software is in good condition,
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Chapter 3 Installing and Learning Software. 2Practical PC 5 th Edition Chapter 3 Getting Started In this Chapter, you will learn: − What is in an application.
ITGS Application Software, pt. 3. ITGS Business Software Alliance (BSA) and Federation Against Software Theft (FAST) –Represent software companies and.
MIS 105 LECTURE 1 INTRODUCTION TO COMPUTER HARDWARE CHAPTER REFERENCE- CHP. 1.
Nursing Informatics. What is open source software? What is free software? What is the difference between the two? How the two differs from shareware?
TOPIC 7.0 LINUX SERVICES AND CONFIGURATION. ROOT USER Root user is called “super user” because it has power far beyond those of mortal user. As root,
Information Systems Design and Development Technical Implications (Software) Computing Science.
CHAPTER 2 COMPUTER SOFTWARE. LEARNING OUTCOMES At the end of this class, students should be able to:  Explain the significance of software  Define and.
1 April 14, Starting New Open Source Software Projects William Cohen NCSU CSC 591W April 14, 2008.
1 February 6, Patch Submission and Review Process William Cohen NCSU CSC 591W February 11, 2008.
Chapter 3 Applications Software: Getting the Work Done.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
1 April 21, Funding Open Source Software Projects William Cohen NCSU CSC 591W April 21, 2008.
Computer Maintenance Software Configuration: Evaluating Software Packages, Software Licensing, and Computer Protection through the Installation and Maintenance.
Chapter 2 Operating Systems
DISCOVERING COMPUTERS 2018 Digital Technology, Data, and Devices
INTRO. To I.T Razan N. AlShihabi
Chapter 1 Computer Technology: Your Need to Know
3.02H Publishing a Website 3.02 Develop webpages..
Chapter 3 Installing and Learning Software
Lecture 1-Part 2: Operating-System Structures
Application Software Chapter 6.
Selected topic in computer science (1)
Software Packaging and Releasing
OPEN SOURCE SOFTWARE (OSS)
Learning Intentions: To understand what is required to achieve a Pass, Merit or Distinction for Task 2.
Understanding the OSI Reference Model
UNIT 15 Webpage Creator.
PHP / MySQL Introduction
Chapter 3 Installing and Using Software
Computer Software Created by Ann Ware
5 SYSTEM SOFTWARE CHAPTER
INPE, São José dos Campos (SP), Brazil
Computer Maintenance Software Configuration: Evaluating Software Packages, Software Licensing, and Computer Protection through the Installation and Maintenance.
System And Application Software
Provide Real-Time Appointment Status & Improve Patient Satisfaction
Software Introduction
Chapter 2: System Structures
Applications Software: Getting the Work Done
Chapter 2: The Linux System Part 1
Managing a Web Server and Files
Analysis models and design models
5 SYSTEM SOFTWARE CHAPTER
4.02 Develop web pages using various layouts and technologies.
A Short Course on Geant4 Simulation Toolkit How to learn more?
A Short Course on Geant4 Simulation Toolkit How to learn more?
4.02 Develop web pages using various layouts and technologies.
SOFTWARE TECHNOLOGIES
September 12-14, 2018 Raleigh, NC.
Web Application Development Using PHP
Presentation transcript:

1 January 14, Evaluating Open Source Software William Cohen NCSU CSC 591W January 14, 2008 Based on David Wheeler, “How to Evaluate Open Source Software / Free Software (OSS/FS) Programs,”

2 January 14, Why Evaluate Existing Software? ● Determine if suitable software already exists ● Select the best software possible ● Make use of already available work

3 January 14, Evaluation Steps ● Identify candidates ● Read reviews ● Compare leading candidate programs for basic attributes ● Analyze top candidates in more depth

4 January 14, Identify Candidates ● Search sites OSS software packages: ● Freshmeat ● SourceForge ● Savannah ● FSF Software directory ● Use Search Engine

5 January 14, Effective Searching ● Search engine possible biases: ● May not show software competing with their offering ● Paid advertising put before the links of interest ● Search terms: ● Identify key words and combinations ● Use previous found package names ● Use data formats the that software might use, e.g. jpg

6 January 14, Read Reviews ● Make use of other people's experience with the software: ● May be faster than locally installing the software ● May compare various software packages you are already considering ● Search for reviews view search engines ● Review biases: ● Publisher of review may accept ad revenue ● Software fans may bias votes or comments on software

7 January 14, Software Market Share ● Hard to determine how many copies running ● Do not have to report the number of copies running ● Downloads can hint at relative use, but not absolute: ● One download may be used many times ● Software fans may influence download numbers ● Data on network visible attributes: ● Websites indicate the software used to build them ● Web browsers identify themselves, e.g. Mozilla, Internet Explorer ● Look at what distributions include the software package

8 January 14, Compare Candidates for Basic Attributes ● Reduce list of possible software down to “likely candidates” ● Examine the OSS project web pages for basic attributes: ● Brief description of project ● Frequently Asked Questions (FAQs) ● Project documentation ● Mailing lists ● Links to related projects

9 January 14, Basic Attributes ● Functionality ● Cost ● Market Share ● Support ● Maintenance ● Reliability ● Performance ● Scaleability ● Useability ● Security ● Flexibility/Customizability ● Interoperability ● Legal/License issues

10 January 14, Functionality ● Does it work on the desired platform, e.g. Microsoft Windows, Apple OS X, or Linux? ● Have a list of functionality needed/desired ● Does the program do what you want? ● How hard would it be to add missing functionality to OSS?

11 January 14, Cost ● “Free” in Free Software refers to liberty ● May be nominal costs for getting software on media ● Setup costs: ● Initial installation ● Migrating existing data ● Training ● Hardware needed ● Staffing ● License fees ● Upgrade/maintenance

12 January 14, Market Share ● Are significant number of people using the software? ● Large user base: ● Many people find the software useful ● More likely support of software

13 January 14, Support ● Help with training, installing, and fixing issues with software ● Is the documentation readable and useful? ● Community support: ● Generally free ● FAQ, IRC, and mailing list ● Commercial Support: ● Companies ● Consultants

14 January 14, Maintenance ● It the project mature? ● Is there active work on the project? ● Is there a bug/issue tracking system? ● Are issues with the software being addressed in a timely manner?

15 January 14, Reliability ● How does the website describe the maturity of the software? ● Are people using the software in production environment? ● Are there test suites to check that the software functions? ● Are the test suites run regularly to make sure that the code base continues to function?

16 January 14, Performance and Scaleability ● Performance ● How fast (or slow) is the software? ● Benchmarks posted may not be applicable to your application ● May need to benchmark when doing detailed analysis ● Scaleability: ● Are people using the software in similar sized configuration?

17 January 14, Useability ● How easy is it to use the software? ● How much work to setup new user? ● How difficult to do common tasks? ● Interfaces: ● Library Application Programmer Interfaces (API) ● Graphical User Interface (GUI) ● Command Line Interface (CLI) ● Does the software follow interface guideline?

18 January 14, Security ● Static analysis of OSS: ● Coverity ● Klocwork ● Security issues: ● MITRE's CVE ● Are developers analyzing and reviewing the code

19 January 14, Flexibility/Customizability ● How easy is it to adapt the code? ● Examples: ● GCC ability to port compiler to new architectures ● Plugins for web browsers

20 January 14, Interoperability ● Able to work with standard formats ● Important for data exchange with others and use of existing data ● Examples: ● Image manipulation systems ● Word processors ● Databases

21 January 14, Legal/License issues ● Some End User License Agreements (EULAs) have clauses that may be unacceptable: ● Compliance audit ● Providing vendor with private information ● Available source code doesn't guarantee OSS, check the license, copyright owner may restrict copying ● License information (OSS license compatibility): ● OSI ● FSF ● Restrictive vs. Non-restrictive OSS license ● Legal suites ● Software patents

22 January 14, Evaluating Attributes ● Attribute importance varies on application ● Market Share may be relatively unimportant for a research project ● Legal/License issues can be very important if plan to redistribute code

23 January 14, Analyze Top Candidates in Detail ● Have narrowed field to a smaller list of possible software packages ● Have firsthand experience with candidate software ● Examine code base for adding functionality ● Benchmark code ● Check reliability (Does it handle problems gracefully?)

24 January 14, Additional Information ● ● ●