What is software engineering?
Software engineering is the application of engineering principles to software development, including planning, designing, testing, and maintaining software systems.
What is the difference between functional and non-functional requirements?
Functional requirements define what the system should do (e.g., login functionality), while non-functional requirements define system qualities (e.g., performance, security).
What are the two main categories of UML diagrams?
Structural diagrams (e.g., Class, Object, Component, Deployment) and Behavioral diagrams (e.g., Use Case, Sequence, Activity, State).
What are the four main types of software testing?
Unit Testing, Integration Testing, System Testing, and Acceptance Testing.
How does software engineering differ from programming?
Programming focuses on writing code, while software engineering involves the entire software development lifecycle, including requirements analysis, design, implementation, testing, and maintenance.
What does the WRSPM model stand for?
World (problem domain), Requirements (what the system must do), Specifications (how requirements are met), Program (implementation of specifications), Machine (physical system running the software).
What is the difference between static and dynamic UML diagrams?
Static diagrams (e.g., class diagrams) show the structure of a system, while dynamic diagrams (e.g., sequence and activity diagrams) illustrate behavior over time.
What are some key clean code principles?
YAGNI (You Aren’t Gonna Need It), KISS (Keep It Simple, Stupid), CRUD (Create, Read, Update, Delete), Separation of Concerns, and Single Responsibility Principle.
What are the main phases of the Software Development Life Cycle (SDLC)?
Requirement Analysis, Design, Implementation, Testing, Deployment, and Maintenance.
Why is modularity important in software design?
It improves maintainability, scalability, and reusability by breaking down software into independent modules.
What is Kanban used for in software engineering?
Kanban is a visual framework for workflow management that helps teams track work progress.
What is technical debt in software development?
The cost of taking shortcuts in development, leading to future issues requiring refactoring.
What is the purpose of the testing phase in SDLC?
To ensure the software meets requirements, functions correctly, and is free of critical bugs before deployment.
What are the key characteristics of good software architecture?
Scalability, maintainability, security, and performance.
What are the main phases of the Software Testing Life Cycle (STLC)?
Requirement Analysis, Test Planning, Test Case Development, Test Environment Setup, Test Execution, and Test Closure.
What are the four key concepts of Object-Oriented Programming (OOP)?
Inheritance, Polymorphism, Encapsulation, and Abstraction.
What are some essential Git commands and their purposes?
git add . (Stage changes), git commit (Save changes locally), git push (Upload changes to remote repository), git pull (Fetch latest changes), and git merge (Combine branches).
Name four common software architecture patterns.
Model-View-Controller (MVC), Layered Architecture, Microservices, and Client-Server Model.
What is the difference between verification and validation in software testing?
Verification ensures the software meets specifications, while validation ensures it meets user needs.
What is the difference between Git and GitHub?
Git is a version control system, while GitHub is a hosting service for Git repositories.