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 Pengelolaan proyek yang buruk
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. The widely cited IEEE 610.12-1990 standard defines a requirement as : 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 organisasi, pemerintahan, standar 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
Requirements Classifications 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 Requirements engineering activities : elicitation, interpretation and structuring (analysis and documentation), negotitation, verification and validation, change management and requirements tracing.
The Role of Stakeholders in RE In essence, requirements engineering aims to transform potentially incomplete, inconsistent and conflicting stakeholder goals into a complete set of high quality requirements Stakeholders…”as those participants in development process together with any other individuals, groups or organizations whose actions can influence or be influence by the development and use of the system whether directly or indirectly
The success of requirements engineering projects depends on accurate analysis of these perspectives for incompleteness and inconsistencies. Requirements need to be negotiated and validated before they are documented and developers commit to implementing them
Different Levels of Requirements 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 technology-push and market-pull Requirements at product level Packaging requirements for a specific release Product architectures Resource management Implementation of a specific release Change management Requirements volatility e.g. whether a particular requirement is subject to a syntactic or semantic change Requirements at project level Project planning Feasibility study Recruiting people Project management Quality control Validation in terms of which requirements will go to thenext release
Requirements Management Requirements Elicitation, Specification and Modeling Prioritization Requirements Dependencies and Impact Analysis Requirements Negotiation Quality Assurance
Req. Elicitation, Spec and Modeling This involves understanding the needs of stakeholder, elicitation management, modeling and collecting them in a repository. This is important stage for s/w development, because the requirement tent to be incomplete and inconsitent
Prioritization It’s not always easy for developers to decide which requirements are important to customers. This activity assists project managers with resolving conflicts (where customers and developers collaborate on requirements prioritization), plan for stage delivers, and make necessary trade-off decisions. Trade-off – hasil silang – akibat… membuat keputusan yg perlu untuk trafe-off
Requirements Negotiation Req. engineering is essentially a complex communication and negotiation process involving customers, designers, project managers and maintainers. People, or stakeholders involved in the process are responsible for deciding What to Do, When to Do it, What information is needed, and What Tools need to be Used.
Quality Assurance The objective is to ensure that high quality requirements are recorded in the specification documents. The purpose of quality assurance is to establish reasonable and realistic levels of confidence when writing and managing requirements
New Trends Peningkatan teknologi pada pasar global erat kaitannya dengan bisnis. Konsep baru spt enterprise system, e-business 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 untuk membangun dan memantain aplikasi software