- מודולים עיקריים ועזרים
- תכונות תכנות מודולריות
- מודולריות
- הגדרת פונקציה
- היקף המשתנים
- זה פרוצדוראלי
- דוגמאות תכנות מודולריות
- מודולריות בחיים האמיתיים
- פונקציות ב- Java
- יתרון
- תכנות פרויקט עצמאי
- פיתוח יעיל של תוכניות
- שימוש מרובה במודולים
- קלות באגים ושינוי
- חסרונות
- מבנה מוכוון-עצמים יתר על המידה
- מודולים קטנים מדי
- לפרק ללא סיבה
- יישומים
- שפת C
- הפניות
מודול היא טכניקה המשמשת לפיתוח תוכנה, איפה התוכנית מחולקת רבים בלוקים קטנים או רכיבים אוטונומיים נקרא מודולים, אשר ניתן לנהל, לוגי ופונקציונלי.
המודול הוא גוש אמירות הפותר בעיה מסוימת. כל מודול מכיל את כל הדרוש כדי לממש את הפונקציונליות שלו וניתן לערוך אותו או לשנות אותו מבלי להשפיע על שאר הפרויקט.
דוגמה לפיתרון בעיה באמצעות מודולים. מקור: Kayau / CC BY (https://creativecommons.org/licenses/by/3.0)
דרך זו של תכנות מושגת על ידי שמירה על ממשק מודול קבוע המשמש רכיבי תוכנה אחרים על מנת לגשת לפונקציות של כל מודול.
מודולים מציבים גבולות לוגיים בין רכיבים, ומשפרים את תחזוקתם. הם משולבים באמצעות ממשקים, המתוכננים בצורה שתמזער את התלות בין המודולים השונים.
מודולים עיקריים ועזרים
מודול ראשי וכמה מודולים משניים הם המרכיבים את התכנות המודולריות. מהמודול הראשי מתבצעות שיחות לפונקציות של מודולי העזר.
תוספים אלה קיימים כקבצי הפעלה נפרדים, אשר נטענים כאשר המודול הראשי פועל. לכל מודול שם ייחודי שהוקצה בהצהרת PROGRAM.
צוותי העבודה יכולים לפתח מודולים שונים בנפרד מבלי שהם צריכים להכיר את כל המודולים של המערכת. כל אחד מהיישומים המודולריים משויך למספר גרסאות בכדי לספק גמישות למפתחים בתחזוקת המודול.
תכונות תכנות מודולריות
מודולריות
מחשב אינו זקוק לגירסה מפוצצת של הקוד בכדי להריץ אותו. המגבלות הקוגניטיביות האנושיות מכריחות אותך לכתוב קוד בגזרות קטנות יותר.
תוכנית יכולה להכיל פונקציות אחרות ויכולה גם להתייחס לפונקציות שנמצאות בקבצים אחרים. פונקציות או מודולים אלה הם קבוצות של הצהרות המשמשות לביצוע פעולה או לחישוב ערך.
על מנת לשמור על פשטות וקריאות בתוכנות גדולות ומורכבות, משתמשים בפונקציה ראשית קצרה בשילוב עם פונקציות אחרות, ולא פונקציה ראשית ארוכה.
על ידי הפרדת תוכנית לקבוצות מודולים, כל מודול יהיה קל יותר להבנה ובכך עומד בהנחיות הבסיסיות של תכנות מובנית.
הגדרת פונקציה
פונקציה מורכבת מהצהרה על הגדרתה ואחריה פקודות והצהרות. הצורה הכללית של פונקציה היא:
שם פונקציה (הצהרת פרמטרים) {
משפטים;
פקודות;
ביטוי חוזר;
}
- הצהרת הפרמטרים מייצגת את המידע המועבר לפונקציה.
- משתנים נוספים המשמשים במיוחד את הפונקציה מוגדרים במשפטים.
- על כל הפונקציות לכלול הצהרת החזרה.
היקף המשתנים
משתנים המוצהרים במסגרת הפונקציה הראשית או בפונקציות המוגדרות על ידי המשתמש נקראים משתנים מקומיים. לאלה יש ערך כאשר הפונקציה מבצעת, אך הערך שלהם לא נשמר בסיום הפונקציה.
משתנים המוצהרים כחיצוניים לתוכנית הראשית או לפונקציות המוגדרות על ידי המשתמש נקראים משתנים גלובליים. ניתן לקחת משתנים אלה מכל פונקציה שנמצאת בתוך התוכנית.
זה פרוצדוראלי
תכנות מודולרית די פרוצדורלית, מכיוון שהיא מכוונת לחלוטין לכתיבת קוד לפונקציות, מבלי לקחת בחשבון את הנתונים.
דוגמאות תכנות מודולריות
מודולריות בחיים האמיתיים
נניח בית שיש בו חשמל, עם כמה שקעים על הקירות. מערכת זו מאפשרת לחבר מכשירים חשמליים שונים, למשל מיקרוגל, מכונת כביסה, מייבש וכו '.
מכשירים אלה נועדו לבצע את המשימה הספציפית שלהם כאשר הם מחוברים ומופעלים, ללא קשר למיקומם.
המודולים של יישום חייבים לעמוד באותה פילוסופיה. המשמעות היא שהם רק צריכים לבצע את המשימה הספציפית שלהם לא משנה באיזה חלק מהיישום הם נמצאים, או אפילו לאיזה יישום הם מחוברים.
כמו כן, כשם שניתן לנתק בקלות את המכשיר החשמלי מהשקע, יש לתכנן מודול בצורה כזו שניתן יהיה להסיר אותו בקלות מיישום.
כשם שהסרת מכשיר חשמלי אינה משפיעה על הפונקציונליות של שאר המכשירים המחוברים, הסרת מודולים מיישום לא אמורה להשפיע על הפונקציונליות של המודולים האחרים של אותו יישום.
פונקציות ב- Java
ב- Java מודולים נכתבים כפונקציות עצמאיות. לדוגמה, ייתכן שיש לך פונקציה או חסימת קוד לחישוב ה- GPA של התלמיד בהתבסס על ציוניהם בכל הקורסים שהם לקחו.
הפונקציה צריכה להשיג את רשימת הציונים כקלט ואז להחזיר את ממוצע הציונים המחושב:
פונקציה זו נקראת CalculAverageNote. הוא מקבל כקלט רשימת הערות, באמצעות מערך של סוג נתונים כפול ומחזיר את הממוצע המחושב.
בפונקציה, הסכום המשתנה המקומי מאתחל לאפס ואז, באמצעות לולאה for, כל הכישורים מתווספים לסכום. לבסוף, הסכום המתקבל מחולק במספר השטרות, ומחזיר את הערך המתקבל.
אם למטריצת הקלט היו הערות 3.5, 3.0 ו 4.0, לאחר הוספתן, זה היה מסכם את הערך של 10.5 ואז מחלק על ידי 3, מכיוון שיש שלושה תווים. הפונקציה תחזיר את הערך 3.5.
יתרון
תכנות פרויקט עצמאי
מתכנתים מרובים יכולים לעבוד על אותו פרויקט אם הוא מחולק למודולים. מתכנתים שונים יכולים לתכנן באופן עצמאי מודולי תוכנה שונים, הנדרשים לתוכנית גדולה ומורכבת.
פיתוח יעיל של תוכניות
ניתן לפתח תוכניות במהירות רבה יותר, שכן מודולים קטנים ועצמאים קלים יותר להבנה, עיצוב ובדיקה מאשר תוכניות גדולות.
המתכנת יכול לספק את הקלט הדרוש ולאמת שהמודול נכון על ידי בחינת הפלט שלו.
שימוש מרובה במודולים
קוד שנכתב לתכנית אחת מועיל לעתים קרובות לאחרים. תכנות מודולרית מאפשרת לשמור חלקים אלה לשימוש עתידי. מכיוון שהקוד ניתן להעתקה, ניתן לקשר את המודולים השמורים לכל תוכנית אחרת העונה לדרישות הקלט והפלט.
עם תכנות מונוליטית, חלקי קוד כאלה מוטמעים בתוכנית ואינם זמינים לשימוש על ידי תוכנות אחרות.
קלות באגים ושינוי
מודול קטן מתוכנית מלאה, כך שקל יותר לבדוק. ניתן לכתוב ולבחון כל מודול בנפרד משאר התוכנית. לאחר שנבדק מודול, ניתן להשתמש בו בתוכנית חדשה מבלי שתצטרך לבדוק אותו שוב.
כאשר יש לשנות תוכנית, תכנות מודולרית מפשטת את העבודה. ניתן לקשר מודולים חדשים או ניתקים באגים לתוכנית קיימת מבלי לשנות את שאר התוכנית.
חסרונות
מבנה מוכוון-עצמים יתר על המידה
תכנות זו משתמשת בממשקים, שזה רעיון די יעיל. כדי לנצל זאת, מסגרות מסוימות מגיעות עם מערך מלא של שיעורים הניתנים להחלפה. לדוגמה, כדי להתמודד עם התמדה, יתכנו מספר כיתות המיישמות ממשק התמדה.
עם זאת, סביבות פיתוח משולבות (IDEs) מתבלבלות בעניין זה. לדוגמה, ייתכן שתנסה למצוא את המקור לשיטה, ו- IDE לא יידע איזו שיטה ברצונך לראות, וכך להציג רשימה ארוכה של קבצים שבהם קיימת שיטה עם שם זה.
מודולים קטנים מדי
ישנם המון מודולים שמכילים רק פונקציה קטנה מאוד. כל מודול דורש זמן ניתוח ועיבוד נוסף, בנוסף לכותרת שלו בקוד.
לכן, שימוש במודולים קטנים רבים יוסיף תקורה למערכת ההדרכה, ויגדיל את גודל החבילה.
לפרק ללא סיבה
חלק מהקודים כמעט ולא משתנים. במקרים אלה לא נראה הגיוני לנסות לגרום לו להראות נקי יותר או עם היגיון מופשט, אם פשוט השימוש בו עובד מצוין.
ישנם קודים שלא נראים יפה מדי, ובכל זאת הם לא השתנו הרבה בשנים האחרונות. אין שום סיבה לפרק קוד שמעולם לא השתנה וכבר עובד טוב למודולים.
יישומים
תכנות מודולרית זה רק מושג. ניתן ליישם את התרגיל שלה בכל שפת תכנות, במיוחד אלה בעלי אופי פרוצדורלי, שיש להם תוכנית מורכבת בנפרד.
ניתן לשלב ספריות רכיבים הבנויות ממודולים מורכבים בנפרד לסט באמצעות כלי תכנות הנקרא קישור.
שמות הפונקציות במודולים השונים חייבים להיות ייחודיים על מנת להקל על הגישה שלהם למקרה שיש לייצא את הפונקציות המשמשות את המודול הראשי.
בין שפות התכנות התומכות במושג התכנות המודולרי ניתן למנות את C, עדה, PL / I, Erlang, פסקל, Algol, COBOL, RPG, Haskell, Python, HyperTalk, IBM / 360 Assembler, MATLAB, Ruby, IBM RPG, SmallTalk, Morpho, Java (חבילות נחשבות למודולים), Perl וכו '.
שפת C
ניתן ליישם תכנות מודולרית בשפת C מכיוון שהיא מאפשרת לתקן קושי משמעותי על ידי הפרדתו למספר מודולים.
כל אחד מהמודולים הללו פותר בעיה מסוימת, ואילו התוכנית הראשית, שהיא מערכת הנהלים מסוג זה, פותרת את הבעיה כולה.
כל פונקציה המוגדרת ב- C נגישה כברירת מחדל ברחבי העולם. ניתן לעשות זאת על ידי הכללת קובץ כותרת, בו מוגדרת יישום הפונקציה.
כדוגמה, אנו רוצים להכריז על סוג נתוני מחסנית וגם כי היישום ומבנה הנתונים מוסתר מהמשתמשים.
ניתן לעשות זאת על ידי הגדרת תחילה קובץ ציבורי בשם stack.h, שיכיל את הנתונים הכלליים עם סוג נתוני הערימה ואת הפונקציות הנתמכות על ידי סוג נתוני הערימה.
stack.h:
חיצוני stack_var1;
extern int stack_do_something (בטל);
כעת תוכלו ליצור קובץ בשם stack.c המכיל את היישום של סוג נתוני הערימה:
הפניות
- CIO Wiki (2019). תכנות מודולרית. נלקח מ: cio-wiki.org.
- הגדרות IT (2020). תכנות מודולרית. נלקח מ: defit.org.
- ניו מקסיקו טק (2020). תכנות מודולרי עם פונקציות. נלקח מ: ee.nmt.edu.
- כריסטיאן מיולי (2020). 3 טכניקות יצירה לכתיבת קוד מודולרי. ביקון טק. נלקח מ: techbeacon.com.
- Geeks for Geeks (2020). גישה מודולרית בתכנות. נלקח מ: geeksforgeeks.org.
- מחקר (2020). תכנות מודולרי: הגדרה ויישום ב- Java. נלקח מ: study.com.