What is Software Engineering?
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.
Why is Software Engineering important in large-scale systems?
Growing demand for innovative and reliable software solutions
Extensive use of technologies in industries like healthcare, finance, and transportation.
What are the characteristics of Software Engineering identified by Kroeger et al. (2014)?
Other characteristics include Scalability, Maintainability, and Efficiency.
What was the case study of poor SE involving Therac 25?
Highlighted the need for risk analysis like FMEA and FTA
A patient received 16000 rads instead of 180 due to errors in radiation treatment.
List some reasons why projects fail.
These factors contribute to project failures in software engineering.
What is programming?
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 does Software Engineering differ from Programming?
Programming focuses on writing code to solve specific problems.
How does Programming differ from Software Engineering?
What are the roles of Software Engineers according to Betz and Penzenstadler (2024)?
Engineers are involved in all stages of software development with a focus on strategic and ethical considerations.
Software engineers are involved in all stages of software development, from requirements gathering to maintenance, with a focus on strategic and ethical considerations
Broadening of Roles
Engineers are expected to consider the environmental and societal impacts of their work, integrating sustainability into their designs
Responsibility for Sustainability
Engineers must stay updated on AI and emerging technologies, integrating them responsibly while addressing ethical concerns.
Adapting to AI and Technological Change
Software engineers need to be proactive in recognizing and addressing the ethical implications of their work throughout the development process
Ethical and Moral Responsibility
There’s a need to integrate ethics, sustainability, and systems thinking into core engineering education, with a focus on ongoing self-reflection and discourse.
Education and Reflection
Engineers should see themselves as stewards of technology, contributing positively to society and embracing diversity and collaboration
Social Responsibility and Citizenship
Engineers must adopt systems thinking and critical thinking to understand the broader impacts of their work in increasingly complex technological environments
Adapting to Complexity
Name some specializations in Software Engineering.
These specializations reflect the diverse areas within the field of software engineering.
Code of ethics that says software engineers must act consistently with the public interest
PUBLIC
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
CLIENT AND EMPLOYER
Code of ethics that says software engineers must ensure that their products and related modifications meet the highest professional standards possible
PRODUCT
Code of ethics that says software engineers must maintain integrity and independence in their professional judgment
JUDGMENT
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
MANAGEMENT
Code of ethics that says software engineers must advance the integrity and reputation of the profession consistent with the public interest
PROFESSION
Code of ethics that says software engineers must be fair to and supportive of their colleagues
COLLEAGUES