Pengantar�Software�Engineering
Zain Fathoni
Senior Software Engineer @ Ninja Van
Perkenalan
2014 | QUN | Programmer |
2015 - 2017 | Software Developer,�Software Development Manager | |
2017 | Software Engineer | |
2018 - sekarang | Senior Software Engineer 2 |
Aktivitas di luar pekerjaan
KawalCOVID19 | Tech Lead | |
ReactJS Indonesia | Co-organizer | |
Frontend Indonesia | Co-organizer | |
Konferensi & Meetup | Pembicara | |
Blog | Penulis | |
Pejuang Kode | Pendiri |
Informasi selengkapnya dapat dibuka di https://zainfathoni.com
Agenda Pembahasan
Apa saja yang dilakukan dan dibutuhkan dalam Software Engineering?
Apa saja yang dilakukan dalam�Software Engineering?
Software Engineering = Rekayasa Perangkat Lunak
Tujuan → Merekayasa perangkat lunak untuk menyelesaikan permasalahan manusia
Bentuk rekayasanya mencakup–namun tidak terbatas pada–hal-hal berikut ini:
Apa saja yang dibutuhkan dalam�Software Engineering?
Berangkat dari aktivitas tersebut, kita bisa turunkan berbagai keahlian yang dibutuhkan:
Perencanaan | Pengambilan keputusan, alokasi sumber daya, penjadwalan, dsb. |
Analisis kebutuhan | Komunikasi, analisis permasalahan, berempati terhadap pengguna, dsb. |
Perancangan | Merancang arsitektur, membuat diagram, merancang tampilan, dsb. |
Pengembangan | Pemrograman, algoritma, struktur data, logika, basis data, internet, dsb. |
Pengujian | Pengujian manual, menulis skrip untuk otomasi pengujian, dsb. |
Penyebaran | Arsitektur & jaringan komputer, continuous integration & delivery, dsb. |
Pemeliharaan | Debugging, version control, strategi perbaikan, memastikan uptime, dsb. |
Perencanaan
Kebutuhan:
Pihak yang terlibat:
Analisis Kebutuhan
Kebutuhan:
Pihak yang terlibat:
Perancangan
Kebutuhan:
Pihak yang terlibat:
Pengembangan
Kebutuhan:
Pihak yang terlibat:
Pengujian
Kebutuhan:
Pihak yang terlibat:
Penyebaran
Kebutuhan:
Pihak yang terlibat:
Pemeliharaan
Kebutuhan:
Pihak yang terlibat:
Contoh permasalahan dalam dunia�Software Engineering
Permasalahan Pengalaman Pengguna�(User Experience)
Permasalahan Tampilan
(User Interface)
Tampilan website tidak nyaman dibaca/digunakan di perangkat mobile (contoh)
Solusi: Responsive Web Design
Permasalahan Skalabilitas
Sering dengar suatu website/aplikasi down atau tidak bisa diakses akibat terlalu banyak pengguna dalam waktu yang bersamaan?
Pada umumnya ini akibat server yang tidak mampu melayani pengguna yang terlalu banyak.
Permasalahan Skalabilitas
Solusi: pasang banyak server di belakang layar
Permasalahan Pemeliharaan
Munculnya regresi/bug di production.
Investigasi akar masalah bisa dilakukan dengan memanfaatkan git bisect.
Tahapan-tahapan dalam pengembangan sebuah software
Siklus Hidup Pengembangan Perangkat Lunak
(Software Development
Life Cycle)
1. Perencanaan
2. Analisis Kebutuhan
3. Perancangan
4. Pengembangan
Agile vs Waterfall
5. Pengujian
6. Penyebaran
7. Pemeliharaan
Tanya Jawab
Via Zoom Chat
(Raise Hand)
Terima Kasih