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
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller tutorsection1. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $17.99. You're not tied to anything after your purchase.