Requirements specification includes technical concerns of an information system and is used throughout its life cycle. It allows for sharing the vision of the system among stakeholders and facilitates its development and operation processes. Natural languages are the most common form of requirements representation, however, they also exhibit characteristics that often introduce quality problems, such as inconsistency, incompleteness, and ambiguousness. This paper adopts the notions of linguistic pattern and linguistic style and discusses their relevance to produce better technical documentation. It focuses on the textual specification of data entities, which are elements commonly referred to throughout different types of requirements, like use cases, user stories, or functional requirements. This paper discusses how to textually represent the following elements: data entity, attribute, data type, data entity constraint, attribute constraint, and even cluster of data entities. This paper shows concrete examples and supports the discussion with three linguistic styles, represented by a rigorous requirements specification language and two informal controlled natural languages, one with a more compact and another with a more verbose, expressive, and complete representation. We analyzed how other languages cope with the representation of these data entity elements and complemented that analysis and comparison based on the PENS classification scheme. We conducted a pilot evaluation session with nineteen professional subjects who participated and provided encouraging feedback, with positive scores in all the analyzed dimensions. From this feedback, we preliminarily conclude that the adoption of these linguistic patterns would help to produce better requirements specifications written more systematically and consistently.
28 November 2024 in Sustainable Computing: Informatics and Systems
The software requirements engineering (RE) process is one of the key processes in software development. The aim of requirements engineering process is capturing, understanding and analyzing customer requirements. Today, use cases are widely used as a technique for specification of the functional requirements of the system. Even through use cases are widely used for specification of the functional requirements, their semantics are unclear that it is difficult to apply them to complex problems. In this paper we have proposed SilabReq language for use cases specification for a standard information system. It is developed under XText framework. The benefits of using SilabReq for use cases specification are reflected in the fact that software requirements are considered as a model. Thereafter, the use cases can be used for automatic processing and analyzing.
Use cases describe a set of interactions between actors/users and the system under study. These interactions should be described textually according to some style and template to be simultaneously readable, consistent and verifiable. The main reason for these qualities is that use cases specification should be used both by business analysts and requirements engineers, when specifying functional requirements, as well as by software developers, when designing and implementing the involved system functionality. In spite of the popularity of use cases, there are not many patterns and guidance to help produce use cases specifications in a systematic and high-quality way. Furthermore, in the context of Model Driven Development (MDD) approaches, use cases specifications can be also considered models with precise syntax and semantics to be automatically validated or used in model-to-model or model-to-text transformations. In this paper we propose a pattern language to improve the quality of use cases specifications. These patterns are concrete guidelines that have emerged from the research and industrial experience of the authors throughout the years, particularly in the designing of MDD languages and approaches and in applying them in concrete applications. These patterns are interconnected among themselves and are the following: (P1) Define Use Case Types, (P2) Keep Use Case Consistent with the Domain Model, (P3) Define Use Case with Different Scenario and Interaction Block Types, and (P4) Define Use Case with Different Action Types.
Use cases are narrative description of interactions between users and a software system. They are primary used to specify functional system requirements. Despite the fact that use cases are narrative, there is no standard that specifies what textual specification of use case should like. However, the integration of use cases in a Model Driven Engineering process requires more rigorous specifications. The specification of use cases at different levels of abstraction is needed because of the large number of stakeholders involved in the software development process. We propose use cases specification at different levels of abstraction to promote better integration, communication and understanding among the involved stakeholders. We still discuss that base on this approach different software development artifacts such as domain model, system operations, user interface design can be automatically generated or validated.
One of the major activities in software design is defining software architecture. Before designing software structure and software behavior we have to define its architecture. In this paper we have proposed three-tiered software architecture. This software architecture extends application logic tier with security. We have implemented two important security issues: authentication and authorization processes. These processes are implemented through software patterns. The software patterns have the particular place in the Proposed Software Architecture (PSA). In this paper, we have presented these software patterns and explained why they are important in PSA.