Purdue CS 307 Final
Study online at https://quizlet.com/_hv8rlh
1. What is software?: Computer programs, procedures, and possibly associated documentation and data
pertaining to the operation of a computer system
2. Types of software: Applications (video games, spreadsheets, etc.)
System (OS, drivers, etc.)
Embedded (firmware, microcode)
Real Time (control & monitoring, often safety critical)
3. Types of software development: Custom
Generic
Embedded
4. What is software engineering?: IEEE: (1) the application of a systematic, disciplined, quantifiable
approach to the development, operation, maintenance of software; that is, the application of engineering to software.
(2) the study of approaches as in (1)
5. Ways in which software engineering differs from other disciplines: Abstract/logica
vs. concrete/physical
Discrete vs. continuous math
Foundations in computer science not natural science
No "manufacturing" phase
Maintenance = evolution
6. Ways in which software engineering is similar to other disciplines: Series of
decisions
Trade-off analysis conducted
Work quantitatively
Calibrate measurements
Use approximations based on experience and empirical data
Emphasize disciplined process
Multiple roles for engineer
Use tools
Advance field through professional societies
7. Ethical categories: Public
Client & Employer
Product
Judgement
, Purdue CS 307 Final
Study online at https://quizlet.com/_hv8rlh
Management
Profession
Colleagues
Self
Responsibility
8. Public ethic: Software engineers shall act consistently with the public interest
9. Client & employer ethic: Software engineers shall act in a manner that is in the best interests of their
client and employer consistent with the public interest
10. Product ethic: Software engineers shall ensure that their products and related modifications meet the
highest professional standards possible
11. Judgement ethic: Software engineers shall maintain integrity and independence in their professional
judgment
12. Management ethic: Software engineering managers and leaders shall subscribe to and promote an
ethical approach to the management of software development and maintenance
13. Profession ethic: Software engineers shall advance the integrity and reputation of the profession consistent
with the public interest
14. Colleagues ethic: Software engineers shall be fair and supportive of their colleagues
15. Self ethic: Software engineers shall participate in lifelong learning regarding the practice of their profession
and shall promote an ethical approach to the practice of the profession
16. Responsibility ethic: Software engineers must commit themselves to making software engineering a
beneficial and respected profession
17. Stakeholders: Users
Customers
Developers
Managers
18. Software quality attributes: For product operation
For product revision
For product transition
19. Operation attributes: Correctness, Efficiency, Integrity, Reliability, Usability
20. Correctness: The degree to which a program satisfies the user's requirements
21. Efficiency: The amount of computing resources, time and space, required to perform a user-defined function
or task
, Purdue CS 307 Final
Study online at https://quizlet.com/_hv8rlh
22. Integrity: How well is the software and data protected from security breaches and installation errors
23. Reliability: To what degree can the system be expected to perform its intended function without failure in the
user's environment
24. Usability (Operation attributes): How much effort do the users have to spend learning to use the
system efficiently
25. Revision attributes: Flexibility
Maintainability
Testability
26. Flexibility (Operation attributes): How much effort will be required to enhance the system
27. Maintainability: How much effort will be required to locate and repair defects in the system
28. Testability: How much effort will be required to test the structure and functionality of the system
29. Transition attributes: Interoperability
Portability
Reusability
30. Interoperability: How much effort will be required to link this program or system to another
31. Portability (Transition attributes): How much effort will it take to transfer a program or system from
one machine to another
32. Reusability: To what extent can the design, or system modules be used in other applications
How much effort will it take to reuse them
33. Software development cycle phases: Requirements phase
Design phase
Implementation phase
Test phase
Installation and checkout phase
34. Software life cycle models: Code and fix
Stagewise and waterfall
Prototyping
Evolutionary
Spiral
Agile/Scrum
35. Code and fix model: Code, fix, repeat until resources exhausted
Study online at https://quizlet.com/_hv8rlh
1. What is software?: Computer programs, procedures, and possibly associated documentation and data
pertaining to the operation of a computer system
2. Types of software: Applications (video games, spreadsheets, etc.)
System (OS, drivers, etc.)
Embedded (firmware, microcode)
Real Time (control & monitoring, often safety critical)
3. Types of software development: Custom
Generic
Embedded
4. What is software engineering?: IEEE: (1) the application of a systematic, disciplined, quantifiable
approach to the development, operation, maintenance of software; that is, the application of engineering to software.
(2) the study of approaches as in (1)
5. Ways in which software engineering differs from other disciplines: Abstract/logica
vs. concrete/physical
Discrete vs. continuous math
Foundations in computer science not natural science
No "manufacturing" phase
Maintenance = evolution
6. Ways in which software engineering is similar to other disciplines: Series of
decisions
Trade-off analysis conducted
Work quantitatively
Calibrate measurements
Use approximations based on experience and empirical data
Emphasize disciplined process
Multiple roles for engineer
Use tools
Advance field through professional societies
7. Ethical categories: Public
Client & Employer
Product
Judgement
, Purdue CS 307 Final
Study online at https://quizlet.com/_hv8rlh
Management
Profession
Colleagues
Self
Responsibility
8. Public ethic: Software engineers shall act consistently with the public interest
9. Client & employer ethic: Software engineers shall act in a manner that is in the best interests of their
client and employer consistent with the public interest
10. Product ethic: Software engineers shall ensure that their products and related modifications meet the
highest professional standards possible
11. Judgement ethic: Software engineers shall maintain integrity and independence in their professional
judgment
12. Management ethic: Software engineering managers and leaders shall subscribe to and promote an
ethical approach to the management of software development and maintenance
13. Profession ethic: Software engineers shall advance the integrity and reputation of the profession consistent
with the public interest
14. Colleagues ethic: Software engineers shall be fair and supportive of their colleagues
15. Self ethic: Software engineers shall participate in lifelong learning regarding the practice of their profession
and shall promote an ethical approach to the practice of the profession
16. Responsibility ethic: Software engineers must commit themselves to making software engineering a
beneficial and respected profession
17. Stakeholders: Users
Customers
Developers
Managers
18. Software quality attributes: For product operation
For product revision
For product transition
19. Operation attributes: Correctness, Efficiency, Integrity, Reliability, Usability
20. Correctness: The degree to which a program satisfies the user's requirements
21. Efficiency: The amount of computing resources, time and space, required to perform a user-defined function
or task
, Purdue CS 307 Final
Study online at https://quizlet.com/_hv8rlh
22. Integrity: How well is the software and data protected from security breaches and installation errors
23. Reliability: To what degree can the system be expected to perform its intended function without failure in the
user's environment
24. Usability (Operation attributes): How much effort do the users have to spend learning to use the
system efficiently
25. Revision attributes: Flexibility
Maintainability
Testability
26. Flexibility (Operation attributes): How much effort will be required to enhance the system
27. Maintainability: How much effort will be required to locate and repair defects in the system
28. Testability: How much effort will be required to test the structure and functionality of the system
29. Transition attributes: Interoperability
Portability
Reusability
30. Interoperability: How much effort will be required to link this program or system to another
31. Portability (Transition attributes): How much effort will it take to transfer a program or system from
one machine to another
32. Reusability: To what extent can the design, or system modules be used in other applications
How much effort will it take to reuse them
33. Software development cycle phases: Requirements phase
Design phase
Implementation phase
Test phase
Installation and checkout phase
34. Software life cycle models: Code and fix
Stagewise and waterfall
Prototyping
Evolutionary
Spiral
Agile/Scrum
35. Code and fix model: Code, fix, repeat until resources exhausted