🚀 COIT20258

Software Engineering

Week 1: Professional Software Development & Software Processes

Master of Information Technology

Building Tomorrow's Software Solutions

🎯 Why Study Software Engineering?

💼

Career Ready

Master industry-standard practices and methodologies

🏗️

Build Quality

Create maintainable, reliable, and scalable software systems

🌐

Real Impact

Develop solutions for critical systems like disaster response

This Unit's Focus: Build a Disaster Response System (DRS) across three progressive assessments

💰 How This Unit Boosts Your Career

📈 High Demand Skills

  • Software architecture design
  • Agile development methodologies
  • Quality assurance & testing
  • Project management

🎓 Professional Standards

  • Industry-recognized practices
  • Ethical software development
  • Documentation standards
  • Team collaboration

🚀 Career Pathways

  • Software Engineer: $75k-$120k+
  • Solutions Architect: $100k-$150k+
  • Technical Lead: $90k-$140k+
  • Product Manager: $85k-$130k+

🔧 Practical Experience

  • 3-tier application development
  • Database integration
  • GUI design with JavaFX
  • Version control with Git

🏆 How to Excel in Software Engineering

📚 Study Strategies

  • Practice coding daily (even 30 minutes)
  • Read industry blogs and documentation
  • Join software development communities
  • Build personal projects outside coursework
  • Study real-world case studies

🛠️ Technical Skills

  • Master your development environment
  • Learn multiple programming paradigms
  • Understand design patterns
  • Practice debugging systematically
  • Write clean, documented code

💡 Pro Tips for This Unit

  • Start early: Each assessment builds on the previous one
  • Document everything: Your future self will thank you
  • Test thoroughly: 50% mark reduction if code doesn't compile
  • Use GitHub effectively: Regular commits show your progress

🤔 Software Engineer vs Software Developer

Aspect
Comparison
Software Engineer
Applies engineering principles to entire software lifecycle
Software Developer
Focuses primarily on coding and implementation
Scope
Engineer: System architecture, planning, quality assurance
Developer: Code implementation, bug fixes
Responsibilities
Engineer: Requirements analysis, design, testing, maintenance
Developer: Programming, unit testing
Mindset
Engineer: Problem-solving with constraints (time, budget, scale)
Developer: Solution implementation

This unit trains you as a Software Engineer - thinking beyond just coding to complete system design and management

⚙️ What is Software Engineering?

Definition

"An engineering discipline concerned with all aspects of software production from early specification through to maintaining the system after it has gone into use"

🔧 Engineering Discipline

  • Using appropriate theories & methods
  • Solving problems systematically
  • Considering organizational constraints
  • Managing financial limitations

📋 All Aspects

  • Not just coding!
  • Project management
  • Tool development
  • Quality assurance

🔄 Software Process Activities

Four fundamental activities in ALL software processes:

📋 Specification

Define what the system should do and its constraints

💻 Development

Design and program the software system

✅ Validation

Check that it meets customer requirements

🔄 Evolution

Modify software to reflect changing needs

Your DRS Project: You'll experience all four activities across three assessments

🏗️ Software Process Models

🌊 Waterfall Model

Plan-driven

  • Sequential phases
  • Complete one before next
  • Good for well-understood requirements
  • Difficult to accommodate changes

📈 Incremental Development

Flexible

  • Specification, development, validation interleaved
  • Frequent customer feedback
  • Easier to accommodate changes
  • Rapid delivery possible

🧩 Integration & Configuration

Reuse-oriented

  • Assemble from existing components
  • COTS (Commercial off-the-shelf)
  • Configure rather than build
  • Faster development

⭐ Essential Software Attributes

What makes software "good"?

🔧 Maintainability

Software should evolve to meet changing customer needs

Critical because change is inevitable

🛡️ Dependability & Security

Should not cause physical or economic damage

Includes reliability, safety, and security

⚡ Efficiency

Shouldn't waste system resources

Memory, processing time, responsiveness

✨ Acceptability

Must be acceptable to intended users

Understandable, usable, compatible

Your DRS must demonstrate all four attributes!

🌟 Modern Software Engineering Challenges

🌐 Heterogeneity

Systems operate across different platforms, devices, and networks

Example: Your DRS must work on various devices in emergency situations

📈 Business & Social Change

Rapid changes in business environments and user expectations

Example: COVID-19 changed disaster response protocols

🔒 Security & Trust

Software must be trustworthy and secure

Example: DRS handles sensitive emergency data

📏 Scale

From small embedded systems to global cloud platforms

Example: DRS might scale from local council to state-wide

⚖️ Software Engineering Ethics

Professional responsibility goes beyond technical skills

🤐 Confidentiality

Respect employer/client confidentiality regardless of formal agreements

💼 Competence

Don't misrepresent skill level; don't accept work beyond competence

📚 Intellectual Property

Understand and respect patent, copyright, and IP laws

💻 Computer Misuse

Don't use technical skills to misuse others' computers or systems

Real-world relevance: Emergency response systems require highest ethical standards

🎯 Your Software Engineering Journey

📅 This Semester's Path

📋 Assessment 1

Requirements & Design
Week 4 - 20%

💻 Assessment 2

DRS-Initial Prototype
Week 9 - 35%

👥 Assessment 3

DRS-Enhanced (Team)
Exam Week - 45%

🛠️ Technical Stack

  • Java (JDK 17)
  • JavaFX + Scene Builder
  • MySQL Database
  • NetBeans IDE
  • Git Version Control

🎓 Learning Outcomes

  • Multi-tiered application development
  • Object-oriented design patterns
  • Test-driven development
  • Team collaboration
  • Professional documentation

🚀 Ready to Begin?

📝 This Week's Actions

  • Set up your development environment (Java, NetBeans, MySQL)
  • Create your GitHub account for version control
  • Start thinking about disaster response in your community
  • Review the Assignment 1 specifications
  • Begin forming your Assessment 3 team

📚 Study Resources

  • Sommerville textbook Chapter 1-2
  • Moodle lecture materials
  • Tutorial exercises
  • Industry blogs & documentation

💭 Remember

You're not just learning to code

You're becoming a professional software engineer who can build systems that make a real difference in the world!

1 / 13