Rekayasa Perangkat Lunak 2 - VCLASS 2 (Aspect Oriented Software)

 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.

Peranan Stakeholder:

  • 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.
Kategori Stakeholder:

  • 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