REQUIREMENT ENGINEERING Bab - 1
Introduction • Requirements Engineering is accepted as one of the most crucial stages in software design and development as it addresses the critical problem of designing the right software for the customer.
Permasalahan -1: • 52,7% project berbiaya 189% dari anggaran asli. • Dari proyek-proyek yang mengecewakan hanya 42% yang diimplementasikan • Hanya 16,1% dari seluruh project perangkat lunak di US dibangun tepat waktu, on-budget, dan sesuai perencanaan awal
Permasalahan-2 • 31,1% project dihentikan sebelum selesai • Rata-rata project disampaikan dalam 3x anggaran. • Lemahnya figur sebagai penyebab ? • Survey di Amerika untuk 350 organisasi (dari > 8000 proyek), yaitu sepertiga proyek tidak pernah selesai, dan 1.5 proyek selesai sebagian
• ½ manager yang diwawancarai, bahwa miskinnya requirement sebagai sumber utama dari masalah, faktor lain adalah rendahnya keterlibatan pengguna dan tujuan yang tidak jelas
• Dari 17 negara eropa, untuk 3800 organisasi menyatakan sebagian besar (50%) masalah di reqirements spek (50%) ada pada management. • Laporan Standish, tahun 1999 mengungkapkan bahwa 3 dari 10 alasan untuk “tantangan project dan kesalahan project : – kurangnya keterlibatan user – Req. yang unstable (tidak jelas)/ berubah-ubah
Introduction 2 • • • • • • • •
What is a Requirement ? Requirement Engineering Process The Role of Stakeholders in RE Different Level of Requirements Requirements Management New Trends and the Next Practice Empirical Evidence Conclution
What is Requirement ? • All project begin with a statement of requirements. • Requirements are descriptions of how a software product should perform.
Definisi Requirement Berdasarkan Standard IEEE 610.12-1990 : – A condition or capacity needed by a user to solve a problem or archive an objective, – A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed documents
• Requirement tidak hanya mencakup kebutuhan user, tetapi juga muncul dari standar organisasi, pemerintahan, industri. • Requirement adalah kumpulan dari kebutuhan yang muncul dari user dan berbagai pihak yang berkepentingan/ stakeholder ( umumnya organisasi, pemerintahan, dan industri ) • Idealnya Requirement tidak tergantung pada desain, tetapi menampilkan “ Apa” yang seharusnya sistem lakukan, bukan “Bagaimana” hal tersebut harus dilakukan
Types of Requirements Requirements Classifications
Functional requirements – what the system will do Non-functional requirements – constrains on thetypes of solutions that will meet the functional; requirements e.g. accuracy, performance, security and modifiability
Goal level requirements – related to business goals Domain level requirements – related to problem area Products level requirements – related to the product Design level requirements – what to build
Primary requirements – elicited from stakeholders Derived requirements – derived from primary requirements
Others classifications, e.g. Business requirements versus technical requirements Product requirements versus process requirements – i.e.business needs versus how people will interact with the system Role based requirements, e.g. customer requirements, user requirements, IT requirements, system requirements, and security requirements
Requirement Engineering Process • RE mengacu pada seluruh aktivitas daur hidup pada kebutuhan. • Requirements engineering activities : elicitation, interpretation and structuring (analysis and documentation), negotitation, verification and validation, change management and requirements tracing.
• Ada beberapa model proses yang tersedia untuk menggambarkan proses rekayasa kebutuhan. Proses tersebut sering digambarkan dalam bentuk yang berbeda, termasuk model linier, incremental, nonlinear dan spiral.
The Role of Stakeholders in RE • Pada intinya, RE bertujuan untuk merubah yang berpotensi tidak lengkap, tidak konsisten dan berpotensi bertentangan tujuan dengan stakeholder menjadi sesuatu kebutuhan yang berkualitas tinggi. • Stakeholders…”seperti partisipan dalam prose pengembagan bersama dengan orang lain, kelompok atau organisasi yang tindakannya dapat mempengaruhi pengembangan dan penggunaan sistem baik secara langsung maupun tidak langsung.
• Sukses dari poject RE tergantung keakuratan analisis dari perspektif ketidaklengkapan dan ketidakkonsistenan. • Requirements perlu dinegosiasikan dan divalidasi sebelum kebutuhan2 didokumentasikan dan dikembangkan untuk penerapan.
Different Levels of Requirements • The requirements engineering process is one of the main contributors to the success of software projects. • Three levels of Req. Classification : – Requirements at the Organizational Level – Requirements at the Product Level – Requirements at the Project Level
Three Level of Requirements Classification Strategy Management
Tactical Management
Operational Management
Requirements at Organizational level
Business strategy Competitiveness Technology Marketing Economic value of the product
Planned benefits of the product
Trade off between technologypush and market-pull
Requirements at product level
Resource management Implementation of a specific release
Packaging requirements for a specific release Product architectures
Change management Requirements volatility e.g. whether a particular requirement is subject to a syntactic or semantic change
Project planning Feasibility study Recruiting people
Project management Quality control
Validation in terms of which requirements will go to thenext release
Requirements at project level
Requirements at Organizational Level • Tim manajemen senior dari sebuah organisasi mungkin memiliki tujuan strategis dan jangka panjang dalam hal pangsa pasar dan lainnya. • Tujuan dan strategis pada level organisasi pasti akan mempengaruhi produk organisasi yag dikembangkan.. • Satu dari tantangan utama yang dihadapi ketika berhasil mengembangkan produk software yang menentukan bagaimana produk akhir akan mendukung tujuan bisnis.
Requirements at the Product Level • Kebutuhan produk software harus selaras dengan tujuan bisnis organisasi pengembangan software. • Tujuan teknik pemodelan dalam RE berfungsi sebagai mekanisme dimana satu dapat menghubungkan kebutuhan untuk tujuan strategis yang berlabuh dalam konteks model strategis bisnis secara keseluruhan. • Manajemen produk harus memastikan bahwa kebutuhan selaras dengan tujuan dan sasaran dalam project.
Requirements at the Project Level • Requirements pada level product harus dikemas ke dalam bagian-bagian yang masuk ke dalam project tertentu atau dirilis dari perangkat lunak. • Requirements diprioritaskan dan dipilih berdasarkan pada pemenuhan dari tujuan dan strategis produk dan organisasi • Requirements dapat dipilih untuk diimplementasikan berdasarkan apakah memenuhi kebutuhan dan kepentingan pelangggan, tau apakah kebutuhan tersebut berpotensi membuka pangsa pasar baru bagi mereka.
Requirements Management • Banyak proyek gagal dalam penjelasan kebutuhan, sementara yang lain gagal karena kebutuhan yang akan datang telah usang pada saat proyeknya disampaikan. • Mengelola tahapan RE sangat penting untuk keberhasilan pengembangan produk perangkat lunak. • Agar sistem perangkat lunak berkualitas tinggi, seusia dengan anggaran dan tepat waktu adalah hal yang penting. Dimana hal tersebut harus dimiliki requirement yang terstruktur dan terkontrol yang dapat dimengerti, komprehensif, dan konsisten.
The essential practices of requirements managements : • Requirements Elicitation, Specification and Modeling • Prioritization • Requirements Dependenciesand Impact Analysis • Requirements Negotiation • Quality Assurance
Req. Elicitation, Spec and Modeling • Hal ini melibatkan pemahaman kebutuhan stakeholder, management elisitasi, pemodelan dan pengumpulan requirement dalam sebuah repository • Tahap ini penting untuk pengembangan perangkat lunak, karena kebutuhan cenderung tidak legkap dan tidak konsisten.
Prioritization • Hal ini tidak selalu mudah bagi pengembang untuk memutuskan kebutuhan mana yang penting bagi pengguna. • Aktivitas ini membantu manager proyek dengan menyelesaikan konflik, ( dimana pelanggan dan pengembang bekerjasama untuk menentukan kebutuhan utamanya), merencanakan tahap pengiriman, dan membuat keputusan yang diperlukan.
Requirements Negotiation • Req. engineering pada dasarnya adalah proses komunikasi dan negosiaasi yang kompleks yang melibatkan pelanggan, desainer, manager proyek, dan pengelola. • Orang, atau stakeholders yang terlibat dalam proses ini bertanggungjawab untuk memutuskan “ What to Do”, “ When to Do it”, What information is needed, and What Tools need to be Used.
Quality Assurance • Tujuannya adalah untuk memastikan bahwa requirement berkualitas tinggi dicatat dalam dokumen khusus. • Tujuan dari jaminan kualitas adalah untuk menetapkan tingkat yang wajar dan realistis saat menulis dan mengelola requirement
New Trends • Peningkatan teknologi pada pasar global erat kaitannya dengan bisnis. • Konsep baru spt enterprise system, ebusiness dan telecommunication telah menyebabkan pada trend baru dalam penelitian untuk peneliti dan praktisi. • Selain dari itu, kompleksitas pekerjaan dalam pendistribusian dan lingkungan yang heterogen menyebabkan perubahan besar dalam keterampilan yang dibutuhkan dan teknologi yang digunakan
• New concepts such as enterprise systems, e-business and telecommunications have led to new trends in research for researchers and practitioners. • The complexity of working in a distributed and heterogeneous environment is causing profound changes in the skills needed and the technology used to develop and maintain software applications.
• The requirements engineering process is a decision-rich complex problem solving activity. • The effective management of the requirements engineering process mandates procedures and tools to support the phases of the requirements engineering process model and also takes into account other issues