PURDUE CS 307 MIDTERM EXAM 2023-2024 ACTUAL EXAM 200 QUESTIONS AND CORRECT DETAILED
ANSWERS
What is software? - (answer) Computer programs, procedures, and associated documentation
pertaining to the *operation* of a *computer system*.
What are some traits of software? - (answer) *intangible*, hard to understand the development effort
required.
*reproducible*, cost is in development.
*labor-intensive", difficult to automate
What are some types of software? - (answer) Applications (CAD, video games)
System (OS, drivers)
Embedded (microcode)
Real Time (safety critical)
How can we classify software that is being developed? - (answer) Custom (for a specific customer)
Generic (sold on open market)
Embedded (tied closely to hardware)
What are some constraints on development of software? - (answer) cost, time, customer, etc
What are ways that one can improve the software engineering process? - (answer) 1. require effective
communication
2. assemble from existing software
3. buy rather than building from scratch
How does systematic development and evolution relate to software? - (answer) An engineering
*process* involves *well-understood techniques* in an *organized* and *disciplined* way.
Most development is evolutionary.
,PURDUE CS 307 MIDTERM EXAM 2023-2024 ACTUAL EXAM 200 QUESTIONS AND CORRECT DETAILED
ANSWERS
What are some of the important details about engineering? - (answer) Engineering is a licensed
profession, with a goal of protecting the public. Thus, ethical practices is also a key tenet of the
profession.
How is software engineering different from other forms of engineering? - (answer) Focused on *CS*,
rather than natural sciences. [discrete rather than continuous]
Concentrates on *abstract/logical* ideas rather than *concrete/physical* ones.
Maintenance is evolution, not wear and tear.
What are some commonalities between the forms of engineering? - (answer) Series of decisions, need
to perform a trade off analysis, work as part of a team.
Use *tools* that apply to *processes* systematically.
What are ethics? - (answer) A theory of system of moral values, that help govern an individual or
group.
What codes of ethics govern software engineering? - (answer) Code of ethics described by ACM/IEEE
Join Task Force
What are the eight principles of the ethics code? - (answer) Public
Client/Employer
Product
Judgement
Management
Profession
Colleagues
Self
,PURDUE CS 307 MIDTERM EXAM 2023-2024 ACTUAL EXAM 200 QUESTIONS AND CORRECT DETAILED
ANSWERS
Why do software engineers have so much responsibility? - (answer) Have significant opportunities to
do good or cause harm, as well as *enable* or *influence* others to do the same
Who are the different stakeholders? - (answer) Users, Customers, Software Developers, Development
Managers
Who are the users? - (answer) Those who *use* the software
Who are the customers? - (answer) Those who *pay* for the software (e.g. Gmail, we are not the
customers, advertisers are [we're users])
Who are the software developers? - (answer) Those who *create* and *maintain* the software
Who are the development managers? - (answer) Project coordinators, those who *supervise* the
development process
What are the operation attributes? - (answer) *Correctness*: the degree to which a program satisfies
the user's requirements
*Efficiency*: the amount of computing resources, time and space, required to perform a user-defined
function or task
*Integrity*: how well the software and data is protected from security breaches and installation errors
*Reliability*: the degree to which a system can be expected to perform its intended function without
failure in the user's environment
*Usability*: the amount of effort the users have to spend learning to use the system efficiently
What are the revision attributes? - (answer) *Flexibility*: how much effort will be required to enhance
the system
*Maintainability*: how much effort will be required to locate and repair defects in the system
*Testability*: how much effort will be required to test the structure and functionality of the system
, PURDUE CS 307 MIDTERM EXAM 2023-2024 ACTUAL EXAM 200 QUESTIONS AND CORRECT DETAILED
ANSWERS
What are the transition attributes? - (answer) Interoperability (how much effort to link this program to
another?)
Portability (How much effort will it take to transfer a program or system from one machine to another?)
Reusability (To what extent can the design, or system modules be used in other applications?)
Who's job is it to ensure quality? - (answer) It is everyone's business to ensure quality, do it right the
first time.
What is internal quality? - (answer) Characterizes aspects of the design of the software (e.g. amount of
code, complexity, use of software patterns)
What is part of the software *development* cycle? - (answer) Requirements
Design
Implementation
Test
Installation
What is part of the software *life* cycle? - (answer) Software Dev Cycle
Operation/Maintenence
Retirement
Should we always stick to the life cycle? - (answer) No! It is there to help, like a roadmap. It is not the
vehicle.
What is the code-and-fix model? - (answer) Code a little, fix a lot. "Bumper car" coding. GL HF
What is the waterfall model? - (answer) Develop an installation plan.
*Analysis* (identify the what)
*Design* (how, identify specifications)
ANSWERS
What is software? - (answer) Computer programs, procedures, and associated documentation
pertaining to the *operation* of a *computer system*.
What are some traits of software? - (answer) *intangible*, hard to understand the development effort
required.
*reproducible*, cost is in development.
*labor-intensive", difficult to automate
What are some types of software? - (answer) Applications (CAD, video games)
System (OS, drivers)
Embedded (microcode)
Real Time (safety critical)
How can we classify software that is being developed? - (answer) Custom (for a specific customer)
Generic (sold on open market)
Embedded (tied closely to hardware)
What are some constraints on development of software? - (answer) cost, time, customer, etc
What are ways that one can improve the software engineering process? - (answer) 1. require effective
communication
2. assemble from existing software
3. buy rather than building from scratch
How does systematic development and evolution relate to software? - (answer) An engineering
*process* involves *well-understood techniques* in an *organized* and *disciplined* way.
Most development is evolutionary.
,PURDUE CS 307 MIDTERM EXAM 2023-2024 ACTUAL EXAM 200 QUESTIONS AND CORRECT DETAILED
ANSWERS
What are some of the important details about engineering? - (answer) Engineering is a licensed
profession, with a goal of protecting the public. Thus, ethical practices is also a key tenet of the
profession.
How is software engineering different from other forms of engineering? - (answer) Focused on *CS*,
rather than natural sciences. [discrete rather than continuous]
Concentrates on *abstract/logical* ideas rather than *concrete/physical* ones.
Maintenance is evolution, not wear and tear.
What are some commonalities between the forms of engineering? - (answer) Series of decisions, need
to perform a trade off analysis, work as part of a team.
Use *tools* that apply to *processes* systematically.
What are ethics? - (answer) A theory of system of moral values, that help govern an individual or
group.
What codes of ethics govern software engineering? - (answer) Code of ethics described by ACM/IEEE
Join Task Force
What are the eight principles of the ethics code? - (answer) Public
Client/Employer
Product
Judgement
Management
Profession
Colleagues
Self
,PURDUE CS 307 MIDTERM EXAM 2023-2024 ACTUAL EXAM 200 QUESTIONS AND CORRECT DETAILED
ANSWERS
Why do software engineers have so much responsibility? - (answer) Have significant opportunities to
do good or cause harm, as well as *enable* or *influence* others to do the same
Who are the different stakeholders? - (answer) Users, Customers, Software Developers, Development
Managers
Who are the users? - (answer) Those who *use* the software
Who are the customers? - (answer) Those who *pay* for the software (e.g. Gmail, we are not the
customers, advertisers are [we're users])
Who are the software developers? - (answer) Those who *create* and *maintain* the software
Who are the development managers? - (answer) Project coordinators, those who *supervise* the
development process
What are the operation attributes? - (answer) *Correctness*: the degree to which a program satisfies
the user's requirements
*Efficiency*: the amount of computing resources, time and space, required to perform a user-defined
function or task
*Integrity*: how well the software and data is protected from security breaches and installation errors
*Reliability*: the degree to which a system can be expected to perform its intended function without
failure in the user's environment
*Usability*: the amount of effort the users have to spend learning to use the system efficiently
What are the revision attributes? - (answer) *Flexibility*: how much effort will be required to enhance
the system
*Maintainability*: how much effort will be required to locate and repair defects in the system
*Testability*: how much effort will be required to test the structure and functionality of the system
, PURDUE CS 307 MIDTERM EXAM 2023-2024 ACTUAL EXAM 200 QUESTIONS AND CORRECT DETAILED
ANSWERS
What are the transition attributes? - (answer) Interoperability (how much effort to link this program to
another?)
Portability (How much effort will it take to transfer a program or system from one machine to another?)
Reusability (To what extent can the design, or system modules be used in other applications?)
Who's job is it to ensure quality? - (answer) It is everyone's business to ensure quality, do it right the
first time.
What is internal quality? - (answer) Characterizes aspects of the design of the software (e.g. amount of
code, complexity, use of software patterns)
What is part of the software *development* cycle? - (answer) Requirements
Design
Implementation
Test
Installation
What is part of the software *life* cycle? - (answer) Software Dev Cycle
Operation/Maintenence
Retirement
Should we always stick to the life cycle? - (answer) No! It is there to help, like a roadmap. It is not the
vehicle.
What is the code-and-fix model? - (answer) Code a little, fix a lot. "Bumper car" coding. GL HF
What is the waterfall model? - (answer) Develop an installation plan.
*Analysis* (identify the what)
*Design* (how, identify specifications)