CIS 3500
Introduction to Software Engineering
or how to JOYFULLY BUILD with a TEAM
Prof. Jérémie Lumbroso, Ph.D.
lumbroso@seas.upenn.edu
LECTURE 3:
SOFTWARE ENGINEERING
CONTINUED

⚠️➡️ RIGHT NOW, go to https://sli.do
Code #23232323
Agenda
- Resume discussion about music industry
- Pick another industry that was disrupted
- Discuss origin of term "software engineering"
- A Tale of Two Flights
- Presentation of HW0, HW1 and website
- Administrivia questions answered here
What do you think about the music industry's disruption?
Any thoughts?
Number of musicians over time
- Comparing the number of musicians (in thousands) in UK and US
- Why trends are complicated, no cratering of musicians in early 2000's following disruptions of music industry


Impact on Music in US?
- Democratization seems real
- Spotify in the US introduced in 2011




What about the pandemic?






from "Covid-19 Impact on the Music Sector in Belo Horizonte (Minas Gerais, Brazil)"
Additional stream of revenue



from Musicians’ Union (2012) The Working Musician Report, Musicians Union.
"Our survey provides evidence that revenues from recorded music (including streaming, downloads and physical sales) constitute only a small proportion of UK music creators’ earnings. It also confirms previous findings that many musicians combine musical work with other forms of work. Live music and teaching are the main ways in which music creators make a living from music. Of those musicians for whom music was their only source of income, 67% spent all of their working time on music"


Can you think of another industry disrupted by technology?
... we might discuss it next!
Attendance Tracker

Today's password is
MCAS

"Software Engineering" Origin
NATO Software Engineering Conference (1968)
- Emerging Software Crisis: By the late 1960s, software systems were rapidly growing in size and complexity. Projects ran over budget and behind schedule, and the resulting software was often unreliable or difficult to maintain. This situation became known as the “software crisis.”
- Need for Structured Approaches: Recognizing these challenges, NATO convened a conference to gather experts from academia, industry, and government to discuss systematic solutions to software development problems.
- The conference intentionally used the term “engineering” to underscore the need for rigorous, disciplined methods—akin to traditional branches of engineering.
- It challenged the notion of software creation as a purely “craft-like” or “artistic” endeavor, promoting instead a structured, scientific approach.


Problems Identified
- Complexity: Large systems with millions of lines of code were difficult to design, build, and maintain.
- Reliability: Bugs and system crashes plagued software, highlighting the need for testing and formal verification.
- Project Management: Late deliveries and cost overruns underscored the importance of planning, scheduling, and resource management.
- Communication: Emphasized the importance of collaboration among diverse teams, from programmers and designers to project managers and stakeholders.
Solutions Introduced
- Structured Programming: A push toward organizing code into clear, maintainable modules or blocks.
- Formal Methods: Discussion around mathematical and logical techniques to prove software correctness.
- Lifecycle Models: Emerging ideas on a disciplined, stage-based approach to development (e.g., requirements, design, implementation, testing, maintenance).
- Documentation & Standards: Advocating uniform documentation and coding standards.
On July 20, 1969, as the lunar module, Eagle, was approaching the moon’s surface, its computers began flashing warning messages. For a moment Mission Control faced a “go / no-go” decision, but with high confidence in the software developed by computer scientist Margaret Hamilton and her team, they told the astronauts to proceed. The software, which allowed the computer to recognize error messages and ignore low-priority tasks, continued to guide astronauts Neil Armstrong and Buzz Aldrin over the crater-pocked, dusty crust of the moon to their landing.
“It quickly became clear,” she later said, “that [the] software was not only informing everyone that there was a hardware-related problem, but that the software was compensating for it.” An investigation would eventually show that the astronauts’ checklist was at fault, telling them to set the rendezvous radar hardware switch incorrectly. “Fortunately, the people at Mission Control trusted our software,” Hamilton said. And with only enough fuel for 30 more seconds of flight, Neil Armstrong reported, “The Eagle has landed.”



Boeing MCAS Flight Software
It was certainly not a good thing when Netflix aired a documentary about Boeing in 2022 titled “Downfall: The Case Against Boeing,” which contained a scene where widely respected airline pilot Chesley B. “Sully” Sullenberger said that for the pilots on the Lion Air flight the way the MCAS software was operating, “was maniacal. MCAS was trying to kill them.” Sullenberger added that because Boeing had not been forthcoming when fielding the 737 Max, claiming additional pilot training was unnecessary, the pilots didn’t know what MCAS was or that it was even on the aircraft.


Why?
- The Boeing 737 MAX had larger, more fuel-efficient engines than earlier 737 models. These engines were mounted farther forward and higher on the wings, causing a tendency for the plane's nose to pitch upward under certain conditions, especially during high-thrust situations like takeoff.
- MCAS was designed to automatically push the nose of the plane down if sensors detected the aircraft was at risk of stalling (flying too slowly with too high a nose-up angle).
-
Major problems
- Only one sensor was used
- The pilots were not told about this system


Fake Disaster?
The Y2K Bug
The Y2K Bug: A Global Fear
-
What Was the Y2K Bug?
- Also called the "Millennium Bug," it stemmed from a widespread programming practice: storing years as two digits (e.g.,
99
for 1999). - Problem: On January 1, 2000, systems could interpret
00
as 1900, causing errors in calculations, software, and hardware. - Potential Impacts: Financial systems crashing, power grid failures, and transportation disruptions—essentially, global chaos.
- Also called the "Millennium Bug," it stemmed from a widespread programming practice: storing years as two digits (e.g.,
-
Why Did It Happen?
- Early computer memory and storage were limited and expensive, so saving space with two-digit years was efficient.
- Over decades, this practice embedded itself into critical systems worldwide.

When Zachary Loeb, who was 15 at the turn of the millennium, decided to study Y2K as the subject of his Ph.D. dissertation, he recalled that he had initially assumed he would be writing “a history of a techno-panic, hyped up by the media.”
But Mr. Loeb soon learned that it had been “a serious problem, and how seriously it was taken by serious people.” Now an assistant professor of history at Purdue University, Mr. Loeb is writing a book on the Y2K experience.



Collaborative Solution
-
How Was the Crisis Averted?
- Massive Coordination Effort: Governments, businesses, and IT professionals across the globe worked together to identify, update, and test systems.
- Billions Invested: An estimated $300–$600 billion was spent fixing code and upgrading systems.
- Awareness Campaigns: Public and private sectors launched education initiatives to prepare organizations.
-
Outcome
- January 1, 2000, passed with minimal disruptions—thanks to proactive preparation and global collaboration.
- Legacy: The Y2K effort showcased the power of teamwork and became a model for tackling large-scale technical challenges.
Discussing HW0
& talking about HW1
Website launched
Remarks for HW0
- Read everything carefully
- I wrote from the heart (literally!)
- I am sharing all my expertise
- Do I need to do quizzes?
- Pay attention to the deliverables (norms)
- We are going to have an activity to prepare the introduction in class, so you can wait until the end of the week to submit your introduction
Upcoming HW1
- Use static site generator
- Build website and edit template
- Code archeology: Understand what everything does
- “Tricycle version”
- Use ChatGPT + DALL–E to generate content for fake product
- In homework 2, we will automatically deploy this

Practice JavaScript
- Start taking a tutorial to learn JavaScript now
- Any short interactive tutorial on JavaScript will be useful

CIS 3500: Lecture 3
By Jérémie Lumbroso