1/23
Vocabulary flashcards covering key concepts from the chapter on creating a program in Essentials of Software Engineering.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Functional requirements
What the program must do, including inputs, outputs, processing, and data formats or storage rules.
Nonfunctional requirements (ilities)
Qualities the program should have to achieve its functional goals (e.g., performance, usability, security, modifiability).
Design constraints
Limitations that shape design choices, such as user interface, input sizes, platforms, and deadlines.
Design decisions
Key choices about technology and approaches (language, algorithms) balancing performance, effort, and familiarity.
Coding conventions
Standard naming, capitalization, and style rules to maintain readable and consistent code.
Standard library
Prebuilt, well-tested libraries that save time and improve reliability and speed.
Testing
Process to verify the program works as intended by executing with predetermined inputs and comparing outputs.
Unit testing
Testing individual units or modules in isolation to identify defects early.
Black-box testing
Testing without knowledge of internal code; tests are based on requirements and observed outputs.
White-box testing
Testing of internal logic and code paths; requires knowledge of programming to locate defects.
Acceptance testing
Client-driven testing to ensure the program meets specifications; client can reject if it fails.
Validation testing
Ensuring the product matches the problem understanding and client expectations (e.g., hand-drawn screens).
Verification testing
Internal testing by developers to confirm the system is built correctly.
Modifiability
Ability of the software to accommodate changes and its expected lifespan.
Security requirements
Measures to protect data and prevent loss, alteration, or misuse.
Usability requirements
Ease of use and quality of interaction between end users and the program.
CLI (Command-line interface)
Text-based interface for interacting with the operating system; historically standard.
GUI (Graphical User Interface)
Visual interface using icons, menus, windows to facilitate user interaction.
Programming language decision
Technical choice of language driven by developer expertise and project constraints.
Algorithms decision
Whether to use built-in language facilities or implement custom algorithms, balancing speed and effort.
Sorting problem example
Sample task: sort lines of text alphabetically from one file to another to illustrate requirements.
Boundary conditions
Edge cases such as empty lines or empty files and how they should be handled.
Reflection approach
Common method: start coding with a small problem, test, debug, then refine requirements.
Homework example: average program
Assignment to compute the average of numbers provided as input and discuss effort, testing, and alignment with the problem.