Reading

Sommerville, Chapter 1

Software Engineering Code of Ethics and Professional Practice

Objectives

  1. Know the reasons for most Software Failures and the ways in which they manifest.
  2. Understand how personal software development must change to Software Engineering when the program will be used by others, developed by teams, and maintained/changed through its lifetime.
  3. Comprehend the essential attributes of Acceptability, Dependability/Security/Safety, Efficiency, and Maintainability.
  4. Understand how Quality, Schedule, and Budget must be balanced by the software engineer.
  5. Describe how varying degrees of software engineering are needed based upon the type of software being developed.
  6. Understand the four Fundamental Activities common to all software development processes.
  7. Describe the difference between Computer Science and Software Engineering.
  8. Describe how Heterogeneity, Business/Social Change, Security and Trust, and Scale affect different types of software.
  9. Know the Eight Principles of the ACM/IEEE-CS Software Engineering Code of Ethics and Professional Practice.

Notes

  1. Know the reasons for most Software Failures and the ways in which they manifest. List these.
    • Two primary reasons for Software Failures
    • Manifested by what three means
  2. Understand how personal software development must change to Software Engineering when the program will be used by others, developed by teams, and maintained/changed through its lifetime. State the issues.
    • Program to be Used by Others
    • Developed by Teams
    • Maintained/Changed through its Lifetime
  3. Comprehend the essential attributes of Acceptability, Dependability/Security/Safety, Efficiency, and Maintainability. Define each.
    • Acceptability
    • Dependability/Security/Safety
    • Efficiency
    • Maintainability
  4. Understand how Quality, Schedule, and Budget must be balanced by the software engineer. Elaborate on the Give-and-Take.
  5. Describe how varying degrees of software engineering are needed based upon the type of software being developed. Describe the Factors.
    • Factors requiring MORE Rigor
    • Factors allowing LESS Rigor
  6. Understand the four Fundamental Activities common to all software development processes. List the four.
  7. Describe the difference between Computer Science and Software Engineering. Describe in no more than two sentences.
  8. Describe how Heterogeneity, Business/Social Change, Security and Trust, and Scale affect different types of software. Describe each and implications for software type.
    • Heterogeneity
    • Business/Social Change
    • Security and Trust
    • Scale
  9. Know the Eight Principles of the ACM/IEEE-CS Software Engineering Code of Ethics and Professional Practice. Elaborate each with one phrase.
    • PUBLIC
    • CLIENT AND EMPLOYER
    • PRODUCT
    • JUDGMENT
    • MANAGEMENT
    • PROFESSION
    • COLLEAGUES
    • SELF