CS 501: Software EngineeringFall 2000
Lecture 7Management II
Business and Legal Aspects of Software Engineering
2
Administration
• Read instructions for Assignment 2
Schedule presentationGroup and individual assignment
• No office hours next Tuesday
• No recitation session on Monday
• See Notices for Teaching Assistant assignments to projects.
3
Legal Environment
Software is developed in a complex legal and economic framework. Changes in laws follow changes in technical world.
Jurisdictions:
• United States Constitution• International treaties• Federal and state statues• Precedents• Supreme Court• Cost of establishing precedent
4
Legal Topics
• International
• Intellectual property (copyright, patent, contract)
• Tort (e.g., liability of Internet service provider)
• Privacy
• Free speech and its limitations (government secrets, obscenity, blasphemy, hate)
Legal Information Institute: http://www.law.cornell.edu/
5
Copyright
A copyright gives the owner the exclusive right to:
• reproduce
• distribute
• perform
• display
• license
Gradually extended to cover text, music, photographs, designs, software, ...
6
Copyright
Copyright at creation
• Works for hire
• Contracts and licenses
• First sale
• Fair use
• Infringement (contamination)
International differences
• Moral rights
• Copyright registration
7
Software Patents
• Should be: non-obvious, novel, useful
• 17 years from award (20 years from application)
• Poor quality of examining can lead to broad patents for routine computing concepts
• International differences
Copyright applies to the expression of ideas, patents to the ideas themselves.
8
Contracts and Licences
Contracts allow intellectual property to be sold or licensed
• Promise in exchange for adequate consideration
• Written document with signature
• Permanent or temporary, whole or part
• Exclusive or non-exclusive
• Termination, problems and difficulties
• Terms and conditions as agreed
• Enforceable by courts
9
Derivative Works
When software is derived from other software:
• New code is owned by new developer
• Conditions that apply to old code apply to derived work
If you write S, which is derived from A, B, C and D, you can not distribute or licenses S unless you have right to distribute each of A, B, C and D.
To create a software product, you must have documented rights to use every component.
10
Privacy
Invasions of privacy:
• intrusion
• appropriation of name or likeness
• unreasonable publicity
• false light
Be very careful about collecting personal data without the knowledge of the individual
11
Software Business Questions
• You are employed for company X writing software. When you leave, who owns your work? What use can you make of the work?
• You work free-lance for company X. When you finish, who owns your work? What use can you make of the work?
• You are a student on CS 502. What you finish what use can you make of your project work? What use can Cornell make of it?
Read the contract!
12
Your Next Job ...
• Employment contract may restrict your next job (not working for competitors, etc.)
• Trade-secret information (non-disclosure agreement)
Ask when you are interviewed!
13
Trade Secrets and Non-Disclosure Agreements
Trade Secret
"... information, including a formula, pattern, compilation, program, device, method, technique, or process that derives independent economic value from not being generally known and not being readily ascertainable and is subject to reasonable efforts to maintain secrecy."
Uniform Trade Secrets Act
Non-Disclosure Agreement
Legal agreement not to disclose trade secrets.
14
Some Business Models
• Software developed in-house
• Package licensed to customer, binary only (Microsoft model)
• Package licensed to customer, source code for customer's modifications
• Bespoke software for customer (may be owned by supplier or customer)
• Software bundled with hardware product (PalmPilot)
15
Free-Lance Software Development
You and a few friends create a company to develop software.
How much should you charge per hour?
You plan to work 40 hours a week for 50 weeks of the year and want to earn $50,000.
Hourly rate = $50,000 / (40 x 50) = $25
But ...
16
Free-Lance Software Development
Salary $50,000Taxes and benefits $15,000Rent, equipment, etc. $10,000Fees, services, etc. $15,000Travel and misc. $10,000 TOTAL EXPENSE $100,000
Hours worked 2,000less administration 400less marketing 350 BILLABLE HOURS 1,250
Hourly rate = $100,000 /1,250 = $80
17
Fixed and Variable Cost: Packaged Software
Example:
• The initial development cost of a software product is $10 million.
• The cost of packaging and distribution of each copy is $5.
• Technical support costs average $15 per copy.
• The package sells for $200 per copy.
Fixed cost = $10 million
Variable cost = $20
19
Community Development
• Shareware
• Open source (e.g., Linux, Apache, Perl, etc.)
-> Shared development
-> Market penetration
Example: TCP/IP for Vax/VMS
Software may be open source, but packaging and services can be profitable businesses
20
Open Source
• Free redistribution
• Source code
• Derived works
• Integrity of the author's source code
• No discrimination against persons or groups
21
Open Source
• No discrimination against fields of endeavor
• Distribution of license
• License must not be specific to a product
• License must not contaminate other software
http://www.opensource.org/osd.html