Aspect Oriented Software
Aspect Oriented Software
Pemrograman berorientasi aspek (AOP) adalah pendekatan pengodean yang membantu pengembang menulis kode yang lebih bersih dan lebih terorganisasi dengan memisahkan tugas-tugas umum, seperti pencatatan atau penanganan kesalahan, dari logika program utama. Dalam AOP, kode dipisahkan menjadi modul atau 'aspek' yang merangkum fungsionalitas terkait, sehingga lebih mudah dikelola dan dimodifikasi.
Kegunaan Aspect-Oriented Software:
- Memisahkan Logika Bisnis dari Concerns Lintas Fungsional: Membuat kode lebih modular dan lebih mudah dipahami.
- Meningkatkan Reusabilitas dan Pemeliharaan: Dengan mengisolasi aspek tertentu, perubahan pada concern tertentu tidak akan memengaruhi logika utama aplikasi.
- Mengurangi Duplikasi Kode: Menghindari pengulangan kode untuk concern lintas fungsional di berbagai bagian sistem.
Stakeholder
Stakeholder adalah individu atau kelompok yang memiliki kepentingan dalam proyek perangkat lunak. Peran mereka sangat penting dalam semua fase pengembangan perangkat lunak.
- Menyediakan Persyaratan: Stakeholder membantu mendefinisikan kebutuhan dan harapan dari perangkat lunak.
- Memberi Umpan Balik: Selama proses pengembangan, mereka memberikan masukan untuk memastikan produk sesuai dengan kebutuhan.
- Mendukung Keputusan: Stakeholder membantu menentukan prioritas fitur, anggaran, dan waktu pengerjaan.
- Uji dan Validasi: Stakeholder memverifikasi bahwa perangkat lunak yang dikembangkan memenuhi persyaratan bisnis.
- Menyediakan Sumber Daya: Mereka berkontribusi dalam hal finansial, tenaga kerja, atau informasi yang diperlukan untuk proyek.
- Pengguna Akhir: Orang yang menggunakan perangkat lunak.
- Manajemen: Mengawasi pengembangan dan memastikan keselarasan dengan tujuan organisasi.
- Pengembang: Mengimplementasikan perangkat lunak berdasarkan spesifikasi.
- Sponsor/Investor: Memberikan dana untuk proyek.
Concerns dalam pengembangan perangkat lunak
Separation of Concerns: Konsep ini adalah prinsip utama dalam rekayasa perangkat lunak yang bertujuan untuk memisahkan kode yang memiliki fungsi atau tanggung jawab berbeda, sehingga setiap concern diimplementasikan di tempatnya sendiri.
Dalam konteks pengembangan perangkat lunak, concerns adalah bagian-bagian dari sistem yang mewakili tujuan, kebutuhan, atau tanggung jawab tertentu.
Jenis-Jenis Concerns:
- Primary Concerns (Kekhawatiran Utama): Fokus utama dari perangkat lunak, seperti fungsionalitas inti sistem.
- Cross-Cutting Concerns (Kekhawatiran Lintas Fungsional): Kekhawatiran yang memengaruhi banyak bagian sistem, seperti keamanan, logging, atau pengelolaan performa.
Peranan Concerns:
- Membantu pengembang dalam memahami struktur sistem.
- Membantu memisahkan tanggung jawab dalam pengkodean (separation of concerns), yang membuat sistem lebih modular dan lebih mudah dipelihara.
- Mengurangi kompleksitas dengan memecah sistem menjadi bagian-bagian kecil yang lebih mudah dikelola.
Daftar Pustaka
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J. M., & Irwin, J. (1997). Aspect-Oriented Programming. Proceedings of the European Conference on Object-Oriented Programming (ECOOP). https://doi.org/10.1007/BFb0053381
Rashid, A., & Aksit, M. (2004). Aspect-Oriented Programming and Separation of Concerns in Software Development. The Journal of Systems and Software, 65(3), 155–157. https://doi.org/10.1016/j.jss.2003.09.009
Sommerville, I. (2011). Software Engineering (9th ed.). Addison-Wesley.
Freeman, P., & Hart, D. (2004). A Science of Design for Software-Intensive Systems. Communications of the ACM, 47(8), 19–21. https://doi.org/10.1145/1012037.1012054
Parnas, D. L. (1972). On the Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM, 15(12), 1053–1058. https://doi.org/10.1145/361598.361623
Tarr, P., Ossher, H., Harrison, W., & Sutton Jr., S. M. (1999). N Degrees of Separation: Multi-Dimensional Separation of Concerns in Software Engineering. Proceedings of the International Conference on Software Engineering (ICSE), 107–119. https://doi.org/10.1145/302405.302457
Komentar
Posting Komentar