What is software engineering? (quoted definition from Lecture) correct answers "multi-person
construction of multi-version software"
What are the 3 essential ingredients of software engineering? Which is the most important,
according to the lecture? correct answers people, processeses, tools; people are the most
important
What are the 3 perspectives on software engineering? correct answers business, engineering, and
user perspective
What matters most to the business perspective of software engineering? correct answers cost,
time, profit (like budget and total staff hours)
What matters most to the engineering perspective of software engineering? correct answers
internal quality (like software deisign, source coude, and implementation)
What matters most to the user perspective of software engineering? correct answers external
quality (like user interface)
What is the "Inf43 Recurring, Fundamental Principles" of software engineering correct answers -
rigor and formality
-separation of concerns (modularity, divide and conquer, and abstraction)
-anticipation of change
-generality
-incrementality
,How is rigor and formality important when creating a requirements specification? correct
answers -include process definition
How is separation of concerns (modularity, divide and conquer, and abstraction) important when
creating a requirements specification? correct answers Modularity:
-break requirements specification down into udnerstandable modules
Divide and conquer:
-separte issues and tasks
-separation of responsibilities
-seperation of requirements and design
Abstraction:
-indentify important aspects and ignore details
-information hiding and data encapsulation
How is anticipation of change important when creating a requirements specification? correct
answers -plan for future software changes so that all artifacts are easy to change
How is generality important when creating a requirements specification? correct answers -
general problem often easier to solve
-generalized solution may be reusable
-buy vs build
How is anticipation of change important when creating a requirements specification? correct
answers -aim for quick software releases with minor upgrades bc it is easier to move towards
incremented goals
What are the software failure causes? correct answers -lack of user input/involvement
-incomplete requirements and specifications
-changing requirements and specifications
, -lack of descipline in development processes
-lack of methodical usage of metrics
-lack of resources
Which of the software failure causes are related to lack of rigor/formality? correct answers -lack
of descipline in development processes
-lack of methodical usage of metrics
Which of the software failure causes are related to requirements issues? correct answers -lack of
user input/involvement
-incomplete requirements and specifications
-changing requirements and specifications
Which category employs the most computer programmers in the U.S.? correct answers in-house
staff writing systems for internal use (or working in the IT department of a company, writing
software for "customer" who are also part of that same company)
Define requirements correct answers WHAT the software should do, without saying HOW it
should do it
- it addresses what a customer needs, not what a customer wants
Why is it important to spend a lot of time on requirements? correct answers
What happens in the requirements phase? correct answers -requirements analysis
-requirements specification
What is requirements analysis? What kinds of activities go on during requiremetns analysis?
correct answers activity of discovering/observing/gathering customer's needs
-interview/observe customer