Διαχείριση Διαμόρφωσης Λογισμικού στη Μηχανική Λογισμικού
Τι είναι η Διαχείριση Διαμόρφωσης Λογισμικού;
Στη Μηχανική Λογισμικού, Διαχείριση διαμόρφωσης λογισμικού (SCM) είναι μια διαδικασία για τη συστηματική διαχείριση, οργάνωση και έλεγχο των αλλαγών στα έγγραφα, τους κωδικούς και άλλες οντότητες κατά τη διάρκεια του κύκλου ζωής ανάπτυξης λογισμικού. Πρωταρχικός στόχος είναι η αύξηση της παραγωγικότητας με ελάχιστα λάθη. Το SCM είναι μέρος του διεπιστημονικού πεδίου διαχείρισης διαμόρφωσης και μπορεί να προσδιορίσει με ακρίβεια ποιος έκανε την αναθεώρηση.
Γιατί χρειαζόμαστε διαχείριση διαμόρφωσης;
Οι κύριοι λόγοι για την εφαρμογή του Συστήματος Διαχείρισης Διαμόρφωσης Τεχνικού Λογισμικού είναι:
- Υπάρχουν πολλά άτομα που εργάζονται σε λογισμικό που ενημερώνεται συνεχώς
- Μπορεί να είναι μια περίπτωση όπου πολλές εκδόσεις, κλάδοι, συντάκτες εμπλέκονται σε ένα έργο διαμόρφωσης λογισμικού και η ομάδα είναι γεωγραφικά κατανεμημένη και λειτουργεί ταυτόχρονα
- Οι αλλαγές στις απαιτήσεις χρήστη, την πολιτική, τον προϋπολογισμό, το χρονοδιάγραμμα πρέπει να ληφθούν υπόψη.
- Το λογισμικό θα πρέπει να μπορεί να τρέχει σε διάφορα μηχανήματα και Operating Systems
- Βοηθά στην ανάπτυξη συντονισμού μεταξύ των ενδιαφερομένων
- Η διαδικασία SCM είναι επίσης επωφελής για τον έλεγχο του κόστους που συνεπάγεται η πραγματοποίηση αλλαγών σε ένα σύστημα
Οποιαδήποτε αλλαγή στα στοιχεία διαμόρφωσης λογισμικού θα επηρεάσει το τελικό προϊόν. Επομένως, οι αλλαγές στα στοιχεία διαμόρφωσης πρέπει να ελέγχονται και να διαχειρίζονται.
Εργασίες στη διαδικασία SCM
- Αναγνώριση διαμόρφωσης
- γραμμές βάσης
- Έλεγχος αλλαγής
- Λογιστική κατάστασης διαμόρφωσης
- Έλεγχοι διαμόρφωσης και Revβλ
Αναγνώριση διαμόρφωσης
Η αναγνώριση διαμόρφωσης είναι μια μέθοδος προσδιορισμού του εύρους του συστήματος λογισμικού. Με τη βοήθεια αυτού του βήματος, μπορείτε να διαχειριστείτε ή να ελέγξετε κάτι ακόμα κι αν δεν ξέρετε τι είναι. Είναι μια περιγραφή που περιέχει τον τύπο CSCI (Computer Software Configuration Item), ένα αναγνωριστικό έργου και πληροφορίες έκδοσης.
Δραστηριότητες κατά τη διάρκεια αυτής της διαδικασίας:
- Αναγνώριση στοιχείων διαμόρφωσης όπως μονάδες πηγαίου κώδικα, περίπτωση δοκιμής, και τις προδιαγραφές απαιτήσεων.
- Προσδιορισμός κάθε CSCI στο αποθετήριο SCM, χρησιμοποιώντας μια αντικειμενοστραφή προσέγγιση
- Η διαδικασία ξεκινά με βασικά αντικείμενα που ομαδοποιούνται σε συγκεντρωτικά αντικείμενα. Λεπτομέρειες για το τι, γιατί, πότε και από ποιον γίνονται οι αλλαγές στο τεστ
- Κάθε αντικείμενο έχει τα δικά του χαρακτηριστικά που προσδιορίζουν το όνομά του που είναι ξεκάθαρο σε όλα τα άλλα αντικείμενα
- Λίστα απαιτούμενων πόρων όπως το έγγραφο, το αρχείο, τα εργαλεία κ.λπ.
Παράδειγμα:
Αντί να ονομάσετε ένα αρχείο login.php θα πρέπει να ονομάζεται login_v1.2.php όπου το v1.2 σημαίνει τον αριθμό έκδοσης του αρχείου
Αντί να ονομαστεί ο φάκελος "Code" θα πρέπει να ονομάζεται "Code_D" όπου το D αντιπροσωπεύει κώδικα θα πρέπει να δημιουργείται αντίγραφα ασφαλείας καθημερινά.
Baseline
Η γραμμή βάσης είναι μια επίσημα αποδεκτή έκδοση ενός στοιχείου διαμόρφωσης λογισμικού. Καθορίζεται και καθορίζεται σε συγκεκριμένο χρόνο κατά τη διεξαγωγή της διαδικασίας SCM. Μπορεί να αλλάξει μόνο μέσω επίσημων διαδικασιών ελέγχου αλλαγών.
Δραστηριότητες κατά τη διάρκεια αυτής της διαδικασίας:
- Διευκόλυνση κατασκευής διαφόρων εκδόσεων μιας εφαρμογής
- Καθορισμός και προσδιορισμός μηχανισμών για τη διαχείριση διαφόρων εκδόσεων αυτών των προϊόντων εργασίας
- Η λειτουργική γραμμή βάσης αντιστοιχεί στις αναθεωρημένες απαιτήσεις συστήματος
- Οι ευρέως χρησιμοποιούμενες βασικές γραμμές περιλαμβάνουν τις βασικές γραμμές λειτουργίας, ανάπτυξης και προϊόντων
Με απλά λόγια, η γραμμή βάσης σημαίνει έτοιμη για απελευθέρωση.
Έλεγχος αλλαγής
Ο έλεγχος αλλαγής είναι μια διαδικαστική μέθοδος που εξασφαλίζει ποιότητα και συνέπεια όταν γίνονται αλλαγές στο αντικείμενο διαμόρφωσης. Σε αυτό το βήμα, το αίτημα αλλαγής υποβάλλεται στον διαχειριστή διαμόρφωσης λογισμικού.
Δραστηριότητες κατά τη διάρκεια αυτής της διαδικασίας:
- Ελέγξτε την ad-hoc αλλαγή για τη δημιουργία σταθερού περιβάλλοντος ανάπτυξης λογισμικού. Οι αλλαγές δεσμεύονται στο αποθετήριο
- Το αίτημα θα ελεγχθεί με βάση την τεχνική αξία, τις πιθανές παρενέργειες και τη συνολική επίπτωση σε άλλα αντικείμενα διαμόρφωσης.
- Διαχειρίζεται τις αλλαγές και καθιστά διαθέσιμα στοιχεία διαμόρφωσης κατά τη διάρκεια του κύκλου ζωής του λογισμικού
Λογιστική κατάστασης διαμόρφωσης
Η λογιστική κατάστασης διαμόρφωσης παρακολουθεί κάθε έκδοση κατά τη διάρκεια της διαδικασίας SCM. Αυτό το στάδιο περιλαμβάνει την παρακολούθηση του τι έχει κάθε έκδοση και των αλλαγών που οδηγούν σε αυτήν την έκδοση.
Δραστηριότητες κατά τη διάρκεια αυτής της διαδικασίας:
- Διατηρεί αρχείο όλων των αλλαγών που έγιναν στην προηγούμενη γραμμή βάσης για να φτάσει σε μια νέα γραμμή βάσης
- Προσδιορίστε όλα τα στοιχεία για να ορίσετε τη διαμόρφωση του λογισμικού
- Παρακολούθηση της κατάστασης των αιτημάτων αλλαγής
- Πλήρης λίστα όλων των αλλαγών από την τελευταία γραμμή βάσης
- Επιτρέπει την παρακολούθηση της προόδου στην επόμενη γραμμή βάσης
- Επιτρέπει τον έλεγχο προηγούμενων εκδόσεων/εκδόσεων προς εξαγωγή για δοκιμή
Έλεγχοι διαμόρφωσης και Revβλ
Οι έλεγχοι διαμόρφωσης λογισμικού επαληθεύουν ότι όλο το προϊόν λογισμικού ικανοποιεί τις βασικές ανάγκες. Διασφαλίζει ότι αυτό που κατασκευάζεται είναι αυτό που παραδίδεται.
Δραστηριότητες κατά τη διάρκεια αυτής της διαδικασίας:
- Ο έλεγχος διαμόρφωσης διενεργείται από ελεγκτές ελέγχοντας ότι ακολουθούνται καθορισμένες διαδικασίες και διασφαλίζοντας ότι ικανοποιούνται οι στόχοι SCM.
- Για να επαληθεύσετε τη συμμόρφωση με τα πρότυπα ελέγχου διαμόρφωσης. έλεγχος και αναφορά των αλλαγών που έγιναν
- Οι έλεγχοι SCM διασφαλίζουν επίσης ότι η ιχνηλασιμότητα διατηρείται κατά τη διάρκεια της διαδικασίας.
- Διασφαλίζει ότι οι αλλαγές που έγιναν σε μια γραμμή βάσης συμμορφώνονται με τις αναφορές κατάστασης διαμόρφωσης
- Επικύρωση πληρότητας και συνέπειας
Συμμετέχοντας στη διαδικασία SCM
Ακολουθούν οι βασικοί συμμετέχοντες στο SCM
1. Διαχειριστής διαμόρφωσης
- Ο Διαχειριστής διαμόρφωσης είναι ο επικεφαλής που είναι υπεύθυνος για την αναγνώριση στοιχείων διαμόρφωσης.
- Η CM διασφαλίζει ότι η ομάδα ακολουθεί τη διαδικασία SCM
- Πρέπει να εγκρίνει ή να απορρίψει αιτήματα αλλαγής
2. Προγραμματιστής
- Ο προγραμματιστής πρέπει να αλλάξει τον κώδικα σύμφωνα με τις τυπικές δραστηριότητες ανάπτυξης ή τα αιτήματα αλλαγής. Είναι υπεύθυνος για τη διατήρηση της διαμόρφωσης του κώδικα.
- Ο προγραμματιστής θα πρέπει να ελέγξει τις αλλαγές και να επιλύσει διενέξεις
3. Ελεγκτής
- Ο ελεγκτής είναι υπεύθυνος για τους ελέγχους και τις επιθεωρήσεις SCM.
- Ανάγκη διασφάλισης της συνέπειας και της πληρότητας της απελευθέρωσης.
4. Υπεύθυνος έργου:
- Βεβαιωθείτε ότι το προϊόν αναπτύσσεται εντός συγκεκριμένου χρονικού πλαισίου
- Παρακολουθεί την πρόοδο της ανάπτυξης και αναγνωρίζει ζητήματα στη διαδικασία SCM
- Δημιουργήστε αναφορές σχετικά με την κατάσταση του συστήματος λογισμικού
- Βεβαιωθείτε ότι ακολουθούνται διαδικασίες και πολιτικές για τη δημιουργία, την αλλαγή και τη δοκιμή
5. Χρήστης
Ο τελικός χρήστης θα πρέπει να κατανοήσει τους βασικούς όρους SCM για να διασφαλίσει ότι διαθέτει την πιο πρόσφατη έκδοση του λογισμικού
Σχέδιο διαχείρισης διαμόρφωσης λογισμικού
Ο προγραμματισμός της διαδικασίας SCMP (Software Configuration Management Planning) ξεκινά στις πρώτες φάσεις κωδικοποίησης ενός έργου. Το αποτέλεσμα της φάσης σχεδιασμού είναι το σχέδιο SCM το οποίο μπορεί να επεκταθεί ή να αναθεωρηθεί κατά τη διάρκεια του έργου.
- Το SCMP μπορεί να ακολουθεί ένα δημόσιο πρότυπο όπως το IEEE 828 ή το συγκεκριμένο πρότυπο οργάνωσης
- Καθορίζει τους τύπους των εγγράφων που πρέπει να είναι διαχείριση και μια ονομασία εγγράφων. Παράδειγμα Test_v1
- Το SCMP ορίζει το άτομο που θα είναι υπεύθυνο για ολόκληρη τη διαδικασία SCM και τη δημιουργία βασικών γραμμών.
- Διορθώστε πολιτικές για τη διαχείριση εκδόσεων και τον έλεγχο αλλαγών
- Καθορίστε τα εργαλεία που μπορούν να χρησιμοποιηθούν κατά τη διαδικασία SCM
- Βάση δεδομένων διαχείρισης διαμόρφωσης για την καταγραφή πληροφοριών διαμόρφωσης.
Εργαλεία διαχείρισης διαμόρφωσης λογισμικού
Οποιοδήποτε λογισμικό διαχείρισης αλλαγών θα πρέπει να έχει τα ακόλουθα 3 βασικά χαρακτηριστικά:
Διαχείριση συγχρονισμού:
Όταν δύο ή περισσότερες εργασίες γίνονται ταυτόχρονα, είναι γνωστό ως ταυτόχρονη λειτουργία. Συγχρονισμός στο πλαίσιο του SCM σημαίνει ότι το ίδιο αρχείο επεξεργάζεται από πολλά άτομα ταυτόχρονα.
Εάν η διαχείριση του συγχρονισμού δεν γίνεται σωστά με τα εργαλεία SCM, τότε μπορεί να δημιουργήσει πολλά πιεστικά ζητήματα.
Έλεγχος έκδοσης:
Το SCM χρησιμοποιεί μέθοδο αρχειοθέτησης ή αποθηκεύει κάθε αλλαγή που γίνεται στο αρχείο. Με τη βοήθεια της δυνατότητας αρχειοθέτησης ή αποθήκευσης, είναι δυνατή η επαναφορά στην προηγούμενη έκδοση σε περίπτωση προβλημάτων.
Syncχρονισμός:
Οι χρήστες μπορούν να ελέγξουν περισσότερα από ένα αρχεία ή ένα ολόκληρο αντίγραφο του αποθετηρίου. Στη συνέχεια, ο χρήστης εργάζεται στο απαραίτητο αρχείο και ελέγχει τις αλλαγές πίσω στο αποθετήριο. Μπορούν να συγχρονίσουν το τοπικό τους αντίγραφο για να παραμένουν ενημερωμένοι με τις αλλαγές που έγιναν από άλλα μέλη της ομάδας.
Ακολουθούν δημοφιλή εργαλεία
1.Git: Το Git είναι ένα δωρεάν και ανοιχτού κώδικα εργαλείο που βοηθά στον έλεγχο της έκδοσης. Έχει σχεδιαστεί για να χειρίζεται όλους τους τύπους έργων με ταχύτητα και αποτελεσματικότητα.
Download link: https://git-scm.com/
2. Ομάδα Foundation Server: Ομάδα Foundation είναι μια ομάδα εργαλείων και τεχνολογιών που επιτρέπουν στην ομάδα να συνεργάζεται και να συντονίζεται για την κατασκευή ενός προϊόντος.
Download link: https://azure.microsoft.com/en-us/services/devops/server/
3.Ansible: Είναι ένα εργαλείο διαχείρισης διαμόρφωσης λογισμικού ανοιχτού κώδικα. Εκτός από τη διαχείριση διαμόρφωσης, προσφέρει επίσης ανάπτυξη εφαρμογών και αυτοματισμό εργασιών.
Download link: https://www.ansible.com/
Δείτε περισσότερα εργαλεία διαμόρφωσης SW: https://www.guru99.com/software-configuration-management-tools.html
Συμπέρασμα
- Οι βέλτιστες πρακτικές διαχείρισης παραμέτρων βοηθούν τους οργανισμούς να διαχειρίζονται, να οργανώνουν και να ελέγχουν συστηματικά τις αλλαγές στα έγγραφα, τους κωδικούς και άλλες οντότητες κατά τη Κύκλος ζωής ανάπτυξης λογισμικού.
- Ο πρωταρχικός στόχος της διαδικασίας SCM είναι η αύξηση της παραγωγικότητας με ελάχιστα λάθη
- Ο κύριος λόγος πίσω από τη διαδικασία διαχείρισης παραμέτρων είναι ότι υπάρχουν πολλά άτομα που εργάζονται σε λογισμικό το οποίο ενημερώνεται συνεχώς. Το SCM βοηθά στη δημιουργία συγχρονισμού, συγχρονισμού και ελέγχου έκδοσης.
- Η γραμμή βάσης είναι μια επίσημα αποδεκτή έκδοση ενός στοιχείου διαμόρφωσης λογισμικού
- Ο έλεγχος αλλαγής είναι μια διαδικαστική μέθοδος που εξασφαλίζει ποιότητα και συνέπεια όταν γίνονται αλλαγές στο αντικείμενο διαμόρφωσης.
- Η λογιστική κατάστασης διαμόρφωσης παρακολουθεί κάθε έκδοση κατά τη διάρκεια της διαδικασίας SCM
- Οι έλεγχοι διαμόρφωσης λογισμικού επαληθεύουν ότι όλο το προϊόν λογισμικού ικανοποιεί τις βασικές ανάγκες
- Ο διαχειριστής έργου, ο διαχειριστής διαμόρφωσης, ο προγραμματιστής, ο ελεγκτής και ο χρήστης συμμετέχουν στη διαδικασία SCM
- Ο σχεδιασμός της διαδικασίας SCM ξεκινά από τα πρώτα στάδια ενός έργου.
- Το Git, το Team foundation Sever και το Ansible είναι λίγα δημοφιλή εργαλεία SCM.