تاریخچه کامپیوتر
ساعت ٦:۳٤ ‎ب.ظ روز جمعه ٢٦ فروردین ،۱۳٩٠  کلمات کلیدی:

تاریخچه کامپیوتر

1- کامپیوتر چیست ؟  دستگاهی است با حافظه جهت ثبت اطلاعات

A machine that stores  information and find answers very quikly(در فرهنگ لغت آکسفورد)

اولین کامپیور در سال 1944 بعد از جنگ جهانی دوم و در کشور آمریکا اختراع شد.

( البته طرح اولیه در سال 1833 بنام ماشین تحلیل گر توسط چارلز بابیج انجام شد که به پدر کامپیوتر ملقب شد)

کامپیوتر اولیه:

عکس از کامپیوتر های قدیمی ibm

2- اهمیت یادگیری کامپیوتر؟

امروزه کامپیوتر ازا بزارضروری در همه بخشهای زندگی اجتماعی ازقبیل صنعت- تکنولوژی - پزشکی - تحقیقاتی تجاری- آموزشی و....است.

بطوریکه سازمان یونسکو اعلان کرد:از سال 2000 ملاک با سوادی افراد از نظر این سازمان علم به کامپیوتر است وهرکس علم به کامپیوتر نداشته باشد از نظر ما بیسواد محسوب می شود.

3- تاریخچه کامپیوتر ؟

نسل اول=   درسال 1944    کامپیوترهای حافظه دار بالامپ خلائ کار می کرد باقدرت 2000 کلمه ذخیره. پس از جنگ جهانی دوم با30 تن وزن

نسل دوم =  درسال1950    کامپیوترهای ترانزیستوری   با قدرت 30000 کلمه ذخیره.

نسل سوم=  درسال 1964     کامپیوترهای با مدارهای مجتمع ( ic) integrented  cireuist) ). باقدرت 200000عمل درثانیه

نسل چهارم= درسال 1970 کامپیوترهای میکروپروسرردارای 2000 ترانزیستوربا مدارهای بسیار مجتمع. باقدرت 80000000عمل درثانیه

نسل پنجم= درسال 1990   کامپیوترهای  هوشمند.

نسل ششم= درسال 1997   کامپیوترهای پنتیوم 11  به بعد که به نسل جدید کامپیوتر معروف شد.

4- ویژگیهای کامپیوتر کدامند؟

1- سرعت : کامپیوترها ی امروزی می توانند صد ملیون عملیات را در یک ثانیه انجام بدهند.

2- دقت : که بالاترین دقت رادارد و تقریبا هیج اشتباهی ندارد.

3- حجم :که حافظه نام دارد و ظرفیت آن به ضبط میلیاردهاکارکتراست.

4- عدم فراموشی : بطوریکه ضریب آن به صفر می رسد.

5- همزمانی عملیات مختف

 

5- انواع کامپیوتر کدامند؟

1-     ابر کامپیوتر (Supre computer) =  که درمراکز بزرگ فضائی و نظامی کاربرد دارد.

2-     کامپیوترهای بزرگ(main computer) که در مراکز بزرگ تجاری ودانشگاهاکاربرد دارد.

3- کامپیوترهای کوچک(mini cimputer) که دردانشکده هاو بانکها ی بزرگ کاربرد دارد.

4-     کامپیوترهای ریز(micro computer) که درمنازل شخصی برای عموم کاربرد دارد.

 

کامپیوترهای شخصی بر چند نوع اند؟ دو نوع

1- رومیزی

2- لب تاپ

*اولین لپ تاپ در سال 1983 تولید شد

 

 

7- کامپیوترها چگونه کار میکنند؟

کامپیوترهای امروزی دیجیتالی اند.و دربین ارقام فقط 0 و1 را می شناسد یعنی هر حروف یا اشکال به تپشهای الکتریکی تبدیل می گردد که هرتپش مفهوم یک و عدم آن را صفر گویند.(مدارهای الکترونیکی دووضعیت دارندیاجریان برق ازآنهاعبور میکند یا نمی کند عبور این جریان مفهوم یک وعدم عبور مفهوم صفر را دارد

به این صفر ویک ها بیت گویند.) مثل خاموش وروشن شدن لامپ .

مثلاعدد38 برمبنای دو میشود    2(100110

اثر تکنولوژی:

اولین ومجهزترین آموزشگاه کامپیوتر منطقه ارسباران


سخت افزار و نرم افزار
ساعت ٦:۳٤ ‎ب.ظ روز جمعه ٢٦ فروردین ،۱۳٩٠  کلمات کلیدی:

سخت افزار و نرم افزار چیست

سخت افزار چیست؟ هرچیز قابل لمس در کامپیوتر راگویند.

نرم افزار چیست؟  هرچیز غیر قابل لمس در کامپیوتر را گویند.

نرم افزار (Soft ware ) یا برنامه های کامپیوتری دستور العملهایی هستند که باعث کار کردن سخت افزار (Hardware) میشوند.

*فرق سخت افزار با مبانی کامپیوترچیست؟

سخت افزار شناخت شکل ظاهری افزار سخت است ولی مبانی چگونه کار کردن افزار سخت است

 

12- مهمترین اجزای سخت افزاری کامپیوتر کدامند؟

1- مادربرد  2- سی پی یو   3- هارد (سه عنصر حیاتی)  4-پاور(منبع تغذیه برق)    5- رم   6- مانیتور   7 - کارت گرافیگ    8- کارت صدا 

  9- کیس   10- سی دی رام  11- بلندگو    12- مودم   13- فلاپی درایو      14- کیبورد    15- ماوس   16- اسکنر  17 – کارت شبکه 

 18- چاپگر  19- دوربین دیجیتال   20- وب کم   21- میکروفن    22- کارت تی وی کپچر  ولوازم جانبی دیگر

 

13- سخت افزار کامپیوتر چند بخش درد؟

 که از آن برای وارد کردن اطلاعات ، برنامه ها و دستورات به کامپیوتر استفاده می شود   (In put )      1- ورودی 

در مقایسه مانند چشم و گوش انسان است.

که اطلاعات داده شده را پردازش می نماید و برای خروج آماده می کند (process) 2- پردازش 

 که در مقایسه مانند مغز انسان است

پس از پردازش داده ها نتایجی به دست می آید واحد خروجی ، داده های پردازش شده را از شکل کد ماشین به شکل قابل فهم و قابل استفاده انسان ترجمه می   (Out put 3 - خروجی ( کند و در دسترس کاربر قرار می دهد.

    که درمقایسه مانند دست یا زبان است.


نقل و قول برنامه نویس
ساعت ٦:٢٩ ‎ب.ظ روز جمعه ٢٦ فروردین ،۱۳٩٠  کلمات کلیدی:

نقل قول های دنیای برنامه نویسی و توسعه نرم افزار

هر توسعه جدیدی حداقل یک باگ دارد، و هر رفع باگی یک توسعه جدید است

تو شروع به کدنویسی کن، من میرم ببینم مشتری چی میخواد!

برنامه ها باید برای خواندن توسط آدم ها نوشته شوند، و اگر نیاز بود برای اجرا به ماشین ها داده شوند!

چند ساعت برنامه ریزی می تواند شما را از هفته ها کدنویسی نجات دهد!

یک نرم افزار خوب، نرم افزاریست که عملیات های پیچیده را ساده نشان دهد.

اندازه گیری پیشرفت برنامه نویسی با شمارش تعداد خطوط برنامه مثل اندازه گیری پیشرفت ساخت یک هواپیما از روی وزن آن است!

ل از ثبت نام در کلاس برنامه نویسی در کلاس زبان انگلیسی ثبت نام کنید!


محدودیت کامپیوتری
ساعت ٦:٢٦ ‎ب.ظ روز جمعه ٢٦ فروردین ،۱۳٩٠  کلمات کلیدی:

گذاشتن محدودیت های مختلف برای برنامه نویسان از مهمترین دغدغه های اکثر مدیران شرکت های نرم افزاری در ایران بوده و هست. برنامه نویسی یک شغل بسیار متفاوت است که نمی توان با راهکارهای مدیریتی شغل های دیگر بر روی آن مدیریت داشت و موفق شد. کسی که قرار است بر روی چندین برنامه نویس و مهندس نرم افزار مدیریت کند خودش حتماً باید از زوایا و جزئیات این کار کاملاً آگاه باشد. به علت تفاوت این شغل با شغل های دیگر، نمی توان همان محدودیت هایی که برای کارمندان دیگر شغل ها در یک شرکت گذاشته می شود و معمولاً جواب می دهد را برای برنامه نویسان گذاشت و جواب گرفت.

به عنوان کسی که در حال حاضر به عنوان یک برنامه نویس کار می کند در این مطلب در مورد مهمترین محدودیت هایی که برای برنامه نویسان گذاشته می شود بحث خواهم کرد. شما هم اگر برنامه نویس هستید می توانید در قسمت نظرات این مطلب یا در وبلاگ خود در این مورد بنویسید. اگر مدیر شرکت نرم افزاری هستید در مورد این محدودیت ها در شرکت خود بنویسید و اگر مخالف هستید حتماً نظر مخالف خود را بیان کنید تا به یک نتیجه گیری خوب در آخر برسیم.


کیفیت نرم افزار
ساعت ٦:٢۳ ‎ب.ظ روز جمعه ٢٦ فروردین ،۱۳٩٠  کلمات کلیدی:

کیفیت در نرم افزار به چه معناست؟

درجه تطابق یک سیستم با نیازمندی های مشخص شده و نیازهای مشتری (یا کاربران) یا انتظارت آن ها، یکی از تعاریف رسمی کیفیت در نرم افزار است (1). از این تعریف می توان دریافت که شناخت درست نیازمندی های یک سیستم نرم افزاری از مهمترین

Unit Testing یا آزمایش واحد (=تست واحد) روشی است برای آزمایش نرم افزار که در آن قسمت های واحدی از سورس کد پروژه مورد آزمایش قرار می گیرند تا مشخص شود که همان کاری که انتظار می رود را انجام می دهد. منظور از Unit یا واحد، کوچکترین قسمت قابل تست یک برنامه است که می تواند یک تابع یا یک متد باشد. هر واحد به صورت جداگانه مورد آزمایش قرار می گیرد تا از صحت عملکرد آن اطمینان حاصل گردد. در ابتدا شاید انجام تست واحد عملی وقت گیر و اضافی به نظر بیاید، اما اگر شما از صحت عملکرد قسمت های کوچک برنامه خود اطمینان داشته باشید، در آخر کار با باگ ها و مشکلات بسیار کمتری مواجه خواهید شد که این باعث کاهش زمان تولید و تست و در نتیجه بالا رفتن بازدهی و تحویل به موقع خروجی به پروژه به کارفرما می شود.

تست واحد مربوط به برنامه نویسان است و ربطی به کاربران یا حتی آزمایش کنندگان کیفی یک نرم افزار ندارد. یک برنامه نویس اگر تمام قسمت های کوچک برنامه خود را مورد آزمایش واحد قرار داده باشد، در پایان برنامه ای با حداقل باگ را تحویل کاربران خواهد داد. برای انجام تست واحد در پلت فرم های مختلف ابزارهای مختلفی وجود دارد. برای دات نت می توان فریم ورک های Unit Testing زیادی مثال زد. در ادامه با برخی از فریم ورک های تست واحد برای دات نت آشنا می شوید.

NUnit : یک فریم ورک خوش ساخت کدباز است که از دنیای جاوا و با پورت کردن پروژه JUnit به دات نت بوجود آمد و با استفاده از Resharper و TestDriven.NET می توان از تمام قابلیت های آن در ویژوال استادیو بهره برد. مستندات خوبی دارد و مثال های بسیار زیادی برای آن در وب وجود دارد.

MbUnit : فریم ورکی با قابلیت توسعه پذیری بالاست که از آزمایش های واحد پیشرفته پشتیبانی می کند و به توسعه دهندگان اجازه می دهد تا تمام اجزای واحد نرم افزارهای خود را تست کنند و از صحت عملکرد آن ها مطمئن شوند.

csUnit : یک فریم ورک کدباز و رایگان است که تمام ویژگی های یک فریم ورک تست واحد خوب را یکجا دارد. با تمام زبان های برنامه نویسی دات نت سازگاری دارد و شامل ابزار GUI، پلاگین ویژوال استادیو و خط فرمان برای اجرای آزمایش هاست.

xUnit : فریم ورک کدباز جدیدی است که به توسعه دهندگان اجازه می دهد تا از TDD به سادگی هر چه تمام تر برای توسعه نرم افزار خود استفاده کنند. شامل ابزار GUI و خط فرمان برای اجرای تست هاست و می توانید با استفاده از TestDriven.NET یا Resharper در ویژوال استادیو از آن بهره ببرید.

Visual Studio Unit Testing Framework : راه حل مایکروسافت برای انجام آزمایش های واحد در دات نت است که در نسخه های Team System ویژوال استادیو 2005 به بعد وجود دارد. تست های واحد ساخته شده با این فریم ورک می توانند به صورت مستقیم درون ویژوال استادیو اجرا شوند یا با ابزار MSTest.exe از خط فرمان اجرا شوند.

farasun.wordpress.com فاکتورهای تعیین کیفیت در یک محصول نرم افزاری است. در [...]


پیچیدگی نرم افزار
ساعت ۱:٥٥ ‎ب.ظ روز جمعه ٢٦ فروردین ،۱۳٩٠  کلمات کلیدی:

چرا این اجزاءء پیچیدگی دشواریِ درک سیستم را موجب می‏شوند؟

مقیاس به تنهایی مسأله نیست. اگر ساختار سیستم با قاعده باشد بصورت تحلیلی تعیین می‏شود و اگر تعداد اجزاء

 به اندازه کافی زیاد باشد بصورت امّاری می‏توان آن را معین کرد. مقیاس درکنار اجزاءء دیگر پیچیدگی، درک سیستم

 نرم‏افزاری را دشوارتر می‏کند. تنوّع،  تعداد انواع اجزاءیی را که باید تحلیل شوند افزایش می‏دهد هر چه تنوّع بیشتر باشد

تلاش بیشتری برای درک هر جزء و ترکیبی از اجزاء لازم است. اتّصالات نیز دشواریِ درک یک سیستم را بیشتر می‏کنند

 با افزایش مقیاس تعامل بین اجزاء بصورت نمایی افزایش می‏یابد.

 

۵- عملکردِ ضروری در مقابل پیچیدگی عارضی:

عملکردِ ضروری از نیازمندی‏ها بر می‏خیزد و در حقیقت ماهیت آنچه سیستم باید انجام دهد را مشخص می‏کند

 و می‏تواند مثلاً از سخت‏افزار به نرم‏افزار منتقل شود ولی نمی‏تواند حذف شود مگر با حذف نیازمندی‏های غیر ضروری.

پیچیدگی ضروری ذاتی و غیر قابل اجتناب است و در حقیقت از چیزی که سیستم باید انجام دهد ناشی می‏شود.

 پیچیدگی ذاتی با پیچیدگی الگوریتم سر و کار دارد و به مدل محاسباتی استفاده شده برای حلّ مسأله وابسته است

 که به صورت کمینه، پیچیدگی در بین تمام الگوریتم‏هایی که به‏عنوان راه‏حل ارائه  شده‏اند، تعریف می‏شود. پیچیدگی

 ذاتی عموماً، برحسب زمان و فضای مورد نیاز برای اجرا اندازه‏گیری می‏شود. کیفیت و کارایی طراحی و هزینه‏ی کلّی

 پروژه در بهترین حالت از طریق پیچیدگی ذاتی تعیین می‏شود. امّا پیچیدگی عارضی از برنامه‏های کامپیوتری یا از فرایند

 توسعه (برنامه‏نویسی کامپیوتری) یا از انتخاب‏های صورت گرفته در ساخت یک سیستم ناشی می‏شود مثلاً از معماری

 نرم‏افزار، طراحی ساختمان‏داده، زبان برنامه‏نویسی و راهبردهای کد نویسی نشأت می‏گیرد. انتخابهای عاقلانه‏تر می‏توانند

 پیچیدگی عارضی را کاهش دهند. پس پیچیدگی عارضی در حقیقت نتیجه چگونگی ساخت نرم‏افزار است. بنابراین

 بهترین راه برای مقابله با پیچیدگی این است که ابتدا مسأله (چه چیز) را درست تعریف کنیم سپس دنبال ایجاد یا انتخاب

 راه حلی (چگونگی) مناسب برای حلّ مسأله باشیم. این  نوع پیچیدگی با توسعه سیستم سر و کار دارد و شامل

 ویژگی‏هایی نظیر اندازه‏ی سیستم، تعداد پیمانه‏ها، تعداد توابع در درون سیستم و اتّصال بین پیمانه‏ها می‏باشد.

 

فاکتورهای پیچیدگی ضروری با داشتن نیازمندیهای صحیح، غیر مبهم، ضروری، کامل و با ثبات هم‏ارز است.

 بدیهی است که بزرگترین موضوع پیچیدگی ضروری مهندسی نیازها و تحلیل است. امّا، در پیچیدگی عارضی

 تعداد و محدوده موضوعات بسیار متنوّع و گسترده‏ای شامل فرایند، سازمان، استاندارد و غیره را در بر می‏گیرد.

پیچیدگی عارضی با تصمیم‏گیری‏های درست قابل کاهش است و هدف اکثر پیشنهادهای مطرح شده است.

فاکتورهای دخیل در پیچیدگیِ عارضی می‏توانند انتخاب معماری نرم‏افزار، تجربه و مهارت تیم نرم‏افزار، ابزارهای

 توسعه بکار رفته، منابع و فرصت آماده کردن مناسب بجای آماده سازی سریع باشند. پیچیدگی عارضی می‏تواند

 با افزایش پیچیدگی ضروری افزایش یابد.

 

به عبارتی پیچیدگی به دو دسته تقسیم می‏شود:

 

پیچیدگی مسأله: (پیچیدگی ذاتی یا پیچیدگی ضروری)  که در طول فازِ نیازمندیها ایجاد می‏شود.

پیچیدگی راه‏حل: (پیچیدگی افزوده یا پیچیدگی عارضی) که بعد از پیچیدگی مسأله مطرح می‏شود.

این نوع از پیچیدگی اساساً، در مراحل توسعه نرم‏افزار بعد از فاز نیازمندیها در فازهای طراحی و تولید

 کد ایجاد می‏شود. این نوع دسته بندیها به مهندسان نرم‏افزار کمک می‏کند تا تعیین کنند که کی و

 چگونه پیچیدگی وارد پروژه می‏شود، همچنین آگاه می‏شوند که روی کدام مرحله‏ از چرخه حیات

 نرم‏افزار باید تمرکز کنند تا قادر باشند پیچیدگی نرم‏افزار را کنترل و کاهش دهند. این پیچیدگی با

منابع مورد نیاز پروژه ارتباط دارد. با این رویکرد پیچیدگی یک مسأله را می‏توان بصورت مقدار منابع

مورد نیاز برای یک راه‏حل بهینه برای مسأله تعریف کرد، پس پیچیدگی یک راه‏حل می‏تواند بصورت

 منابع مورد نیاز برای پیاده‏سازی یک راه‏حل خاص درنظر گرفته ‏شود. این منابع از دو جنبه بررسی

 می‏شود زمان، بعنوان مثال زمان کامپیوتر و ساعات پرسنل و فضا بعنوان مثال حافظه کامیپوتر،

پشتیبانی نرم‏افزار و غیره..

 


ماهیت پیچیدگی
ساعت ۱:٥۳ ‎ب.ظ روز جمعه ٢٦ فروردین ،۱۳٩٠  کلمات کلیدی:

ماهیت پیچیدگی :

 

در مرکزِ موضوع پیچیدگی، مسأله شناخت قرار می‏گیرد[۴]. زمانیکه نرم‏افزار تأخیر دارد، ناقص است، بدرستی معیّن نشده

 یا بطور دقیق قیمت گذاری نمی‏شود ممکن است به این دلیل باشد که توسعه‏دهندگان نرم‏افزار در یک حوزه ناشناخته و پویا

 کار می‏کنند که کورمال دنبال شناخت دقیق و کامل موضوعاتی هستند که نرم‏افزار باید اداره کند. وقتی نرم‏افزار براحتی قابل

 استفاده مجدّد نیست یا نگهداری و عملیاتی شدن آن سخت است  بدلیل کنار هم قرار گرفتن پیچیده­ی بخشهایی با تعامل

 بالایی است که شناخت نرم‏افزار را مشکل می‏کند. علت بی دوامی نرم‏افزار یا بروز اتفاقات غافلگیرکننده ناخوشایند نبودن

 شناخت کامل است که به مصالحه و انعطاف ناپذیری منجر شده وتغییر و انحراف از استفاده معمول خطرناک می‏شود. در

 هر حالت، پیامدِ پیچیدگی خسارتی است که بدلیل عدم شناخت می‏پردازیم. بنابراین پیچیدگی میزانی برای دشواری

 شناخت و درک یک چیز است.

 

اجزاءی کلیدی در پیچیدگی:

 

پیچیدگی برچسبی است که ما به وجود متغیرهای وابسته‏ی زیاد در یک سیستم موجود می‏دهیم. هر چه متغیرها زیاد و

 وابستگی بین آنها زیادتر باشد سیستم پیچیده‏تر می‏شود.  اتّصال بین متغیرها ما را مجبور می‏کند که در آن واحد ویژگی‏های

 بسیار زیادی را در نظر بگیریم به‏ علاوه اینکه غیر ممکن است که فقط مسئولیّت یک عمل را در سیستم پیچیده به عهده بگیریم.

پیچیدگی چند جزء کلیدی دارد:

مقیاس: تعداد اجزاءی سیستم نرم‏افزاری

تنوّع: گستره‏ اجزاءی متفاوتی که سیستم را تشکیل می‏دهند.

اتّصال: ارتباطات بین مولفه‏ها

 


پیچیدگی چیست؟
ساعت ۱:٥٢ ‎ب.ظ روز جمعه ٢٦ فروردین ،۱۳٩٠  کلمات کلیدی:

-تعریف پیچیدگی:

 

وقتی در مورد پیچیدگی نرم‏افزار صحبت می‏کنیم اولین سؤالی که باید پاسخ داده شود این است که:

 “پیچیدگی چیست؟”.  توافق عمومی ‏بر روی چگونگی تعریف پیچیدگی نرم‏افزار وجود ندارد. پیچیدگی

 نرم‏افزار یک موضوع کلّی، غیراستاندارد اصطلاحی وابسته است که ترکیب سیستم را توصیف می‏کند.

 دلیل وابسته بودن این اصطلاح این است که مقدار مطلقی را نمی‏توان به آن نسبت داد. یک سیستم

 با پیچیدگی نرم‏افزاری بالا ممکن است نسبت به سیستم‏های دیگر پیچیدگی کمتری داشته باشد،

 پیچیدگی نرم‏افزار اصطلاح غیراستانداردی است زیرا محدوده‏ی آن مشخص نیست و می‏تواند در موارد

 متفاوت با معانی متفاوت به کار رود. یک سیستم با کد حجیم که چندین پیمانه به ‏هم مرتبط دارد می‏تواند

به‏عنوان یک سیستم پیچیده در نظر گرفته شود. از طرفی یک برنامه‏ی کوتاه با الگوریتم سخت را نیز می‏توان

 پیچیده نامید. باور عمومی ‏بر این است که پیچیدگی نرم‏افزار را نمی‏توان فقط با استفاده از یک بعد تعریف کرد

 


پیچیدگی نرم افزار چیست؟
ساعت ۱:٥۱ ‎ب.ظ روز جمعه ٢٦ فروردین ،۱۳٩٠  کلمات کلیدی:

پیچیدگی نرم افزار چیست؟

 

هزینه‏های زیاد نرم‏افزار سازمانهای نرم‏افزاری را بر آن داشته تا دنبال راه‏حلی بر کاهش این هزینه‏ها باشند.

برای نیل به این مقصود محققان دنبال رابطه‏ای بین ویژگیهای نرم‏افزار و دشواریهای کار توسعه نرم‏افزار بودند

دشواری کار زمان بیشتری برای انجام آن طلب می‏کند در این زمان منابع بیشتری بکار گرفته می‏شوند و منابع

بیشتر یعنی تحمیل هزینه‏های بیشتر. یکی از دلایل پرداختن به موضوع پیچیدگی نرم‏افزار و اندازه‏گیری آن برای

کنترل هزینه‏ها در چرخه حیات نرم‏افزار است زیرا پیچیدگی نرم‏افزار از عوامل اصلی در افزایش سریع هزینه‏های

توسعه و نگهداری عنوان می‏شودپیچیدگی نرم‏افزار فاکتوری است که در فعالیت برنامه‏نویسی کمتر شناخته

شده و به راحتی قابل یا توصیف نیست و غالباً در طول فرایند برنامه‏ریزی پروژه نادیده گرفته می‏شود. بنابراین

به دنبال روشی کمی برای پیش‏بینی میزان دشواری نگهداری، تغییر و فهم نرم‏افزار هستیم. تا با اندازه‏گیری

و کنترل آن هزینه‏ها را در چرخه حیات نرم‏افزار کاهش دهیم. در حالت کلّی پیچیدگی نرم‏افزار، میزان کار فکری

مورد نیاز برای درک نرم‏افزار را مشخص می‏کند. پیچیدگی در فاز توسعه‏ی نرم‏افزار، تلاش مورد نیاز برای آزمون

و اشکال‏زدایی برنامه، پیمانه‏ها و زیر سیستم‏ها را به شدّت تحت تأثیر قرار می‏دهد. در فاز نگهداری نرم‏افزار

 پیچیدگی  دشواری مکان‏یابی و تصحیح  خطاهای کشف نشده  پیاده‏سازی و همچنین میزان تلاش موردنیاز

برای تغییر پیمانه‏هایی از برنامه که باید تصحیح شوند را مشخص می‏کند. کار زیادی در مورد منشأ و ماهیت

پیچیدگی نرم‏افزار انجام نشده است. بیشتر کارهای انجام شده دراین زمینه به تأثیر پیچیدگی بر پروژه‏های

 نرم‏افزاری پرداخته‏اند که در رأس آنها کیفیت و هزینه‏های محصول قرار می‏گیرد. توجه مدیران و مهندسان

پروژه‏های نرم‏افزاری به پیچیدگی نرم‏افزار برای کنترل و پیش‏بینی کیفیت و بهره‏وری  محصول است. گرچه

در مورد علل و ماهیت پیچیدگی نرم‏افزار مطالب  زیادی موجود نیست. امّا چندین تعریف برای پیچیدگی

ارائه شده است تحلیل، طراحی، کد، تست، نگهداری، تغییر و اصلاح نرم‏افزار است.

 


برنامه های کاربردی
ساعت ۱٢:۳٧ ‎ق.ظ روز چهارشنبه ۱٠ فروردین ،۱۳٩٠  کلمات کلیدی:

برنامه های کاربردی چیست؟

Windows به تنهایی نمی تواند برای کاربران سیستم، کمک موثری باشد و برای انجام بعضی کارهای مفید نیاز است که نرم افزار یا برنامه های کاربردی به آن ها اضافه شود. برنامه ی کاربردی، برنامه یا قطعه ای از یک نرم افزار می باشد که جوابگوی یک نیاز خاص است. به عنوان مثال، یک ویرایشگر برای تایپ متن مواردی از قبیل: نامه ها، گزارش ها و کتاب ها است و یک صفحه گستر(Spreadsheet) برای کار کردن با اعداد، طراحی شده است و به صورت خودکار محاسباتی که دایما با ماشین حساب انجام می شود را انجام می دهد. همه ی برنامه های کاربردی برای انجام کارهای روزانه و مستمر طراحی نشده اند. به هر حال، برنامه های کمک یا سودمند (Utilities) نوع دیگری از نرم افزار هستند. برنامه های کاربردی به منظور بر طرف کردن نیازهای گاه و بی گاه اعمالی مانند اتصال رایانه شما به رایانه های دیگر، مرتب کردن دیسک سخت شما و کنترل بر روی ویروس ها طراحی شده اند. لزومی ندارد که برنامه های کاربردی حتما کارهای جدی انجام دهند. مثلا بازی ها، یک نوع از برنامه های کاربردی هستند و در بازار، هزاران دایره المعارف، فرهنگ لغت و سایر مراجع دیگر وجود دارد. متاسفانه، مانند فیلم سینمایی که پایان آن نامشخص است، شما تا نرم افزاری را آزمایش نکنید نمی دانید خوب است یا نه. خوشبختانه نشریاتی مانند What Pc نرم افزارها را مورد ارزیابی قرار می دهند. اگر خواسته باشید نرم افزار مناسبی بخرید، بعضی از تولیدکنندگان، نسخه هایی نمایشی از نرم افزار را ارایه می کنند. بنابراین، شما می توانید قبل از خریداری، اطلاعات بیشتری درباره آن ها به دست آورید. شبکه ی جهانی اینترنت نیز محیطی مناسب برای پیدا کردن ویژگی هایی این چنینی است. اینترنت، یک مرجع مناسب برای نرم افزارهای اشتراکی است که به صورت مجانی بر روی شبکه ی اینترنت قرار داده می شوند و اگر مایل به استفاده از آن ها باشید، شهریه ای ناچیز پرداخت می کنید. اغلب نرم افزارهای اشتراکی، معمولا یک راهنما یا یک نسخه ی جدید از نرم افزار را که ویژگی های بیشتری دارد جهت ایجاد انگیزه برای استفاده ارایه می کنند.


 
ساعت ۱٢:۳٦ ‎ق.ظ روز چهارشنبه ۱٠ فروردین ،۱۳٩٠  کلمات کلیدی:

Microsoft Windows

برای استفاده مفید از رایانه، قبل از هر چیزی به یک نرم افزار نیاز است و نرم افزار نیز قبل از انجام هر کاری به یک سیستم عامل نیاز دارد. سیستم عامل مورد استفاده در اغلب رایانه ها، Windows از شرکت میکروسافت است. Windows از قبل بر روی رایانه ها نصب می شود وبرای موارد ضروری معمولا بر روی یک CD-ROM نیز عرضه می شود. سیستم عامل، رابطی است بین شما و رایانه. شما از این سیستم عامل استفاده کرده و به رایانه می گویید چه کاری انجام دهد. در Windows می توان از یک موش استفاده کرد که قادر است نشانگر روی صفحه نمایش را کنترل کند. با فشار دادن دکمه موش(Click) روی نشانه ها(icon)، تصویرهای کوچکی که در این سیستم عامل گنجانده شده، انتخاب گزینه از منو و نوشتن با کمک صفحه کلید، شما می توانید رایانه را کنترل کنید و به آن دستور دهید. وقتی که می گویند یک نرم افزار تحت Windows اجرا می شود، یعنی این نرم افزار انتظار دارد که درون رایانه ی شما Windows در حال اجرا باشد و در غیر این صورت اگر رایانه فاقد Windows باشد نرم افزار مورد نظر، نصب نشده و اجرا نخواهد شد. نرم افزارهایی که برای نگارش های قدیمی تر ویندوز(سیستم عامل پیش ازWindows XP) یا MS-DOS طراحی شده اند، با رایانه ای که دارای سیستم عامل Windows جدید(مانند XP یا Vista ویندوز ویستا) است نیز اجرا می شود، اما این نرم افزارها نمی توانند از ویژگی های جدید Windows های نگارش جدید سود ببرند. از آن جایی که Windows(و سایر نرم افزارهایی که به آن نیاز دارند) دستورات طولانی و پیچیده ای به رایانه می دهند؛ به همین علت، به کار بردن رایانه ی شخصی قوی، مهم به نظر می رسد. همان طور که سیستم های عامل و نرم افزارها پیچیده تر می شوند برای اجرای این نرم افزارها، به رایانه ی شخصی قدرتمند تری احتیاج دارید. به همین دلیل، روزی فراخواهد رسید که رایانه های فعلی، دیگر قابل استفاده نبوده و کنار گذاشته شوند.


 
ساعت ۱٢:۳٦ ‎ق.ظ روز چهارشنبه ۱٠ فروردین ،۱۳٩٠  کلمات کلیدی:

نرم افزار، معمولا بر روی دیسک فلاپی یا دیسک فشرده CD-ROM عرضه می شود، اگر چه، هر روز نرم افزار های بیشتری بر روی شبکه جهانی اینترنت قرار می گیرند و این امکان را به شما می دهند که بدون استفاده از CD یا فلاپی، نرم افزار مورد نیاز خود را تهیه کنید. در اغلب مواقع، قبل از این که بتوانید از رایانه استفاده کنید، باید نرم افزار، درون آن نصب شود. نصب یک برنامه ی کاربردی به معنی انتقال تمامی اطلاعات مورد نیاز، از دیسک اصلی(Original Disk) به دیسک سخت(Hard Disk) رایانه است. بعد از نصب برنامه، برای حفاظت دیسک های اصلی می توان آن ها را در محیط مناسب نگهداری کرد. بسیاری از رایانه های جدید با نرم افزارهایی که از پیش بر روی آن نصب شده اند عرضه می شوند. این رایانه ها دارای مزایایی هستند، از جمله، ممکن است شما نتوانید دیسک اصلی را تهیه کنید ولی نرم افزارهای نصب شده در رایانه می تواند به راحتی در رایانه ای که تازه بسته بندی آن باز شده است، استفاده شوند. حتی اگر در رایانه، این مجموعه نرم افزارها وجود نداشته باشد همواره سیستم عاملی روی آن نصب می گردد.


 
ساعت ۱٢:۱٧ ‎ق.ظ روز چهارشنبه ۱٠ فروردین ،۱۳٩٠  کلمات کلیدی:

نرم افزار چیست؟

 

در کشور ما صنعت نرم افزار بسیار نوپا و جوان است. هنوز فرهنگ نرم افزاری در بین مردم کشور ما جایی ندارد. میانسالان ما با نرم افزار و تکنولوژی های روز از جمله اینترنت کاملا غریبه اند. هنوز بسیاری از ادارات ، شرکت ها و فروشگاه ها اطلاعات خود را به روش دستی روی کاغذ مدیریت می کنند و به اهمیت و مزایای اتوماسیون اداری پی نبرده اند. امیدوارم نوشتار زیر در درک بهتر موجودیت “نرم افزار” به شما کمک کند.

بسیاری از مردم، نرم افزار را با برنامه های کامپیوتری یکسان می دانند. در واقع این دید، بسیار محدودکننده است. نرم افزار فقط برنامه های کامپیوتری نیست، بلکه تمام مستندات و داده های پیکربندی را که برای حیات این برنامه ها ضروری اند را شامل می شود. سیستم های نرم افزاری معمولا شامل تعدادی برنامه، فایل های پیکربندی جهت حفظ تنظیمات، مستندات سیستم جهت تشریح ساختار نرم افزار، مستندات و راهنمای کاربر برای تشریح چگونگی کار با سیستم می باشد.

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

1- محصولات کلی : این ها سیستم های مستقلی اند که توسط یک شرکت تولیدکننده نرم افزار ساخته می شوند و به بازار عرضه می گردد و مشتریان برحسب نیاز آنها را تهیه می کنند. این گونه محصولات شامل پکیج های آماده نرم افزاری مثل واژه پردازها و نرم افزارهای حسابداری است.

2- محصولات سفارشی : این ها محصولات نرم افزاری هستند که توسط مشتری خاصی سفارش داده می شوند. این گونه محصولات توسط پیمانکاران نرم افزاری برای مشتری سفارش دهنده ایجاد می شوند.

تفاوتی که میان این گونه محصولات وجود دارد این است که شرکتی که محصولات کلی را تولید می کند مشخصات نرم افزار را کنترل می کند، اما در محصولات سفارشی تعیین مشخصات و کنترل نرم افزار توسط سازمان خریدار انجام می شود.

از نظر مجازی، اکنون تمام کشورهای وابسته به سیستم های نرم افزاری پیچیده اند. تمامی سیستم های دولتی و تجاری بر پایه سیستم های کامپیوتری بنا شده اند. نرم افزار در این سیستم ها، بخش بسیار زیادی از هزینه های کل سیستم را به خود اختصاص میدهد. بنابراین، تولید نرم افزار با هزینه مناسب، در عملکرد اقتصاد ملی و بین المللی بسیار موثر است.

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

چند نکته بنظرم می‌رسه:

- انتزاعی بودن و “غیرقابل تجسم” بودن نرم‌افزار ریسک را در آن بالا برده‌است؛ بسیاری از اشکالات و کج‌فهمی‌ها در شناخت یک سیستم و تبدیل آن به یک نرم‌افزار، گاهی اوقات تا آخرین مراحل تولید پنهان می‌مونه و هیچ‌کس متوجه ایرادات نمیشه.

- در ایران صنعت نرم‌افزار تقریبا یعنی همان “محصولات‌ سفارشی”! که سفارش‌دهنده آن هم عموما بدنه دولت است. خب این یعنی چی ؟!‌ یعنی اینکه اگر دولت زمانی بودجه IT‌ رو کاهش بده،‌ نرم‌افزار در ایران روزهای سختی رو خواهد گذراند؛‌ متاسفانه.

 

 

.

 

 

 

 

 


 
ساعت ٢:۳۸ ‎ب.ظ روز سه‌شنبه ٩ فروردین ،۱۳٩٠  کلمات کلیدی:

به پرشین بلاگ خوش آمدید
ساعت ۱:٥٩ ‎ق.ظ روز سه‌شنبه ٩ فروردین ،۱۳٩٠  کلمات کلیدی:
بنام خدا

كاربر گرامي

با سلام و احترام

پيوستن شما را به خانواده بزرگ وبلاگنويسان فارسي خوش آمد ميگوييم.
شما ميتوانيد براي آشنايي بيشتر با خدمات سايت به آدرس هاي زير مراجعه كنيد:

http://help.persianblog.ir براي راهنمايي و آموزش
http://news.persianblog.ir اخبار سايت براي اطلاع از
http://fans.persianblog.ir براي همكاري داوطلبانه در وبلاگستان
http://persianblog.ir/ourteam.aspx اسامي و لينك وبلاگ هاي تيم مديران سايت

در صورت بروز هر گونه مشكل در استفاده از خدمات سايت ميتوانيد با پست الكترونيكي :
support[at]persianblog.ir

و در صورت مشاهده تخلف با آدرس الكترونيكي
abuse[at]persianblog.ir
تماس حاصل فرماييد.

همچنين پيشنهاد ميكنيم با عضويت در جامعه مجازي ماي پرديس از خدمات اين سايت ارزشمند استفاده كنيد:
http://mypardis.com


با تشكر

مدير گروه سايتهاي پرشين بلاگ
مهدي بوترابي

http://ariagostar.com