What is software engineering?
The application of engineering principles to software development.
What does MVC stand for?
View
Controller
What is unit testing?
Testing individual components
What is encapsulation?
Hiding internal data and exposing only needed parts.
What is DBMS?
Software that manages databases
What are the main SDLC phases?
Requirements
Design
Development
Testing
Maintenance
What is the difference between structural and behavioral UML diagrams?
Structural = static structure
Behavior = interactions and behavior
What is verification vs validation?
Verification: are we building it right?
Validation: are we building the right thing?
What is polymorphism?
Same interface, different behavior
What is primary key?
Unique identifier for a record
What is the difference between functional and non-functional requirements?
Functional = what the system does
Non-functional = how well it does
What is modularity?
Seperating a system into independent modules
Can software ever be bug-free?
No
What does “composition over inheritance” mean?
Prefer building objects from smaller parts
Difference between Git and GitHub?
Git - Version control
Github - Hosting and Collaboration platform
What does WRSPM stand for?
World
Requirements
Specifications
Program
Machine
What is the difference between static and dynamic diagrams?
Static = structure at rest
Dynamic = behavior over time
List 3 types of testing.
Unit, Integration, System, Acceptance, Manual
What are Agile manifesto core values?
Individuals
Interactions
Working Software
Customer Collaboration
Responding to change
What does git add . do?
Adds all changes to staging area
What makes a “good” architecture design?
Modularity, cohesion, scalability, maintainability
Compare Layered vs Microservices architecture.
Layered = organized in layers
Microservices = independent deployable services
What are STLC phases?
Test Planning
Test Design
Test Execution
Test Closure
What are the Scrum Roles?
Scrum Master
Product Owner
Dev Team
Explain local repo vs remote repo vs staging area.
Local - your machine
Remote - Github
Staging - prepares changes for commit