Bab 10 : Software Engineering Process
Nama : Mutia Ardelia Rokhima
NIM : 240605110075
Bab 10 : Software Engineering Process
Bagian 1 : Dasar-Dasar Software Engineering Process
A.
Konsep dan Peran Software
Engineering Process
1.
Definisi Software Engineering
Process dan Perannya dalam Pengembangan Perangkat Lunak
Software
Engineering Process adalah serangkaian langkah, metode, dan aktivitas yang
digunakan dalam pengembangan perangkat lunak secara terstruktur mulai dari
perencanaan, analisis, desain, implementasi, pengujian, hingga pemeliharaan
sistem. Proses ini bertujuan untuk memastikan perangkat lunak dikembangkan
secara sistematis agar menghasilkan produk yang berkualitas, sesuai kebutuhan
pengguna, dan dapat diselesaikan tepat waktu.
Dalam
pengembangan perangkat lunak, Software Engineering Process berperan penting
untuk mengatur alur kerja tim pengembang sehingga setiap tahapan proyek dapat
dilakukan secara terorganisasi. Dengan adanya proses yang jelas, risiko
kesalahan dapat dikurangi, kualitas perangkat lunak dapat ditingkatkan, serta
proses pengembangan menjadi lebih efisien dan mudah dikendalikan.
2.
Tiga Tujuan Utama Penerapan Proses
Rekayasa Perangkat Lunak
1.
Meningkatkan Kualitas Perangkat
Lunak
Proses rekayasa perangkat lunak membantu memastikan sistem
dikembangkan sesuai standar kualitas sehingga perangkat lunak menjadi lebih
stabil, aman, dan minim kesalahan.
2.
Meningkatkan Efisiensi Pengembangan
Dengan proses yang terstruktur, pengelolaan waktu, biaya, dan
sumber daya dapat dilakukan secara lebih efektif sehingga proyek berjalan lebih
terorganisasi.
3.
Mengurangi Risiko Kegagalan Proyek
Penerapan proses rekayasa perangkat lunak membantu tim
mengidentifikasi dan mengatasi masalah lebih awal sehingga risiko keterlambatan
dan kegagalan proyek dapat diminimalkan.
3.
Analisis Studi Kasus
Pengembangan Aplikasi Mobile Banking yang Sering Mengalami Masalah
Performa Akibat Kurangnya Standarisasi Proses
|
Aspek Proses Rekayasa Perangkat Lunak |
Deskripsi |
Dampak pada Proyek |
|
Perencanaan Proses |
Proses pengembangan tidak memiliki standar kerja yang jelas |
Pengembangan sistem menjadi tidak terarah dan sering mengalami
kesalahan |
|
Pemantauan dan Evaluasi |
Kurangnya pengawasan terhadap kualitas dan performa aplikasi |
Masalah performa aplikasi sulit terdeteksi sejak awal |
|
Peningkatan Berkelanjutan |
Tidak dilakukan evaluasi dan perbaikan proses secara rutin |
Kualitas aplikasi menurun dan masalah yang sama terus berulang |
Bagian 2 : Model Proses Perangkat Lunak
A.
Siklus Hidup Pengembangan Perangkat
Lunak (SDLC)
1.
Konsep Software Development Life
Cycle (SDLC)
Software
Development Life Cycle (SDLC) adalah proses sistematis yang digunakan dalam
pengembangan perangkat lunak mulai dari tahap perencanaan hingga pemeliharaan
sistem. SDLC bertujuan untuk memastikan perangkat lunak dikembangkan secara
terstruktur, berkualitas, sesuai kebutuhan pengguna, serta dapat diselesaikan
secara efektif dan efisien.
Melalui SDLC,
setiap tahapan pengembangan dilakukan secara terencana sehingga membantu tim
pengembang mengurangi risiko kesalahan, meningkatkan kualitas perangkat lunak,
serta mempermudah pengelolaan proyek.
2.
Lima Fase Utama dalam SDLC
1.
Planning
Tahap planning dilakukan untuk menentukan tujuan proyek, ruang
lingkup sistem, kebutuhan sumber daya, jadwal pengerjaan, serta estimasi biaya
pengembangan perangkat lunak.
2.
Analysis
Pada tahap analysis, tim pengembang mengidentifikasi dan
menganalisis kebutuhan pengguna maupun kebutuhan sistem agar perangkat lunak
yang dikembangkan sesuai dengan tujuan proyek.
3.
Design
Tahap design dilakukan untuk merancang struktur sistem, database,
antarmuka pengguna, serta arsitektur perangkat lunak sebelum proses pengkodean
dimulai.
4.
Implementation
Implementation merupakan tahap pembuatan kode program berdasarkan
desain sistem yang telah dirancang sebelumnya. Pada tahap ini dilakukan proses
coding dan integrasi sistem.
5.
Maintenance
Tahap maintenance dilakukan setelah perangkat lunak digunakan oleh
pengguna. Kegiatan maintenance meliputi perbaikan bug, peningkatan performa,
pembaruan fitur, dan penyesuaian sistem terhadap kebutuhan baru.
3.
Studi Kasus: Sistem Informasi
Akademik Universitas
Pada studi
kasus Sistem Informasi Akademik Universitas, langkah SDLC yang harus
diperhatikan secara khusus adalah tahap Analysis dan Maintenance.
Tahap analysis
sangat penting karena sistem akademik melibatkan banyak pengguna, seperti
mahasiswa, dosen, dan administrasi kampus, sehingga kebutuhan sistem harus
dianalisis secara detail agar seluruh fitur dapat berjalan sesuai kebutuhan
pengguna. Misalnya, fitur pengisian KRS, pengelolaan nilai, jadwal kuliah, dan
pembayaran akademik harus dirancang berdasarkan kebutuhan setiap bagian.
Selain itu,
tahap maintenance juga perlu diperhatikan karena sistem akademik digunakan
secara terus-menerus dan membutuhkan pembaruan berkala, terutama saat terjadi
perubahan kurikulum, penambahan fitur, maupun peningkatan jumlah pengguna.
Maintenance yang baik membantu menjaga stabilitas, keamanan, dan performa
sistem agar layanan akademik tetap berjalan dengan optimal.
B.
Model Proses Perangkat Lunak
1.
Tiga Model Proses Perangkat Lunak
Utama
1)
Waterfall Model
Waterfall merupakan model pengembangan perangkat lunak yang
dilakukan secara berurutan mulai dari analisis, desain, implementasi,
pengujian, hingga pemeliharaan. Setiap tahap harus diselesaikan terlebih dahulu
sebelum melanjutkan ke tahap berikutnya.
2)
Agile Model
Agile adalah model pengembangan perangkat lunak yang bersifat
fleksibel dan dilakukan secara bertahap dalam iterasi singkat. Model ini
memungkinkan perubahan kebutuhan dapat dilakukan dengan cepat selama proses
pengembangan.
3)
Spiral Model
Spiral model adalah model pengembangan perangkat lunak yang
menggabungkan proses iteratif dengan analisis risiko pada setiap tahap
pengembangan. Model ini cocok digunakan pada proyek berskala besar dan memiliki
risiko tinggi.
2.
Tabel Perbandingan Model Proses
|
Model Proses |
Kelebihan |
Kekurangan |
Contoh Penerapan |
|
Waterfall |
Proses pengembangan terstruktur dan mudah dipahami |
Sulit menyesuaikan perubahan kebutuhan di tengah proyek |
Sistem administrasi dengan kebutuhan yang sudah jelas |
|
Agile |
Fleksibel terhadap perubahan dan pengembangan lebih cepat |
Membutuhkan komunikasi tim yang intensif |
Pengembangan aplikasi mobile dan startup digital |
|
Spiral |
Fokus pada analisis risiko dan pengembangan bertahap |
Membutuhkan biaya dan waktu yang lebih besar |
Pengembangan aplikasi perbankan dan kesehatan |
3.
Studi Kasus: Pengembangan Aplikasi
Kesehatan Berbasis Cloud
Pada studi
kasus pengembangan aplikasi kesehatan berbasis cloud, model proses yang paling
sesuai adalah Spiral Model. Hal ini karena aplikasi kesehatan memiliki risiko
tinggi terkait keamanan data pasien, kestabilan sistem, dan kepatuhan terhadap
regulasi kesehatan. Spiral model memungkinkan pengembang melakukan analisis
risiko pada setiap tahap sehingga potensi masalah dapat diketahui lebih awal.
Selain itu, model ini mendukung
evaluasi dan perbaikan sistem secara berkelanjutan sehingga kualitas aplikasi
dapat terus ditingkatkan. Dengan pendekatan tersebut, aplikasi kesehatan
berbasis cloud dapat dikembangkan secara lebih aman, stabil, dan sesuai
kebutuhan pengguna.
Bagian 3: Peningkatan dan Evaluasi Proses Rekayasa Perangkat
Lunak
A.
Strategi Peningkatan Proses
Perangkat Lunak
1.
Pentingnya Peningkatan Proses
Perangkat Lunak dalam Industri Teknologi
Peningkatan
proses perangkat lunak sangat penting dalam industri teknologi karena membantu
perusahaan menghasilkan perangkat lunak yang lebih berkualitas, efisien, dan
sesuai kebutuhan pengguna. Dengan proses yang baik, pengembangan perangkat
lunak dapat dilakukan secara lebih terstruktur sehingga risiko kesalahan,
keterlambatan proyek, dan pembengkakan biaya dapat dikurangi.
Selain itu,
peningkatan proses juga membantu meningkatkan produktivitas tim pengembang,
mempercepat proses pengembangan, serta menjaga konsistensi kualitas perangkat
lunak. Dalam industri teknologi yang terus berkembang, perusahaan perlu
melakukan evaluasi dan perbaikan proses secara berkelanjutan agar mampu
bersaing dan memenuhi kebutuhan pengguna yang selalu berubah.
2.
Tiga Pendekatan Utama dalam
Peningkatan Proses Perangkat Lunak
1.
Capability Maturity Model
Integration (CMMI)
CMMI adalah pendekatan peningkatan proses yang digunakan untuk
membantu organisasi meningkatkan kualitas dan kematangan proses pengembangan
perangkat lunak melalui standar dan praktik terbaik.
2.
Six Sigma
Six Sigma merupakan pendekatan yang berfokus pada pengurangan
kesalahan dan peningkatan kualitas proses melalui analisis data dan
pengendalian kualitas secara sistematis.
3.
Total Quality Management (TQM)
TQM adalah pendekatan manajemen yang menekankan peningkatan
kualitas secara menyeluruh dengan melibatkan seluruh anggota organisasi dalam
proses perbaikan berkelanjutan.
3.
Tabel Pendekatan Peningkatan Proses
|
Pendekatan Peningkatan Proses |
Tujuan |
Contoh Penerapan |
|
CMMI |
Meningkatkan kematangan dan kualitas proses pengembangan
perangkat lunak |
Perusahaan menerapkan standar proses pengembangan untuk
meningkatkan kualitas proyek |
|
Six Sigma |
Mengurangi kesalahan dan meningkatkan efisiensi proses |
Tim melakukan analisis bug untuk mengurangi jumlah error
pada aplikasi |
|
TQM |
Meningkatkan kualitas secara berkelanjutan di seluruh
organisasi |
Seluruh tim terlibat dalam evaluasi dan perbaikan kualitas
perangkat lunak |
4.
Studi Kasus: Perusahaan Teknologi
yang Berusaha Meningkatkan Efisiensi Proses Pengembangan Perangkat Lunak
Pada studi
kasus perusahaan teknologi yang ingin meningkatkan efisiensi proses
pengembangan perangkat lunak, pendekatan yang paling sesuai adalah CMMI. Hal
ini karena CMMI membantu perusahaan membangun proses pengembangan yang lebih
terstruktur, terstandarisasi, dan mudah dievaluasi.
Dengan
penerapan CMMI, perusahaan dapat meningkatkan kualitas perangkat lunak,
mengurangi kesalahan proses, serta meningkatkan produktivitas tim pengembang.
Selain itu, pendekatan ini membantu organisasi melakukan perbaikan proses
secara berkelanjutan sehingga pengembangan perangkat lunak menjadi lebih
efisien dan konsisten.
B.
Evaluasi Kinerja Proses Perangkat
Lunak
1.
Evaluasi Kinerja Proses Perangkat
Lunak dalam Organisasi
Evaluasi
kinerja proses perangkat lunak dilakukan untuk mengetahui efektivitas proses
pengembangan perangkat lunak dalam mencapai tujuan organisasi. Proses evaluasi
dilakukan dengan memantau kualitas perangkat lunak, produktivitas tim,
efisiensi waktu pengerjaan, serta jumlah kesalahan yang terjadi selama
pengembangan sistem.
Selain itu,
organisasi juga melakukan pengukuran menggunakan berbagai metrik kinerja untuk
mengetahui apakah proses pengembangan sudah berjalan sesuai standar yang
ditetapkan. Hasil evaluasi digunakan sebagai dasar untuk melakukan perbaikan
proses secara berkelanjutan agar kualitas perangkat lunak dan kinerja tim dapat
terus meningkat.
2.
Tiga Metrik Utama dalam Evaluasi
Efektivitas Proses Perangkat Lunak
1.
Defect Density
Defect density adalah metrik yang digunakan untuk mengukur jumlah
bug atau kesalahan dalam perangkat lunak berdasarkan ukuran kode program.
Metrik ini membantu menilai kualitas perangkat lunak yang dikembangkan.
2.
Lead Time
Lead time merupakan waktu yang dibutuhkan sejak permintaan fitur
atau tugas dibuat hingga selesai dikerjakan dan siap digunakan. Metrik ini
digunakan untuk mengukur efisiensi proses pengembangan.
3.
Cycle Time
Cycle time adalah waktu yang diperlukan untuk menyelesaikan suatu
pekerjaan sejak mulai dikerjakan hingga selesai. Metrik ini membantu mengetahui
tingkat produktivitas tim pengembang.
3.
Tabel Evaluasi Kinerja Proses
Perangkat Lunak
|
Metrik Evaluasi |
Deskripsi |
Alat Bantu yang Digunakan |
|
Defect Density |
Mengukur jumlah bug berdasarkan ukuran kode program |
SonarQube, Bugzilla |
|
Lead Time |
Mengukur waktu penyelesaian fitur atau tugas sejak
permintaan dibuat |
Jira, Trello |
|
Cycle Time |
Mengukur lama waktu pengerjaan suatu tugas hingga selesai |
Jira, Azure DevOps |
Bagian 4 : Alat Bantu dalam Pengelolaan Proses
Rekayasa Perangkat Lunak
A.
Penggunaan Alat Bantu Manajemen
Proses
1.
Tiga Alat Bantu dalam Manajemen
Proses Rekayasa Perangkat Lunak
1)
JIRA
JIRA adalah alat bantu manajemen proyek yang digunakan untuk
mengatur tugas, memantau progres pekerjaan, dan melacak bug dalam pengembangan
perangkat lunak. JIRA banyak digunakan pada proyek berbasis Agile.
2)
GitLab CI/CD
GitLab CI/CD merupakan alat yang digunakan untuk otomatisasi proses
integrasi dan deployment perangkat lunak. Alat ini membantu mempercepat proses
pengujian dan distribusi aplikasi secara berkelanjutan.
3)
SonarQube
SonarQube adalah alat analisis kualitas kode program yang digunakan
untuk mendeteksi bug, kerentanan keamanan, dan masalah kualitas perangkat lunak
secara otomatis.
2.
Tabel Fitur Utama dan Kegunaan Alat
Bantu
|
Alat Bantu |
Fitur Utama |
Kegunaan |
|
JIRA |
Issue tracking dan Agile project
management |
Mengelola tugas, sprint, dan pelacakan
bug dalam proyek perangkat lunak |
|
GitLab CI/CD |
Continuous Integration dan Continuous
Deployment |
Mengotomatisasi proses build, testing,
dan deployment aplikasi |
|
SonarQube |
Analisis kualitas kode dan deteksi bug |
Mengevaluasi kualitas kode program dan
meningkatkan keamanan perangkat lunak |
3.
Alat Bantu yang Dipilih untuk Tim
dengan Metodologi Agile
Jika bekerja
dalam tim yang menerapkan metodologi Agile, alat bantu yang paling sesuai
adalah JIRA. Hal ini karena JIRA memiliki fitur yang mendukung proses Agile
seperti pengelolaan backlog, sprint planning, task tracking, dan monitoring
progres proyek secara real-time.
Selain itu,
JIRA membantu meningkatkan kolaborasi antar anggota tim serta mempermudah
pengelolaan pekerjaan secara terstruktur. Dengan fitur pelacakan bug dan
laporan perkembangan proyek, tim dapat bekerja lebih efektif, cepat, dan
responsif terhadap perubahan kebutuhan pengguna.
B.
Praktik Terbaik dalam Pengelolaan
Proses Perangkat Lunak
1.
Tiga Praktik Terbaik dalam Penerapan
Proses Rekayasa Perangkat Lunak
1)
Continuous Integration/Continuous
Deployment (CI/CD)
CI/CD adalah praktik otomatisasi integrasi kode dan deployment
aplikasi secara berkelanjutan. Praktik ini membantu tim pengembang mempercepat
proses pengujian dan distribusi perangkat lunak sehingga perubahan sistem dapat
diterapkan dengan lebih cepat dan konsisten.
2)
Code Review
Code review merupakan proses pemeriksaan kode program oleh
pengembang lain sebelum kode digabungkan ke sistem utama. Praktik ini bertujuan
untuk meningkatkan kualitas kode, menemukan bug lebih awal, dan menjaga
konsistensi standar pemrograman.
3)
Automated Testing
Automated testing adalah proses pengujian perangkat lunak secara
otomatis menggunakan tools tertentu. Praktik ini membantu memastikan fungsi
sistem berjalan dengan baik serta mengurangi kesalahan manual dalam proses
pengujian.
2.
Studi Kasus: Startup Teknologi yang
Ingin Menerapkan Praktik DevOps untuk Mempercepat Rilis Produk
|
Praktik Manajemen Proses |
Deskripsi |
Manfaat |
|
CI/CD |
Otomatisasi proses build, testing, dan
deployment aplikasi |
Mempercepat proses rilis produk dan
mengurangi kesalahan deployment |
|
Code Review |
Pemeriksaan kode sebelum digabungkan ke
sistem utama |
Meningkatkan kualitas kode dan
mengurangi bug pada aplikasi |
|
Automated Testing |
Pengujian sistem secara otomatis
menggunakan tools testing |
Memastikan aplikasi berjalan stabil dan
mempercepat proses pengujian |
Kesimpulan dan Refleksi
1.
Kesimpulan
Software
Engineering Process merupakan proses terstruktur yang digunakan dalam
pengembangan perangkat lunak mulai dari tahap perencanaan, analisis, desain,
implementasi, hingga pemeliharaan sistem. Penerapan proses rekayasa perangkat
lunak membantu pengembangan sistem menjadi lebih terorganisasi, efisien, dan
sesuai kebutuhan pengguna. Selain itu, penggunaan model proses seperti
Waterfall, Agile, dan Spiral serta penerapan praktik terbaik seperti CI/CD,
code review, dan automated testing dapat meningkatkan kualitas perangkat lunak
serta mengurangi risiko kesalahan selama proses pengembangan. Dengan proses
rekayasa perangkat lunak yang baik, proyek dapat diselesaikan tepat waktu,
memiliki kualitas yang lebih stabil, dan mampu memenuhi kebutuhan pengguna secara
optimal.
2.
Refleksi Pribadi
Tantangan
terbesar dalam memahami dan menerapkan proses rekayasa perangkat lunak adalah
menjaga konsistensi proses pengembangan, mengelola perubahan kebutuhan
pengguna, serta memastikan kerja sama tim berjalan dengan baik. Selain itu,
penerapan berbagai metode dan tools pengembangan juga membutuhkan pemahaman
teknis serta koordinasi yang efektif antar anggota tim. Konsep yang dipelajari
dalam Software Engineering Process sangat bermanfaat untuk diterapkan dalam
proyek nyata karena membantu proses pengembangan perangkat lunak menjadi lebih
terstruktur, mudah dikendalikan, dan mampu menghasilkan sistem yang berkualitas
tinggi sesuai kebutuhan pengguna dan perkembangan teknologi.
Komentar
Posting Komentar