Module 1 Flashcards

(21 cards)

1
Q

What is Software Engineering?

A

Software Engineering is the systematic application of engineering approaches to the development of software.

OR

Software engineering is the application of engineering principles to software development. It involves analyzing user requirements, designing, developing, testing, and maintaining software systems. The goal is to build reliable, efficient, and scalable software within time and budget constraints.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is the Software Development Life Cycle (SDLC)?

A

The SDLC is a structured process for creating software. It includes the following phases:

Requirements gathering

System design

Implementation (coding)

Testing

Deployment

Maintenance
Each phase ensures the software meets user expectations and is high quality.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is a Software Requirement?

A

Software requirements are the functionalities and constraints of the software. They are classified into:

Functional Requirements: What the software should do (e.g., login, search).

Non-functional Requirements: How it should behave (e.g., performance, security, usability).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the difference between Verification and Validation?

A

Verification: Are we building the product right? It checks if the software meets design specifications.

Validation: Are we building the right product? It ensures the software meets the user’s needs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is a Software Process Model?

A

A software process model is a standard method for organizing the steps in software development. Common models include:

Waterfall Model

Agile Model

Spiral Model

V-Model
Each has unique approaches for planning, executing, and controlling the SDLC.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the Waterfall Model?

A

A linear, sequential SDLC model where each phase must be completed before the next begins. It’s easy to manage but lacks flexibility for changing requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is Agile Development?

A

Agile is an iterative and incremental approach to software development. It emphasizes:

Customer collaboration

Working software

Flexibility to change

Frequent delivery of features
Popular Agile methods include Scrum, Kanban, and Extreme Programming (XP).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is Scrum?

A

Scrum is an Agile framework that organizes work in fixed-length iterations called Sprints (usually 2–4 weeks). It includes roles like:

Product Owner

Scrum Master

Development Team
Scrum ceremonies: Sprint Planning, Daily Standups, Sprint Review, and Retrospective

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is Software Design?

A

Software design is the process of defining the architecture, components, interfaces, and data of a system. It’s divided into:

High-Level Design (Architecture)

Low-Level Design (Class diagrams, pseudo code)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is UML (Unified Modeling Language)?

A

UML is a standard language for visualizing, specifying, and documenting software systems. Diagrams include:

Class Diagram

Use Case Diagram

Sequence Diagram

Activity Diagram

State Diagram

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is Software Testing?

A

Software testing ensures the software works correctly and is free of bugs. It includes:

Unit Testing (individual components)

Integration Testing (combined modules)

System Testing (whole system)

Acceptance Testing (by the user)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is Debugging?

A

Debugging is the process of finding and fixing errors or bugs in the software. It involves understanding code, identifying where it fails, and correcting the problem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is Software Maintenance?

A

Software maintenance is updating and improving software after it’s deployed. Types include:

Corrective (fixing bugs)

Adaptive (adapting to changes in environment)

Perfective (enhancing features)

Preventive (improving future maintainability)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is Version Control?

A

Version control is managing changes to source code over time. It allows teams to collaborate, revert changes, and track history.
Example: Git and GitHub.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are Software Quality Attributes?

A

Qualities that measure how good the software is:

Reliability

Maintainability

Usability

Efficiency

Portability

Security

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the difference between Coupling and Cohesion?

A

Cohesion: How closely related tasks in a single module are. High cohesion is good.

Coupling: How much modules depend on each other. Low coupling is good.

17
Q

What is Refactoring?

A

Refactoring is improving code structure and readability without changing its functionality. It’s essential for maintainability and reducing technical debt.

18
Q

What is Software Architecture?

A

Software architecture defines the high-level structure of the system. It includes:

Components

Their interactions

System behaviors
Examples: Client-server, Microservices, Monolithic, Layered Architecture

19
Q

What is a Design Pattern?

A

Design patterns are proven solutions to common software design problems. Examples:

Singleton

Factory

Observer

Strategy
They improve code reusability, readability, and scalability.

20
Q

What is Software Project Management?

A

It involves planning, tracking, and controlling software projects. Tasks include:

Time estimation

Cost estimation

Risk management

Resource allocation

Communication