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
Software Product ↓ ┌───────────────────────────┐ │ Quality Attributes │ │ Maintainability│Dependable │ │ Efficiency │Acceptable │ └───────────────────────────┘
⚙️

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
Specification ↓ Development ↓ Validation ↓ Evolution
⚖️

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 SE Code of Ethics 1. Public interest first 2. Client interests 3. Highest standards 4. Integrity 5. Management fairness 6. Profession respect 7. Colleagues respect 8. Lifelong learning

📋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.

🧠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