Goal-oriented requirements engineering: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
k judul miring |
k Bot: Perubahan kosmetika |
||
Baris 3:
== Definisi ''Goal'' ==
''Goal'' merupakan tujuan yang harus dicapai oleh [[sistem]] yang sedang dipertimbangkan. [https://en.m.wiki-indonesia.club/wiki/Axel_van_Lamsweerde Lamsweerde] mendefinisikan ''goal'' sebagai tujuan yang harus dicapai oleh [[sistem]] melalui kerja sama agen pada [[perangkat lunak]] yang akan dibuat dan di lingkungannya<ref name=":5" />. Anton menyatakan bahwa ''goal'' merupakan tujuan tingkat tinggi dari sebuah [[bisnis]], [[organisasi]] atau sistem yang menangkap alasan mengapa sebuah sistem dibutuhkan dan memandu keputusan dalam berbagai level dalam [[perusahaan]]<ref name=":6">A. Anton, W. McCracken, C. Potts, "Goal Decomposition and Scenario Analysis in Business Process Reengineering", Proc. 6th Conference On Advanced Information Systems Engineering (CAiSE’94), Utrecht, Holland, June 1994. </ref>. Dengan demikian, perumusan ''goal'' merujuk pada properti yang ingin dipastikan; mereka adalah pernyataan optatif yang bertentangan dengan pernyataan indikatif, dan dibatasi oleh subyek yang berkepentingan<ref>M. Jackson, "Software Requirements & Specifications - A Lexicon of Practice, Principles and Pejudices", ACM Press, Addison-Wesley, 1995. </ref><ref>{{Cite journal|last=Zave|first=Pamela|last2=Jackson|first2=Michael|date=1997-01-01|title=Four dark corners of requirements engineering|url=http://dx.doi.org/10.1145/237432.237434|journal=ACM Transactions on Software Engineering and Methodology|volume=6|issue=1|pages=1–30|doi=10.1145/237432.237434|issn=1049-331X}}</ref>. ''Goal'' dapat dirumuskan dalam beberapa level abstraksi, mulai dari tingkat tinggi, masalah strategis, hingga tingkat rendah, masalah teknis. ''Goal'' juga mencakup beberapa soal, di antaranya adalah masalah [[:en:Functional_requirement|fungsional]] yang berhubungan dengan servis yang akan disediakan, dan masalah [[:en:Non-functional_requirement|non-fungsional]] yang berhubungan dengan kualitas servis, keselamatan, keamanan, ketepatan, kinerja, dan seterusnya<ref name=":0" />.
Aspek penting pada [[Teknik kebutuhan perangkat lunak|rekayasa kebutuhan]] adalah analisis [[:en:Non-functional_requirement|kebutuhan non-fungsional]] (NFR)<ref name=":7">{{Cite book|title=Representing and using non-functional requirements: a process-oriented approach.|url=http://worldcat.org/oclc/219376868|oclc=219376868|last=Chung, Kyungwha Lawrence.}}</ref>. NFR biasanya direpresentasikan dalam model [[Teknik kebutuhan perangkat lunak|rekayasa kebutuhan]] sebagai ''softgoal''. ''Softgoal'' terkait dengan gagasan tentang kepuasan<ref>{{Cite journal|last=Stefik|first=Mark|date=1984-01|title=The sciences of the artificial|url=http://dx.doi.org/10.1016/0004-3702(84)90029-8|journal=Artificial Intelligence|volume=22|issue=1|pages=95–97|doi=10.1016/0004-3702(84)90029-8|issn=0004-3702}}</ref>. Tidak seperti ''goal'' biasa, ''softgoal'' jarang dapat dikatakan telah dicapai atau dipenuhi sampai tingkat yang memadai. [[:en:Non-functional_requirement|Kebutuhan non-fungsional]] tingkat tinggi sangat banyak dalam [[organisasi]] dan cukup sering kesuksesan sebuah [[sistem]] tergantung pada pemenuhan [[:en:Non-functional_requirement|kebutuhan non-fungsional]]<nowiki/>nya<ref name=":1" />.
Identifikasi ''goal'' bukanlah tugas yang mudah<ref>{{Cite journal|last=van Lamsweerde|first=A.|last2=Darimont|first2=R.|last3=Massonet|first3=P.|title=Goal-directed elaboration of requirements for a meeting scheduler: problems and lessons learnt|url=http://dx.doi.org/10.1109/isre.1995.512561|journal=Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95)|publisher=IEEE Comput. Soc. Press|doi=10.1109/isre.1995.512561|isbn=0818670177}}</ref>. Kadang-kadang ''goal'' tersebut secara eksplisit dinyatakan oleh [[pemangku kepentingan]] (''stakeholder'') atau dalam materi awal yang tersedia untuk ''requirement engineer''. Paling sering, ''goal'' tersebut dinyatakan secara implisit sehingga elisitasi ''goal'' harus dilakukan<ref name=":0" />. ''Goal'' juga dapat diidentifikasi secara sistematis dengan cara mencari kata kunci yang dimaksud pada dokumen awal yang disediakan, transkrip [[wawancara]], dan lain-lain<ref name=":5" />. Umumnya, dikemukakan bahwa model ''goal'' dibangun selama proses awal<ref name=":8">{{Cite journal|last=Dardenne|first=A.|last2=Fickas|first2=S.|last3=van Lamsweerde|first3=A.|title=Goal-directed concept acquisition in requirements elicitation|url=http://dx.doi.org/10.1109/iwssd.1991.213081|journal=Proceedings of the Sixth International Workshop on Software Specification and Design|publisher=IEEE Comput. Soc. Press|doi=10.1109/iwssd.1991.213081|isbn=0818623209}}</ref><ref name=":9">E. Dubois, E. Yu and M. Petit, "From Early to Late Formal Requirements: A Process-Control Case Study”, ''Proc. IWSSD’98 - 9th International Workshop on Software Specification and Design'', Isobe, IEEE CS Press, April 1998, 34-42.</ref><ref name=":10">{{Cite journal|last=Yu|first=E.S.K.|title=Towards modelling and reasoning support for early-phase requirements engineering|url=http://dx.doi.org/10.1109/isre.1997.566873|journal=Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering|publisher=IEEE Comput. Soc. Press|doi=10.1109/isre.1997.566873|isbn=0818677406}}</ref>. Dasar dari pendapat tersebut adalah peran penting ''goal'' dalam proses tersebut; semakin cepat ''goal'' diidentifikasi, semakin baik. Namun, ''goal'' juga terkadang dapat diidentifikasi belakangan dalam proses [[Teknik kebutuhan perangkat lunak|rekayasa kebutuhan]]<ref name=":0" />.
=== Tipe dan taksonomi ''goal'' ===
''Goal'' fungsional mencakup layanan atau servis dari sistem yang akan diluncurkan, sedangkan ''goal'' non-funsgional merujuk pada kualitas sistem seperti keamanan, keselamatan, kinerja, kemudahan penggunaan, fleksibilitas, interoperabilitas, dan seterusnya<ref>E. Keller, L.G. Kahn and R.B. Panara, "Specifying Software Quality Requirements with Metrics", in Tutorial: System and Software Requirements Enginering, R.H. Thayer and M. Dorfman, Eds., IEEE Computer Society Press, 1990, 145-163. </ref>. Adapun tipe yang diungkapkan dalam literatur lain, yaitu ''softgoal'' yang pemenuhannya tidak didapatkan dengan jelas <ref name=":7" /> dan ''hardgoal'' yang pemenuhannya
=== Atribut ''goal'' ===
Baris 16:
=== Tautan ''goal (Goal links)'' ===
Terdapat banyak tipe tautan yang dinyatakan dalam literatur untuk menghubungkan antara ''goal'' dengan ''goal'' dan dengan elemen lain dalam model kebutuhan. Tautan tersebut membentuk dasar untuk mendefinisikan struktur ''goal''. Tautan antar ''goal'' bertujuan untuk menangkap situasi di mana ''goal'' dapat mendukung ''goal'' lainnya secara positif atau negatif. Diambil dari [[:en:And–or_tree|metode reduksi masalah]] dalam [[Kecerdasan buatan|Kecerdasan Buatan]], grafik AND dan OR dapat digunakan untuk menangkap tautan penyempurnaan ''goal''. Tautan AND menghubungkan sebuah ''goal'' ke seperangkat ''subgoal''; hal ini berarti untuk mencapai sebuah ''goal'' harus memenuhi semua ''subgoal''. Tautan OR menghubungkan sebuah ''goal'' ke beberapa alternatif perbaikan; hal ini berarti memenuhi salah satu perbaikan saja sudah cukup untuk mencapai sebuah ''goal.''
Di samping tautan antar ''goal,'' secara umum ''goal'' berhubungan juga dengan elemen lain dalam model kebutuhan. Tipe tautan antar ''goal'' diperpanjang untuk menangkap kontribusi positif/negatif dari sebuah kebutuhan ke ''goal''; terdapat juga tautan argumentasi untuk menghubungkan argumen pendukung ke tautan kontribusi<ref name=":7" />. Terdapat banyak sekali usaha untuk menghubungkan ''goal'' dan skenario<ref name=":8" /><ref name=":3" />. Model ''goal'' juga dapat dikaitkan dengan model objek karena formulasi ''goal'' merujuk pada objek tertentu, misalnya, entitas, hubungan, atau agen<ref name=":8" />. Beberapa usulan dibuat untuk menghubungkan ''goal'' ke agen<ref name=":0" />. Adapun beberapa peneliti juga menganjurkan untuk menghubungkan ''goal'' dan kebijakan organisasi<ref name=":11" /> <ref>M. Feather, "Requirements Reconnoitering at the Juncture of Domain and Instance", ''Proc. RE’93 - 1st Intl. IEEE Symp. on Require- ments Engineering'', Jan. 1993, 73-77. </ref>.
== Peran ''goal'' dalam Rekayasa Kebutuhan ==
Terdapat banyak sekali alasan mengapa ''goal'' sangat penting dalam proses [[Teknik kebutuhan perangkat lunak|rekayasa kebutuhan]], di antaranya adalah:
* Mencapai kelengkapan kebutuhan merupakan fokus utama dalam proses [[Teknik kebutuhan perangkat lunak|rekayasa kebutuhan]], ''goal'' memberikan kriteria yang tepat untuk kelengkapan [[:en:Software_requirements_specification|spesifikasi kebutuhan]] yang cukup; spesifikasi kebutuhan tersebut dikatakan lengkap terkait dengan seperangkat ''goal'' yang apabila semua ''goal'' tersebut terbukti dapat dicapai dari spesifikasi dan properti domain yang diketahui juga ikut dipertimbangkan<ref name=":2" />.
* Menghindari kebutuhan yang tidak relevan merupakan fokus utama lainnya dari proses rekayasa kebutuhan. ''Goal'' memberikan kriteria yang tepat untuk ketepatan kebutuhan; sebuah kebutuhan dikatakan tepat terkait dengan seperangkat ''goal'' dalam domain yang dipertimbangkan yang apabila spesifikasinya digunakan sebagai bukti paling tidak dari salah satu ''goal''<ref name=":2" />.
* Menjelaskan kebutuhan kepada [[pemangku kepentingan]] merupakan isu penting lainnya. ''Goal'' memberikan dasar bagi kebutuhan, yang mirip dengan ''goal'' desain dalam proses desain<ref name=":10" /><ref>{{Cite journal|last=Lee|first=J.|title=Extending the Potts and Bruns model for recording design rationale|url=http://dx.doi.org/10.1109/icse.1991.130629|journal=[1991 Proceedings] 13th International Conference on Software Engineering|publisher=IEEE Comput. Soc. Press|doi=10.1109/icse.1991.130629|isbn=0818621400}}</ref>. Kebutuhan muncul karena beberapa ''goal'' mendasar yang menyediakan dasar untuk kebutuhan tersebut<ref>D.T. Ross and K.E. Schoman, "Structured Analysis for Requirements Definition", ''IEEE Transactions on Software Engineering'', Vol. 3, No. 1, 1977, 6-15. </ref><ref name=":3" /><ref>I. Sommerville and P. Sawyer, "''Requirements Engineering: A Good Practice Guide",'' Wiley, 1997.</ref>. Secara lebih eksplisit, pohon penyempurnaan ''goal'' (''goal refinement tree'') menyediakan tautan penelusuran dari sasaran strategis tingkat tinggi hingga kebutuhan teknis tingkat rendah. Khususnya untuk sistem aplikasi bisnis, ''goal'' dapat digunakan untuk menghubungkan [[Perangkat lunak|peranti lunak]] dengan konteks organisasi dan bisnis<ref>E.S.K. Yu, "Modelling Organizations for Information Systems Requirements Engineering", ''Proc. RE'93 - 1st Intl Symp. on Requirements Engineering'', IEEE, 1993, 34-41.</ref>.
* Penyempurnaan ''goal'' menyediakan mekanisme alami untuk menyusun [[:en:Software_documentation|dokumen kebutuhan]] yang kompleks untuk meningkatkan keterbacaan<ref name=":0" />.
* ''Requirement engineer'' dihadapkan dengan banyak alternatif untuk dipertimbangkan selama proses elaborasi kebutuhan. Penyempurnaan ''goal'' alternatif memberikan tingkat abstraksi yang tepat di mana para pengambil keputusan dapat terlibat untuk memvalidasi pilihan yang dibuat atau menyarankan alternatif lain yang belum diperhatikan sejauh ini. Penyempurnaan ''goal'' alternatif memungkinkan proposal sistem alternatif untuk dieksplorasi<ref name=":5" />
* Mengelola konflik di antara berbagai sudut pandang adalah perhatian rekayasa kebutuhan lainnya<ref>B. Nuseibeh, J. Kramer and A. Finkelstein, "A Framework for Expressing the Relationships Between Multiple Views in Requirements Specifications", ''IEEE Transactions on Software Engineering'', Vol. 20 No. 10, October 1994, 760-773. </ref>. ''Goal'' telah diakui dapat menyediakan akar untuk mendeteksi konflik di antara kebutuhan dan untuk menyelesaikannya<ref name=":4" /><ref name=":12" />.
* Memisahkan informasi tetap dari informasi yang berubah adalah masalah penting lainnya dalam mengelola evolusi kebutuhan. Suatu kebutuhan mewakili satu cara khusus untuk mencapai beberapa ''goal'' tertentu; Oleh karena itu kebutuhan lebih cenderung untuk berkembang, menuju cara lain untuk mencapai ''goal'' yang sama, daripada ''goal'' itu sendiri. Semakin tinggi level ''goal'', semakin stabil ''goal'' tersebut. Ternyata, versi sistem yang berbeda sering berbagi sekumpulan ''goal'' tingkat tinggi yang sama; sistem saat ini dan sistem yang akan dibuat terkait dengan penyempurnaan alternatif dari ''goal'' bersama dalam grafik penyempurnaan ''goal'', dan karenanya dapat diintegrasikan ke dalam satu model tujuan tunggal<ref name=":0" />.
* ''Goal'' mendorong identifikasi kebuthan untuk mendukungnya; ''goal'' telah terbukti berada di antara kekuatan pendorong dasar, bersama dengan skenario, untuk proses penjabaran kebutuhan yang sistematis<ref name=":8" /><ref name=":5" /><ref>{{Cite book|title=Object behavior analysis.|url=http://worldcat.org/oclc/926690727|publisher=Association for Computing Machinery|date=1992|oclc=926690727|last=Rubin, Kenneth H.}}</ref><ref name=":3" /><ref>{{Cite journal|last=Anton|first=A.I.|last2=Potts|first2=C.|title=The use of goals to surface requirements for evolving systems|url=http://dx.doi.org/10.1109/icse.1998.671112|journal=Proceedings of the 20th International Conference on Software Engineering|publisher=IEEE Comput. Soc|doi=10.1109/icse.1998.671112|isbn=0818683686}}</ref><ref name=":9" /><ref>H. Kaindl, “A Design Process Based on a Model Combining Scenarios with Goals and Functions”, ''IEEE Trans. on Systems, Man and Cybernetic,'' Vol. 30 No. 5, September 2000, 537-551.</ref>.
[[Kategori:Teknologi informasi]]
|