Phase 1 of 5  ·  Foundations
Week 01 / 20   ·   Ch 1

Introduction to
Software Engineering

"Why 70% of software projects fail — and what real engineers do differently"

📚 Ch 1 — Introduction🏗️ 4 Software Attributes⚖️ SE Ethics⏱ ~20 min read

🔍Concept Deep Dives

Click each concept to expand — real examples, diagrams, pros & cons.

🏗️

Professional Software Development

Software made for others — must be maintained, depended on, and evolved over time.

When to Use

Any commercial, organizational, or team-built software.

Real-World Example

Online banking app vs a personal script. The bank app needs docs, testing, SLAs. The script doesn't.

✓ Advantages

  • Clear quality standards
  • Supports team development
  • Software outlives original devs

⚠ Watch Out

  • More upfront effort
  • Requires process discipline
What makes it a professional software product
Software Product
Quality Attributes
Maintainability
Easy to change as needs evolve
Dependability
Reliable, safe & secure
Efficiency
No wasted resources
Acceptability
Usable by its target audience
⚙️

Software Process

The set of activities required to develop a software system — spec, development, validation, evolution.

When to Use

All software projects — defines how teams move from idea to shipped product.

Real-World Example

A startup using GitHub Issues + PRs + CI/CD is following a (lightweight) software process.

✓ Advantages

  • Repeatable quality
  • Shared team understanding
  • Basis for improvement

⚠ Watch Out

  • Too heavy = bureaucracy
  • Too light = chaos
The four activities of every software process
1SpecificationDefine what the system must do — and the constraints it works within.
2DevelopmentDesign and build the software to meet that specification.
3ValidationCheck it actually does what the customer wanted.
4EvolutionAdapt and improve the software as needs change over time.
⚖️

SE Ethics

Software engineers must act ethically — confidentiality, competence, IP rights, computer misuse.

When to Use

Always — especially when employer/client interests conflict with public interest.

Real-World Example

Volkswagen emissions scandal — engineers wrote software to cheat tests. Clear ethical violation.

✓ Advantages

  • Builds trust
  • Protects public safety
  • Long-term career protection

⚠ Watch Out

  • Sometimes conflicts with employer demands
ACM / IEEE Software Engineering Code of Ethics
1Public — act consistently with the public interest
2Client & employer — act in their best interest, within the public good
3Product — meet the highest professional standards
4Judgment — maintain integrity and independence
5Management — manage ethically and fairly
6Profession — advance the integrity of the profession
7Colleagues — be fair to and supportive of peers
8Self — commit to lifelong learning
When employer and public interests conflict, the public interest comes first.

📋Quick Reference

θ Ch 1 Cheat Sheet — Introduction to Software Engineering
Software Engineering
Disciplined approach to developing, operating, and maintaining software — covers spec, dev, validation, evolution.
4 Essential Attributes
Maintainability (changeable), Dependability (reliable/safe/secure), Efficiency (no waste), Acceptability (usable).
SE vs Programming
Programming = writing code. SE = requirements + design + code + test + deploy + maintain + team + process.
Software Process
Spec → Development → Validation → Evolution. Every project follows these in some form.
Ethics
ACM/IEEE Code: public first, then client, then profession. Blow the whistle when needed.
θ
Sommerville's Key Points — Ch 1
Author's own summary from the end of the chapter.
  • 1Software engineering is concerned with theories, methods, and tools for professional software development.
  • 2The software process includes activities of specification, development, validation, and evolution.
  • 34 key attributes: maintainability, dependability and security, efficiency, acceptability.
  • 4Software engineers have responsibilities to the engineering profession and to society.
  • 5Professional societies (ACM, IEEE) publish codes of ethics that are standards of behavior.

🌍From the Book & Beyond

📖

Case Study — The Insulin Pump Control System

Sommerville's flagship embedded-system case study is a software-controlled insulin pump for diabetics. A microsensor embedded in the patient measures blood conductivity, the controller computes the sugar level and required dose, then sends pulses to a miniature pump — one pulse delivers exactly one unit of insulin. It's safety-critical: too much insulin causes dangerously low blood glucose (brain malfunction, even death); too little causes long-term eye, kidney, and heart damage. Hence its two essential requirements: the system shall be available when needed and shall reliably deliver the correct dose.

2026 Perspective — Code Is Cheap, Judgment Isn't

In 2026, AI pair programmers like GitHub Copilot and Claude can generate working code in seconds — exactly the part of the job this chapter says was never the hard part. What AI can't do is decide whether an insulin pump should fail open or fail safe, weigh privacy against availability in a Mentcare-style system, or take ethical responsibility for a shipped product. Sommerville's core claim has aged well: software engineering is about the whole lifecycle and its trade-offs, not typing code. That judgment is now the scarce skill.

🧠Quiz — Test Yourself

Think through your answer first, then reveal.

Q1
Recall
What are the 4 key software attributes Sommerville identifies? Give a one-line definition of each.
Maintainability (easy to change), Dependability (reliable, safe, secure), Efficiency (no resource waste), Acceptability (understandable and usable by target users).
Q2
Apply
What is the difference between software engineering and programming?
Programming is writing code — one activity. Software engineering covers the full lifecycle: requirements, design, implementation, testing, deployment, maintenance, team coordination, and process improvement.
Q3
Analyze
A company asks you to add a backdoor to government software 'for security reasons'. What do you do?
Refuse and escalate. SE ethics (ACM/IEEE) require putting public interest above employer/client interests. A hidden backdoor is a security risk to all users — this is a clear ethical violation.
Up Next → Week 02
Software Process Models
Waterfall vs. Agile vs. Spiral — which one fits YOUR project?
Continue → Week 02