scholarly journals Formal Constraints on Memory Management for Composite Overloaded Operations

2006 ◽  
Vol 14 (1) ◽  
pp. 27-40 ◽  
Author(s):  
Damian W.I. Rouson ◽  
Xiaofeng Xu ◽  
Karla Morris

The memory management rules for abstract data type calculus presented by Rouson, Morris & Xu [15] are recast as formal statements in the Object Constraint Language (OCL) and applied to the design of a thermal energy equation solver. One set of constraints eliminates memory leaks observed in composite overloaded expressions with three current Fortran 95/2003 compilers. A second set of constraints ensures economical memory recycling. The constraints are preconditions, postconditions and invariants on overloaded operators and the objects they receive and return. It is demonstrated that systematic run-time assertion checking inspired by the formal constraints facilitated the pinpointing of an exceptionally hard-to-reproduce compiler bug. It is further demonstrated that the interplay between OCL's modeling capabilities and Fortran's programming capabilities led to a conceptual breakthrough that greatly improved the readability of our code by facilitating operator overloading. The advantages and disadvantages of our memory management rules are discussed in light of other published solutions [11,19]. Finally, it is demonstrated that the run-time assertion checking has a negligible impact on performance.

2008 ◽  
Vol 16 (4) ◽  
pp. 329-339 ◽  
Author(s):  
Damian W.I. Rouson

This article approaches scientific software architecture from three analytical paths. Each path examines discrete time advancement of multiphysics phenomena governed by coupled differential equations. The new object-oriented Fortran 2003 constructs provide a formal syntax for an abstract data type (ADT) calculus. The first analysis uses traditional object-oriented software design metrics to demonstrate the high cohesion and low coupling associated with the calculus. A second analysis from the viewpoint of computational complexity theory demonstrates that a more representative bug search strategy than that considered by Rouson et al. (ACM Trans. Math. Soft.34(1) (2008)) reduces the number of lines searched in a code with λ total lines from O(λ2) to O(λ log2λ ), which in turn becomes nearly independent of the overall code size in the context of ADT calculus. The third analysis derives from information theory an argument that ADT calculus simplifies developer communications in part by minimizing the growth in interface information content as developers add new physics to a multiphysics package.


2006 ◽  
Author(s):  
Χρήστος Τρανώρης

Η αναβάθμιση της διαδικασίας ανάπτυξης εφαρμογών λογισμικού που αφορούν τον έλεγχο βιομηχανικών συστημάτων, είναι ένα θέμα που απασχολεί για δεκαετίες του μηχανικούς ελέγχου αλλά και τους μηχανικούς λογισμικού. Κατά την ανάπτυξη των βιομηχανικών εφαρμογών, οι μηχανικοί καλούνται να ικανοποιήσουν πληθώρα απαιτήσεων μεταξύ των οποίων: συμβατότητα με το υπάρχον εγκατεστημένο υλικό, συμβατότητα με τις ήδη εγκατεστημένες παλαιότερες εφαρμογές και επαναχρησιμοποίηση τμημάτων λογισμικού. Για τους παραπάνω λόγους, αναζητούνται συνεχώς λύσεις οι οποίες: θα προσφέρουν μια περισσότερο φιλική προς το μηχανικό ελέγχου διαδικασία ανάπτυξης η οποία θα υποστηρίζει επεκτασιμότητα των εφαρμογών, θα διευκολύνει την επαναχρησιμοποίηση τμημάτων του λογισμικού, θα ενισχύει την συντήρηση του λογισμικού και θα είναι ανεξάρτητη από το υλικό εκτέλεσης των βιομηχανικών συστημάτων. Η International Electrotechnical Commission (IEC) για να αντιμετωπίσει τις απαιτήσεις των σύγχρονων συστημάτων δημιούργησε το πρότυπο IEC61499 το οποίο έρχεται να επεκτείνει το Function Block του IEC61131. Το IEC61499, καθορίζει μια μεθοδολογία σχεδιασμού, όπου το Function Block είναι το βασικό δομικό συστατικό για την ανάπτυξη διαλειτουργικών κατανεμημένων εφαρμογών αυτοματισμού και ελέγχου. Οι εφαρμογές ελέγχου μπορούν να υλοποιηθούν από Function Block δίκτυα διασυνδέοντας τις εισόδους και εξόδους τους. Το IEC61499 προτείνει επίσης τον σχεδιασμό εργαλείων λογισμικού για την υποστήριξη (εν μέρει αυτοματοποίηση) της διαδικασίας ανάπτυξης. Στην παρούσα διατριβή, παρουσιάζεται μια νέα προσέγγιση για τον σχεδιασμό κατανεμημένων βιομηχανικών εφαρμογών και πιο συγκεκριμένα Συστημάτων Μέτρησης και Ελέγχου Βιομηχανικών Διεργασιών1 (IPMCSs) όπως τα ορίζει το πρότυπο IEC. Η προσέγγιση εστιάζει στον ορισμό μιας μεθοδολογίας για την φάση της ανάλυσης και κύρια την τεκμηρίωση των απαιτήσεων και τον μετέπειτα μετασχηματισμό του μοντέλου ανάλυσης σε μοντέλο σχεδιασμού. Η προτεινόμενη προσέγγιση βασίζεται σε κατάλληλα οριζόμενες έννοιες και τεχνικές και αξιοποιεί τελευταίες τάσεις από το χώρο της Μηχανιστικής Λογισμικού (Software Engineering), όπως είναι η έννοια της μετα-μοντελοποίησης (Meta-modeling) όπως αυτή ορίζεται στα πλαίσια της βασισμένης σε μοντέλα ανάπτυξης (Model Driven Development) και της Unified Modeling Language (UML) και των επεκτάσεων της (UML Profiles) και εφαρμογή αυτών στο σχεδιασμό βιομηχανικών εφαρμογών. Για την ομαλή μετάβαση από τις καταγεγραμμένες απαιτήσεις σε μοντέλα σχεδιασμού τεκμηριώθηκε και παρουσιάζεται ένα σύνολο κανόνων μετασχηματισμού το οποίο περιγράφηκε αυστηρά με χρήση της Object Constraint Language. Για να αξιοποιηθεί η προτεινόμενη προσέγγιση από μηχανικούς ελέγχου, σχεδιάστηκε και υλοποιήθηκε ένα εργαλείο λογισμικού συμβατό με το πρότυπο IEC61499. Το εργαλείο που έχει το όνομα CORFU ESS έρχεται να υποστηρίξει: α) την φάση της ανάλυσης, β) τον μετασχηματισμό του μοντέλου ανάλυσης σε μοντέλο σχεδιασμού, γ) τον σχεδιασμό εφαρμογών με Function Blocks όπως ορίζει το IEC61499, δ) την κατανομή των Function Block στις συσκευές των βιομηχανικών δικτύων και ε) τον έλεγχο των τελικών Function Block δικτύων. Η προσέγγιση εφαρμόσθηκε σε μελέτες περίπτωσης για να επιδείξει την εφαρμοσιμότητα της προτεινόμενης διαδικασίας, την αποτελεσματικότητα του εργαλείου που αναπτύχθηκε και την δυνατότητα της διαδικασίας και του εργαλείου να καλύψουν απαιτήσεις μικρής ή μεγάλης κλίμακας εφαρμογών.


Sign in / Sign up

Export Citation Format

Share Document