INTRO TO SOFTWARE ENGINEER Flashcards

1
Q

Define the term “software crisis” in context of software engineering. What factors contribute to this crisis?

A

• Software crisis are this challenges faced during the developing and maintaining of a software product that often lead to failure.

• Factors include:
complexity
requirement change
cost and time constraints
quality assurance issues
skill shortage
rapid growth in problem size

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

Why have software products become more problematic and costly compared to hardware ? Give specific examples

A

This is because they are difficult to modify, debug, and enhance. Frequent crashing and lack of reliability (they often do not meet the users needs) and are also deceivers late .

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

What are the four fundamental software process activities? Briefly describe the purpose of each activity

A

• Software Specification - defining the software and constraints on its operation
• Software development - designing and programming the software
• Software validation - based neurons the software meets the user’s requirements
software evolution - modifying the softest to meet changes

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

Explain how software engineering differs from simply writing a program. Include the addition components that are part of a software product

A

Software engineering is an engineering discipline that focuses on all aspect of software production and not just programming. This includes ;
programs
documentation
maintainability
dependability
security
efficiency.

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

Describe the importance of cohesion and coupling in software engineering and explain the benefits of high cohesion and low coupling

A

Cohesion refers to how closely related the functions within a module are, while coupling measures the degree of dependence between modules .

High cohesion improves readability and maintainability of modules while low coupling reduces interdependence making the system easier to modify and debug.

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

Explain the concept of modularity and its significance in software development

A

Modularity is the division of software into smaller modules and each handling a specific function .

• easier development
• easier testing
• easier maintenance

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

In what ways are software engineers responsible to society beyond their technical duties

A

They are to ensure software is reliable, safe and meets social and ethical needs

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

Why is is software engineer described as both art and science

A

because it involves both implementation of systematic processes and creativity

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

what is meant by systematic approach in software engineering

A

this involves structured methodologies and process that ensure quality and efficiency of software development

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

Based on the document , outline a brief plan using the fundamental software process activities for developing

A

specification, development, validation and evolution

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