L1 Flashcards
What is Software Engineering?
The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
What are the goals of Software Engineering?
Correctness, Maintainability, Timeliness, Budget adherence.
Why is Software Engineering important?
Software is crucial to the economy, development is costly, and more systems rely on software control.
What is the main cost in software projects?
Software costs are the dominant system cost, with maintenance often exceeding development costs.
What are the main categories of software costs?
60% development costs, 40% testing costs.
Q: What are the phases of the software life cycle?
A: Requirements, Specification, Design, Implementation, Integration, Testing, Maintenance.
Q: What is a software process model?
A: A simplified representation of a software process from a specific perspective.
Q: Name three generic software process models.
A: Waterfall, Iterative development, Component-based software engineering.
Q: What are the attributes of good software?
A: Maintainability, Dependability, Efficiency, Acceptability.
Q: What is Maintainability?
A: The ability of software to evolve with changing needs.
Q: What is Dependability?
A: The trustworthiness of software.
Q: What is Efficiency?
A: Avoiding wasteful use of system resources.
Q: What is Acceptability?
A: Usability and compatibility with other systems.
Q: What are some key challenges in Software Engineering?
A: Heterogeneity, Delivery speed, Trust in software.
Q: What is Heterogeneity?
A: The challenge of building software that works across different platforms.
Q: What are the components of software planning?
A: Work to be done, Resources, Budget.
Q: What are the main types of resources?
A: People, Hardware, Software.
Q: True or False: Once a program works, the job is finished.
A: False.
Q: True or False: Adding more programmers can speed up a delayed project.
A: False.
Q: True or False: Maintenance is minimal once software is working.
A: False.
Q: How is Computer Science related to Software Engineering?
A: Computer Science extends knowledge, while Software Engineering applies it to build useful software.