What is software engineering?
It is the disciplined practice of creating, operating, and evolving software, combining technical work with planning, communication, documentation, and quality management.
Study 1 Foundations of Software Engineering with 12 free online flashcards. Review key terms, definitions, and concepts with this interactive flashcard deck.
What is software engineering?
It is the disciplined practice of creating, operating, and evolving software, combining technical work with planning, communication, documentation, and quality management.
How can a team make “the page should be fast” verifiable?
Make it specific and measurable, such as requiring 95% of search requests to finish within 300 milliseconds under an agreed workload.
What does version control help a team do?
It records changes over time, supports comparison and recovery, and enables collaboration on shared files.
What does a software lifecycle describe?
A software lifecycle is the set of activities through which a product is conceived, developed, delivered, used, maintained, and eventually retired.
What do functional requirements specify?
Functional requirements specify behavior or capabilities, such as letting a customer reset a password.
How do architecture and design differ?
Architecture defines major components, their responsibilities, and interactions. Design develops more detailed decisions about interfaces, data, algorithms, and behavior.
What design principles can make change easier?
Keep distinct responsibilities separate, group closely related behavior, limit dependencies, and hide implementation details behind stable interfaces.
What can testing establish, and what can it not prove?
Testing provides evidence about behavior and helps reveal defects, but it cannot prove that every possible defect is absent.
What do unit, integration, and system or acceptance tests assess?
Unit tests check small pieces, integration tests check interactions, and system or acceptance tests assess broader behavior against requirements and user needs.
What characterizes an Agile approach?
Agile emphasizes frequent delivery of useful software, stakeholder collaboration, responsiveness to change, and continuous improvement.
How does documentation support a software product?
Documentation helps people understand, use, operate, and change software by preserving context, interfaces, instructions, and decisions.
How should teams incorporate secure development?
Integrate secure-development practices into the existing software lifecycle rather than treating security as a separate final phase.