Introduction to Software Engineering Flashcards

(17 cards)

1
Q

What is Software?

A

Software is more than just a program. It includes the code, libraries, and documentation used to solve a problem.

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

Types of Software Products

A

Generic Products: These are ready-made software products. Anyone can buy and use them. (Example: Microsoft Word, Photoshop.)

Customised Products: These are made specially for a particular customer. They are designed to meet specific needs.

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

What is Software Engineering?

A

Software engineering is the scientific and planned process of creating software. It uses defined methods, principles, and tools. The goal is to make high-quality, reliable software that meets user needs.

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

IEEE Definition of Software Engineering

A

The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.

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

What are the two Key Techniques in Software Engineering

A

Abstraction
Decomposition

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

What is Abstraction?

A

Hiding unnecessary details to focus on what’s important.

Example: When driving a car, you don’t need to know how the engine works.

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

What is Decomposition?

A

Breaking a big problem into smaller, manageable parts.

Each part is easier to understand and solve.

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

Why Do We Need Software Engineering?

A

Software is getting larger and more complex.
User needs keep changing.
The environment (devices, systems) also changes.
We need a scientific way to: Build large software, maintain it, control costs and ensure quality

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

Challenges Without Software Engineering (Ad Hoc Development)

A

No planning
No clear goals or stages
Poor understanding of user needs
No checks or reviews
Developers may not be skilled
Budget and time are often misjudged

This leads to: Delays, High costs, Poor quality software, Software that doesn’t solve the problem

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

How to Build Good Software

A

Estimate time and cost
Plan and schedule the work
Work with users to understand what they need
Break development into stages
Set goals (milestones) to track progress
Review the work regularly
Test the software well
Clearly define what will be delivered

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

Why is It Difficult?

A

Users want easy-to-use and fast software.
Developers focus on writing code and using databases.
Managers care about cost, schedule, and business benefits.

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

Characteristics of Good Software

A

Good software must meet three main areas:

Operational – How well the software works
Transitional – How easily the software can be moved or connected
Maintenance – How easy is it to update or fix the software

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

What are Operational Characteristics?

A

Correctness – Does it give the right result?
Reliability – Does it work well under different conditions?
Efficiency – Does it use computer resources wisely?
Usability – Is it easy to use?
Security – Does it protect data and prevent misuse?

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

What are Transitional Characteristics?

A

Portability – Can it run on different systems easily?
Interoperability – Can it work with other software?
Installability – Is it easy to install and set up?

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

What are Maintenance Characteristics?

A

Modularity – Is it built in small parts that work independently?
Flexibility – Can we easily make changes?
Extensibility – Can we easily add new features?

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

Why do software projects fail?

A

No planning
Poor understanding of users
Late delivery
Over budget
Low quality
Hard to fix

17
Q

How to build good software?

A

Estimate cost/time
Plan the process
Talk to users
Set milestones
Review progress
Test well