Tuesday, August 29, 2023

Silabus Materi Kuliah Evolusi Perangkat Lunak 2021

 


Evolusi perangkat lunak (EPL) adalah sebuah proses pengembangan versi baru sebuah perangkat lunak secara berulang-ulang. Kebutuhan pemakai yang bertambah, proses bisnis yang berubah, atau sebuah metode baru untuk melakukan suatu hal, semua mempengaruhi bagaimana sebuah perangkat lunak berevolusi.

Mata kuliah Software Evolution and Configuration Management bertujuan untuk memperkenalkan konsep-konsep pemeliharaan dan manajemen konfigurasi perangkat lunak. Pada bagian pertama mata kuliah ini, mahasiswa akan diperkenalkan konsep pemeliharaan perangkat lunak seperti klasifikasi, proses, dan teknik pemeliharaan perangkat lunak. Bagian kedua mata kuliah ini membahas mengenai konsep manajemen konfigurasi perangkat lunak seperti change control dan release management. Setelah mengikuti mata kuliah ini mahasiswa diharapkan memiliki pemahaman bagaimana evolusi dan manajemen konfigurasi perangkat lunak dilakukan.



Software Evolution and Maintenance: A Practitioner's Outline
  1. Introduction to Software Evolution and Maintenance
    • Definition of software evolution and maintenance
    • Importance of evolution and maintenance in software lifecycle
    • Challenges and benefits of effective evolution and maintenance
  2. Software Evolution Phases
    • Requirements analysis for changes and updates
    • Design considerations for evolving software
    • Implementation of changes while preserving existing functionality
    • Testing strategies for validating changes
    • Deployment and rollout of evolved software
  3. Types of Software Evolution
    • Corrective evolution (bug fixes and error handling)
    • Adaptive evolution (environmental changes, hardware upgrades)
    • Perfective evolution (functional enhancements)
    • Preventive evolution (security and performance improvements)
  4. Maintenance Processes
    • Bug tracking and reporting
    • Issue triaging and prioritization
    • Version control and codebase management
    • Documentation updates to reflect changes
    • Collaboration and communication among development teams
  5. Factors Driving Evolution and Maintenance
    • Changing user requirements and market trends
    • Technological advancements and platform shifts
    • Regulatory and compliance updates
    • Security vulnerabilities and patches
    • Performance optimization and scalability demands
  6. Challenges in Software Evolution
    1. Managing technical debt during evolution
    2. Regression testing and ensuring backward compatibility
    3. Balancing new features with stability and reliability
    4. Addressing interoperability issues during updates
    5. Legacy system integration and migration challenges
  7. Strategies for Effective Software Evolution
    1. Agile and iterative development practices
    2. Continuous integration and continuous delivery (CI/CD)
    3. Feature toggles and experimentation for controlled rollouts
    4. Test-driven development (TDD) for maintainable code
    5. Refactoring and code cleanup to reduce technical debt
  8. Tools and Technologies for Maintenance
    • Version control systems (e.g., Git, SVN)
    • Issue tracking systems (e.g., JIRA, Bugzilla)
    • Automated testing frameworks and tools
    • Deployment and containerization tools (e.g., Docker, Kubernetes)
    • Monitoring and logging solutions for performance tracking
  9. Documentation and Knowledge Management
    • Maintaining up-to-date documentation
    • Knowledge transfer among team members
    • Creating user guides and release notes
    • Building a knowledge base for common issues and solutions
  10. Measuring Success in Software Evolution
    • Tracking metrics like defect density, response time, and user satisfaction
    • Analyzing the impact of changes on system performance
    • Monitoring adoption rates of new features or updates
    • Conducting post-mortem reviews to learn from challenges
  11. Case Studies and Real-world Examples
    1. Showcasing successful software evolution projects
    2. Highlighting lessons learned from failed maintenance efforts
    3. Discussing best practices employed by leading organizations
  12. Future Trends in Software Evolution
    • Embracing AI and machine learning for predictive maintenance
    • Incorporating DevOps and Site Reliability Engineering (SRE) principles
    • Addressing the challenges of evolving cloud-native applications
    • Exploring the role of serverless and microservices in maintenance
  13. Conclusion
    • Reinforcing the importance of ongoing software evolution
    • Encouraging a proactive approach to maintenance
    • Acknowledging the evolving nature of technology and its impact on software



Materi

Referensi


https://www.slideshare.net/fajarbaskoro/epl1pdf

Final Project EPL 2023

  Monitoring Form  Monitoring Tugas Hasil Monitoring