원문정보
초록
영어
Errors in requirements elicitation cause much more expensive errors in later phases of software engineering. A major source of errors is the ambiguity of the natural languages initially used to write the user requirements. Most of the research studies in the literature have focused on ambiguity detection and correction after the user requirements are written. A better approach would be avoiding the introduction of ambiguities while the user requirements are being written to reduce time and cost. Unfortunately, this problem has been overlooked in the literature except for few research studies concerned with the English language. This paper is concerned with the Arabic language due to its complex structure and because the ambiguity of Arabic user requirements is a serious problem hindering the production of quality software in the middle east. The paper studies main sources of ambiguities in the Arabic language in addition to best practices in writing Arabic user requirements to avoid the introduction of ambiguities as suggested by interviewed Arabic software engineers or as suggested in the literature for English user requirements. Accordingly, the paper suggests a set of best practices suitable for Arabic user requirements based on both practical experience and theoretical background. Examples are provided for justification. Human subject testing and empirical evaluation have shown the effectiveness of the proposed practices.
목차
1. Introduction
2. Related Work
3. Main Sources of Ambiguities in the Arabic Language
3.1. The Diglossia Phenomenon
3.2. The Absence of Sentence Boundaries
3.3. The Existence of Translated and Transliterated Named Entities
3.4. The Ambiguity of Named Entities
3.5. The Presence of Homographs and Absence of Diacritics
3.6. The Relatively Free-Word Order
3.7. The Pro-Drop Property of the Arabic Language
4. Suggested Best Practices in Writing Arabic User Requirements
4.1. Practice P1: Stick to Modern Standard Arabic
4.2. Practice P2: Use English Technical Words within Arabic Sentences
4.3. Practice P3: Write Short Sentences as Much as Possible
4.4. Practice P4: Write Complete Sentences with Correct Grammar and Spelling
4.5. Practices P5: Write Only Active-Voice Sentences
4.6. Practices P6: Write Sentences of the Form Subject-Verb-Object
4.7. Practice P7: Avoid Negative (or Inverse) Requirements as Much as Possible
4.8. Practice P8: Write Sentences in a Consistent Fashion
4.9. Practice P9: Sentences Should Have Clear Boundaries
4.10. Practice P10: Decompose a Sentence Involving Logical Operators into Multiple Sentences Provided It Is Logically Decomposable
4.11. Practice P11: Represent Requirements Involving Complex Constructs Using a Decision Tree
4.12. Practice P12: A Parent Requirement is Represented as a Header
4.13. Practice P13: It is Preferable to Use Annotations to Clarify Each Part of a Given Sentence
4.14. Practice P14: Use Annotations to Indicate Priority
4.15. Practice P15: When Using Plurals, Clarify Whether You Refer to Each Instance of the Plural Subject or to the Plural Subject as a Whole
4.16. Practice P16: Include a Glossary of Used Terminology with Corresponding Definitions
4.17. Practice P17: Avoid A/B Constructs
4.18. Practice P18: Avoid Abbreviations Unless Defined in the Glossary
4.19. Practice P19: Avoid Using Pronouns, Possessive Pronouns and Possessive Adjectives If Ambiguous
4.20. Practice P20: Avoid Terminology with Subjective Meanings
4.21. Practice P21: Place a Limiting Word Directly Preceding the Term or Item It Refers to
4.22. Practice P22: Place an Adjective Such That It Is Clear Which Item or Term It Refers to
4.23. Practice P23: Rephrase Each Sentence at Least Twice
5. Human Subject Testing Results & Discussion
5.1. Analysis of Results
5.2. Discussion of Results
6. Conclusions
References
