What is Software Engineering?
A systematic approach to the analysis, design, assessment, implementation, test, maintenance and reengineering of software.
What’s the difference between functional and non-functional requirements?
Functional describe what the system does; non-functional describe how it performs.
What does UML stand for?
Unified Modeling Language.
What are the four core values of the Agile Manifesto?
Individuals/interactions, working software, customer collaboration, responding to change.
What is a Software Process Model? Explain its importance.
A Software Process Model is a structured framework that describes the sequence of activities required to develop a software system.
What is one thing that software engineering is not?
Just coding, software engineering enveloped a wide variety of functions.
* Verification, Validation and Testing
* Requirement Analysis
* Process Control
* Software Design
* Process Planning
Explain Use Case Diagram
A Use Case Diagram represents the interaction between users (actors) and the system.
What’s the difference between structural and behavioral diagrams?
Structural show system components; behavioral show interactions and workflows.
What is a “Sprint”?
A time-boxed period during which specific work is completed in Scrum.
What’s a software defect?
A flaw or bug that causes incorrect or unexpected behavior.
What are the main phases of SDLC?
Requirements, Design, Implementation, Testing, Deployment, Maintenance.
What makes a “good” architecture design?
Modularity, scalability, maintainability, and clarity.
Give one example of a static (structural) UML diagram.
Class diagram, Object diagram, Component diagram, Deployment diagram, Package diagram, Composite structure diagram.
Describe the Spiral Model and its focus on risk.
The Spiral Model combines iterative development and risk analysis.
Explain the Incremental Model with example.
In the Incremental Model, software is developed in small parts (increments).
What is Prototyping Model
In the Prototyping Model, a working prototype is developed to understand requirements.
Give two examples of architectural patterns.
Examples: MVC, layered, client-server, microservices.
Give one example of a dynamic (behavioral) UML diagram.
Sequence diagram, Activity diagram, Use case diagram, State machine diagram, Communication diagram, Interaction overview diagram, Timing diagram.
What is the difference between Agile and Waterfall?
Agile is iterative and flexible; Waterfall is linear and sequential.
Can software ever be completely bug-free?
No—real-world constraints make it nearly impossible.
How to choose the right Process Model for a project?
Selection depends on:
Project size
Requirement stability
Risk level
Team expertise
Client involvement
Budget and time constraints
What’s the purpose of modularity in software design?
To divide the system into manageable, independent components.
What’s the main purpose of UML diagrams?
To visually model and communicate a system’s structure, behavior, and interactions — improving understanding and design across the team.
Explain Activity Diagram and its importance.
An Activity Diagram represents workflow of activities.
What’s the relationship between testing and deployment?
Deployment often overlaps testing, ensuring the software works in production environments.