Definition and deployment of an exemplar-based Reuse-Oriented Domain Engineering Process.:
Creators: name: Σκαλιστής, Στέφανος Γεωργίου
Publisher: name: Aristotle University of Thessaloniki
Year: 2011
Subjects: Domain Engineering Process
Component reuse
Reuse-Oriented
Διεργασία Μηχανικής Πεδίου Λογισμικού
Επαναχρησιμοποίηση
Συστατικά Λογισμικού

description: Επαναχρησιμοποίηση Λογισμικού είναι "η διαδικασία δημιουργίας συστημάτων λογισμικού από ήδη υπάρχον λογισμικό αντί για την κατασκευή συστημάτων λογισμικού από την αρχή." [2]. Για να εφαρμοστεί συστηματικά η επαναχρησιμοποίηση λογισμικού ορισμένες πτυχές πρέπει να εξεταστούν, που εκτείνονται από το πεδίο του λογισμικού που θα επαναχρησιμοποιηθεί μέχρι και τις τεχνικές λεπτομέρειες αυτού του λογισμικού. Σύμφωνα με [1], Μηχανική πεδίου λογισμικού είναι "το σύνολο των δραστηριοτήτων που εμπλέκονται στην ανάπτυξη επαναχρησιμοποιήσιμων στοιχείων σε ένα ολόκληρο πεδίο ή οικογένεια εφαρμογών". Οι συγγραφείς αναφέρουν ότι "στόχος της μηχανικής πεδίου λογισμικού είναι να εξασφαλίσει ότι τα προϊόντα της διεργασίας μηχανικής πεδίου λογισμικού εμπίπτουν συστηματικά και με συνέπεια εντός του φάσματος της επαναχρησιμοποίησης". Σήμερα, η επαναχρησιμοποίηση του λογισμικού επιτυγχάνεται συνήθως από οργανισμούς ανάπτυξης λογισμικού που έχουν εσωτερικά ειδικές ομάδες και εξειδικευμένες διαδικασίες που επικεντρώνονται στην απόκτηση, την τροποποίηση, την τεκμηρίωση, τον έλεγχο και την αποθήκευση των επαναχρησιμοποιήσιμων συστατικών σε αποθετήρια επαναχρησιμοποίησης. Επιπλέον, οι εξειδικευμένες αυτές ομάδες παρέχουν υποστήριξη στις δραστηριότητες ανάπτυξης λογισμικού που έχουν ως αποτέλεσμα την δημιουργία νέων εφαρμογών βασισμένες στην επαναχρησιμοποίηση στοιχειών. Ως αποτέλεσμα, η επαναχρησιμοποίηση του λογισμικού συνδέεται με σημαντικές επενδυτικές δαπάνες που απαγορεύουν την επίτευξη των βραχυπρόθεσμων κερδών. Έτσι, σε πολλές περιπτώσεις η επαναχρησιμοποίηση λογισμικού γίνεται προβληματική ακόμη και για τους μεγάλους οργανισμούς ανάπτυξης λογισμικού λόγω του ότι οι μεγάλες αρχικές επενδύσεις που απαιτούνται δεν μπορούν εύκολα να δικαιολογηθούν χωρίς βραχυπρόθεσμα απτά οφέλη [1]. Για να αντιμετωπιστούν τέτοιου είδους προβλήματα προτείνεται η συστηματική επαναχρησιμοποίηση μέσω των οργανισμών επιχειρήσεων, και όχι των απλών επιχειρήσεων, του ίδιου πεδίου παρέχοντας μια σειρά διαδικασιών, εργαλείων και επιχειρηματικών μοντέλων και μοντέλων κόστους. Στο πλαίσιο αυτό, μια διεργασία μηχανικής πεδίου λογισμικού με μια πραγματιστική προσέγγιση είναι απαραίτητη προκειμένου να καταστεί δυνατό στους Οργανισμούς Μικρομεσαίων Επιχειρήσεων να παρέχουν υπηρεσίες σε Μικρομεσαίες Επιχειρήσεις που προωθούν συστηματικά την επαναχρησιμοποίηση του λογισμικού. Με βάση τα προαναφερθέντα γεγονότα και την ανάλυση, ορίζουμε μία διαμορφώσιμη Διεργασία Μηχανικής Πεδίου Λογισμικού, στοχευμένης στην επαναχρησιμοποίηση και καθοδηγούμενης από υποδείγματα (RODE Process). Η διαδικασία πρέπει να είναι α) διαμορφώσιμη προκειμένου να μπορεί να αντιμετωπίζει τις ιδιαιτερότητες του κάθε πεδίου, β) στοχευμένη στην επαναχρησιμοποίηση, προκειμένου να προωθεί την συστηματική επαναχρησιμοποίηση λογισμικού και γ) καθοδηγούμενη από υποδείγματα επειδή μια ρεαλιστική προσέγγιση είναι απαραίτητη και υποδειγματικές εφαρμογές παρέχουν παραδείγματα από την πραγματική ζωή. Παρουσιάζουμε επίσης τη διαδικασία στο πλαίσιο του έργου Open-SME, όπως αυτή αναπτύχθηκε στο εργαλείο Eclipse Process Framework Composer.
description: Software reuse is “the process of creating software systems from existing software rather than building software systems from scratch.”[2]. In order to systematically apply software reuse certain aspects must be examined, ranging from the domain of the software to be reused up to the technical details of that software. According to [1], Domain engineering is “the set of activities involved in developing reusable assets across an entire application domain, or family of applications”. The authors mention that “the purpose of domain engineering is to ensure that the products of the engineering process fall systematically and consistently within the reusable end of the spectrum”. Nowadays, software reuse is typically achieved by software development organizations having internal dedicated teams and specialized processes focused on acquiring, modifying, documenting, testing, and storing reusable software modules in reuse repositories. In addition, these specialized teams provide support to the development activities that build new applications based on the reusable resources. As a result, software reuse is associated with significant investment costs that prohibit the achievement of short-term gains. Thus, in many cases software reuse becomes problematic even for large development organizations due to the fact that the large initial investments required may not be easily justified without short-term tangible gains [1]. In order to tackle such problems, the systematic reuse through organizations of enterprises, and not single enterprises, of the same domain by providing a set process, tools and business and cost models is proposed. In this context a domain engineering process with a pragmatic approach is essential in order to allow Small and Medium Enterprise Associations to provide services to Small and Medium Enterprises that promote systematic software reuse. Based on the aforementioned facts and analysis, we introduce a configurable, exemplar-based Reuse-Oriented Domain Engineer Process (R.O.D.E. Process). The process is required to be a) configurable in order to tackle with each domain’s specificities, b) reuse-oriented in order to promote systematic software reuse and c) exemplar-based because a realistic approach is essential and exemplar applications provide real-life paradigms. We also present the process in the context of the Open-SME project as it was deployed in the Eclipse Process Framework Composer.