1/14
These flashcards cover essential vocabulary and concepts from Week 1 of Software Engineering, which include definitions of static and dynamic views, essential vs. accidental complexity, and principles of software development.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Software Engineering
Producing successful software systems through successful software development.
Static View
The structure of a system at rest, including code organization and dependencies, which can be analyzed without running the program.
Dynamic View
The behavior of a software system during execution, requiring running or simulating the system to analyze performance and data flow.
Essential Complexity
Difficulties inherent in the nature of software that cannot be removed.
Accidental Complexity
Difficulties that arise in software production that are not inherent, and can be removed.
'No Silver Bullet'
Brooks's thesis stating that no single technology or management technique will lead to significant improvements in productivity or reliability within a decade.
Four Essential Difficulties in Software Development
complexity, conformity, changeability, invisibility
Communication Difficulties
Challenges that arise from software complexity, leading to flaws and unreliability.
Requirements Refinement
The process of understanding and specifying what is needed in a software project through iterative prototypes.
Incremental Development
An approach that focuses on growing a system bit-by-bit, rather than building it all at once.
Priority-based Design
The decision-making process in software development that prioritizes critical tasks, as exemplified by the Apollo 11 mission.
Great Designers
Individuals in software development that significantly surpass average contributors in producing superior designs.
Brooks's Invisibility Argument
The idea that multiple overlapping representations are necessary to understand the complexities of a software system.
Prototyping
Creating early models of a software system to explore its usability and requirements.
Buy vs Build Principle
The concept that acquiring software solutions can be more productive than developing them from scratch.