2-2-10-درس: مهندسي نرم‌افزار

1401/09/21 14:30
فصل قبل

 

 سرفصل: مقدمه

مطلب درسي: تعريف، انواع و کاربردهاي نرمافزار

همانگونه که ميدانيم، سختافزار (Hardware) به بخشهاي فيزيکي و قابل لمس يک سامانه رايانهاي گفته ميشود. مواردي همچون مدارهاي الکتريکي و الکترونيکي، کابلها، محفظهها، تجهيزات ذخيرهسازي دادهها، تجهيزات نمايش/پخش اطلاعات و ... نمونههايي از سختافزار هستند.

نرمافزار (Software) به ترکيب برنامهها و دادههايي گفته ميشود که بر روي سختافزار نصب شده و به ارائه خدمت ميپردازند. نرمافزارها را ميتوان بسته به جايگاه و نقش آنها در کل سامانه به دو دسته کلي تقسيمبندي کرد: 1) نرمافزارهاي سيستمي يا پايه، 2) نرمافزارهاي کاربردي.

نرمافزارهاي سيستمي/پايه: نرمافزارهايي هستند که هدف اصلي از ساخت/خريد رايانه اجراي آنها نيست؛ بلکه آنها بر روي سامانه رايانهاي نصب و اجرا ميشوند تا فضا را براي نصب و اجراي نرمافزارهاي کاربردي آماده کنند. به عنوان مثال ميتوان به نرمافزارهايي همچون سيستمعامل[1] يا پادبدافزار[2] اشاره نمود. بديهي است که هيچکس ادعا نميکند هدف اصلي وي از ساخت/ابتياع رايانه آن بوده است که مثلاً سيستمعامل لينوکس يا ويندوز، يا فلان پادبدافزار و آنتي ويروس را بر روي آن نصب و اجرا کند!

نرمافزارهاي کاربردي: نرمافزارهايي هستند که هدف اصلي از ساخت/خريد رايانه ميباشند. اکثريت نرمافزارهايي که در اطرافمان ميبينيم در اين دسته قرار ميگيرند. انواع و اقسام نرمافزارهاي محاسباتي، اداري، نشر روميزي، بازيهاي رايانهاي، علمي و پژوهشي، ارتباطي، چندرسانهاي و ... را بايد جزو نرمافزارهاي کاربردي تلقي نمود.

اگر يک دانشگاه را همچون يک سامانه رايانهاي فرض کنيم، ميتوانيم ساختمانها، در و ديوار، کلاسّها، ميزها و صندليها، ماژيک و تختهسفيد و ... ساير موارد مشابه را سختافزارهاي آن فرض نمود. متقابلاً انسانهايي که وارد اين دانشگاه شده و به ايفاي نقش ميپردازند را ميتوان نرمافزارهاي آن تلقي کرد.

اين انسانها را نيز با همان معيار فوقالذکر ميتوان به دو دسته تقسيم کرد: دسته اول افرادي که هدف از تأسيس و فعاليت دانشگاه آنان نيستند، اما وجود و عملکرد صحيح ايشان ميتواند فضا را براي فعاليت مناسب دسته دوم افراد فراهم سازد. مسئولين، اساتيد و کارکنان دانشگاه از اين دسته هستند. دسته دوم افرادي که هدف از تأسيس و فعاليت دانشگاه هستند، يعني دانشجويان.

به عنوان مثالي متعاليتر، ميتوانيم کل جهان خلقت را يک رايانه در نظر بگيريم که خالق آن خداوند عظيم و کريم (جلّ و علي) است. در آن صورت مواردي همچون کوه، دشت، بدن مادي و مثالي و ... که محسوس هستند را ميتوان سختافزار اين رايانه بزرگ دانست.

تمامي موجودات غيرمحسوس جهان را نيز ميتوان نرمافزارهاي اين رايانه بزرگ دانست. به عنوان مثال ميتوان به عقل، روح، فرشتگان غيرمادي و ... اشاره کرد. اين موجودات خود به دو دسته تقسيم ميشوند:

دسته اول موجوداتي که هدف نهايي خلقت نيستند، بلکه وجود ايشان طفيل و مشروط به وجود دسته دوم هست. آنان خلق شدهاند تا نقش بسترساز را براي ايفاي نقش دسته دوم داشته باشند. آن دسته از موجودات غيرمحسوس جهان همچون فرشتگان که مدبّر امور جهان هستند و ... را ميتوان مثالهايي از اين دسته دانست.

دسته دوم موجوداتي هستند که هدف نهايي خلقت برشمرده شدهاند، يعني انسان، که همه چيز به خاطر او خلق شده، و  مسخر او گشته است: «أَنَّ اللَّهَ سَخَّرَ لَكُمْ‏ ما فِي السَّماواتِ وَ ما فِي الْأَرْضِ»؛[3]خداوند آنچه را در آسمانها و زمين است مسخّر شما كرده‏.

طبيعتا انسان کامل، بالاترين مرتبه از هدف آفرينش خواهد بود همان طور که  در مورد روح مقدس پيامبر اکرم a وارد شده است که اگر او نبود، خداوند افلاک را نميآفريد[4]. و نيز فرمودهاند که اگر حجتهاي الهي در زمين نباشند، زمين اهل خود را فرو ميبرد[5].

سرفصل: متريک و اندازهگيري

مطلب درسي: تعريف متريکهاي فرآيند ومحصول نرمافزاري

متريک فرآيند توليد و محصول نرمافزاري، مجموعه اندازهگيريهاي کمّيتي است که به کاربران نرمافزار اين امکان را ميدهد تا نسبت به کارآمد بودن فرآيند پروژههاي نرمافزاري بينش پيدا کنند.[6]

چهار دليل براي اندازهگيري کمّي منابع، محصولات و فرآيندهاي نرمافزاري ذکر شده است: {يکي از اساتيد مسلط به اين مبحث، بندهاي زير را اصلاح کنند}

 مشخص کردن (اندازهگيري) : براي رسيدن به فهم در مورد فرآيند ها، محصولات، منابع و محيط ها

 ارزيابي کردن: براي تعيين وضعيتها با توجه به طرح ها

 پيش بيني کردن: براي کسب توانايي طرح ريزي

 پيشرفت کردن: پيدا کردن فرصتهايي براي بهبود کيفيت محصول و عمليات پردازشي

نه تنها در زمينه برنامه نويسي بلکه در زمينه علوم و فنون مختلف، اندازهگيري و بيان کمّي براي قابل اندازهگيري و ارزيابي کردن معيارهاي کيفي وجود دارد. اما يک سؤال مطرح است: آيا اين الگوواره[7]ي «کمّي کردن هر چيز کيفي» که استيلايي عميق در نظام فکري رايج در جهان کنوني دارد، در همه امور صحيح بوده و اصولاً شدني هست؟! به عنوان مثال در نگرش رايج از علوم انساني که هرکدام با وجهي از وجوه متعدد شئون شخصي و اجتماعي انسان سرکار دارند، با همين نوع الگو مواجه ميشويم. تا جائي که حتي سعي ميکنند رفتارهاي انسان را با اندازهگيري تعداد و شدت سيگنالهاي الکتريکي سلولهاي مغزي او تحليل کرده و بعد با داروهاي شيميائي آنها را اصلاح کنند!

واقعيت آنست که خود غربيها هم به اين نتيجه رسيدهاند که چنين تعميمي امکان پذير نيست. لذا براي رفع اين مشکل دو کار کرده و ميکنند:

اول، معارف و مفاهيم معنوي که اصولاً کمّي نيستند تا قابل اندازهگيري باشند را با تيغ انکار از ريشه حذف ميکنند (پاک کردن صورت مسئله!). مثلاً مفاهيم مابعدالطبيعه، موجودات غيبي و ساير موارد مشابه.

دوم، با نگاهي سکولار، معارف و مفاهيم کيفي ديگر را آنچنان هَرَس ميکنند که آنچه از آنها باقي ميماند قابل کمّيسازي و اندازهگيري کمّي باشد! به عنوان مثال ميتوان به علوم اقتصاد، حقوق و ساير موارد مشابه اشاره نمود. اصولاً پارهاي از معتقدان به نظام فکري رايج در دنيا، ادعا ميکنند که: «آنچه که قابل اندازهگيري نباشد، علمي نيست!». در پاسخ بايد به ايشان گفت: ميزان صحت همين اعتقاد شما به جمله فوقالذکر را چگونه با مقداري کمّي ميسنجيد؟! بديهي است که اعتقاد فوق يک مفهوم کيفي است و قابل کمّيسازي نخواهد بود، لذا طبق استدلال خودشان «علمي» نبوده و قابل اثبات نيست.

بر دانشگاهيان مسلمان است که عنان فکر و روح خود را به صورت چشمبسته در اختيار سردمداران نظام فکري رايج قرار نداده و از آزادانديشي و نقادي منصفانه الگووارههاي آنها ترسي به خود راه ندهند.

سرفصل: متريک و اندازهگيري

مطلب درسي: شناسايي مخاطرات[8]

شناسايي مخاطرات عبارتست از يک تلاش نظاممند براي تعيين تهديدهايي که متوجه طرح پروژه هستند. يک روش شناسايي مخاطرات عبارتست از تهيه «فهرست نظارتي»[9] حاوي موارد مخاطرهآميز احتمالي که از آن ميتوان براي شناسايي مخاطرات و نقاط عطف مربوط به مسائل فرعي شناخته شده استفاده کرد.

در اينجا توجه به سه نکته مهم و کليدي است:

فقط پروژههاي نرمافزاري نيستند که با مخاطرات گوناگوني مواجهاند؛ بلکه تقريباً هر فعاليت و پروژه عمراني و توسعهاي در سطح جامعه را بايد داراي مخاطرات مختلفي دانست.

هر فعاليت و پروژه با دو گونه مخاطرات در ارتباط است: اول، مخاطراتي که ادامه آن را با مشکلات و موانعي مواجه ميکند. دوم، مخاطراتي که خود آن فعاليت يا پروژه ميتواند براي ساير بخشهاي فرهنگي، اجتماعي، اقتصادي، سياسي و ... ايجاد کند.

مهمترين مخاطراتي که يک فعاليت يا پروژه ميتواند براي ساير بخشهاي اجتماع ايجاد کند «مخاطرات فرهنگي» است، که به تجربه ثابت شده است ميتواند در صورت غفلت آثار بسيار زيانباري در جامعه به جا بگذارد و باعث شود که عملاً ضرر يک پروژه به ظاهر مفيد توسعهاي بيش از منفعت آن براي جامعه باشد!

در اين باره مثالهاي فراواني در کشور خودمان و در سرتاسر جهان ميتوانند مورد اشاره قرار گيرند که در اينجا به تعداد اندکي از آنها، اشارهاي مختصر ميشود (بيان مثالهاي بيشتر و بهتر در کلاس درس بر عهده اساتيد محترم):

الف)رواج و تبليغ شديد روستاهاي گردشگر محور و بومگردي: تبديل روستاها از مراکزي توليدي به محلهايي تفريحي و گردشگري + تبديل تدريجي روحيه سختکوشي روستائيان به مطالبهگري درآمدهاي آسان ارزي از قِبَل گردشگران خارجي + ورود مخفيانه و تدريجي فرهنگ منحط غرب به عمق اجتماع کمتر دستخورده روستاهاي کشور و استحاله فرهنگي در روستاها که نسبت به شهرهاي کشور کمتر آسيبهاي فرهنگي و اجتماعي داشتهاند + تبديل اقتصاد روستاها به اقتصادي که کمترين ميزان استقلال را خواهد داشت و در آينده به راحتي با اهرم تحريم و فشار و جلوگيري از ورود گردشگران خارجي به ايران، اقتصاد مراکز بومگردي که ديگر وابسته شدهاند را به راحتي نابود خواهند کرد! + در حالي که اگر مخاطرات اين طرح ديده ميشد، امکان آنکه حسابشدهتر از اين فرصت بهره برد و از مخاطرات آن پرهيز نمود نيز وجود داشت. مثلاً اينکه بررسي شود که چه روستاهايي مناسب راهکارهاي بومگردي هستند، يا اينکه چگونه طرحهاي گردشگري اجرا شود که نه تنها انگيزه توليد را کاهش ندهد بلکه خود مقوي و رونقدهنده آن باشد.

ب)طرحهاي جديد و نوسازي بافت شهري شهرهاي ايران از شروع حکومت پهلوي تاکنون: بدون برنامه و جامعنگري لازم + از بين بردن پيوستگي معماري ايراني اسلامي در بافت شهرها + مقدمهسازي براي تغيير تدريجي در سبک زندگي مردم و استحاله فرهنگي جامعه + ...

ج) توسعه کمّي دانشگاهها و مراکز آموزش عالي در سطح کشور پس از انقلاب: بدون برنامه و جامعنگري لازم + بردن دانشجويان از شهرهاي بزرگ به شهرهاي کوچک و ايجاد مشکلات فرهنگي متعدد در شهرهاي کوچک + افت شديد کيفيت آموزش عالي و رواج مدرک گرايي + ...

د) ورود فناوريهاي جديد مانند تلفن همراه، اينترنت، پيام رسانها: قبل از آنکه اين فناوريهاي مفيد وارد جامعه شود، انديشمندان و به عبارتي عقلاي قوم بايد فوايد و زيانهاي قطعي و احتمالي آنها را در ابعاد مختلف فرهنگي، اجتماعي، اقتصادي، طبي و ... مورد مطالعه قرار دهند و براي پيشگيري از مخاطرات، راهکارهايي تعيين کنند. بعد از آنکه ضمانت اجراي آن مشخص شد، با چشماني باز اجازه ورود به آن فناوريها را بدهند. اگر چنين اتفاقي بيفتد کشور فعالانه با پديده هاي نو برخورد کرده و در غير اين صورت منفعل و صرفاً تاثيرپذير و مصرف کنندهاي بياختيار است.

ه) مثالهاي متنوع و متعدد ديگري نيز قابل بيان است که به اختصار ميتوان به ورود انواع و اقسام اسباببازيها، لوازمالتحرير، مدلهاي جديد کسب و کار و ... اشاره نمود.  

يکي از پيشنهادهاي معروف ارائه شده در اين رابطه، لزوم ايجاد يک «پيوست فرهنگي» براي کليه فعاليتها و پروژههاي توسعهاي کشور، و مدنظر قرار دادن محتواي آن در کليه فرآيند اجرا و بهرهبرداري ميباشد. البته متأسفانه طي چهار دهه که از انقلاب اسلامي ميگذرد، هنوز شاهد فعاليت جدي در اين رابطه نيستيم!

سرفصل: دوره زندگي نرمافزار (Software Lifecycle)

مطلب درسي: نگارشهاي نرمافزار (Software Versions)

هر نرمافزار ميتواند بسته به شرايط به تدريج کاملتر و بهتر شود. به اين منظور از مفهوم نگارشهاي مختلف يا Versioning استفاده ميشود. هر نگارش نسبت به نگارش قبلي خود ميتواند شامل 1- تحولات بنيادين و ساختاري، 2-بهبودها و توسعههاي عملياتي، و/يا 3-اصلاحات ايرادات نگارشهاي قبلي باشد.[10]

انسان را نيز ميتوان همچون رايانهاي دانست که سازنده آن (خداوند متعال) برايش برنامهاي جامع تهيه کرده است که داراي نگارش هاي مختلف بوده و به مرور کامل تر شده است؛ اين برنامه جامع در ادبيات مذهبي «دين» ناميده ميشود.

همانگونه که برنامههاي رايانهاي داراي نگارشهاي مختلفي هستند که هرکدام از قبلي کاملتر و بهتر است، دين الهي نيز داراي نگارشهاي مختلفي است که به تدريج بهتر و کاملتر شده است. در ادبيات مذهبي به اين نگارشهاي مختلف از دين الهي «شريعت» گفته ميشود[11]. بنابراين ميتوان متوجه شد که شريعتهاي حضرات نوح، ابراهيم، موسي، عيسي b و شريعت حضرت محمد a همگي به ترتيب نگارشهاي جديدتر و کاملتر يک دين الهي هستند که نام آن «دين اسلام» است.[12] به همين دليل است که کليه موحدين و معتقدين واقعي شريعتهاي الهي را نيز در زمان رسميت آن شريعت ميتوان «مسلمان» ناميد[13]. ضمناً توجه به اين نکته نيز مفيد است که در قرآن کريم هيچگاه «دين» به صورت جمع «اديان» نيامده است و ميتوان به خوبي از اين موضوع استنتاج نمود که در پيشگاه خداوند دين تنها يکي است و نام آن اسلام است که شايد يکي از بهترين معاني آن «تسليم بودن کامل در برابر امر خداوند» باشد.

جهت مطالعه بيشتر:

در دنياي نرمافزارهاي رايانهاي با آمدن نگارش جديد يک برنامه، نگارش قبلي آن از رسميت ساقط شده و توليدکننده نرمافزار همگي کاربران را توصيه اکيد به ارتقاء[14] نرمافزار خود به نگارش جديد ميکند. به همين صورت نيز در دين اسلام (دين الهي) با آمدن هر شريعت، شريعتهاي قبلي از رسميت ميافتند و خداوند حکيم فرمان ميدهد که همگي انسانها لازم است شريعت جديد (نگارش جديد دين اسلام) را در وجود خود جايگزين نگارش قديمي نمايند. به عنوان مثال با آمدن شريعت حضرت عيسي g به همه مؤمنان به شريعت حضرت موسي g امر شد تا شريعت جديد را جايگزين شريعت قبلي نمايند. همينطور است نسبت شريعتِ پيامبر اکرم a به شريعت حضرت عيسي g.

لازم است فرهيختگان گرامي به اين نکته توجه داشته باشند که در عين شباهتهاي زيادي که بين مفاهيم نگارشهاي برنامههاي رايانهاي و نگارشهاي دين الهي وجود دارد، تفاوتهايي نيز قابل ذکر است:

اول اينکه برخلاف نگارشّهاي نرمافزارهاي رايانهاي که ميتوانند مشتمل بر «تغييرات ساختاري و گاه بنيادين» نسبت به نگارشهاي قبلي باشند، شريعتهاي الهي (به عنوان نگارشهاي دين اسلام) هيچگاه چنين تغييراتي را شامل نيستند و اصول آنها کاملاً ثابت و پايدار ميباشد. دليل اين موضوع نيز کاملاً مبرهن است: طراح و برنامهنويس اين «برنامه جامع زندگي انسان» همان خالق متعال اوست که ساحت قدس او بري از هرگونه سهو و خطا و جهل است. ضمن آنکه او منزّه از آنست که رشد کند يا علم/قدرتش تکامل يابد. لذا در همان طراحي اوليه کليه اصول و ساختارهاي بنيادي مورد نياز به شکل اتمّ و اکمل ديده شده است. در حالي که يک انسان (يا گروهي از انسانهاي) طراح و برنامهنويس رايانه فاقد خصوصيات فوقالذکر است. او نه ميتواند ادعا داشته باشد که از سهو و خطا و جهل ايمن است و نه آنکه علم و قدرتش بينهايت و غيرقابل تکميل است. به همين دليل ممکن است پس از مدتي که از ارائه نگارش جديد يک نرمافزار رايانهاي گذشت، متوجه آن شود که اساساً طراحي اوليه برنامه داراي اشکالات بنيادي است و لذا بايستي در نگارش بعدي کلاً تغيير کند[15].

دوم آنکه گرچه تغييرات از جنس «بهبودها و توسعههاي عملياتي» مشابه با نگارشهاي نرمافزارهاي رايانهاي در شريعتهاي الهي نيز وجود دارند، اما علت و محرک آنها متفاوت است. در نرمافزارهاي رايانهاي علت و محرک در بسياري از مواقع همان موارد فوقالذکر (سهو، خطا، جهل و تکامل دانش/توانمندي طراح و خالق برنامه) است. در حالي که در شريعتهاي الهي علت و محرک اصلي اين تغييرات نسبت به شريعت قبلي همانا تکامل تدريجي ظرفيت وجودي انسانها و جوامع انساني است. به عنوان مثال انسانها و جوامع انساني عصر حضرت نوح g ظرفيت آنکه شريعت حضرت موسي g را بفهمند و اجرايي کنند را نداشتند. همچون رايانهاي که هنوز مشخصات سختافزاري آن (همچون قدرت پردازنده، ظرفيت و سرعت حافظه اصلي، حجم ذخيرهسازي ديسک سخت و ...) امکان اجراي نگارش جديدتري از نرمافزار فعلي را ندارد.

سوم آنکه تغييرات از جنس «اصلاح ايرادات نگارشهاي قبلي» مشابه با نگارشهاي نرمافزارهاي رايانهاي در شريعتهاي الهي نيز وجود دارند، اما خواستگاه ايرادات مذکور گاهي متفاوت با مثال نرمافزارهاي رايانهاي است. در نرمافزارهاي رايانهاي اشکالات و ايرادهاي موجود را ميتوان به دو دسته تقسيم نمود: اول مواردي که ناشي از خطاي طراح يا برنامهنويس هستند (موسوم به Bug). دوم مواردي که ناشي از خطاي عوامل بيروني همچون نفوذگران/خرابکاران، ويروسهاي رايانهاي، خطاهاي فاحش کاربران و ... هستند. ارائهکنندگان نرمافزارهاي رايانهاي ممکن است براي رفع هر دو نوع مشکل فوقالذکر نگارشهاي جديدي از نرمافزار خود را ارايه کنند. اما خواستگاه ايرادهاي احتمالي بوجود آمده در شريعتهاي الهي تنها خطاي عوامل بيروني همچون خطا/سهو/فراموشي عالمان ديني، تحريفهاي عالمانه و عامدانه افراد فاسد در طول تاريخ، بحرانهاي اجتماعي و ... است. زيرا ساحت قدس حضرت حق منزه از هرگونه خطا، سهو، فراموشي، اشتباه، جهل و موارد مشابه است و لذا نسخه اصلي همه شريعتهاي الهي فاقد هرگونه خطا و ايراد در زمان خود بودهاند. بنابراين شريعتهاي جديد الهي نه براي رفع خطاهاي موجود در نسخه اصلي شريعت پيشين خود، که بعضاً براي رفع تحريفها و خطاهايي که ديگران وارد آن شريعتها کردهاند، ارائه شدهاند.

در پايان به يک نکته ظريف ديگر نيز در اين رابطه اشاره ميشود: نظام انفورماتيکي يک سازمان بزرگ را در نظر بگيريد که شامل تعداد زيادي رايانه و شبکههاي ارتباطي بين آنهاست و همگي آنها نگارشي از يک نرمافزار جامع (مثلاً سيستمعامل) را نصب کرده و اجرا ميکنند. حال اگر نگارش جديدي از نرمافزار جامع مذکور ارائه شود، اما بعضي از رايانهها (افراد) يا شبکههاي رايانهاي (جوامع) موجود در اين سازمان فاقد کفايت لازم براي نصب و اجراي نگارش جديد نرمافزار باشند، چه بايد کرد؟ در دنياي مهندسي نرمافزار گفته ميشود در اينگونه موارد يا بايد مشخصات سختافزاري رايانهها/شبکههاي ضعيف موجود در سازمان را ارتقاء داد، يا در صورتي که به هر دليل چنين ارتقايي به سرعت براي بعضي از آنها امکانپذير نيست، ميتوان براي مدت محدودي به عدم ارتقاي نرمافزار موجود بر روي آن مجموعه محدود از رايانهها/شبکهها در کل نظام انفورماتيکي سازمان حکم کرد تا شرايط مناسب ارتقاء فراهم شود.

 

 


[1].  Operating Sys‌tem.

 

[2].  Anti-Malware.

 

[3].  لقمان:20.

 

[4].  «لولاک لما خلقت الافلاک» (حديث قدسي: کتاب «جنّة العاصمة» نوشته علامه ميرجهاني).

 

[5].  «لولا الحجة لساخت الارض باهلها» (حديث امام جعفر صادق g: کتاب «غيبت نعماني»، بخش روايات درباره لزوم حجة در زمين ص 155).

 

[6].  مباني مهندسي نرم افزار، ص 62.

 

[7].  Paradigm

 

[8].  Risk

 

[9].  Check Lis‌t

 

[10].  براي آشنايي بيشتر با مفاهيم مطرح در اين حوزه ميتوانيد به منابع مختلف موجود و از جمله مقالهاي با عنوان QAVNS: Quadruple Adaptive Version Numbering Scheme مراجعه فرمائيد.

 

[11].  با جستجو مشاهده کرديم که ظاهراً در همه جاي قرآن کريم براي معناي «شريعت» يا «آئين»، کلمه «ملت» به بکار برده شده است.

 

[12].  « إِنَّ الدِّينَ عِندَ اللَّـهِ الْإِسْلَامُ»: دين در نزد خدا، اسلام است. (سوره مبارکه آل عمران – آيه 19).

 

[13].  « مَا كَانَ إِبْرَاهِيمُ يَهُودِيًّا وَلَا نَصْرَانِيًّا وَلَـكِن كَانَ حَنِيفًا مُّسْلِمًا»: ابراهيم نه يهودي بود و نه نصراني؛ بلکه موحّدي خالص و مسلمان بود. (سوره مبارکه آل عمران – آيه 67).

 

[14].  Upgrade

 

[15].  در مهندسي نرمافزار به اينگونه تغييرات Major Changes گفته ميشود.

 

فصل بعد
نقدها و نظرات