ארכיטקט תוכנה
ארכיטקט תוכנה (באנגלית: software architect) הוא מתכנת בכיר המקבל החלטות הנוגעות לעיצוב תוכנה ברמה הגבוהה (high-level), ותפקידו להכתיב סטנדרטים טכניים לגבי טכניקות תכנות, כלים, תשתיות תוכנה ופלטפורמות מחשוב.
דמות ארכיטקט התוכנה החלה להתגבש עם התרחבות השימוש בתכנות מונחה-עצמים, בשנות התשעים המאוחרות של המאה ה-20, ובתחילת שנות האלפיים. תכנות מונחה-עצמים איפשר ליצור יישומים גדולים ומורכבים מאי פעם, מה שבתורו הצריך יותר תכנון ופיקוח ברמה הגבוהה. כמו כן, עם צמיחת הפופולריות של שימוש בארכיטקטורה רב-שכבתית בפיתוח תוכנה, גדל מספר האפשרויות השונות שבהן ניתן לממש יישומים. בעקבות התרחבות זאת, גדל במידה ניכרת גם הסיכון שפרויקט לפיתוח תוכנה ייצור בטעות מוצר "חדש", אשר למעשה כבר היה קיים קודם. גורמים אלה הביאו לצורך בתפקיד החדש, של "ארכיטקט תוכנה" בפרויקטים גדולים של פיתוח תוכנה.
תחומי אחריות
תחומי האחריות של ארכיטקט תוכנה כוללים:
- צמצום מספר האפשרויות השונות שניתן לבחור ביניהן במהלך הפיתוח, על ידי:
- בחירה של דרך סטנדרטית להשגת המטרות בזמן פיתוח התוכנה.
- יצירה, הגדרה או בחירה של תשתיות תוכנה המשמשות לפיתוח היישום.
- זיהוי אפשרויות לשימוש חוזר (reuse) בתשתיות קיימות במסגרת הארגון או בתוך היישום, על ידי:
- תצפית והבנה של המערכת והסביבה במובן הרחב.
- גיבוש עיצוב הרכיבים והמודולים שירכיבו את המערכת.
- הכרת המערכות והיישומים האחרים שקיימים בארגון.
- חלוקה של יישום מורכב לחלקים קטנים ונוחים יותר לניהול בשלב התכנון.
- הבנת הפונקציות של כל רכיבי המערכת.
- הבנת האינטראקציות והתלויות בין רכיבים.
- העברת רעיונות אלו למפתחים.
כדי לבצע משימות אלה בצורה יעילה, ארכיטקט תוכנה נעזר לעיתים קרובות בכלים או במודלים ומערכות סמלים סטנדרטיות כדוגמת ה-(Unified Modeling Language (UML ובמושגים של תכנות מונחה-עצמים על מנת לייצג את מבנה המערכות. UML הפכה לכלי חשוב עבור ארכיטקטי תוכנה לצורך הסבר התכנון הכללי של המערכת למפתחים ולחברי צוות אחרים, בדומה לשרטוטים שבהם משתמשים אדריכלים (ארכיטקטים של בניין).