Chapter 1: Creating a Program (Essentials of Software Engineering)

0.0(0)
studied byStudied by 0 people
GameKnowt Play
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/23

flashcard set

Earn XP

Description and Tags

Vocabulary flashcards covering key concepts from the chapter on creating a program in Essentials of Software Engineering.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

24 Terms

1
New cards

Functional requirements

What the program must do, including inputs, outputs, processing, and data formats or storage rules.

2
New cards

Nonfunctional requirements (ilities)

Qualities the program should have to achieve its functional goals (e.g., performance, usability, security, modifiability).

3
New cards

Design constraints

Limitations that shape design choices, such as user interface, input sizes, platforms, and deadlines.

4
New cards

Design decisions

Key choices about technology and approaches (language, algorithms) balancing performance, effort, and familiarity.

5
New cards

Coding conventions

Standard naming, capitalization, and style rules to maintain readable and consistent code.

6
New cards

Standard library

Prebuilt, well-tested libraries that save time and improve reliability and speed.

7
New cards

Testing

Process to verify the program works as intended by executing with predetermined inputs and comparing outputs.

8
New cards

Unit testing

Testing individual units or modules in isolation to identify defects early.

9
New cards

Black-box testing

Testing without knowledge of internal code; tests are based on requirements and observed outputs.

10
New cards

White-box testing

Testing of internal logic and code paths; requires knowledge of programming to locate defects.

11
New cards

Acceptance testing

Client-driven testing to ensure the program meets specifications; client can reject if it fails.

12
New cards

Validation testing

Ensuring the product matches the problem understanding and client expectations (e.g., hand-drawn screens).

13
New cards

Verification testing

Internal testing by developers to confirm the system is built correctly.

14
New cards

Modifiability

Ability of the software to accommodate changes and its expected lifespan.

15
New cards

Security requirements

Measures to protect data and prevent loss, alteration, or misuse.

16
New cards

Usability requirements

Ease of use and quality of interaction between end users and the program.

17
New cards

CLI (Command-line interface)

Text-based interface for interacting with the operating system; historically standard.

18
New cards

GUI (Graphical User Interface)

Visual interface using icons, menus, windows to facilitate user interaction.

19
New cards

Programming language decision

Technical choice of language driven by developer expertise and project constraints.

20
New cards

Algorithms decision

Whether to use built-in language facilities or implement custom algorithms, balancing speed and effort.

21
New cards

Sorting problem example

Sample task: sort lines of text alphabetically from one file to another to illustrate requirements.

22
New cards

Boundary conditions

Edge cases such as empty lines or empty files and how they should be handled.

23
New cards

Reflection approach

Common method: start coding with a small problem, test, debug, then refine requirements.

24
New cards

Homework example: average program

Assignment to compute the average of numbers provided as input and discuss effort, testing, and alignment with the problem.