PURDUE CS 307 MIDTERM EXAM ACTUAL EXAM 200 QUESTIONS AND
CORRECT DETAILED ANSWERS WITH RATIONALES (VERIFIED ANSWERS)
|ALREADY GRADED A+
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.
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 is the goal of software engineering? - ANSWER: To solve problems!
Within:
*cost*
*time*
*customer*
*others*
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.
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 decision, 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 principals of the ethics code? - ANSWER: Public
Client/Employer
Product
Judgement
Management
Profession
Colleagues
Self
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 transition attributes? - ANSWER: Interoperability (how much effort to
link this program to another?)
Portability
Reusability
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)
*Implementation* (build & test)
*Test* (test all portions, acceptance, intergration)
*Maintain* (fix defects, enhance)
What are the weaknesses to the waterfall method? When should we use it? -
ANSWER: *Weakness*: Difficult to measure real progress, pushes analysis and design
feedback to maintenance, assumes unrealistic sequential progression.
*When?*: Well understood systems, small products, teaching, *never?*
What is prototyping? - ANSWER: Determine requirements, build prototype, partial
design, evaluate, engineer.
*throw away the prototype*
Why prototype? - ANSWER: User is not computer literate, not able to specify needs,
not sure if design will work.
What are the aspects of the evolutionary development models? - ANSWER: Modern
version of code and fix, product evolves over time as requirements become known.
What is the spiral model? - ANSWER: Incremental (evolutionary), risk oriented.
Pros:
Reduce risk of failure
Early feedback
Cons:
Complex
CORRECT DETAILED ANSWERS WITH RATIONALES (VERIFIED ANSWERS)
|ALREADY GRADED A+
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.
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 is the goal of software engineering? - ANSWER: To solve problems!
Within:
*cost*
*time*
*customer*
*others*
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.
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 decision, 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 principals of the ethics code? - ANSWER: Public
Client/Employer
Product
Judgement
Management
Profession
Colleagues
Self
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 transition attributes? - ANSWER: Interoperability (how much effort to
link this program to another?)
Portability
Reusability
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)
*Implementation* (build & test)
*Test* (test all portions, acceptance, intergration)
*Maintain* (fix defects, enhance)
What are the weaknesses to the waterfall method? When should we use it? -
ANSWER: *Weakness*: Difficult to measure real progress, pushes analysis and design
feedback to maintenance, assumes unrealistic sequential progression.
*When?*: Well understood systems, small products, teaching, *never?*
What is prototyping? - ANSWER: Determine requirements, build prototype, partial
design, evaluate, engineer.
*throw away the prototype*
Why prototype? - ANSWER: User is not computer literate, not able to specify needs,
not sure if design will work.
What are the aspects of the evolutionary development models? - ANSWER: Modern
version of code and fix, product evolves over time as requirements become known.
What is the spiral model? - ANSWER: Incremental (evolutionary), risk oriented.
Pros:
Reduce risk of failure
Early feedback
Cons:
Complex