There are some non-formal methodologies such as RUP, OpenUP, agile methodologies such as SCRUP, XP and techniques like those proposed by UML, which allow the development of software. The software industry has struggled to generate quality software, as importance has not been given to the engineering requirements, resulting in a poor specification of requirements and software of poor quality. In order to generate a contribution to the specification of requirements, this article describes a methodological proposal, implementing formal methods to the results of the process of requirements analysis of the methodology \'Ancora.
Deep Dive into Towards the integration of formal specification in the Ancora methodology.
There are some non-formal methodologies such as RUP, OpenUP, agile methodologies such as SCRUP, XP and techniques like those proposed by UML, which allow the development of software. The software industry has struggled to generate quality software, as importance has not been given to the engineering requirements, resulting in a poor specification of requirements and software of poor quality. In order to generate a contribution to the specification of requirements, this article describes a methodological proposal, implementing formal methods to the results of the process of requirements analysis of the methodology 'Ancora.
Generating quality software has been a problem for many years for the software industry. In the late 60's the computer community detected a number of cases of failure, such as late delivery of the final product exceed the original cost, poor product quality. In late 1968, government, academia and users agreed to the first conference on Software Engineering (SE) to identify methods and techniques for software development quality and best cost [1]. Some authors such as Sommerville [2] define SE as "a discipline of engineering that incorporates all aspects of software production from the early stages of system specification up to its maintainance and after it is used".
Over the years some methodologies such as RUP [3], OpenUP [4] and agile methodologies like SCRUP [5], XP [6] for the software development process have been defined. However, T.E. Bell and T.A. Thayer [7] Lamsweerde [8] proposed strengthening SE Requirements Engineering (RE), to review the requirements phase, because it is considered the basis for any software. Lamsweerde [8] defines the RE as “a coordinated set of activities to explore, evaluate, document, consolidate, revise and adapt the goals, capabilities, qualities, limitations and assumptions that the system can meet on the basis of the problems and opportunities offered by new technologies.” One way to structure the process of RE is elicitation, analysis, specification, validation and management of software requirements [9] with the aim of obtaining clear, unambiguous, consistent and compact requirements.
The most relevant phase for the research about to be carried out is the Software Requirements Specification (SRS), in which it is set in writing what the new system is expected to do and not to do. It is also considered the basis for an agreement between the customers and suppliers (developers) [10]. One way to eliminate inconsistency and ambiguity in the results of the specification document is through formal methods, which involves using formal specification languages [11]. The purpose of this proposal is the use of formal methods in SRS.
At the beginning of a software development, the customer needs, should be clear, the benefits of the new product should be considered, if the software solves the problems faced by the customer, and this involves understanding the application area, the operational constraints of the system, the specific functionality required by the client and the essential characteristics of the system, such as performance, safety and reliability [12]. Then to generate a quality software it is important to use techniques, methods and methodologies. The article describes a formal methodological process, but it is important to look at some concepts which have been considered the fundamental principles of the study area. The following paragraphs describe briefly each one of them.
The proposal focuses on the SRS of the RE. An SRS is the documentation of all the requirements selected in the phases of elicitation and analysis. Bruade [13] conceptualizes the SRS as functional specific requirements and belonging to the developer and defines them as “a list of specific properties and functions which the software must have in order to provide the desired service, the restrictions of operation and its development, explained in detail based on the needs obtained in the elicitation phase and the selection made in the analysis.”
Montoya [14] defines formal methods (MF) as a series of techniques of mathematical logic to specify, design, implement and verify the information systems through a specification language. This specification language is structured by a vocabulary, syntax and semantics based on set theory, logic and algebra of predicates [8].
In the past has been said that the use of a methodology is important for software development. In this case, Áncora, a methodology for analyzing software requirements conducive to reuse will be used [15] [16]. Áncora facilitates the generation of requirements analysis, its techniques and tools combine methods from several branches of knowledge such as planning, social psychology, computational linguistics and SE. The Fig. 1 shows an outline of general activities that take place with Áncora and some artifacts that this produced. The central element is a set of scripts and dialogues that represent the requirements model and through them occurs view integration, the translating for some desired development patterns (eg., objectoriented, data flow, states) that feeds and is fed by reuse elements of similar systems. The last element to describe is the Eclipse Process Framework Composer (EPF Composer) [17]. The EPF Composer is a free tool, its development is based on the Eclipse platform, it uses as languages of modeling software processes the structure of the Software & Systems Process Engineering Meta-Model Specification 2.0 (SPEM 2.0) and the Unified Method Architecture (UMA). Both have provided benefits for the description of develo
…(Full text truncated)…
This content is AI-processed based on ArXiv data.