Softwaretechnik
Software Development Lifecycle
Overview
Understanding the complete process of software development
Learning Objectives
- Master agile methodologies
- Understand requirements engineering
- Apply project management principles
- Work with development processes
- Practice software planning
Learning Resources
Software Engineering
MIT's software engineering
MIT OCW
Agile Practices
Agile development guide
Atlassian
Software Processes
Software process management
Coursera
Scrum Guide
Official Scrum framework
Scrum.org
Clean Code
Software craftsmanship guide
Clean Code
Software Engineering
Stanford's SE course
Stanford
Software Design
Expert software insights
Martin Fowler
Project Management
Project tracking tools
GitHub
Tech Radar
Technology assessment
ThoughtWorks
Engineering Practices
Google's development guide
Practical Applications
Project Management
Managing software projects
Example: Implementing Scrum framework
Process Improvement
Optimizing development
Example: Continuous integration setup
Quality Assurance
Ensuring software quality
Example: Code review processes
Practice Problems
- Design development process
- Create project timeline
- Implement agile practices
- Manage team workflow
Software Architecture
Overview
Designing robust and scalable software systems
Learning Objectives
- Understand design patterns
- Master system architecture
- Apply SOLID principles
- Work with microservices
- Practice clean architecture
Learning Resources
Software Architecture
CMU's architecture course
Carnegie Mellon
Design Patterns
Classic patterns book
GoF
Clean Architecture
Architecture principles
Pluralsight
Architecture Guide
Cloud architecture patterns
Microsoft
Design Patterns
Pattern explanations
RefactoringGuru
Software Architecture
ETH's architecture course
ETH Zürich
Microservices
Hands-on architecture
Katacoda
Software Architecture
Architecture & design
Udacity
Architecture Center
Cloud architecture
AWS
Refactoring
Code improvement tasks
Exercism
Practical Applications
System Design
Architectural planning
Example: Designing scalable systems
Code Organization
Structure improvement
Example: Implementing design patterns
Microservices
Service architecture
Example: Building distributed systems
Practice Problems
- Design system architecture
- Implement design patterns
- Create microservices
- Apply SOLID principles
Software Quality
Overview
Ensuring reliability and maintainability of software
Learning Objectives
- Master testing strategies
- Understand code quality
- Apply refactoring techniques
- Work with quality metrics
- Practice code reviews
Learning Resources
Software Testing
Berkeley's testing course
Berkeley
Code Quality
Quality management
SonarQube
TDD Course
Test-driven development
TestDriven
Testing Framework
Java testing guide
JUnit
Refactoring
Code improvement guide
Refactoring
Code Health
Code quality insights
CodeScene
Code Challenges
Programming practice
Codewars
Software Quality
TUM's quality course
TU München
Code Reviews
Review practices
PluralSight
Testing Tools
Modern testing framework
Cypress
Practical Applications
Quality Assurance
Testing implementation
Example: Creating test suites
Code Maintenance
Code improvement
Example: Refactoring legacy code
Process Improvement
Quality processes
Example: Implementing code reviews
Practice Problems
- Implement testing strategy
- Improve code quality
- Create review process
- Measure quality metrics