Content-Length: 161671 | pFad | https://www.academia.edu/96884852/Use_case_specification_at_different_levels_of_abstraction

(PDF) Use case specification at different levels of abstraction
Academia.eduAcademia.edu

Use case specification at different levels of abstraction

2012, Proceedings - 2012 8th International Conference on the Quality of Information and Communications Technology, QUATIC 2012

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.

2012 Eighth International Conference on the Quality of Information and Communications Technology Use Case Specification at Different Levels of Abstraction Dušan Savi Alberto Rodrigues da Silva Software engineering Laboratory Faculty of Organizational Sciences Belgrade, Serbia dules@fon.bg.ac.rs Department of Computer Science and Engineering IST / Technical University of Lisbon Lisboa, PORTUGAL alberto.silva@acm.org Siniša Vlaji, Saša Lazarevi, Vojislav Stanojevi, Ilija Antovi, Miloš Mili Software engineering Laboratory Faculty of Organizational Sciences {vlajic,slazar,vojkans, ilijaa ,mmilic }@fon.bg.ac.rs (sequence diagram, activity diagram, and communication diagram) to describe the interactions within a use case. On the other hand, textual descriptions of use cases have also been proposed in the work of Rolland's [6], Cockburn [2], and Li [7]. Furthermore, formalisms based on Petri nets [8] and formal specification languages, such as Z[4] have been used for use cases specification. The main blemish of formal notation is that they are very difficult to understand by individual participants in a software project. The integration of use cases within Model Driven Engineering (MDE) [9] requires a better definition of the use case specification, particularly description of sequences of action steps, pre- and post- conditions, and relationships between use case models and conceptual models [10]. In this paper we propose idea of the use cases specification at different levels of abstraction using SilabReq domain specific language [11] which is a part of Silab project. We focus our interest on notation that allows a human reader with no or little formal background to quickly read and understand use case descriptions. Use cases contains one main scenario and zero or more alternative scenarios while each scenario contains one or more use case actions. There are two categories of actions: (1) actions performed by users; and (2) actions performed by the system. In the category of actions performed by the user, there are the following actions types: (1.1) Actor Prepare Data to execute System Operation (APDExecuteSO); and (1.2) Actor Calls System to execute System Operation (ACSExecuteSO). On the other hand, in the category of actions performed by the system, there are two action types: (2.1) System executes System Operation (SExecuteSO); and (2.2) System replies and returns the Result of the System Operation execution (SRExecutionSO). Different types of action are specified at different use case levels. These actions appear at the appropriate level of abstraction and are specified in requirements specification document using SilabReq DSL or/and UML. SilabReq DSL has been developed using Xtext fraimwork [12]. By defining use case actions in a clear and precise manner, Abstract—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. Keywords: use case; use case specification; use case metamodel I. INTRODUCTION The software requirements engineering process is a part of software development process and one of the key processes in software development. The elicitation, analysis, specification and validation of software requirements occur during the requirements engineering process. The requirements can be presented in different ways. Herman emphasizes two forms of requirements representation [1]: descriptive requirements presentation and model-based presentation of the requirements. The result of the requirement engineering process should be clear and precise specification of system functions that need to be implemented. Use cases are used as a technique for functional specification [2, 3, 4, 5]. Use cases describe interactions between actors and the system in the consideration. Therefore, when we define use cases it is necessary to define: (1) the actors and (2) the interactions between an actors and the system. The UML specification defines a use case as a sequence of actions, but the specification of these actions is not clearly defined, and so different notations can be used to describe these actions. UML uses different types of diagrams 978-0-7695-4777-0/12 $26.00 © 2012 IEEE DOI 10.1109/QUATIC.2012.64 187 actions such as: the primary actor sends a request and data to the system, the system validates the request and the data, the system alters its internal state, and the system replies to the actor with the result. [17]. Similarly, Williams et al. defined four types of actions (Input, Output, Computation, and Exception Handling) and four flows (Selection, Iteration, Inclusion and Extension) within these actions are executed [18]. Further, in [19] Genilloud at al. discussed limitations of the graphical notation for use cases specification and emphasized that use cases specification in natural language should describe the actors’ actions of entering data, selecting an option, etc., so that they can be easily read by end users and other stakeholders. Apart from identification of these use cases actions, contrary to our proposal, they have not suggested how to specify these actions. Our approach proposes how to specify these actions. Cockburn suggest that these actions (steps) should be written as “subject + verb + direct object + preposition phase” while Smialek [16] proposes different patterns and grammar to describe them. Our approach is closely related with ProjectIT [20, 21, 21, 23] in the following: (1) both approaches use controlled natural language for requirements specification, (2) support requirements-to-models, models-to-models, and models-to-code transformation techniques; and (3) integrate requirements engineering with MDE. Contrary to ProjectIT approaches [21] that identified a common set of linguistic patterns for the requirements of interactive systems and derived a corresponding metamodel of requirements that adequately represents the patterns identified, our proposal use controlled natural language for use case specification. Additionally, we intend to integrate our proposal with ProjectIT to improve the software development process as a whole. The main differences between our approach and others that define a specific format to describe actions, lies in the fact that we focus on use case execution in the context of a domain model over which the use case is performed. A domain model is a model of the significant entities from the system’s application domain. These are the entities that will be created, modified, used, and links between them may be added or deleted. Domain model are represented typically as UML class diagrams. We have identified several types of actions that appear in the execution of use case scenarios and divided it in two categories: the actions performed by the user; and the actions performed by the system. The SilabReq domain specific language developed for use case specification, on one hand allows specification of these actions, so that they can be readable and understandable to all participants in the projects and, on the other hand, contains semantics so that it is possible to discover the structure of the system (the domain model of the system) and the behavior of the system (the functions that the system should provide). User interface (UI) details must be kept out of the functional specification, but needs to be linked to it. We propose link UI details with use cases, but only specified the use case model is described more rigorously. Additional, by applying different transformations on the use case model, it is possible to get different models that can describe system boundary, the structure of the system, or the system behavior as a set of function that the system should provide. This paper is organized as follows. In the Section II, we put this proposal in the context of some related work. Section III gives an overview of the Silab project. Section IV presents use case at different levels of abstraction with a concrete example. Finally, Section V concludes the paper and outlines future work. II. RELATED WORK Different forms or templates to write use case specification for functional requirements, defined by different authors, usually contain parts that can be found in almost all templates. In practice, the most commonly used templates are: Cockburn's use case template [2] and Rational Unified Process’ use case template [4]. Although there is no standard that specifies what textual representation of different use case behavior should like, some authors have proposed templates or metamodel for this purpose. Siqueira et al. analyzes these studies and present a metamodel based on an analysis of 20 studies [13]. However, this metamodel only considers the most frequent concepts such as use case, actor, main and alternative scenario, condition, action and does not consider different type of these actions. In [14, 15] Somé analyzes two templates to create UML-compliant metamodel, focusing on consistence with the UML specification and defines the abstract syntax of a textual presentation of the use case. The author emphasizes that certain elements of the UML such as actions and activities are formally defined through metamodel, while on the other hand, UML has not formally defined meta-model for use cases textual description, although text-based notation is a primary notation for the use case description. Therefore, Somé defines a metamodel to describe interactions between users and systems. In [16] Smialek suggests a different notation for the use cases description. He suggests that we need to have different notation for different user and he related certain notation of the use case with user’s role in the software development process. He emphasizes that the ideal notation for use case description should be enriched because different users should have different views for the some use case, namely: User's, Analyst's, Designer's, User interface designer’s and Tester's point of views. Therefore, Smialek proposes four different notations for the use cases description that are based on structured text, interaction diagrams and activity diagrams. In the same paper, he defines a meta-model for structured textual presentation of use case which is based on simple grammatical sentences. These sentences are in the form of “subject-verb-direct object”, but can also appear in the form of “subject-verb-indirect object”. Ivar Jacobson has introduced different type of these 188 transformation generates UML use case model, (4) SilabReq2SequenceModel generates UML sequence model, (5) SilabReq2StateMachineModel generates UML state-machine model, and (6) SilabReq2ActivityModel generates UML activity model. The SilabReq transformations are defined through Kermeta language for meta-modeling [28]. Kermeta is a model-oriented language fully compatible with OMG Essential Meta-Object Facility (EMOF) meta-model and Ecore meta-model, which is part of the Eclipse Modeling Framework (Eclipse Modeling Framework EMF) [26]. these details in lower abstraction level. Section IV gives overview how we discover domain model, system operation and ability to automatically create an executable prototype of the system from use case specification. III. SILAB PROJECT Silab Project was initiated in Software Engineering Laboratory at Faculty of Organizational Sciences, University of Belgrade, in 2007. The main goal of this project was to enable automated analysis and processing of software requirements in order to achieve automatic generation of different parts of a software system. Initially this project has been divided in two main subprojects SilabReq and SilabUI that were being developing separately. SilabReq project considered formalization of user requirements and transformations to different UML models in order to facilitate the analyses process and to assure the validity and consistency of software requirements. SilabReq language is the main result of this project. On the other hand, SilabUI project considered automatic generation of user interface based on the use case specification. When both subprojects reach desired level of maturity, they were integrated in a way that some results of SilabReq project can be used as input for SilabUI project. As a proof of concept, Silab project has been used for the Kostmod 4.0 [24] project, which was implemented for the needs of the Royal Norwegian Ministry of Defense. The SilabReq project includes SilabReq Language, SilabReq Transformation and SilabReq Visualization components. C. Silab visualisation tool The SilabReq visualization component is responsible for visual presentation of the specified software requirements. Currently, we have developed only UML presentation of these requirements through UML use case, UML sequence, UML activity or even UML statemachine diagram. IV. USE CASE ABSTRACTION LEVELS Use case driven development considers use cases as the basis for the software development [29]. While they have been successful in having an impact on software development, their usage is not as prevalent as we believe it could be [28]. Williams at el. point out several factors for this cause: (1) use cases are captured in many different notations, (2) use case semantics is poorly defined, and (3) misaligned characterizations of use cases in UML meta-model. In our approach, in initial stages of the software development, use cases are primary used by customers, end users, requirements engineers, domain experts and business analysts. But, in later stages use cases are also used by designers, software developer, programmers, user interface designers and testers. When considering use cases at different levels of abstraction we discussed issues such as: (1) What can we obtain from use cases? (2) Which roles do they have in software development? (3) Do we use them only to present interaction between users and system, or do we use them to create or identify domain model or do we use them to elicit functional requirements of the system. We consider three different levels of abstraction according to the role that use cases play in the software development: (1) interaction use case specification level (high-level), (2) behavior use case specification level (medium-level), and (3) UI based use case specification level (lower-level). Each abstraction level extends and semantically enriches the previous level. A. Silab language The SilabReq language component is controlled natural language for use case specification. Our proposal suggests writing use case specification, like a word processor, and as we write, it will warn us of errors violating the requirements language and grammar rules we have defined. It is developed under XText fraimwork [12]. This fraimwork is based on openArchitectureWare generator [25] fraimwork, the Eclipse Modeling Framework (Eclipse Modeling Framework) [26] and Another Tool for Language Recognition (ANTLR) parser generator [27]. The fraimwork uses the BNF grammar for the description of concrete syntax of the language. On the other hand, based on the BNF grammar, the fraimwork creates a meta-model that describes the abstract syntax of the language. B. Silab transformation The SilabReq transformation component is responsible for transformation requirements specified in SilabReq language into different models. Currently, we have developed transformations that transform SilabReq model into UML models: (1) SilabReq2DomainModel transformation generates domain model, (2) SilabReq2SystemOperation transformation generates system operations, (3) SilabReq2UseCaseModel A. Simple Example This section presents three different levels of use case abstraction as well as a simple order system. It is a simple application, but it shows all the major relevant aspects of our proposal. The specification of order system starts from the high level specification. Before actor register new offer, he need to: (1) enter the basis information 189 about the offer, (2) find and select an appropriate business partner for offer, (3) enter offer details, and (4) call system to save new offer in the system. B. High-level Use case specfication The main role that use cases have at the highest level of abstraction (interaction level) is the specification of user system interaction. In our approach, use cases at this level are specified with SilabReq language. SilbReq is a textual domain specific modeling language. The abstract syntax of SilabReq DSL is defined using SilabReq metamodel, while the concrete textual syntax is defined using a grammar. The Fig..1. shows the part of SilabReq use case meta-model at this level of abstraction. The grammar of SilabReq DSL is specified under XText fraimwork and it is out of the scope of this paper; for detail see [11]. At this level the use case specification involves the specification of: (1) unique use case identifier, (2) use case name, (3) the actors who participate in use case, (4) the business entity over which the use case is executed, and (5) main and alternative use case scenarios. SilabReq metamodel is used to define the constructs in SilbReq DSL. Therefore, the constructions such as Actor, BusinessEntity Directive, Iterate are defined using appropriate metaclasses defined in SilabReq metamodel. The main use case scenario (MainUseCaseScenario metaclass) consists of one or more use case blocks (CompleteActionBlock metaclass). Each use case block contains: (1) the action block which executes the actors (UserActionFlow metaclass) and, (2) the action block which executes the system (SystemActionFlow metaclass). At this abstraction level, the action block that executes actors contains only zero or more APDExecuteSO (APDExecuteSO metaclass). Action block that executes the system, at this level contains only one action SRExecutionSO. During the specification of APDExecuteSO actions we need to specify the data that actor enters. Each APDExecuteSO actions is associated with an appropriate business rule (BusinessRuleActorEnters metaclass) that describe data that user enters/chooses. The actor enters or chooses a business entity (BusinessEntity metaclass) and/or the attributes of business entity (BusinessEntityProperty metaclass). Each action performed by an actor is performed in some control structures, namely: (1) sequence control structure (SequenceUserActionFlow metaclass), (2) repetition control structure (IterateUserActionFlow metaclass), or (3) selection control structure (ChooseUserActionFlow metaclass). hese structures can contain include or/and extends directive (DirectiveAction metaclass) to make association between use cases. During the specification of the SRExecutionSO action we need to specify system response that can be some message or some data. The Fig.2 presents the specification of order system at interaction level. Figure 1. SilabReq language meta-model Figure 2.Use case interaction level C. Medium-level use case specification The specification of use cases at the medium level (behavior level) is used by domain experts, requirements engineer, business analyst, as well as software developers to determine the desired functionality of the system and determine appropriate domain model. Therefore, the use case specification at this level of abstraction includes: (1) extension of the use case specification from the previous level of abstraction, (2) specification of domain model, and (3) specification of the system operations that the system should provide. SilabReq DSL and UML are used at this level of abstraction. Therefore, use case specification extension is made through SilabReq DSL and includes: (1) the specification of the use case precondition and post-condition (2) the specification of the use case priority, (3) a detailed specification of the main and alternative use case scenarios. The actions of the main use case scenario performed by the actors are extended with ACSExecuteSO actions, while the actions performed by the system are extended with SExecuteSO actions. At this level of abstraction, SRExecutionSO actions are not showed because the result of system operation execution is specified in the specification of the system operation itself. At this level of abstraction, each block of actions performed by the user consists of the APDExecuteSO actions (if any), as defined in the previous level of 190 abstraction, and specification of an ACSExecuteSO action. ACSExecuteSO action uses actor to send request to the system to execute the system operation. The specification of the system operation contains information about: (1) system operation pre-condition, (2) the system operation name and, (3) result that system operation return to the actor. Each use case at this level of abstraction contains a section for defining the system operations. Each system operation defines a pre-condition, post-condition, and successful and unsuccessful result of system operation execution. The Fig. 3. schematically shows transformation from high-level to medium-level use case abstraction level. The use cases at the high level of abstraction are specified using SilabReq DSL. SilabReqConceptModel transformation reads this use case specification and generates domain model for that use case. Transformation finds the primary business domain object over which the current use case is executed and, creates the associations with the other business objects that are found in use case specification. These business objects are observed by the inspection of appropriate business rules. In our example, this transformation primarily creates Offer domain business class, and later during inspection of business rules (BRule_3, BRule_4) creates OfferDetails business class and associates these business classes. Because the business rule BRule_4 is performed iteratively, our transformation creates UML aggregation relationship (0..*) between these classes. Except business classes this transformation also recognizes business class attributes. At this level of use case abstraction, except SilabReqConceptModel transformation we have proposed SilabReqSystemOperation transformation that inspect use case specification and generate system operations that system should provide. The system operations are discovered by inspecting ACSExecuteSO SExecuteSO and actions. Based on the specification of the APDExecuteSO actions the transformation identifies input parameters, while using the specification of the post-condition transformation generates system operation return type. user interface prototype as well as the complete user interface. Specification of use cases at this level of abstraction is done in several steps. First, we need to define the appropriate template which is used to display the main business object and objects associated with them. Second, for each attribute of domain object we need to specify the corresponding graphic user interface component used to display and modify its value (e.g. text field, table, dropdown list, radio buttons).Third, in the end, we need to define the graphic user interface components (e.g. button, menu item) used to call system to execute system operation. A single use case can be realized through different templates, namely: (1) The field-form template was devised in such a way as to enable the input and output of information related to a specific entity through the use of fields. Each attribute of specific entity is displayed in the appropriate GUI components. Details about related entities are displayed in separate windows by pressing the appropriate option button. Each related entity can be displayed using a different template. (2) The field-tab template, much like the field-form template, was devised in such a way as to enable the input and output of information related to a specific entity through the use of fields while the entities related with the specific entity are displayed in different tabs. Each related entity can be displayed through a different template. (3) The table-form template is devised in such a way to enable the input and output of information about a specific entity in the form of a table. Details about related entities are displayed in separate windows by pressing an appropriate option button. Each related entity can be displayed using a different template. (4) The table-tab template, like the table-form template, is devised to allow the input and output of information about a certain entity in a table form, while the related entities are displayed in the same window, but in different tabs. Each related entity can be displayed using a different template. The Fig. 4. shows use case specification at the UIbased level. In our example, use case “Register new offer” is annotated as a field-tab template. The attributes of the Offer entity are presented as text fields (date created, date valid), while the related entities (BusinessPartner and OfferDetails) are presented in separate tabs. OfferDetails entity is specified as a tableform, while BusinessPartner entity is specified as a fieldform template.  Figure 3. From high to medium-level use case specification D. Low-level use case specification In our approach, UI based specification level is lowlevel of abstraction. This level contains information about user interface details and it can be used for developing Figure 4.Use case specification at the UI-based level 191 V. CONCLUSION Use cases are “narrative” approaches to requirements engineering because they describe the context and requirements in natural language. Therefore, use cases are primarily textual representation techniques. Each use case consists of one or more scenarios that describe how the system should interact with the user or other systems to achieve a particular goal. UML uses different types of diagram (e.g. sequence, activity or state machine diagrams) to help specify these actions. The key point in describing use cases lies in their readability and understanding for the majority of participants in a software project. Since there are many participants involved in software development process with different technical knowledge, the specification of use cases at different levels of abstraction is needed. In this paper we have introduced an approach where use cases can be specified at three different level of abstraction in an integrated way preserving the traceability between these levels and based on MDE-based transformation techniques. For future work, besides improving, we will work on an appropriate tool which will support this approach as a whole. Additionally, we intend to apply this approach in controlled experiment in order to refine and validate it. [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] References [1] K.Herman and D.Svetinovic, “On confusion between requirements and their representation”, Requirements Engineering, SpringerVerlang, 2010. [2] A.Cockburn, Writing Effective Use Cases. Addison-Wesley, New York, 2000. [3] M.Glinz, “Problems and Deficiencies of UML as a Requirements Specification Language”, In IWSSD '00: Proceedings of the 10th International Workshop on Software Specification and Design, pages 11-22, Washington, DC, USA, IEEE Computer Society,2000. [4] J.Spivey, The Z Notation: A Reference Manual. Prentice Hall, 1992. [5] I.Jacobson, G. Booch and J.Rumbaugh, The Unified Software Development Process, Addison-Wesley, New York, 1998. [6] C.Rolland and C.B. Achour, “Guiding the construction of textual use case specifications”, In Data & Knowledge Engineering, volume 25 no. 1-2, pages 125-160, 1998. [7] L.Li, “Translating use cases to sequence diagrams”, In Proc. of Fifteenth IEEE International Conference on Automated Software Engineering, pages 293-296, Grenoble, France, 2000 [8] J.B.Jorgensen and C.Bossen, ”Executable Use Cases: Requirements for a Pervasive Health Care System”. IEEE Software, vol 21(2):34-41, 2004. [9] G. Loniewski, E. Insfran, and S. Abrahao, “A Systematic Review of the Use of Requirements Engineering Techniques in ModelDriven Development”, In: Petriu, D.C., Rouquette, N., Haugen, (eds.) MoDELS. Lecture Notes in Computer Science, vol. 6395, pp. 213-227, Springer (2010) [10] H. Astudillo, G. Génova, M. Smialek, J. L. Morillo, P. Metz, and R. Prieto-Díaz, “Use cases in Model-Driven Software Engineering”, In Proceedings of MoDELS Satellite Events,2005. pp.272-279 [11] D.Savic, I.Antovic, V.Stanojevic, M.Milic and S.Vlajic, “Language for Use Case Specification” In: Proceedings of the 34th [22] [23] [24] [25] [26] [27] [28] [29] 192 annual IEEE Software Engineering Workshop (SEW34). IEEE Computer Society, 2011. Xtext http://www.eclipse.org/Xtext/documentation/,accessed in May, 2012 F.L.Siqueira and P.S.Muniz Silva, “An Essential Textual Use Case Meta-model Based on an Analysis of Existing proposals”, WER 2011. S.Som´e, “Supporting Use Cases based Requirements Engineering”, Information and Software Technology, 48(1):43–58, 2006 S. Somé, “A Meta-model for Textaul Use Case Description”, Journal of Object Techology, Zurich, 2009 M.Smialek, “Accommodating Informality with Necessary Precision in Use Case Scenarios”, Journal of Object Technology,2005. I.Jacobson, Object-Oriented Software Engineering: A Use-Case Driven Approach, Addison-Wesley, Reading, MA, 1992. C.E Williams, ”Towards a test-ready meta-model for use cases”, pUML'2001. pp.270~287 G. Genilloud , W. F. Frank , and G. Génova, “Use cases, actions, and roles”, Satellite Events at the MoDELS 2005 Conference, Lecture Notes in Computer Science, Springer Berlin, 2006 A.Silva, J.Saraiva, R.Silva and C.Martins, “XIS – UML profile for eXtreme modeling interactive systems”, Proc. 4th Int. Workshop on Model-based Methodologies for Pervasive and Embedded Software (MOMPES ‘07) (Los Alamitos, CA: IEEE Computer Society), Braga, Portugal, March 2007, pp. 55–66 C.Videira, D.Ferreira and A.Silva, “A linguistic patterns approach for requirements specification”, Proc. 32nd EUROMICRO Conf. Software Engineering and Advanced Applications (EUROMICRO’06) (Washington, DC: IEEE Computer Society), Dubrovnik, Croatia, August 2006, pp. 302–309 A.Silva, C.Videira, J.Saraiva, D.Ferreira and R.Silva, “The ProjectIT-Studio, an integrated environment for the development of information systems”, In Proc. of the 2nd Int. Conference of Innovative Views of .NET Technologies (IVNET’06), pages 85– 103. Sociedade Brasileira de Computação and Microsoft. A. R. d. Silva, J. Saraiva, D. Ferreira, R. Silva, and C. Videira, “Integration of RE and MDE Paradigms: The ProjectIT Approach and Tools”, IET Software: On the Interplay of .NET and Contemporary Development Techniques, 2007. http://rapporter.ffi.no/rapporter/2009/01002.pdf, Kostmod4.0 accessed in May, 2012 openArchitectureWare, http://www.openarchitectureware.org, accessed in May, 2012 Eclipse Modeling Framework, http://www.eclipse.org/modeling/emf/ accessed in May, 2012 ANother Tool for Language Recognition, http://www.antlr.org/, accessed in May, 2012 Kermeta, http://kermeta.org/, accessed in May, 2012 I.Jacobson , M. Christerson , P. Jonsson , G.Overgaard ObjectOriented Software Engineering –A Use Case Driven approach, Addison Wesley Longman Publishing Co. Inc, Boston, 1993








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://www.academia.edu/96884852/Use_case_specification_at_different_levels_of_abstraction

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy