9.1.1 Social and ethical issues Flashcards

1
Q

Identify some issues associated with the impact of software.

A
  • Cybersafety - cyberbullying, grooming, cyberstalking, identity theft.
  • Accuracy of information - bias, misinformation, timeliness of information.
  • Social networks - similar issues to cybersafety and accuracy of information.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What was the Year 2000 problem?

A

The Y2K, or millennium bug, was a computer problem that was caused by programmers storing a year as 2 digits instead of 4. It is a classic case of an inappropriate data type being used. Decades before the year 2000, developers needed to save space wherever possible, and few would have believed that their code would have still been in use.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

List and describe different types of computer malware.

A
  • Virus - Attaches to an executable file, requires human interaction to spread.
  • Worm - Can replicate itself without human interaction.
  • Trojan - Appears as a useful program but damages system.
  • Spyware - Gathers and transmits information without a users consent.
  • Adware - Not necessarily malicious, presents advertising to users to generate revenue.
  • Rootkit - Enables access to a low level of an operating system. Often masks itself.
  • Ransomware - Holds user data ‘hostage’ (or threatens to reveal it) unless payment is made.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are some factors that affect software quality from a user’s perspective?

A
  • Accuracy- does it do what it is supposed to do?
  • Reliability - does it do it all of the time?
  • Efficiency - does it do it in the best way possible?
  • Security - does it store users information security and protect from malware?
  • Usability - is it easy and intuitive to use?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are some factors that affect software quality from a developer’s perspective?

A
  • Maintainability - is it easy to modify/update?
  • Testability - can it be tested thoroughly?
  • Portability - can it be used in other environments (hardware, OS, etc)?
  • Reusability - can it be used in another project?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the 3 most common constraints of a software project that affect its quality?

A
  • Time and ​Money - most projects will have a set timeframe in which to be completed and a set budget, so some desirable features may not be able to be implemented or not implemented as well as they could have, reducing the overall quality.
  • Expertise - not all projects will have the most qualified or experienced developers.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Outline 4 external factors that affect software quality.

A
  • Hardware - processor speed, storage, RAM.
  • Operating system - file access, user interface elements.
  • Other software - might use shared resources, or interfere with the operation of the application.
  • Run time errors - should be dealt with gracefully.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

List 7 important responsibilities of developers when they produce software solutions.

A
  1. Producing quality software solutions.
  2. Acknowleding the intellectual property of others
  3. Appropriately responding to user-identified problems
  4. Neither generating nor transmitting malware
  5. Addressing ergonomic issues in software design
  6. Ensuring software addresses inclusivity issues
  7. Ensuring individuals’ privacy is not compromised
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How can software developers design code that addresses ergonomic issues?

A

Ergonomics refers to the interaction between users and their work environment.

Software developers can do this by ensuring software exhibits reasonable response times and that the user interface is intuitive and consistent in design. Additionally, screen elements such as buttons and check boxes should follow recognised usages.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are some inclusivity issues that developers should be aware of when creating code?

A
  • Culture (eg format of dates, language)
  • Economic (eg pricing vs quality)
  • Gender
  • Disability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How can software developers address privacy issues?

A

By having a well-documented privacy policy the clearly explains how the uesr’s personal information amy be used, and that adheres to the relevant legal requirements (e.g. in Australia, the Privacy Act)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How can software developers design code that addresses security issues?

A
  • By securing user passwords. If passwords are run through a hashing algorithm and the hash is stored, then the original cannot be read by anyone within the company or by potential hackers.
  • By using proper security on their own systems, personal information is less likely to be compromised by hackers.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How can developers appropriately respond to user-identified problems?

A

By facilitating the reporting of problems. For example, through an online “bug report” form (or from within the app), or a “send crash report” facility if the application crashes.

When software upates are released, the “release notes” should detail any changes and bug fixes.

A webpage of known issues and potential workarounds for users could also be maintained.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is a code of conduct?

A

A set of guidelines outlining the responsibilities and proper practices for an organisation, with consideration given to the values of the organisation, the clients worked with and the product or service provided.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Why do organisations and professional groups have and maintain a code of conduct?

A

It clarifies an organisation’s mission, values and principles, linking them with standards of professional conduct and the quality of the product or service provided.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Why is it important that software developers adhere to a code of conduct?

A

Given the immense impact that software has on society and individuals, it is important that software developers establish and adhere to a code of conduct to ensure that software respects issues such as privacy, inclusivity and ergonomics.

Additionally, in a field that often changes so rapidly with new innovations, a set of general guidelines are needed when we are faced with social and ethical issues that have not been encountered before.

17
Q

What is intellectual property?

A

The ownership of ideas - property that results from mental labour.

18
Q

What is copyright and what is its purpose?

A

The legal enforcement of intellectual property.

Copyright laws are in place to acknowledge the time, effort and intellectual creativity put in to the development of software by software developers and protect their work from unauthorised use or duplication.

19
Q

What is a software license?

A

An agreement between developers and users detailing how the software product may be used.

20
Q

Why do users never own software after purchasing it?

A

Purchasing software is the cost of licensing. In this way the copyright interests of the developer are protected.

21
Q

Define each of the following in the context of software licenses: term, warranty, limited use, liability, reverse engineering.

A
  • Term - the amount of time that the agreement is in place.
  • Warranty - an assurance or guarantee that the software will work in some way.
  • Limited use - restrictions on the use of the product, such as how many machines it can be installed on and whether any copies can be made.
  • Liability - any obligation the provider of the software has as a consequence of some event.
  • Reverse engineering - determining the source code from the compiled/executable code.
22
Q

Define the general concepts behind each of the following software license types: commercial, shareware, freeware, public domain.

A
  • Commercial - normally very restrictive, closed source.
  • Shareware - free to use, at least initially. Some features may be disabled or the software may only work for a period of time unless the full version is purchased. Sharing of the software is encouraged.
  • Freeware - may or may not be open source. Common open source licenses like the GPL or MIT license detail any restrictrions on derivative works.
  • Public domain - the only software not covered by copyright, there are no restrictions on how it can be used and modified.
23
Q

Are users permitted to make copies of software released under a commerical license?

A

Most licenses allow one copy to be made for backup purposes

24
Q

What is decompilation?

A

When source code is compiled, the result is binary or executable files. Decompilation is the process of reverse engineering these binaries/executables into source code. This process is normally expressly forbidden in a commercial software license.

25
Q

What is a site license?

A

A condition of a software license specifying that the software can only be installed at a particular location - e.g. a workplace or campus.

26
Q

What are some technologies used to combat software piracy?

A
  • Use of a non-copyable data sheet
  • Use of serial numbers
  • Site license
  • Installation counter on a network
  • Encryption keys
  • Registration code
  • Back to base authentication
27
Q

What were the main issues in RACV vs Unisys?

A

Unisys demonstrated an incomplete version of the software (a functional prototype) that met the response times needed by the RAVC but the final product failed to deliver on this and other functionality.

This case highlights the need to carefully define criteria on which to evalutate the final product, and include that criteria

28
Q

What were the main issues in the NSW TCard case?

A

The NSW Government sued ERG for failing to deliver the electronic ticketing system TCard.

While ultimately unsuccessful, ERG argued that they were refused the opportunity to test their system in a live environment.

29
Q

What were the main issues in the Metallica vs Napster case?

A

The Napster peer-to-peer file sharing software flourished as a way for users to unlawfully share music.

Metal band Metallica sued Napster for infringement of copyright. Napster were required to pay out $26 million and ultimately went out of business.

30
Q

What was the main issue in the Apple vs Microsoft case?

A

Apple sued Microsoft for patent infringement following the release of Windows 2.0, saying that the look at feel of the graphical elements was too similar to their OS.

31
Q

What are some advantages for developers using networks for collaborative software development?

A
  • Access to resources - existing code and libraries, reference material, internal standards like style guides, tutorials.
  • Ease of communication - email and communication tools
  • Productivity tools - online project management tools make it easy for developers to update their progress, for managers to assign tasks, etc.
32
Q

What are some disadvantages for developers using networks for collaborative software development?

A
  • Security - being on a network opens the possibility of intellectual property theft from hackers.
  • Conflicts - when changes are made to a shared code base by team members working on different parts of the code, conflicts can arise.
33
Q

What are some considerations for the user when using an application or accessing another resource over a network?

A
  • Security and privacy - personal information, identity theft etc.
  • Ownership issues - where users generate content that is stored or shared on a service, the issue of who owns the content should be addressed explicitly in the terms and conditions.
  • Response times. The additional time involved in accessing a resource over a network can negatively impact the user experience.