Software Engineering Practices and Ethics
Correct Answer: B - Software includes computer programs and all associated documentation such as requirements, design models, and user manuals.
Best Answer: B and C - Good software should deliver required functionality AND be maintainable. However, if only one answer is allowed, B is typically the primary characteristic, though maintainability (C) is also essential.
Correct Answer: D - Unpredictability is NOT a desirable attribute. Good software should be predictable, maintainable, dependable, and efficient.
Correct Answer: B - Validation answers "Are we building the right product?" - ensuring the software meets the customer's actual needs and expectations.
Correct Answer: B - Software engineering is concerned with ALL aspects of software production from initial conception through to maintaining the system after it has gone into use.
Correct Answer: D - The four fundamental activities are: Specification, Development, Validation, and Evolution. Marketing is not a fundamental software engineering activity.
Correct Answer: C - Roughly 60% of software costs are development costs, and 40% are testing costs. For custom software, evolution costs often exceed development costs.
Correct Answer: False - Software does NOT wear out like hardware. However, it DOES deteriorate over time due to changing requirements, environments, and poor maintenance practices.
Correct Answer: B - In generic products (like MS Office), the specification is owned by the software developer. In customized products, the customer owns the specification.
Correct Answer: B - Microsoft Word is a generic product sold to the general market. The others are customized products developed for specific customers or purposes.
Correct Answer: B - According to Mitch Kapor's software design manifesto, Commodity means the program should be suitable for its intended purposes.
Correct Answer: A - Key challenges include: heterogeneity/diversity, business and social change, security and trust, and scale.
Correct Answer: B - The foundation layer is Quality Focus, followed by Process, Methods, and Tools at the top.