What is the purpose of software engineering?
To design, develop, test, and maintain software in a systematic, disciplined, and measurable manner.
What is modularity in software design?
The practice of dividing a system into separate, independent modules that can be developed and maintained individually.
What are the STLC phases?
Requirement analysis, test planning, test case development, environment setup, test execution, test closure.
What are the four pillars of OOP?
Encapsulation, Inheritance, Polymorphism, and Abstraction.
What is a DBMS? and what is it used for?
A Database Management System (DBMS) is software used to store, retrieve, and manage data in databases.
What is the SDLC, and name at least two of its activities?
The Software Development Life Cycle (SDLC) is a process for planning, creating, testing, and deploying software.
Activities include requirements analysis, design, implementation, testing, deployment, and maintenance.
Name two characteristics of “good” architecture design.
All characteristics :
Scalability, maintainability, performance efficiency, modularity, and flexibility.
What is the difference between verification and validation in software testing?
Verification checks if the software meets requirements (e.g., code reviews, static testing). Validation ensures the software works as expected (e.g., functional testing, UAT).
Explain the difference between inheritance and composition.
Inheritance: One class derives from another. Composition: A class contains other classes as attributes (preferred for flexibility).
What SQL command is used to retrieve data from a database?
SELECT
What is the difference between functional and non-functional requirements?
Functional requirements define what the system should do
(e.g., login functionality).
on-functional requirements define system qualities
(e.g., performance, security, scalability).
What is the difference between structural and behavioral UML diagrams?
Structural diagrams show the static structure of a system (e.g., Class Diagrams), while behavioral diagrams represent interactions and state changes over time (e.g., Sequence Diagrams, Activity Diagrams).
Define unit testing, system testing, and integration testing.
Unit Testing: Testing individual components.
System Testing: Testing the entire system.
Integration Testing: Ensuring components work together.
What does YAGNI stand for, and why is it important?
"You Ain't Gonna Need It" – A principle that discourages adding functionality until necessary to avoid complexity.
Explain the difference between a primary key and a foreign key.
Primary Key: Uniquely identifies a record.
Foreign Key: A reference to a primary key in another table.
What does WRSPM stand for in requirements engineering?World, Reference, System, Program, Machine – a model for understanding software system
World, Reference, System, Program, Machine.
It is a model for understanding software system requirements.
Name and describe the three types of software architecture patterns (Layered, Microservices, Client-server).
Layered: Organized in layers (e.g., presentation, business, data). Microservices: Independent services communicating via APIs. Client-server: Clients request services from centralized servers.
What is technical debt, and why is it important to manage it?
Technical debt is the cost of shortcuts in development that lead to future rework. Managing it reduces maintenance costs and improves system quality.
What are the 4 core values of the Agile Manifesto?
1) Individuals and interactions over processes and tools
2) Working software over comprehensive documentation
3) Customer collaboration over contract negotiation
4) Responding to change over following a plan.
What is the purpose of an API in software development?
An API (Application Programming Interface) allows different software systems to communicate and share data.
Explain the difference between building vs. buying software.
Building software means developing a custom solution in-house, while buying software means purchasing an existing solution from a vendor.
Explain the difference between the MVC and client-server architecture patterns.
MVC (Model-View-Controller) separates data (Model), UI (View), and logic (Controller). The client-server pattern has clients requesting resources from a central server.
What are some key considerations when refactoring code?
Improve readability, reduce complexity, remove redundant code, enhance maintainability, and follow best practices (e.g., DRY, KISS, SOLID).
Define the roles of a Scrum Master and Product Owner.
Scrum Master: Facilitates the Scrum process and removes obstacles.
Product Owner: Defines project vision and prioritizes backlog.
What is the difference between Git and GitHub?
Git: A version control system for tracking changes.
GitHub: A cloud-based platform for hosting Git repositories.