Software

Η Watergate σας παρέχει τρεις εξειδικευμένες υπηρεσίες για την ανάπτυξη λογισμικού για την εταιρίας σας, εφαρμογές desktop, δηλαδή συστήματα τα οποία εγκαθιστούμε στον ηλεκτρονικό ή τους ηλεκτρονικούς υπολογιστές σας, συστήματα Intarnet, αυτά που βρίσκονται στο τοπικό σας δίκτυα ή εσωτερικά στην επιχείρησή σας, extranet, με τα οποία παρέχετε εξειδικευμένες υπηρεσίες σε επιλεγμένους συνεργάτες εκτός της επιχείρησής σας και Internet, συστήματα τα οποία απευθύνονται στο ευρύτερο διαδίκτυο. Στις επόμενες ενότητες θα αναλύσουμε τη διαδικασία που ακολουθούμε για την ανάπτυξη του λογισμικού και τους τρόπους με τους οποίους μπορείτε να ωφεληθείτε επιλέγοντας τη Watergate για την προμήθεια του λογισμικού σας.

Ανάπτυξη με τη Watergate

Η ανάπτυξη των συστημάτων σας στη Watergate δεν περιλαμβάνει μόνο τον επαγγελματισμό και την αφοσίωσή μας στο έργο σας. Η εμπειρία σας θα είναι γεμάτη από ευχάριστες εμπειρίες. Σε αυτή την ενότητα θα θέλαμε να σας τονίσουμε μερικά από αυτά που πιστεύουμε ότι είναι τα συγκριτικά μας πλεονεκτήματα, εκείνα που μας ξεχωρίζουν.

  • Ξεκάθαρες προτάσεις. Γνωρίζουμε πολύ καλά ότι τα συστήματα μπορούν να κατασκευαστούν με πολύ διαφορετικούς τρόπους και εξίσου διαφορετικούς προϋπολογισμούς. Συνήθως, η διαδικασία που ακολουθεί μία εταιρία καθορίζει και τα κοστολόγια αλλά και τα δυνατά της σημεία. Εμείς έχουμε επιλέξει μία παραλλαγή του μοντέλου Agile programming, το οποίο προσαρμόζεται εύκολα τόσο σε μικρότερα όσο και στα μεγαλύτερα projects. Αυτό που μας ξεχωρίζει είναι ότι μπορούμε να σας παρέχουμε την ίδια καλή ποιότητα ανεξάρτητα από το μέγεθος του έργου. Βρισκόμαστε μαζί σας από το πρώτο βήμα για να καθορίσουμε μαζί το βάθος και την έκταση που επιθυμείτε να του δώσετε.
  • Τεχνολογίες. Γνωρίζουμε ότι ένα από τα μεγαλύτερα προβλήματα που θα αντιμετωπίσετε σαν πελάτης είναι ποια τεχνολογία ταιριάζει καλύτερα στο έργο σας. Σε εμάς θα βρείτε πληθώρα από επιλογές και κυρίως, θα σας προτείνουμε εκείνη που ταιριάζει καλύτερα στη ζήτησή σας.
  • Απαιτήσεις - Σχεδιασμός. Ίσως το πιο παραμελημένο αλλά πιο σημαντικό βήμα στην ανάπτυξη του συστήματός σας. Ο πιο συχνός λόγος για τη μη έγκαιρη παράδοση ή ακόμη και αποτυχία των έργων ανάπτυξης πληροφοριακών συστημάτων είναι οι απαιτήσεις. Σε εμάς, όχι μόνο θα βρείτε την καλύτερη υποστήριξη για την αναγνώριση των απαιτήσεών σας, αλλά μπορείτε να ρυθμίσετε την έκταση του έργου μέσα από τις απαιτήσεις και το σχεδιασμό. Αντίστοιχα με τις απαιτήσεις, ο σχεδιασμός του συστήματός σας παρέχει την εγγύηση που χρειάζεστε πριν να έχετε ξοδέψει το μεγαλύτερο μέρος του κόστους ανάπτυξης. Στη Watergate δεν ενδιαφερόμαστε μόνο για την αμοιβή μας, αλλά και για τον πελάτη μας.
  • Υποστήριξη. Η υποστήριξή που παρέχουμε δεν τελειώνει με το πέρας του έργου. Όποτε μας χρειαστείτε θα είμαστε στο πλάι σας, έτοιμοι να προσφέρουμε τις υπηρεσίες και τη γνώση μας σε όποια πρόκληση αντιμετωπίσετε.

Κατασκευή

Στη Watergate θα βρείτε μία ολοκληρωμένη πρόταση όσον αφορά την κατασκευή του λογισμικού σας. Διαθέτουμε εμπειρία σε ένα σύνολο τεχνολογιών με τις οποίες μπορούμε να αναπτύξουμε το σύστημά σας, προσφέροντάς σας άριστα αποτελέσματα. Οι βασικοί άξονες με τους οποίους αναπτύσσουμε κάθε σύστημα είναι:

ΕΥΧΡΗΣΤΙΑ

Ίσως το πιο σημαντικό στοιχείο κατά τη διάρκεια της ανάπτυξης του συστήματός σας, κάθε εφαρμογή χρησιμοποιείται από ανθρώπους. Το σλόγκαν που ακολουθούμε είναι «Ο υπολογιστής πρέπει να δουλεύει για εσάς, όχι εσείς για αυτόν». Συχνά είναι το περισσότερο ξεχασμένο στοιχείο της πληροφορικής. Για αυτό το λόγο, από τα προηγούμενα βήματα των απαιτήσεων και του σχεδιασμού, οι έννοια του χρήστη είναι μία από τις βασικές έννοιες σε ολόκληρη τη διαδικασία ανάπτυξης.

ΑΠΟΔΟΤΙΚΟΤΗΤΑ

Το υπολογιστικό σύστημα καταρχάς πρέπει να χειρίζεται τους πόρους του μηχανήματος στον οποίο λειτουργεί σωστά. Αυτό σας επιτρέπει να εκτελείτε ταυτόχρονα περισσότερες εφαρμογές χωρίς αναμονή, αλλά και η απόκριση του συστήματος γίνεται πιο σύντομη. Δυστυχώς, πολλοί κατασκευαστές χρησιμοποιούν τον κανόνα ότι αν αναβαθμίζουμε συνέχεια τα μηχανήματά μας, τότε θα μπορούμε να εκτελέσουμε εφαρμογές που δεν εκτελούνταν ικανοποιητικά στο παρελθόν. Δυστυχώς υπάρχουν αρκετά παραδείγματα λογισμικού που ακολουθούν αυτό τον κανόνα. Με τη Watergate μπορείτε να είστε σίγουροι για την απόδοση της εφαρμογής σας.

ΕΠΕΚΤΑΣΙΜΟΤΗΤΑ

Ένας ακόμη βασικός πυλώνας στη συγγραφή του συστήματός σας είναι η επεκτασιμότητα. Σε σχέση με άλλους κατασκευαστικούς κλάδους, όπως των πολιτικών μηχανικών, ένα σύστημα επιδέχεται σημαντικές μεταβολές μετά την έναρξη λειτουργίας του. Όταν κατασκευάζουμε τα συστήματά μας, αναμένουμε πάντα τις εξελίξεις και αυτό σας δίνει μία επιπλέον δυνατότητα. Είμαστε υπερήφανοι για την εργασία μας, και αυτό φαίνεται στις επεκτάσεις των συστημάτων μας. Οι επεκτάσεις έχουν σημαντικό κοστολογικό όφελος και χρόνο παράδοσης διότι προσέχουμε για αυτό από την κατασκευή μας. Στόχος μας είναι να σας εξυπηρετούμε τόσο κατά την ανάπτυξη όσο και μετά από αυτήν, όταν οι απαιτήσεις σας αλλάζουν και η ανάπτυξή που έχετε επιβάλλει την επέκταση των πληροφοριακών συστημάτων σας.

ΕΛΕΓΧΟΣ

Κάθε υπολογιστικό σύστημα οφείλει να ελέγχεται διεξοδικά. Τίποτα δεν είναι πιο εκνευριστικό από ένα πρόγραμμα το οποίο σταματά να λειτουργεί όταν το χρειαζόμαστε περισσότερο. Εμείς λαμβάνουμε υπόψη τον έλεγχο σε όλα τα επίπεδα της ανάπτυξης. Το τελευταίο και κρισιμότερο βήμα πριν από τον έλεγχο του συστήματος είναι η κατασκευή. Οι μεθοδολογίες που ακολουθούμε εγγυώνται την αποφυγή των περισσότερων σφαλμάτων και ταυτόχρονα μας επιτρέπουν να εκτελέσουμε πιο γρήγορα και πιο αποδοτικά τον έλεγχο του παραγόμενου λογισμικού.

ΣΥΝΤΗΡΗΣΗ

Η συνεργασία με τη Watergate και η φροντίδα μας δεν τελειώνουν μόλις παραδώσουμε το σύστημά σας. Είμαστε δίπλα σας σε κάθε βήμα που θα κάνετε, και το σημαντικότερο είναι αυτό που συμβαίνει μετά την ανάπτυξη. Η συντήρηση του συστήματος σας γίνεται από εξειδικευμένο προσωπικό το οποίο γνωρίζει το σύστημά σας και μπορεί να σας βοηθήσει σε κάθε απορία ή ερώτηση και να σας κατευθύνει στην πιο σωστή επιλογή.

Έλεγχος Συστήματος

Ο έλεγχος ενός πολύπλοκου συστήματος είναι μία από τις βασικές δραστηριότητες της ανάπτυξης. Χωρίς τον έλεγχο, κάθε σύστημα καθίσταται αργά ή γρήγορα εκτός λειτουργίας, κάτω από το βάρος λογικών σφαλμάτων που υφίστανται κατά την ανάπτυξή του. Σε όλα τα συστήματα που κατασκευάζουμε λαμβάνουμε τον έλεγχο πολύ σοβαρά. Είναι η τελευταία γραμμή άμυνας απέναντι στην αποτυχία. Σε αυτή την ενότητα θα σας μιλήσουμε για τους διαφορετικούς ελέγχους που πραγματοποιούμε ώστε να είστε πάντα σίγουροι για το σύστημα που θα παραλάβετε.
Φυσικά, μετά τον εκτενή δικό μας έλεγχο, το σύστημά σας υπόκειται δύο ακόμη ελέγχους. Ο πρώτος εξωτερικός έλεγχος γίνεται όταν σας δίνουμε το σύστημα σε έκδοση beta. Μπορείτε να το χρησιμοποιήσετε όπως το κανονικό σας πρόγραμμα, αλλά ο στόχος είναι να ανακαλυφθούν αδυναμίες, σφάλματα και επεκτάσεις μέσα στο περιβάλλον το οποίο θα λειτουργήσει. Όταν ολοκληρωθεί το beta testing, όπως αποκαλείται αυτό το βήμα, το σύστημα εγκαθίσταται και λειτουργεί κανονικά. Όλοι οι χρήστες μπορούν να χρησιμοποιήσουν το σύστημα και ξεκινούν την εργασία τους σε αυτό. Για κάποιο χρονικό διάστημα, το σύστημα βρίσκεται στην έκδοση RC (Release Candidate). Κατά τη χρονική αυτή διάρκεια, παρακολουθούμε τη λειτουργία του και αντιδρούμε άμεσα σε οποιοδήποτε σφάλμα, αδυναμία ή επέκταση χρειαστεί. Όταν ολοκληρωθεί η διαδικασία αυτή, το σύστημα είναι έτοιμο προς χρήση και αρχίζουν οι διαδικασίες υποστήριξης του συστήματος.
Η διαδικασία του ελέγχου χωρίζεται σε δύο βασικές κατηγορίες, το functional testing και το non-functional testing.

  • Functional testing. Ο έλεγχος του συστήματος επικεντρώνεται στις λειτουργίες του συστήματος. Πιο συγκεκριμένα, αυτός ο έλεγχος απαντάει στα ακόλουθα ερωτήματα:
    • Μπορεί το σύστημα να εκτελέσει μία συγκεκριμένη λειτουργία; Ο έλεγχος μας δίνει τη δυνατότητα να βεβαιωθούμε ότι όλες οι λειτουργίες που περιγράφονται στις απαιτήσεις υπάρχουν στο σύστημα.
    • Η λειτουργία εκτελείται σωστά; Κάθε λειτουργία που υπάρχει στις απαιτήσεις ελέγχεται τόσο με τιμές που αναμένονται να εισαχθούν στο σύστημα όσο και με λανθασμένες τιμές που μπορεί να προκύψουν στο σύστημα. Με αυτό τον έλεγχο βεβαιωνόμαστε ότι κάθε λειτουργία εκτελεί την εργασία της.
  • Non-functional testing. Ο έλεγχος αυτός μας βεβαιώνει την ποιότητα του συστήματος. Παραδείγματα ελέγχων που πραγματοποιούμε είναι: Επεκτασιμότητα
    • Απόδοση
    • Περιορισμοί
    • Ασφάλεια
    • Ευχρηστία

Μία άλλη διάσταση των ελέγχων που εκτελούμε βρίσκεται στον τρόπο με τον οποίο εκτελούνται οι έλεγχοι. Και σε αυτή την περίπτωση υπάρχουν δύο είδη ελέγχων που εκτελούμε:

  • Static testing. Κατά τον έλεγχο ενός συστήματος, εξετάζουμε τον κώδικα για να ανακαλύψουμε ορισμένες ατέλειες.
  • Dynamic testing. Ο έλεγχος αυτός εκτελεί το σύστημα ή το κομμάτι του συστήματος, παρέχοντας δεδομένα από τα οποία ελέγχουμε το αποτέλεσμα της εκτέλεσης.

ΜΕΘΟΔΟΙ ΕΛΕΓΧΟΥ

Στη Watergate χρησιμοποιούμε δύο διαφορετικές μεθόδους ελέγχου του αναπτυσσόμενου συστήματος, οι οποίοι περιγράφονται συνοπτικά στις επόμενες ενότητες.

WHITE-BOX TESTING

Κατά τον έλεγχο αυτό χρησιμοποιούμε τον κώδικα του συστήματος για να το ελέγξουμε, και περιλαμβάνει:

  • Class testing. Κάθε αντικείμενο του συστήματος ελέγχεται ξεχωριστά για σφάλματα.
  • Code coverage. Δημιουργούμε test cases με τα οποία ελέγχουμε όλες τις πιθανές διόδους του συστήματος.
  • Fault-injection. Σε περιβάλλοντα στα οποία οι υπολογιστές μπορεί να συναντήσουν δυσκολίες κατά τη λειτουργία τους, εισάγουμε σφάλματα κατευθείαν στη μνήμη του υπολογιστή για να ελέγξουμε την απόκριση του συστήματος.
  • Όλοι οι τύποι static testing.

BLACK-BOX TESTING

Ο έλεγχος αυτός γίνεται από την οπτική γωνία των χρηστών, δηλαδή χωρίς να λαμβάνουμε υπόψη την εσωτερική υλοποίηση του συστήματος. Παραδείγματα ελέγχων που πραγματοποιούμε είναι:

  • Equivalence partitioning. Τα δεδομένα που λαμβάνει το σύστημα χωρίζονται σε κατηγορίες και ελέγχεται κάθε κατηγορία δεδομένων.
  • Boundary-value analysis. Κατά τον έλεγχο αυτό εξετάζεται η απόκριση του συστήματος στα όρια των τιμών των δεδομένων.
  • All-pairs testing. Αν χρειαστεί να αναπτύξουμε εξειδικευμένους αλγόριθμους, εφαρμόζουμε αυτό τον έλεγχο για να ελέγξουμε την απόκριση του αλγόριθμου.
  • Fuzz testing. κατά τη διάρκεια αυτού του ελέγχου δίνουμε στο σύστημα τυχαίες τιμές οι οποίες μπορεί να είναι εντελώς λανθασμένες για να ελέγξουμε την απόκρισή του.

ΕΠΙΠΕΔΑ ΕΛΕΓΧΟΥ

Κάθε σύστημα που παράγουμε ελέγχεται σε διαφορετικά επίπεδα. Ορισμένα από τα διαφορετικά επίπεδα στα οποία ελέγχουμε το σύστημα είναι:

  • Class testing. επειδή κυρίως χρησιμοποιούμε Object-Oriented Programming για την κατασκευή των συστημάτων μας, ο πιο βασικός έλεγχος είναι αυτός των αντικειμένων κάθε συστήματος.
  • Package testing. Διάφορα αντικείμενα συνεργάζονται μεταξύ τους για να πετύχουν κάποιο αποτέλεσμα στο σύστημα. Αυτά τα αντικείμενα ελέγχονται μαζί για να ανακαλυφθούν τυχόν λάθη στην επικοινωνία τους.
  • System testing. το σύστημα ελέγχεται ολόκληρο για να εξετάσουμε τη συνολική συμπεριφορά του.
  • System integration testing. Όταν το σύστημα συνεργάζεται με άλλα κομμάτια λογισμικού, τότε αυτό ελέγχεται μαζί με τα άλλα συστήματα για να ανακαλυφθούν σφάλματα στη μεταξύ τους επικοινωνία.
  • Alpha testing. Ο έλεγχος πραγματοποιείται εσωτερικά από εμάς για να εξετάσουμε την ευχρηστία του συστήματος σε πιθανούς χρήστες.