1/19
Flashcards featuring vocabulary and key concepts for CPSC 410: Advanced Software Engineering.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Software Engineering
The design, development, testing, and maintenance of software.
Modular Design
A design approach that divides a software system into smaller, manageable, and relatively independent modules.
Domain Specific Language (DSL)
A programming language specialized to a particular application domain.
Program Analysis
Techniques that aid in understanding the code and its behavior.
Single Responsibility Principle
A principle stating that a module should have one, and only one, reason to change.
Deep Modules
Modules that effectively hide unnecessary implementation complexity from the user.
Shallow Modules
Modules that expose internal design decisions, often leading to increased complexity.
Interface
A description of what functionality a module provides, separate from its implementation.
Implementation
The actual code that executes the functionality defined by an interface.
Empirical Studies
Research methods involving observation and experimentation, often used to evaluate software projects.
Team Collaboration
Working together as a group toward shared goals in a software project.
Generative AI Policy
Guidelines regarding the use of AI in code generation and its citation requirements.
Academic Integrity
The moral code that includes values such as honesty and responsibility in educational settings.
Check-in
Regular meetings with project TAs to assess progress and receive feedback on group projects.
Final Exam
A comprehensive assessment that must be passed to complete the course.
Low-Level Learning Objectives (LOs)
Specific skills and knowledge expected to be mastered at the end of the course.
External Sources
References to materials outside the course that should be cited when used.
Testing Strategies
Methods for evaluating the functionality and performance of software modules.
Project Timeline
A plan that outlines the schedule for completing software development tasks.
Programming Challenges
Common issues that programmers face during software development.