A computer software system includes interdependent collections of software
components. That is, at the architectural level, software components and
their interdependencies are two distinct equally important entities. The
software components represent the core functional pieces of an application
and deal with concepts specific to an application domain.
Interdependencies relate to concepts orthogonal to the problem domain in
most applications, such as transportation, sharing of resources and
synchronization constraints among components. An architectural description
language which represents activities and dependencies between activities
as separate entities. Dependencies are managed by coordination processes
associated with the dependency. Activities and dependencies are connected
through ports which encode interfaces between activities and coordination
processes. The language may also represent resources which may be
understood as the output of some activity beyond the scope of the system.
Each entity, i.e., activity, dependency, port or resource, may also have
attributes which are name value pairs, specifying additional information
about the entity. Attributes may be inherited. That is, activities and
dependencies may be specialized into particular versions of an activity or
dependency. The attributes for a particular activity are inherited by its
specializations. An editor repository and design assistant may be based on
this language to provide a system that automatically generates executable
code.
Ένα σύστημα λογισμικού υπολογιστών περιλαμβάνει τις αλληλοεξαρτώμενες συλλογές των τμημάτων λογισμικού. Δηλαδή στο αρχιτεκτονικό επίπεδο, τα τμήματα λογισμικού και οι αλληλεξαρτήσεις τους είναι δύο ευδιάκριτες εξίσου σημαντικές οντότητες. Τα τμήματα λογισμικού αντιπροσωπεύουν τα λειτουργικά κομμάτια πυρήνων μιας εφαρμογής και εξετάζουν τις έννοιες συγκεκριμένες για μια περιοχή εφαρμογής. Οι αλληλεξαρτήσεις αφορούν τις έννοιες ορθογώνιες στην περιοχή προβλήματος στις περισσότερες εφαρμογές, όπως η μεταφορά, τη διανομή των πόρων και των περιορισμών συγχρονισμού μεταξύ των συστατικών. Μια αρχιτεκτονική γλώσσα περιγραφής που αντιπροσωπεύει τις δραστηριότητες και τις εξαρτήσεις μεταξύ των δραστηριοτήτων ως χωριστές οντότητες. Οι εξαρτήσεις ρυθμίζονται με τις διαδικασίες συντονισμού που συνδέονται με την εξάρτηση. Οι δραστηριότητες και οι εξαρτήσεις συνδέονται μέσω των λιμένων που κωδικοποιούν τις διεπαφές μεταξύ των δραστηριοτήτων και των διαδικασιών συντονισμού. Η γλώσσα μπορεί επίσης να αντιπροσωπεύσει τους πόρους που μπορούν να γίνουν κατανοητοί ως παραγωγή κάποιας δραστηριότητας πέρα από το πεδίο του συστήματος. Κάθε οντότητα, δηλ., η δραστηριότητα, η εξάρτηση, ο λιμένας ή ο πόρος, μπορούν επίσης να έχουν τις ιδιότητες που είναι ζευγάρια αξίας ονόματος, που διευκρινίζουν τις πρόσθετες πληροφορίες για την οντότητα. Οι ιδιότητες μπορούν να κληρονομηθούν. Δηλαδή οι δραστηριότητες και οι εξαρτήσεις μπορούν να ειδικευτούν στις ιδιαίτερες εκδόσεις μιας δραστηριότητας ή μιας εξάρτησης. Οι ιδιότητες για μια ιδιαίτερη δραστηριότητα κληρονομούνται από τις ειδικεύσεις της. Μια αποθήκη συντακτών και ένας βοηθός σχεδίου μπορούν να βασιστούν σε αυτήν την γλώσσα για να παρέχουν ένα σύστημα που παράγει αυτόματα τον εκτελέσιμο κώδικα.