1- روز تولد دیگران را به خاطر داشته باش.
2 - حداقل سالی یکبار طلوع آفتاب را تماشا کن.
3- برای فردایت برنامه ریزی کن.
4- از عبارت«متشکرم»زیاد استفاده کن.
5 - بدان در چه وقت باید سکوت کنی.
6- زیر دوش آب برای خودت آواز بخوان.
7- احمقانه رفتار مکن.
8- برای هر مناسبت کوچکی جشن بگیر.
9- اجناسی که بچه ها می فروشند را بخر.
10- همیشه در حال آموختن باش.
11-آنچه می دانی به دیگران بیاموز.
12- روز تولدت یک درخت بکار.
13- دوستان جدید پیدا کن اما قدیمیها را از یاد مبر.
14- از مکانهای مختلف عکس بگیر.
15- راز دار باش.
16- فرصت لذت بردن از خوشی هایت را به بعد موکول نکن.
17- به دیگران متکی نباش.
18- هیچ وقت در مورد رژیم غذاییت با کسی صحبت نکن.
19- اشتباه هایت را بپذیر.
20- بدان که تمام اخباری که می شنوی درست نیست.
21 - بعد از تنبیه بچه هایت , آنها را در آغوش بگیر و نوازش کن.
22- گاهی برای خودت سوت بزن.
23- شجاع باش , حتی اگر نیستی وانمود کن که هستی , هیچکس نمی تواند تفاوت بین این دو را تشخیص دهد.
24- هیچوقت سالگرد ازدواجت را فراموش نکن.
25- به کسی کنایه نزن.
26- از بین کتاب هایت آنهایی را امانت بده که بازگشتشان برایت مهم نباشد.
27- به بچه هایت بگو که آنها فوق العاده اند.
28- هرگز به همسرت خیانت نکن.
29- سعی کن همیشه خیلی هوشیار باشی , شانس گاهی اوقات خیلی آرام در می زند.
30- همیشه ساعتت را پنج دقیقه جلو بکش.
31-کسی را که امیدوار است هیچگاه نا امید نکن شاید تنها داروی او باشد
32-وقتی با بچه ها بازی می کنی سعی کن آنها برنده شوند
33-هیچگاه در دستگاه پیغام گیر تلفن پیام بی معنی و نامفهوم نگذار
34-وقت شناس باش
35-از افراد ناشایست دوری کن
36-در پول دادن به بچه هایت خسیس نباش
37-اصالت داشته باش
38-هیچ وقت به سیاستمداران اعتماد نکن
39-از حدی که لازم است مهربانتر باش
40-وقتی عصبانی هستی به هیچ کاری دست نزن
41-بهترین دوست همسرت باش
42-تا وقتی شغل بهتری پیدا نکرده ایی شغل فعلیت را از دست مده
43-سعی کن مفید ترین و با احساس ترین آدم روی زمین باشی
44-از کسی کینه به دل نگیر
45-برای تمام موجودات زنده ارزش قائل شو
46-شکست را به راحتی بپذیر.
47- وقتی پیروز شدی فخر فروشی نکن.
48- خودت را در گیر مسائل بی اهمیت نکن.
49- هرگز به کسی نگو که خسته و افسرده به نظر می آید.
50- همیشه به قولت وفادار باش.
51- تا می توانی جدایی ها را به وصل تبدیل کن.
52- عادت کن که همیشه حتی زمانی که ناراحت هستی خودت را سرحال نشان دهی.
53- زندگی را سخت نگیر.
54- هیچ وقت قمار بازی نکن.
55- وقتی با کار سختی روبرو شدی به خودت تلقین کن که شکست غیر ممکن است.
56- از وسایلت به خوبی محافظت کن.
57- انتظار نداشته باش که پول برایت خوشبختی بیاورد.
58- برای تغییر دادن دیگران بیش از این تلاش نکن.
59- همیشه خوش ظاهر و شیک پوش باش.
60- پلها را از بین نبر شاید مجبور شوی بار دیگر از رودخانه عبور کنی.
61- خودت را دست کم نگیر.
62- متواضع و فروتن باش.
63- در ماشینت را همیشه قفل کن.
64- قدرت بخشندگی را از یاد مبر.
65- نسبت به مردمی که به تو می گویند خیلی صادق و بی ریا هستی محتاط باش.
66- دوستی های قدیم را دوباره تازه کن.
67- سعی کن زندگی همواره برایت پیام داشته باشد.
68- کتاب مورد علاقه ات را برای بار دوم بخوان.
69- طوری زندگی کن که روی سنگ قبرت بنویسند: شخصی که از هیچ چیز در زندگیش پشیمان نبود.
70-بدان در چه وقت باید سکوت کنی.
سلام
لینک سوالات کارشناسی ارشد IT 88 رو می ذارم تا استفاده کنین.
ادامه مطلب ...تعربف نرمافزار آزاد سایت رسمی : www.gnu.org
ما تعریف نرمافزار آزاد را ادامه میدهیم تا بطور واضح نشان دهیم که چه مواردی در مورد یک نرمافزار خاص باید صدق کند تا به عنوان یک نرمافزار آزاد تلقی شود. "نرمافزار آزاد" موضوع آزادی است٬ نه قیمت. برای درک بهتر باید به معنای "free" در "free speech" فکر کنید٬ نه در "free beer". نرمافزار آزاد در مورد آزادی کاربران برای اجرا٬ کپی٬ توزیع٬ بررسی٬ تغییر و بهبود دادن نرمافزار میباشد. بطور دقیقتر نرمافزار آزاد به چهار نوع آزادی برای کاربران یک نرمافزار اشاره میکند:
در صورتی برنامهای یک نرمافزار آزاد به شمار میآید که کاربران آن همهی این آزادیها را داشته باشند. بنابراین شما باید برای توزیع مجدد کپیهایی از آن٬ خواه با اصلاحات و تغییرات و خواه بدون آن٬ خواه رایگان و خواه در ازای دریافت وجهی٬ برای هر شخصی و در هر جایی آزاد باشید. آزاد بودن برای انجام این کارها (در میان چیزهای [کارهای] دیگر) به این معنی است که شما مجبور به درخواست و پرداخت هزینه برای مجوز نیستید. شما همچنین باید این آزادی را داشته باشید تا در برنامه تغییراتی ایجاد کنید و حتی بدون اشاره به وجود آنها٬ از آنها بطور خصوصی و برای کار خود استفاده کنید. اگر هم تغییرات خود را منتشر کردید٬ نباید ملزم به اعلام آن به شخص خاص و یا به روش خاصی باشید. آزادی برای استفاده از برنامه به معنای آزادی هر شخص و یا سازمانی برای استفاده از آن برنامه بر روی هر سیستم کامپیوتری٬ برای هر کاری٬ و بدون نیاز به هر گونه ارتباط بعدی با توسعهدهنده و یا هر نهاد خاصی میباشد. آزادی برای توزیع مجدد کپیهایی از برنامه باید همانند [علاوه بر] کد منبع٬ شامل شکل باینری و اجرایی برنامه و برای هر دو نسخهی تغییر یافته و تغییر نیافته نیز باشد. (توزیع برنامهها در شکل اجرایی برای سیستمعاملهای آزادی که به راحتی نصب میشوند ضروری است.) اگر هیچ روشی برای تولید شکل باینری و اجرایی برای برنامهی بخصوصی وجود نداشته باشد٬ مشکلی نیست (زیرا بعضی از زبانها [ی برنامهنویسی] از آن ویژگی پشتیبانی نمیکنند). اما شما باید این آزادی را داشته باشید تا اگر روشی برای ارائهی شکل باینری و اجرایی برنامه پیدا کردید٬ آن برنامه را مجددا به این دو شکل توزیع کنید. به منظور داشتن آزادی برای تغییر دادن٬ و انتشار نسخههای بهبود یافته٬ شما باید به کدهای منبع برنامه دسترسی داشته باشید. بنابراین دسترسی به کد منبع یک شرط ضروری برای نرمافزار آزاد میباشد. برای واقعی بودن [عملی و اجرا شدن] این آزادیها٬ آنها باید تا وقتیکه شما هیچ کار اشتباهی [بر خلاف این آزادیها] انجام ندادهاید٬ غیر قابل فسخ و قطعی بمانند. اگر توسعه دهنده ی نرم افزار قادر باشد مجوز نرم افزار را٬ بدون این که شما کاری کنید که سبب این کار شود٬ باطل کند٬ این نرم افزار آزاد نیست. با این حال بعضی قوانین خاص [که] دربارهی نحوهی توزیع نرمافزار آزاد [میباشند]٬ هنگامی که با آزادیهای مرکزی [اصلی] در تضاد نباشند٬ قابل قبول هستند. برای نمونه copyleft (به بیان خیلی ساده) قانونی است که [به موجب آن] شما به هنگام توزیع مجدد برنامه٬ نمیتوانید محدودیتهایی به آن اضافه کنید تا آزادیهای مرکزی را برای افراد دیگر انکار کنید [از بین ببرید]. این قانون نه تنها با آزادیهای مرکزی در تضاد نیست بلکه از آنها محافظت نیز میکند. بنابراین شما ممکن است پولی پرداخت کرده باشید تا کپیهایی از نرمافزار آزاد را بدست آورده باشید و یا ممکن است کپیها را بدون پرداخت هزینه بدست آورده باشید. اما صرفنظر از اینکه چگونه کپیها را بدست آورده باشید٬ شما همیشه این آزادی را دارید تا نرمافزار را کپی کنید و تغییر دهید و یا حتی کپیهایی از آن را بفروشید. "نرمافزار آزاد" به معنای "غیر تجاری" نیست. یک برنامهی آزاد باید برای استفادهی تجاری٬ توسعهی تجاری٬ و توزیع تجاری در دسترس باشد. توسعهی تجاری نرمافزار آزاد دیگر غیر معمول نیست٬ بلکه چنین نرمافزارهای آزاد تجاری بسیار مهم هستند. قوانین مربوط به نحوهی بستهبندی یک بستهی تغییر یافته نیز در صورتیکه بطور موثر [عملی و قابل اجرا] آزادی شما برای انتشار نسخهی تغییر یافته را منع نکنند٬ قابل قبول هستند. قوانینی مانند "اگر شما برنامه را به این روش در دسترس قرار دادید٬ باید آن را به آن روش نیز در دست قرار دهید" نیز٬ با همان شرایط قبلی میتوانند قابل قبول باشند. (به خاطر داشته باشید که چنین قانونی آزادی شما برای انتخاب انتشار و یا عدم انتشار برنامه را باقی میگذارد.) همچنین این برای اجازهنامه قابل قبول است تا لازم بدارد که اگر شما یک نسخهی تغییر یافته از برنامه را توزیع کردید و توسعهدهندهی قبلی یک کپی از آن را درخواست نمود٬ شما باید یک کپی برای او بفرستید. در پروژهی گنو٬ ما از "کپیلفت" برای حفاظت قانونی از این آزادیها برای هر شخصی استفاده میکنیم. اما نرمافزارهای آزاد غیر کپیلفتی نیز وجود دارند. ما معتقدیم که دلایل مهمی برای اینکه چرا بهتر است از کپیلفت استفاده شود وجود دارند٬ اما اگر برنامهی شما نرمافزار آزاد غیر کپیلفتی باشد٬ ما همچنان میتوانیم از آن استفاده کنیم. برای تشریح اینکه چگونه "نرمافزار آزاد"٬ "نرمافزار کپیلفت شده" و دیگر بخشهای نرمافزار با یکدیگر در ارتباطند٬ بخشهای نرمافزار آزاد را ببینید. گاهی اوقات مقررات نظارتی صادرات و مصوبات تجاری دولت آزادی شما برای توزیع بینالمللی کپیهای برنامه را تحت تاثیر قرار خواهند داد. توسعهدهندگان نرمافزار این قدرت را ندارند تا این محدودیتها را حذف و یا زیر پا بگذارند٬ اما کاری که میتوانند و باید انجام دهند این است که از تحمیل این محدودیتها به عنوان شرایط استفاده از برنامه سر باز زنند. به این ترتیب٬ این محدودیتها بر فعالیتها و اشخاص خارج از حوزهی قضائی این دولتها تاثیر نخواهد داشت. اغلب اجازهنامههای نرمافزار آزاد بر اساس کپیرایت میباشند٬ ولی برای آن دسته از الزاماتی که بواسطهی کپیرایت میتوانند تحمیل شوند٬ محدودیتهایی وجود دارد. اگر یک اجازهنامهی مبتنی بر کپیرایت آزادی را به روشهایی که در بالا توضیح داده شد محترم بشمارد [رعایت کند]٬ بعید به نظر میرسد که مشکلات دیگری که ما هرگز پیشبینی نمیکردیم بوجود بیاید (اگر چه گه گاه این اتفاق میافتد). اما بعضی از اجازهنامههای نرمافزار آزاد بر اساس قراردادها [contracts] میباشند٬ و قردادها میتوانند شمار بیشتری از محدودیتهای ممکن را تحمیل کنند. این بدان معناست که راههای بیشماری وجود دارند تا چنین اجازهنامهای به طرز غیر قابل قبولی محدودکننده و غیر آزاد باشد. ما نمیتوانیم همهی محدودیتهای "قراردادها" که غیر قابل قبول هستند را فهرست کنیم. اگر یک اجازهنامهی مبتنی بر قرارداد٬ کاربر را به یک روش غیر معمول طوری محدود کند که اجازهنامهی مبتنی بر کپیرایت نتواند٬ و آن محدودیت در اینجا به عنوان یک عمل قانونی ذکر نشده باشد٬ ما دربارهی آن فکر خواهیم کرد و احتمالا آن را غیر آزاد تشخیص خواهیم داشت. هنگامیکه دربارهی نرمافزار آزاد صحبت میشود بهتر است تا از به کار بردن عباراتی مانند "هدیه دادن" [give away] و یا "بطور رایگان" [for free] خودداری شود٬ زیرا این عبارات این مفهوم را میرسانند که موضوع در مورد قیمت میباشد٬ نه آزادی. بعضی عبارات معمول مانند "کپی غیر قانونی" [piracy] مفاهیمی در بر دارند که ما امیدواریم شما بر آنها صحه نگذارید. برای بحث در مورد این عبارات بخش کلمات و عبارات گیجکننده که اجتناب از آنها با ارزش است را ببینید. ما همچنین فهرستی از ترجمههای "نرمافزار آزاد" به زبانهای مختلف داریم. در نهایت بخاطر داشته باشید که معیارها و ظوابطی مانند آنها که در تعریف نرمافزار آزاد ذکر شدند٬ برای تفسیر به تفکری دقیق نیاز دارند. برای تصمیمگیری در مورد اینکه آیا اجازهنامهی نرمافزار خاصی صلاحیت اجازهنامهی نرمافزار آزاد بودن را دارد٬ ما آن را بر مبنای همین ظوابط در نظر میگیریم تا تصمیم بگیریم که آیا معنی و مفهوم آن به خوبی کلمات و عبارات در آن٬ مناسب هست. اگر اجازهنامهای شامل موارد نامعقول باشد٬ ما آن را رد میکنیم٬ حتی اگر آن مورد را در این معیارها پیشبینی نکرده باشیم. بعضی اوقات درخواستهای یک اجازهنامه پیآمدی پیش میآورد که قبل از اینکه تصمیم بگیریم آیا این درخواستها قابل قبول هستند٬ تفکر بسیاری شامل بحث و مذاکره با یک وکیل را مطالبه میکند. هنگامیکه ما دربارهی یک موضوع جدید به نتیجه میرسیم٬ غالبا این معیارها را به روز میکنیم تا راحتتر ببینید که چرا اجازهنامههای خاص صلاحیت دارند و یا ندارند. اگر علاقمند هستید تا ببینید که آیا اجازهنامهی خاصی صلاحیت اجازهنامهی نرمافزار آزاد بودن را دارد٬ فهرست اجازهنامههای ما را ببینید. اگر اجازهنامهای که برای شما مهم است در آنجا فهرست نشده است٬ می توانید با فرستادن ایمیل به آدرس \n This email address is being protected from spam bots, you need Javascript enabled to view it >'; document.write( '' ); document.write( addy_text98203 ); document.write( '<\/a>' ); //-->\n This email address is being protected from spam bots, you need Javascript enabled to view it از ما دربارهی آن سوال کنید. گروه دیگری استفاده از عبارت "متنباز" [Open Source] برای رساندن مفهومی نزدیک به (و نه دقیقا) "نرمافزار آزاد" را شروع کردهاند. ما عبارت "نرمافزار آزاد" را ترجیح میدهیم٬ زیرا به محض شنیدن آزادی را به ذهن میآورد٬ نه قیمت را. پینوشت: به دلیل اینکه این ترجمه زیاد با متن اصلی تفاوت نداشته باشد مترجم کلمات و عباراتی را در داخل [ ] آورده است که این نشاندهندهی این است که این کلمات و عبارات جزو متن اصلی نمیباشند و فقط به جهت آسانتر کردن درک متن آن اضافه شدهاند |
مدلهای فرایند (Process Models) که عبارتی اختصاری برای مدلهای فرایند توسعه نرم افزار (Software Development Process) می باشد، دستور کارهایی هستند که به سازندگان نرم افزارها می گویند تولید نرم افزار را از کجا شروع کنند، چگونه ادامه دهند، و به کجا ختم کنند. تا کنون مدلهای گوناگونی بدین منظور ارئه شده است. که برخی از آنها عبارتند از: مدل آبشاری (Waterfall)، مدل توسعه سریع (Rapid Application Development)، مدل توسعه همروند (Concurrent Development)، مدل توسعه مبتنی بر مولفه (Component-based Development) و غیره. در این میان دسته ای از مدلها با عنوان مدلهای تکراری-افزایشی (Iterative/Incremental) شناخته می شوند، که عموماً ملهم از مدل معروف مارپیــچی (Spiral) می باشند. در حال حاضر معروف ترین مدل تکراری-افزایشی RUP می باشد. اما اساس مدلهای تکراری/افزایشی چیست؟
عموماً چارچوب تکراری/افزایشی از چهار فاز زیر تشکیل شده است:
۱- آغاز (Inceprion)
در این فاز معمولاً به تعیین محدوده پروژه و تعریف یک مستند دورنما (Vision) پرداخته می شود. برای پروژه های کوچک و ساده ممکن است این فاز خیلی کوتاه و در حد یک گفتگوی ساده و مجموعه ای از توافقات باشد، اما برای پروژه های بزرگ تر و پیچیده تر ممکن است ماهها و حتی سالها به این فاز پرداخته شود. خروجی های این فاز ممکن است شامل موارد زیر باشد:
۲- تشریح (Elaboration)
هدف این فاز تحلیل مساله، توسعه بیشتر طرح پروژه، و حذف مناطق مخاطره آمیز (high risk) پروژه می باشد. یک نکته مهمی که باید در فاز تشریح در نظر گرفته شود این است که اگر چه ما بدنبال کشف جزئیات هستیم، اما این جزئیات مربوط به صورت مساله (problem) (یعنی تحلیل) می باشند، و نه مربوط به پاسخ مساله (Solution) (جزئیات مربوط به طراحی و پیاده سازی). اصطلاحی که در این مورد بکار برده می شود این است که باید بدنبال بدست آوردن a mile wide and inch deep view بود.
مهمترین خروجی های این فاز عبارتند از:
۳- ساخت (construction)
در این فاز محصول ساخته می شود. روش ساخت در این فاز از ترکیب دو مدل آبشاری و مارپیچی بوجود می آید. یعنی با استفاده از تعدادی تکرار محصول را می سازیم، که هر تکرار چیزی شبیه یک چرخه حیات کلاسیک یعنی آبشاری می باشد. تلاش ما بر این است که با هر چه کوتاه تر در نظر گرفتن مدت زمان تکرارها، از پیچیدگی مساله و سایر مشکلات موجود در روش آبشاری پرهیز کنیم.
در شکل زیر یک فرایند خصوصی سازی شده برای یک پروژه ساده ملاحظه می شود.
همانطور که در شکل فوق ملاظه می کنید، فاز ساخت از چند تکرار تشکیل شده است که در هر تکرار مراحل تحلیل، طراحی، کد و تست وجود دارند. در پایان هر تکرار یک نسخه از محصول بدست می آید که نسبت به نسخه قبلی کامل تر شده است. ضمناً در این خصوص سازی فرایند پیشنهاد شده است که در فاز تشریح، مدل مورد کاربردی مختصر، مدل مفهومی (با استفاده از کلاس دیاگرام)، و تعدادی پروتوتایپ (که بعداً توضیح خواهیم داد این پروتوتایپ ها به چه درد می خورند) بعنوان فراورده (Artifact)های این فاز تولید شوند. در فاز ساخت، در بخش تحلیل هر تکرار یک مدل مورد کاربردی کامل ارائه می شود و همچنین سایر مدل هایی که در هر بخش پیشنهاد شده است، در شکل دیده می شود.
۴- انتقال (Transition)
آخرین فاز به انتقال محصول در میان مشتریان خواهد پرداخت. فعالیت های رایج در این فاز عبارتند از:
منبع: Ariadne training; UML Applied