Professional Documents
Culture Documents
Introduction 01
Introduction 01
Alex Mwotil
§ What is software?
§ ………………………………………………
§ Our lives and work are increasingly reliant on software
§ Hospital
§ School
§ Finance
§ Transport
§ Power grids
§ …..
§ “Each year, 150 Billion Euros is lost in Europe due to bad software quality – hidden bugs”
- Verifysoft Technology (https://www.verifysoft.com/)
§ “Finding and fixing a software problem after delivery is often 100 times more expensive than
finding and fixing it before.”
- Barry Boehm (TRW Emeritus Professor, USC)
§ Failure of touch screens
due to a memory limit
issue
§ Model S sedan and Model
X SUVs from 2021 and
2022
§ Model 3 cars
§ Model Y SUVs from 2022
§ Flight ET 302 from Addis Ababa to
Nairobi
§ Boeing 737 Max 8
§ “Faulty Boeing software played a
role in the crash”
§ Ethiopian Officials
§ Course Page
§ MUELE - https://muele.mak.ac.ug/course/view.php?id=17296
§ Please enrol by Valentines Day (14th February 2024)
§ Course information, material, announcements, homework and results
§ Check the course page frequently
§ Physical
§ Tuesdays
§ 8am EAT – 11am EAT (Day)
§ LLT6B
§ 5pm EAT – 8pm EAT (Evening)
§ LLT2B
§ Online
§ Tuesdays
§ 9am EAT – 12pm EAT
§ Webinar https://zoom.us/j/91918745809?pwd=bmVlTWtKQ1MvMXl5V1RpdmhHNjJFdz09
§ Use real names and mute
§ Use the chat and Q&A for live interaction
§ Recordings
§ To be posted on MUELE end of Tuesdays
§ Course work (30%)
§ Tests (2)
§ Group assignment/project
§ Case study
§ Attendance
§ Aim for 80%+
§ Class participation
§ Reading/Research
§ Time
§ Ensure you are in the classroom as per the timetable
§ Online classes start <= 5 minutes from scheduled time
§ Discrimination
§ NO form of discrimination is tolerated in this class
§ Please report on email for next steps
§ ..
§ ..
§ ..
§ ..
§ Discover defects
§ Avoid detecting problems
§ Prove that the software has no faults
§ Dynamic Verification
§ Exercising and observing the system to argue that it meets the
requirements.
§ Testing: Formulating sets of input to demonstrate requirement
satisfaction or find faults.
§ Fuzzing: Generating semi-random input to locate crashes and other
anomalies.
§ Taint Analysis: Monitoring how faults spread by corrupting system
variables.
§ Static Verification § Dynamic Verification
§ One error can hide other errors. § Discovers problems from runtime
Inspections not impacted by interaction, timing problems, or
program interactions. performance issues.
§ Incomplete systems can be § Often cheaper than static
inspected without special code to verification.
run partial system. § Easier to automate.
§ Inspection can assess quality § However, cannot prove that
attributes such as maintainability, properties are met
portability, code style, program § Cannot try all possible
inefficiencies, etc. executions.
§ Software Quality & Quality Attributes
§ Desirable properties of a system under development
§ Software quality is subjective
§ Define objective thresholds for measurement