🚀 Software Engineering Tutorial - Week 1

Interactive Learning Experience

0%

🎯 Question 1: Generic vs Custom Software

What's the difference between software you buy off the shelf and software built just for you?

📦

Generic Software

Click to explore!

🎨

Custom Software

Click to explore!

🤔 Think About It!

What might this mean for users of generic software?

For generic software users:

  • ✅ Lower cost - development costs shared among many users
  • ✅ Immediate availability - no waiting for development
  • ❌ May need to adapt their processes to fit the software
  • ❌ Less flexibility for specific needs
  • ❌ Compete with same tools as competitors

💎 Question 2: Essential Software Attributes

What makes software "good"? Let's explore the essential qualities!

🛡️ Maintainability

Software that grows with you

🔒 Dependability & Security

Software you can trust

⚡ Efficiency

Software that respects resources

👍 Acceptability

Software people want to use

🎯 Your Turn: Suggest 4 More Attributes!

Think about software you use daily. What other qualities make it great?

Other important attributes might include:

  • 🎨 Usability - Intuitive interface and easy to learn
  • 🔄 Interoperability - Works well with other systems
  • 📱 Portability - Runs on different platforms
  • 🧩 Scalability - Handles growth in users/data
  • Accessibility - Usable by people with disabilities
  • 🏃 Performance - Fast and responsive

🌍 Question 3: 21st Century Software Challenges

Beyond the usual challenges, what new problems will software engineering face?

🌱 Environmental Challenges

Click on each challenge below to learn more:

⚡ Energy Consumption

🗑️ E-Waste from Obsolescence

🌡️ Carbon Footprint

♻️ Sustainable Development

🎓 Question 4: Should Engineers Be Certified?

Should software engineers need licenses like doctors or lawyers?

✅ Arguments FOR Certification

  • 🛡️ Ensures minimum competency standards
  • 👨‍⚕️ Protects public from incompetent practitioners
  • 📈 Elevates professional status
  • ⚖️ Clear accountability for failures

❌ Arguments AGAINST Certification

  • 🚀 Technology changes too rapidly
  • 🌍 Software is too diverse to standardize
  • 💡 Might stifle innovation
  • 🎯 Different domains need different skills

🤔 Your Opinion Matters!

What do you think? Vote below:

🚁 Question 5: The Drone Revolution

What societal challenges come with building intelligent drone systems?

🎯 Click each challenge to explore:

🔒 Privacy Concerns

⚡ Safety & Reliability

⚖️ Legal & Ethical Issues

🛡️ Security Vulnerabilities

📊 Question 6: Choosing the Right Process Model

Match each system type with the best development approach!

🎮 Drag and Match Exercise

Which process model fits best?

🌊 Waterfall Model

Sequential phases, detailed planning, fixed requirements

🔄 Incremental Model

Build in small pieces, get feedback, adapt as you go

🧩 Integration Model

Assemble from existing components, configure and customize

Match these systems:

🚗 Anti-lock Braking System

Safety-critical, fixed requirements, needs extensive testing

🥽 VR Software Maintenance Tool

Innovative, evolving requirements, needs user feedback

🏫 University Accounting System

Replacing existing system, standard business processes

🌍 Travel Planning System

User-focused, needs experimentation, evolving features

📋 Question 7: User vs System Requirements

Why do we need TWO types of requirements? Let's find out!

👤 User Requirements

Written for: Customers & Users

Language: Natural language, simple terms

Example: "The system should allow users to search for books by title, author, or ISBN"

⚙️ System Requirements

Written for: Developers & Engineers

Language: Technical, precise, detailed

Example: "The search function shall query the database using SQL SELECT statements with WHERE clauses matching title, author_name, or isbn fields, returning results within 2 seconds"

🎯 Why Both?

  • 📊 Different Audiences: Customers don't understand technical jargon
  • 🤝 Contract Clarity: User requirements for agreement, system requirements for building
  • Validation: Check system requirements actually meet user needs
  • 🔍 Traceability: Link what users want to what developers build
  • 💡 Gap Prevention: Avoid misunderstandings between stakeholders