01 Introduction to Software Engineering Flashcards

(25 cards)

1
Q

What is Software Engineering?

A

Creating high-quality, reliable programs in a systematic, controlled, and efficient manner

Involves the entire software lifecycle using formal methods for specification, evaluation, analysis, design, implementation, testing, and maintenance.

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

Why is Software Engineering important in large-scale systems?

A

Growing demand for innovative and reliable software solutions

Extensive use of technologies in industries like healthcare, finance, and transportation.

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

What are the characteristics of Software Engineering identified by Kroeger et al. (2014)?

A
  • Suitability
  • Usability
  • Manageability
  • Evolvability

Other characteristics include Scalability, Maintainability, and Efficiency.

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

What was the case study of poor SE involving Therac 25?

A

Highlighted the need for risk analysis like FMEA and FTA

A patient received 16000 rads instead of 180 due to errors in radiation treatment.

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

List some reasons why projects fail.

A
  • Unrealistic or unarticulated project goals
  • Inaccurate estimates of needed resources
  • Badly defined system requirements
  • Poor reporting of the project’s status
  • Unmanaged risks
  • Poor communication
  • Use of immature technology
  • Inability to handle complexity
  • Sloppy development practices
  • Poor project management
  • Stakeholder politics
  • Commercial pressures

These factors contribute to project failures in software engineering.

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

What is programming?

A

The process of drawing up the schedule of the sequence of individual operations required to carry out the calculation

Definitions by Hartee (1950) and Blackwell (2002).

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

How does Software Engineering differ from Programming?

A
  • Developing complete, maintainable software systems
  • Covers the full development lifecycle
  • Involves structured processes and methodologies

Programming focuses on writing code to solve specific problems.

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

How does Programming differ from Software Engineering?

A
  • Writing code to solve specific problems
  • Focuses on individual code functionality
  • Less emphasis on documentation and project management
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the roles of Software Engineers according to Betz and Penzenstadler (2024)?

A
  • Broadening of Roles
  • Responsibility for Sustainability
  • Adapting to AI and Technological Change
  • Ethical and Moral Responsibility
  • Education and Reflection
  • Social Responsibility and Citizenship
  • Adapting to Complexity

Engineers are involved in all stages of software development with a focus on strategic and ethical considerations.

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

Software engineers are involved in all stages of software development, from requirements gathering to maintenance, with a focus on strategic and ethical considerations

A

Broadening of Roles

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

Engineers are expected to consider the environmental and societal impacts of their work, integrating sustainability into their designs

A

Responsibility for Sustainability

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

Engineers must stay updated on AI and emerging technologies, integrating them responsibly while addressing ethical concerns.

A

Adapting to AI and Technological Change

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

Software engineers need to be proactive in recognizing and addressing the ethical implications of their work throughout the development process

A

Ethical and Moral Responsibility

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

There’s a need to integrate ethics, sustainability, and systems thinking into core engineering education, with a focus on ongoing self-reflection and discourse.

A

Education and Reflection

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

Engineers should see themselves as stewards of technology, contributing positively to society and embracing diversity and collaboration

A

Social Responsibility and Citizenship

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

Engineers must adopt systems thinking and critical thinking to understand the broader impacts of their work in increasingly complex technological environments

A

Adapting to Complexity

17
Q

Name some specializations in Software Engineering.

A
  • Web Development
  • Mobile Development
  • Game Development
  • Frontend Development
  • Backend Development
  • Cybersecurity
  • Cloud Computing
  • DevOps
  • AI/ML Engineering

These specializations reflect the diverse areas within the field of software engineering.

18
Q

Code of ethics that says software engineers must act consistently with the public interest

19
Q

Code of ethics that says software engineers must act in a manner that is in the best interest of their client and employer consistent with the public interest

A

CLIENT AND EMPLOYER

20
Q

Code of ethics that says software engineers must ensure that their products and related modifications meet the highest professional standards possible

21
Q

Code of ethics that says software engineers must maintain integrity and independence in their professional judgment

22
Q

Code of ethics that says software engineering managers and leaders shall subscribe to and promote an ethical approach to management of software development and maintenance

23
Q

Code of ethics that says software engineers must advance the integrity and reputation of the profession consistent with the public interest

24
Q

Code of ethics that says software engineers must be fair to and supportive of their colleagues

25
Code of ethics that says software engineers must participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession
SELF