جزوه تایپ شده میدان ها و امواج
استاد سهیل آزادی نیا خلاصه کتاب دانشگاه علمی کاربردی استاد ملکپور دانشگاه صنعتی شریف کاردانی کارشناسی ارشد غلامدانشگاه سراسری آزاد دانلود
«)) ؟» : «؟»
-؛ ؟ ؟ ً ؟ ؛ ؟ ؟ ()، ؟ :« () ً » : «؟» : «ً » : « ؟».: « » : « ؟» : « » : « ؟»
– « »
«؟»
: «؛ »
: «؟»

«؛ »
«»
: «- »
« ؟»
: « ً »
؛ ؛()، ()، () ؛ ً ؛ ؛؛ () ً () ( ) ؛ (). ً ؛ -:
• ً یک برنامهی خاص رشد چشمگیری داشته است.برای درک مشکلات موجود، باید قبل از ایجاد یک راهحل نرم افزاری، به صورت یکپارچه تلاش شود.
• هر ساله، مقررات موردنیاز در فناوری اطلاعات توسط افراد، مشاغل و دولتها پیچیدهتر می شود. امروزه افراد زیادی، مشغول به طراحی برنامههای کامپیوتری هستند. نرم افزار پیچیده ای که زمانی در یک محیط کامپیوتری مستقل و قابل پیش بینی پیاده سازی شد، امروزه در همه زمینهها، از لوازم الکترونیکی مصرفی گرفته تا ابزارهای پزشکی و خودروهای اتوماتیک به اجرا در آمده است.طراحی، به یک فغالیت اساسی تبدیل شده است.
• افراد، مشاغل و دولتها روز به جزوه میدان ها و امواج بیشتر در تصمیمگیریهای هدفمندانه، فعالیتهای روزانه و نظارتهای خود، به نرم افزارها تکیه میکنند.در صورت بروز اختلال در این نرم افزارها، مردم و شرکت های بزرگ می توانند متحمل مشکلاتی از آسیبهای جزئی گرفته تا عواقب فاجعه بار شوند.بنابراین نرم افزارها باید از کیفیت بالایی برخوردار باشند.
• چنانچه ارزش درک ً ً ؛ ؛ ؛ ؛ ()،() ()؛ ( ) ؛ ؛ ()
• ؟
• ؟
• ؟
• ؟
• ؟
–ً ؟:
: ) ()، ؛ ) ؛ ) ؛ ؛ : “” -”” ً ()؛ ().ً ً “” -ً واضح است که نرم افزار فرسوده و کهنه نمیشود.اما میتواند خراب شود.میدان ها و امواج تناقض را میتوان با در نظر گرفتن منحنی موجود در تصویر 2-1، توضیح داد.در این شکل، تغییرات 3 نرم افزار بر حسب زمان نشان داده شده است.همزمان با ایجاد تغییرات، احتمالاً خطاهایی رخ میدهد که سبب افزایش ناگهانی خرابی میشود که این موضوع در “منحنی موجود” (در شکل 2-1)، قابل مشاهده است.
قبل از بازگشت منحنی خرابی به حالت پایدار، تغییر دیگری ایجاد میشود که مجدداً منحر به افزایش ناگهانی خرابی خواهد شد.به تدریج، حداقل میزان خرابی شروع به افزایش می کند؛ در این حالت، نرم افزار به دلیل تغییرات ایجاد شده، در حال خراب شدن است.نرم افزار و سخت افزار، در بحث فرسودگی تفاوت دیگری نیز دارند؛ وقتی یک بخش از سخت افزاری فرسوده می شود، با یک قطعهی یدکی جایگزین می شود، اما در نرم افزار قطعهی یدکی وجود ندارد.هر خرابی نرم افزار، بیانگر یک خطا در طراحی، یا فرآیند ترجمهی طرح، به کد اجرایی ماشین، میباشد. بنابراین ، تعمیر و نگهداری نرم افزار که تغییرات لازم را جزوه میدان ها و امواج می کند، به مراتب پیچیدگی بیشتری نسبت به تعمیر و نگهداری سخت افزار دارد.
1-1-2 دامنهی کاربرد نرم افزار
امروزه، هفت دستهی گسترده از نرم افزارهای کامپیوتری، دائماً مهندسین نرم افزار را با چالشهایی روبرو میکنند:
نرم افزار سیستم: مجموعه ای از برنامهها که جهت سرویس دهی به برنامه های دیگر طراحی شدهاند. برخی از نرم افزارهای سیستم(به عنوان مثال مؤلفان، ویرایشگران و برنامه های کاربردی مدیریت فایل)، علیرغم پردازش پیچیده، ساختارهای اطلاعاتی مشخصی دارند.سایر برنامه های سیستمی(به عنوان مثال، اجزای سیستم عامل، درایورها، نرم افزار شبکه سازی و پردازنده های ارتباط از راه دور)، عمدتاً داده های نامشخص را پردازش می کنند.
نرم افزار کاربردی: برنامه های مستقل، که یک نیاز خاص تجاری را برطرف می کنند.برنامههای کاربردی در این زمینه، با پردازش دادههای تجاری یا فنی، امور تجاری یا تصمیم گیریهای مدیریتی/فنی را تسهیل میکنند.
نرم افزار مهندسی / علمی: مجموعهی وسیعی از برنامههای “میدان ها و امواج عدد(برنامههایی با توان محاسباتی بالا)”، یا برنامههای تحلیل دادهها، از نجوم گرفته تا آتشفشان شناسی، از تجزیه و تحلیل کشش مستقل گرفته تا دینامیک دایرهای، از طراحی کامپیوتری تا روند سرمایهگذاری کاربران، و از تجزیه و تحلیل ژنتیکی تا علم هواشناسی را شامل میشود.
نرم افزار جاسازی شده: در داخل یک محصول یا سیستم قرار دارد و جهت پیاده سازی و کنترل دادهها و کارکرد برای کاربر نهایی و خود سیستم، به کار میرود. نرم افزار جاسازی شده می تواند عملکردهای محدود و پیچیدهای(به عنوان مثال، کنترل صفحه کلید اجاق مایکروویو) را انجام دهد، یا قابلیت عملکرد و کنترل قابل توجهی فراهم کند(به عنوان مثال، امور دیجیتالی در اتومبیل، مانند کنترل سوخت، صفحه نمایش داشبورد و سیستم ترمز).
نرم افزار خط تولید: این نرم افزارها متشکل از اجزای چند بار مصرفی هستند که طراحی شدهاند تا قابلیت های خاصی را جهت استفاده توسط بسیاری از مشتریان مختلف فراهم کنند. این گروه از برنامهها، ممکن است در یک بازار محدود و پیچیده(به عنوان مثال، ابزارهای کنترل موجودی) تمرکز کنند، و یا در زمینهی تولید انبوه، تلاش کنند.
نرم افزار وب/تلفن همراه: این گروه از نرم افزارهای شبکه محور، شامل برنامههای مختلفی مثل نرم افزارهای مبتنی بر مرورگر، رایانش ابری، رایانش مبتنی بر خدمات و نرم افزارهای تعبیه شده در تلفن همراه، میشوند.
نرم افزار هوش مصنوعی: این نرم افزارها، در مواقعی که قادر به محاسبهی منظم یا تجزیه و تحلیل مستقیم نباشیم، از روشهای ابتکاری استفاده میکنند.این برنامه ها شامل روباتها، سیستمهای تصمیم یار، تشخیص الگو(تصویر و صدا)، یادگیری ماشین، اثبات قضیه و بازی میشوند.
میلیون ها مهندس نرم افزار در سراسر جهان، سخت مشغول کار روی پروژههای نرم افزاری در زمینهی یک یا چند مورد از دستههای ذکر شده هستند.برخی پروژهها به ساخت یک سیستم جدید، و بسیاری به اصلاح، انطباق و بهبود برنامههای موجود میپردازند.عجیب نیست که یک مهندس نرم افزار جوان، روی برنامهای کار کند که قدمت بیشتری از خودش داشته باشد!نسلهای گذشته، نسخههای جزوه میدان ها و امواج از هر گروه از مجموعه نرم افزارها که بیان کردیم، به جا گذاشتهاند؛ امیدواریم نسخههای امروزی، کار مهندسان نرم افزار نسل آینده را آسان کند.
3-1-1 نرم افزار منسوخ شده
صدها هزار برنامهی کامپیوتری، هرکدام در یکی از هفت گروهی که در بخش قبلی بحث شد، قرار می گیرند.برخی از آنها، نرم افزارهای پیشرفته هستند؛ اما برخی قدیمی و گاهی حتی بسیار قدیمی هستند.میدان ها و امواج بسیار قدیمی که اغلب به عنوان نرم افزار منسوخ شده شناخته میشوند، از دههی 1960، دائماً مورد توجه قرار گرفتهاند.دایانی فرد و همکارانش، نرم افزار منسوخ شده را به صورت زیر تعریف میکنند:
سیستمهای نرم افزاری منسوخ شده…دههها قبل به وجود آمدهاند و دائماً جهت پاسخگویی به تغییرات نیازهای شغلی و سیستم عاملهای کامپیوتری، اصلاح شدهاند.به دلیل زیاد بودن این سیستمها، پیدا کردن آنها برای سازمانهای بزرگ دشوار است؛ همچنین حفاظت از آنها پرهزینه و توسعهی آنها خطرساز است.این تغییرات میتواند در نرم افزارهای منسوخ شده با کیفیت پایین، اثرات جانبی ایجاد کند.سیستم های منسوخ شده، گاهی دارای طراحیهای غیر قابل گسترش، کدهای پیچیده، اسناد نامعتبر یا ناموجود، موارد آزمایشی و نتایج بایگانی نشده، و یک تاریخچهی تغییرات هستند که به درستی مدیریت نشده است.اما علیرغم مشکلات زیاد، این سیستمها، اغلب از “عملکردهای اصلی” پشتیبانی میکنند و برای کسب و کار و تجارت، ضروری هستند.
اکنون چه باید کرد؟ معقولترین پاسخ میتواند این باشد: حداقل تا زمانی که نرم افزار منسوخ شده، نیاز به تغییرات اساسی پیدا نکرد، اقدامی نکنید؛ این نرم افزار، تا زمانی که پاسخگوی کاربران خود باشد و درست اجرا شود، خراب نیست و نیازی به تعمیر نخواهد داشت.با این حال، با گذشت زمان، سیستمهای قدیمی اغلب به یکی یا چند دلیل از دلایل زیر، تغییر میکنند:
• نرم افزار، باید پاسخگوی نیازهای محیطها و تکنولوژیهای کامپیوتری جدید، و متناسب با آنها باشد.
• نرم افزار، باید جهت پیادهسازی الزامات تجاری جدید، ارتقا یابد.
• نرم افزار باید توسعه یابد، تا در سایر سیستمها یا پایگاههای داده، قابل اجرا باشد.
• نرم افزار باید مجدداً بایگانی شود، تا بتواند در یک محیط کامپیوتری در حال توسعه، به اجرا در بیاید.
بنابراین به دلیل این تحولات، یک نرم افزار منسوخ شده باید مجدداً مهندسی شود تا در آینده دوام داشته باشد.هدف مهندسی نرم افزار مدرن، “ابداع روشهایی مبتنی بر مفهوم تکامل است؛ یعنی سیستمهای نرم افزاری دائماً تغییر میکنند، میتوان از سیستمهای قدیمیتر، نرم افزارهای جدیدتر ساخت، و…همه باید با یکدیگر تعامل و همکاری کنند”.
2-1 تعریف قوانین
مؤسسهی مهندسان برق و الکترونیک، مهندسی نرم افزار را اینگونه تعریف میکند:
مهندسی نرم افزار: استفاده از یک رویکرد منظم، قانونمند و قابل اندازه گیری، میدان ها و امواج توسعه، راهاندازی و جزوه میدان ها و امواج از نرم افزار، تعریفی از کاربرد مهندسی نرم افزار است.
تصویر 3-1
با این وجود، یک رویکرد “منظم، قانونمند و قابل اندازه گیری”، که توسط یک گروه از نرم افزارها اتخاذ میشود، ممکن است برای نرم افزار دیگر سنگین باشد.ما به نظم و انسجام و در عین حال به سازگاری و مهارت احتیاج داریم. مهندسی نرم افزار، یک فناوری چندلایه است.با توجه به نمودار موجود در تصویر 3-1، هر رویکرد مهندسی(از جمله مهندسی نرم افزار) باید براساس یک تعهد سازمانی به کیفیت باشد. احتمالاً راجع به مدیریت کیفیت جامع(TQM) یا شش سیگما و سایر فلسفههای مشابه، که فرهنگ اصلاح مداوم فرآیندها را پرورش می دهند، شنیدهاید.این فرهنگ است، که در نهایت به رویکردهای مؤثرتری در مهندسی نرم افزار میانجامد.پشتیبانی مهندسی نرم افزار، متمرکز بر کیفیت است.اساس مهندسی نرم افزار، لایه فرآیند است.فرایند مهندسی نرم افزار، مانند چسبی است که لایه های فناوری را به هم متصل کرده و آنها را قادر به اصلاح منطقی و به موقع نرم افزار کامپیوتر می سازد.فرایند، یک چارچوب برای ارائهی موثر فناوری مهندسی نرم افزار تعریف میکند.فرآیند نرم افزار، اساس کنترل مدیریت پروژه های نرم افزاری است و زمینهی اعمال روشهای فنی، ارائهی نتایج کار(مدل ها، اسناد، دادهها، گزارشها، فرمها و …)، ایجاد پیشرفتهای چشمگیر، تضمین کیفیت و احتمالاً مدیریت تغییرات را فراهم میکند.روش های مهندسی نرم افزار، راهکارهایی فنی جهت ساخت نرم افزار ارائه می میدان ها و امواج .این راهکارها شامل مجموعهی وسیعی از اقدامات، مانند ارتباطات، مقررات، تجزیه و تحلیل، مدل سازی، طراحی، ساخت برنامه، آزمایش و پشتیبانی است. روش های مهندسی نرم افزار، مبتنی بر مجموعه ای از اصول اساسی است که تمام حوزههای فناوری را تحت تأثیر قرار میدهد و شامل فعالیت های مدل سازی و سایر تکنیک های توصیفی است. ابزارهای مهندسی نرم افزار، به طور خودکار یا نیمه خودکار از فرآیند و روش ها پشتیبانی میکند.هنگام ادغام ابزارها، اطلاعات ایجاد شده توسط یک ابزار، میتواند توسط ابزار دیگر مورد استفاده قرار گیرد، در این حالت، سیستمی به نام مهندسی نرم افزار کامپیوتری، جهت پشتیبانی از توسعهی نرم افزار تشکیل خواهد شد.
3-1 فرآیند نرم افزار
فرآیند، مجموعه ای از فعالیت ها، اقدامات و وظایف انجام شده در مراحل تولید یک محصول میباشد.فعالیتهای مربوطه، جهت دستیابی به اهداف گوناگون(به عنوان مثال، ارتباط با سهامداران) و بدون توجه به دامنهی کاربرد و اندازهی پروژه، پیچیدگی مراحل کار، یا نوع مهندسی نرم افزار که در پیش گرفتهایم، انجام میشوند.اموری مثل طراحی معماری، شامل اقداماتی هستند که منجر به ارائهی جزوه میدان ها و امواج مثل مدل معماری میشود.هر اقدام، روی هدف کوچک اما مشخصی(مثل انجام یک واحد آزمایش)، تمرکز میکند که نتایج مشخصی به دنبال دارد. در زمینهی مهندسی نرم افزار، یک فرآیند، یک نسخهی دستوری برای ساخت یک نرمافزار کامپیوتری نیست.بلکه رویکردی قابل انطباق است که افراد مشغول به کار( تیم سازندهی نرم افزار) را قادر به انتخاب اقدامات و وظایف مناسب میکند.هدف، همواره ارائهی به موقع نرم افزار، با کیفیت بالا، جهت کسب رضایت سرمایهگذاران و کاربران است.
1-3-1 چارچوب فرآیند
چارچوب فرآیند، ضمن شناسایی تعدادی از فعالیتهای قابل اجرا در تمام پروژههای نرم افزاری، صرف نظر از اندازه و پیچیدگی آنها، اساس فرآیند مهندسی نرم افزار محسوب میشود. به علاوه، چارچوب فرآیند، شامل مجموعه ای از فعالیتهای حفاطتی است که در سرتاسر فرآیند نرم افزار، قابل اجرا هستند.در مهندسی نرم افزار، یک چارچوب فرآیند عمومی شامل پنج مرحله است:
ارتباطات. قبل از شروع هر کار فنی، برقراری ارتباط و همکاری با مشتری(و سایر سهامداران)، بسیار مهم است.هدف ما، درک اهداف سهامداران برای پروژه، و کمک به تعریف ویژگیها و عملکرد نرم افزار است.
برنامه ریزی. با وجود یک نقشه، هر پیچیدگی آسان خواهد شد.برای مثال، پروژهی نرم افزاری که امری پیچیده میباشد، به کمک برنامه ریزی و طراحی “نقشه”، آسان خواهد شد.نقشهی پروژهی نرم افزاری، کار مهندسی نرم افزار را با توصیف امور فنی انجام شده، خطرات احتمالی، منابع موردنیاز، محصول نهایی کار و یک برنامهی کاری، تعریف میکند.

دانلود رایگان خلاصه کتاب میدان ها و امواج pdf
مدل سازی. شما چه یک باغبان باشید و چه یک سازندهی پل، چه یک مهندس هوانوردی، یک نجار و یا یک معمار باشید، روزانه با مدلهای مختلفی سر و کار خواهید داشت.در واقع، شما برای درک تصزیر در مقیاس بزرگ، یک “طرح” ایجاد میکنید، چنانچه در معماری، نحوهی قرارگیری اجزا در کنار هم و ویژگیهای دیگر، مورد بررسی قرار میگیرند.در صورت نیاز، میتوانید جزئیات بیشتری را در طرح خود اعمال کنید تا درک مشکل و راه حل آن، راحتتر شود؛ این همان کاری میدان ها و امواج که یک مهندس نرم افزار انجام میدهد و برای درک بهتر نیازهای نرم افزار و طرح مناسب جهت پاسخگویی به این نیازها، به ساخت مدل میپردازد.
ساخت و ساز. شما باید آنچه طراحی میکنید را بسازید.این کار، ترکیبی از کدنویسی (دستی یا خودکار) و آزمایش، جهت کشف خطاهای موجود در کدها است.
ارائه و ارزیابی. نرم افزار( به صورت کاملاً آماده و تمام کار، یا قبل از اتمام مراحل ساخت)، به مشتری تحویل داده میشود و براساس ارزیابی انجام شده توسط مشتری، بازخوردی ارائه میشود.
این پنج مرحلهی چارچوب عمومی، میتواند جهت توسعهی برنامههای کوچک و ساده، ساخت برنامههای وب، و برای مهندسی سیستمهای کامپیوتر محور بزرگ و پیچیده استفاده شود.جزئیات فرآیند نرم افزار، در هر مورد کاملاً متفاوت خواهد بود؛ اما مراحل چارچوب، مشابه خواهند بود. برای بسیاری از پروژه های نرم افزاری، مراحل چارچوب، به صورت تکرارشونده، به عنوان فرآیندهای پروژه، انجام میشوند؛ یعنی ارتباطات، برنامه ریزی، مدل سازی، ساخت و ساز و ارائه و ارزیابی، به طور مکرر، در تمام دفعات بازنویسی پروژهها اعمال می شوند.پس از هر بار بازنویسی و توسعه، نرم افزاری با بخشی از امکانات و عملکردهای کلی، به سهامداران ارائه میشود؛ بنابراین با هر بار بازنویسی، نرم افزار، کامل و کاملتر میشود.
2-3-1 اقدامات حفاظتی
با تعدادی از اقدامات حفاظتی، فعالیت های چارچوب فرایند مهندسی نرم افزار تکمیل می شود.به طور کلی، اقدامات محافظتی در سرتاسر یک پروژهی نرم افزاری اعمال می شوند تا به تیم نرم افزار در مدیریت و کنترل فرآیند، کیفیت، تغییرات و خطرات کمک کنند.جزوه میدان ها و امواج محافظنی شامل موارد زیر میشود:
ردیابی و کنترل پروژه نرم افزاری: به تیم نرم افزار، اجازهی ارزیابی توسعه در قالب برنامهی پروژه و اقدامات لازم برای پیشرفت مطابق برنامه را میدهد.
مدیریت خطرات: خطراتی که احتمالاً بر نتیجهی پروژه تأثیر میگذارند را ارزیابی میکند.
تضمین کیفیت نرم افزار: به میدان ها و امواج و اجرای اقدامات موردنیاز جهت تضمین کیفیت نرم افزار میپردازد.
بررسی های فنی: باارزیابی محصولات کار مهندسی نرم افزار، جهت کشف و برطرف کردن خطاها قبل از انتشار به فعالیتهای بعدی، تلاش میکند.
سنجش: به تعریف و جمع آوری فرآیند، پروژه، و سنجش محصول میپردازد که به تیم، در ارائهی نرم افزار پاسخگوی سهامداران، کمک میکند؛ همچنین میتواند در رابطه با تمام چارچوبها و اقدامات محافظتی، اعمال شود.
مدیریت پیکربندی نرم افزار: اثر تغییرات را در سراسر فرآیند نرم افزار، مدیریت میکند.
مدیریت قابلیت استفاده مجدد: به تعریف شرایط استفادهی مجدد از محصول(شامل اجزای نرم افزار) میپردازد و ساز و کاری جهت دستیابی به اجزای قابل استفادهی مجدد، ارائه میدهد.
تهیه و تولید محصول کار: شامل اقدامات لازم جهت ساخت محصولات، مثل مدلها، اسناد، گزارشها، الگوها و فهرستها میشود.
در بخشهای بعدی این کتاب، هر کدام از این اقدامات محافظتی، با جزئیات بیشتر بررسی خواهند شد.
3-3-1 انطباق فرآیند
قبلاً در این بخش اشاره کردیم که فرآیند مهندسی نرم افزار، نسخه و قانونی مشخص نیست که توسط یک تیم نرم افزاری به اجرا در بیاید.بلکه باید قابل انطیاق باشد( نسبت به مشکل موردنظر، پروژه، تیم و فرهنگ جزوه میدان ها و امواج ). بنابراین، فرایندی که :
• • • • • • • • – ؟های انجام شده در چارچوب، خواهید رسید.
1-4-1 اساس مهندسی نرم افزار
جورج پولیا، در کتاب قدیمی و موثق “چطور به حل مسئله بپردازیم”، که قبل از وجود کامپیوترهای مدرن نوشته شده بود، اساس حل مسئله و متعاقباً اساس مهندسی نرم افزار را بیان کرد:
1. مسئله را درک کنید (ارتباط و تحلیل).
2. یک راه حل (مدل سازی و طراحی نرم افزار) طراحی کنید.
3. طرح موردنظر را اجرا کنید(کدنویسی).
4. صحت نتیجهی به دست آمده را بررسی کنید(جزوه میدان ها و امواج و تضمین کیفیت).
در زمینهی مهندسی نرم افزار، این مراحل، منجر به شکل گیری سؤالات اساسی میشوند(به نقل از جورج پولیا):
درک مسئله. حقیقتاً گاهی درک مسئله مشکل است و ما از روی غرور با آن برخورد میکنیم؛ پس از چند ثانیه تأمل، فکر میکنیم که موضوع را فهمیدهایم و سراغ حل آن میرویم.متأسفانه درک مسئله، همیشه چندان آسان نیست.در ادامه به پاسخ به تعدادی سؤال ساده، اما مهم میپردازیم:
• چه کسانی در حل مشکل مشارکت میکنند؟به عبارت میدان ها و امواج، سهامداران چه کسانی هستند؟
• چه مواردی مجهول ماندهاند؟دادهها، اقدامات و ابزارهای موردنیاز جهت حل ؟
• ؟؟
• ؟؟
()، :
• ً ؟؟؟
• ً ؟ً ؟
• ؟؟
• ؟؟
”” • ؟؟
• ؟؟
• ؟؟
• ؟؟
ً –”” “”، ()، ؛ ( ) ( )، ؛ :
: ؛ : “؟”: ؛ ً ”” : به خوبی طراحی شدهاند.یک طراح ماهر، میتواند با حفظ نقشهی ذهنی و انطباق آن، موفقیت یک پروژهی نرم افزاری را تضمین کند.
اصل چهارم: آنچه تولید میکنید، توسط کاربران مورداستفاده قرار خواهد گرفت.
هنگام تعیین طرح و اسناد، و اجرای آنها، این موضوع را در نظر بگیرید که آنچه انجام میدهید، باید برای دیگران قابل درک باشد.محصولات توسعهی نرم افزار، مخاطبان گستردهای دارند؛ بنابراین، همواره کاربران را نیز در نظر داشته باشید.هنگام طراحی، به نحوهی اجرا نیز توجه کنید؛ هنگام کدنویسی، ملاحظهی افرادی را که حفظ : ً “” :
فهرست مطالب