Intro To Software Engineering Flashcards

1
Q

What is the definition of Software Engineering?

A

The process of designing, developing, testing, and maintaining software systems.

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

List the key principles of Software Engineering.

A
  • Scalability
  • Maintainability
  • User-Centric Design
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the phases of the Software Development Life Cycle (SDLC)?

A
  • Requirements Gathering
  • Design
  • Implementation
  • Testing
  • Deployment
  • Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the two main SDLC models?

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

What are functional requirements?

A

What the software should do (e.g., login system).

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

What are non-functional requirements?

A

Performance, security, scalability.

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

What tools help visualize software requirements?

A

UML (Unified Modeling Language) diagrams.

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

What is modularity in software design?

A

Breaking the software into smaller, manageable parts (modules).

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

Define reusability in software engineering.

A

Using existing components to save time.

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

What does low coupling and high cohesion mean?

A

Parts of the software should work independently but cohesively.

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

What is the purpose of version control?

A

To manage code changes.

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

What are two best practices for code quality?

A
  • Write clean, understandable code
  • Include comments
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is unit testing?

A

Testing individual components.

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

What is integration testing?

A

Ensuring modules work together.

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

What is the focus of system testing?

A

Testing the entire system.

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

What is user acceptance testing?

A

Making sure the user is satisfied.

17
Q

Name an automation tool for testing.

A
  • Selenium
  • JUnit
18
Q

What are the types of software maintenance?

A
  • Corrective
  • Adaptive
  • Perfective
  • Preventive
19
Q

What are some project management tools used in software engineering?

A
  • Jira
  • Trello
20
Q

What is a Gantt chart?

A

A visual timeline.

21
Q

What is Scrum in the context of project management?

A

An Agile framework with sprints.

22
Q

What ethical considerations should be taken in software engineering?

A
  • Respect user privacy and data security
  • Avoid plagiarism in coding
23
Q

Fill in the blank: The _______ is the process of writing the code.

A

Implementation

24
Q

Fill in the blank: _______ testing focuses on fixing bugs.

A

Corrective

25
Q

True or False: Agile is a sequential model of SDLC.

A

False

26
Q

True or False: UML diagrams are used for visualizing software requirements.

A

True