کرسف karasfi.ir

اخبار و اطلاعات شهری کرسف

کرسف karasfi.ir

اخبار و اطلاعات شهری کرسف

جغرافیای کرسف (طبیعی، سیاسی، انسانی، اقتصادی)

الف- جغرافیای طبیعی

 1- موقعیت جغرافیایی و تقسیمات سیاسی
دهستان کرسف به مرکزیت شهر کرسف با 28 آبادی یکی از دهستانهای بزرگ و پرجمعیت بخش مرکزی شهرستان خدابنده از توابع استان زنجان میباشد که بین 36 درجه و 7 دقیقه عرض شمالی و 48 درجه و 35 دقیقه طول شرقی از نصف النهار گرینویچ قرار گرفته است. این دهستان از طرف شمال به بخش سجاسرود، از طرف شمال غربی و غرب به دهستان سهرورد، از طرف جنوب به بخش افشار و بزینه رود و از طرف شرق به شهرستان خرارود محدود میشود. شهر کرسف ناحیه ای کوهستانی است که ارتفاع آن از سطح دریا تقریبا 2000 متر میباشد.


     

  ادامه مطلب ...

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

اشاره :
در حقیقت ساختن یک نرم‌افزار فقط نوشتن کدهای برنامه نیست. رویه ساخت نرم‌افزارها مراحل متعددی را دربرمی‌گیرد؛ از جمع آوری نیازهای کاربران گرفته تا طراحی، نوشتن کد و در آخر امتحان نرم افزار. روش تولید نرم‌افزارهای کوچک با نرم‌افزارهای بزرگ متفاوت است و طبعاً رویه تولید نرم‌افزارهای کوچک نیز متفاوت خواهد بود. البته این رویه نباید سنگین و حجیم باشد، باید مستقیماً به تمامی فعالیت‌های لازم برای تولید نرم‌افزاری با کیفیت بالا نظارت داشته باشد و از تمامی رویه‌های آسان و متمرکز استفاده کند. با استفاده از تکنیک‌هایی مفید، از روش‌هایی مانند XP،Scrum و RUP می‌توان رویه‌ای مناسب برای تولید نرم‌افزارهای کوچک به‌وجود آورد. همچنین می‌توان از روش‌هایPSP و TSP نیز که برای تولید نرم‌افزارهای کوچک مناسب هستند استفاده نمود و به‌وسیله این روش‌ها کیفیت و قابلیت‌های نرم‌افزارها را بالا برد و در حداقل زمان ممکن نرم‌افزار را تهیه نمود. این مقاله با بررسی روش‌های جدید و متداول امروزی در تولید نرم‌افزار، بهترین و مناسب‌ترین روش تولید نرم‌افزارهای کوچک را به شما نشان خواهد داد. گفتنی است نوشتار حاضر نتایج تحقیقات من در گروه تحقیقاتی مهندسی نرم‌افزار دانشگاه ساندرلند انگلستان است و آمار و نتیجه‌گیری‌های آن براساس مصاحبه‌های انجام شده با چندین شرکت کوچک و بزرگ تولید نرم‌افزار آن کشور است.


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

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

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

در ادامه این مقاله روش‌های تولید نرم‌افزارها، به خصوص نرم‌افزارهای نسبتاً کوچک که از گروه‌های تولید نرم‌افزاری کوچک‌تری استفاده می‌کنند، بررسی می‌شوند و مورد ارزیابی قرار می‌گیرند.

روش SCRUM
در روش‌های قدیمی و معمول ساخت نرم‌افزار، طراحان نرم‌افزار معمولاً ابتدا فرض می‌کنند که تمامی نیازهای کاربران سیستم را درک کرده‌اند. اما همیشه نیازهای کاربران سیستم در ابتدا مشخص نیست و کاربران ممکن است در همان مراحل ابتدایی، نیازهای خود را تغییر دهند و این چیزی است که برنامه‌نویسان و طراحان سیستم همیشه از آن شکایت می‌کنند و به دنبال راه‌حلی برای رفع این موضوع می‌گردند. به‌عنوان مثال مدل قدیمی آبشاری (waterfall) را در نظر بگیرید.

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

امروزه یکی از روش‌های تولید نرم‌افزار که به خصوص برای پروژه‌های نرم‌افزاری کوچک مورد استفاده قرار می‌گیرد و توسط بسیاری از اساتید و صاحب‌نظران مورد تأیید قرار گرفته است، روش SCRUM است. با استفاده از این روش که روشی به اصطلاح (iterative تکراری یا چرخشی) می‌باشد، می‌توان نرم‌افزارهای کوچک را با کیفیت بالا تهیه نمود. در این روش که به روش هوشمند یا Agile نیز مشهور است، مدیریت قوی تولید نرم‌افزار وجود دارد که به برنامه‌نویسان اجازه می‌دهد با استفاده از آن در پروژه‌ها به سرعت نرم‌افزار موردنظر را تهیه نمایند. اسم Scrum در حقیقت از بازی راگبی گرفته شده است (در بازی راگبی Scrum تیمی متشکل از هشت نفر است که با همکاری بسیار نزدیک با یکدیگر بازی می‌کنند).


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

روش Scrum همانند پروسه‌های دارای مرحله برنامه‌ریزی مقدماتی یا Initial Planning است. در این فاز اعضای تیم باید یک نقشه مقدماتی و یک معماری سیستم قابل تغییر به وجود آورند. بعد از این فاز یک سری از Sprintها به صورت مرتب و جزء جزء نرم‌افزار مورد نظر را به وجود می‌آورند. انجام دادن هر Sprint ممکن است از یک تا چهار هفته به طول بینجامد و مجموع این Sprintها نرم‌افزار کاملی را به‌وجود میآورند.

فهرست تکالیف در هر Sprint به Backlog مشهور است که تکالیف تیم عملیاتی در هر Sprint را مشخص می‌کند. این Backlog در هر Sprint بروز می‌شود و هر تکلیف براساس اهمیتی که دارد در فهرست تکالیف تعیین اولویت می‌گردد. هر فرد در گروه یک کار یا تکلیف خاص از این فهرست را به عهده می‌گیرد و موظف می‌شود تا شروع Sprint بعدی آن را به اتمام برساند. وقتی که یک Sprint شروع شد، دیگر انجام هیچ تغییری در تکالیف امکان ندارد و حتی درخواست‌کننده نرم‌افزار نیز حق تغییر یا درخواست نیاز دیگری در نرم‌افزار را نخواهد داشت.

البته درخواست‌کننده می‌تواند از قسمتی از نرم‌افزار که باید در هر مرحله تولید شود بکاهد، اما نمی‌تواند تاریخ تحویل آن قسمت را تغییردهد. شاید بتوان گفت که این کار باعث ایجاد نظم در گروه می‌شود و تاریخ تحویل نرم‌افزار به تعویق نخواهد افتاد. علاوه بر این، در طول هر Sprint گروه موظف است روزانه جلساتی جهت بررسی روند پیشرفت و قابلیت‌های نرم‌افزار داشته باشد که این نیز به هماهنگی بیشتر گروه کمک خواهد کرد. در این جلسات که معمولاً به صورت روزانه است، سه گروه می‌توانند شرکت کنند: گروه تهیه‌کننده نرم‌افزار، مدیریت، و درخواست‌کنندگان نرم‌افزار.

در طول این جلسات مسئول جلسه که اغلب مدیر پروژه است، از تمامی اعضای تیم سه سؤال می پرسد:

1- مسئولیت شما (تکالیف) از جلسه قبلی تاکنون چه بوده است و آیا توانسته‌اید این تکالیف را به اتمام برسانید؟

2- در طول این دوره به چه مشکلاتی برخورده‌اید؟

3- بر طبق فهرست وظایف، مسئولیت شما از حالا تا جلسه بعدی چه خواهد بود؟

مدیر Scrum در حقیقت مسئولیت شناسایی تکالیف محوله به اعضا، بررسی روند تکمیلی ساخت نرم‌افزار، بررسی قابلیت‌های اعضای گروه و فعالیت در راستای کم کردن ریسک در پروژه را داراست.

اما چه تفاوتی بین Scrum و دیگر روش‌های تولید نرم‌افزار وجود دارد؟ در جواب این سؤال باید یادآورشد که در Scrum هر مرحله یا Sprint قسمتی از نرم‌افزار را آماده می کند. در این روش می توان پیشرفت در تولید نرم‌افزار را در هر مرحله به خوبی احساس نمود. علاوه بر این، گروه می‌تواند پس از اتمام هر Sprint تصمیم‌گیری‌کند که آیا می خواهد به کار روی پروژه ادامه دهد یا انجام پروژه مذکور غیرممکن است. روش Scrum وقتی می‌تواند بیشتر مفید باشد که در ابتدای پروژه نیازهای کاربران به صورت دقیق مشخص نباشد و یک گروه کوچک مسئول پروژه نرم افزاری باشد.

نتایج تحقیقاتی که اواخر سال 2005 روی چندین شرکت تولیدکننده نرم‌افزار در کشور انگلستان انجام دادم، نشان‌دهنده این بود که شرکت‌هایی که از Scrum استفاده کرده بودند با حدود چهارصددرصد افزایش در بهره‌وری کار مواجه بودند. البته این رقم در گروه‌های نرم‌افزاری مختلف متفاوت بود و می‌توان گفت عوامل انسانی از جمله مدیر پروژه نقش بسیار مهمی در افزایش یا کاهش راندمان پروژه ها دارند.

شاید این سؤال در ذهن شما به وجود آید که چرا Scrum ممکن است برای تولید نرم‌افزارهای کوچک راه حل خوبی باشد؟ در جواب می‌توان گفت، از آن جایی که در تیم‌های کوچک، اعضای گروه باید از تمامی مسائل پروژه آگاه باشند و در Scrum تمامی مراحل ساخت توسط تمامی اعضای گروه قابل مشاهده است. لذا این روش می‌تواند روش مناسبی باشد.

معایب روش Scram
مزایای استفاده از Scrum بسیار است، اما این روش چند اشکال نیز دارد. از جمله:

1- Scrum روش جدیدی است و با روش‌های مرسوم تفاوت‌های زیادی دارد.

2- برخی از برنامه‌نویسان حرفه‌ای ممکن است از تکالیفی که مدیر Scrum به ایشان می‌دهد راضی نباشند و بخواهند روش قدیمی خود را اجرا نمایند و در صورت اجبار، در روند اجرای پروژه کارشکنی کرده و مشکل‌آفرینی کنند.

3- از آنجا که مدیر Scrum هم از نظر کیفی و هم کمی باید پروژه را مدیریت کند، Scrum نیاز به مدیریت بسیار قدرتمند دارد.

4- Scrum را می‌توان به عنوان روش تولید نرم‌افزار نام برد، اما این روش بیشتر روش مدیریت پروژه هوشمند خوبی است و نمی‌توان آن را به صورت منفرد استفاده نمود و می‌توان گفت برای حصول اطمینان از موفقیت پروژه‌های نرم‌افزاری (به خصوص در سطح کوچک) باید این روش را با روش‌های دیگر ادغام نمود. Scrum را از آن جهت می‌توان روش خوبی برشمرد که روشی تحقیقی براساس تخمین، اولویت‌بندی، عملکرد گروه و بررسی نتایج است که اگر به صورت صحیح مورد استفاده قرار گیرد و قبل از استفاده به صورت کامل آموزش داده شود، می‌تواند راندمان پروژه‌های نرم‌افزاری، به خصوص تولید نرم‌افزارهای کوچک را به صورت بسیار محسوسی بالا ببرد.

روش XP
اشتباه نکنید! منظور از روش اکس‌پی، ویندوزاکس‌پی نیست. اکس‌پی مخفف Extreme Programming یا برنامه‌نویسی سریع می‌باشد که مانند Scrum روشی هوشمند در تولید نرم‌افزار است. در اکس‌پی دو برنامه‌نویس کار را انجام می‌دهند و قبل از اتمام برنامه آن را چندین‌بار امتحان می کنند. اکس‌پی در حقیقت روشی از تولید نرم‌افزار است که براساس آسانی، ارتباط، واکنش و تصمیم‌گیری سریع استوار است. شکل 2 اصول روش اکس‌پی را نشان می‌دهد.

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

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

مانند Scrum، در اکس‌پی نیز اعضای گروه می‌توانند روند تکمیلی تولید نرم‌افزار را مشاهده کنند و در جریان کار قرار گیرند.اکس‌پی روش مناسبی برای مدیریت پروژه‌های کوچک می‌باشد که از دو تا ده برنامه‌نویس تشکیل شده است. اگر چه اصولاً اکس‌پی هیچ رویه خاص و مراحل پیوسته‌ای را مشخص نکرده اما می توان گفت که اکس‌پی داری چهار مرحله اصلی می باشد:

الف: مرحله زمانبندی پروژه: در این مرحله اعضای گروه با توجه به اندازه نرم‌افزار و کارایی آن برنامه زمانبندی را با هم تنظیم می کنند.

ب: طراحی ابتدایی

ج: نوشتن کدهای برنامه

د: امتحان‌کردن کدهای نوشته شده

مطابق تحقیقاتی که توسط نویسنده انجام شد، مشخص گردید که اکس‌پی در پروژه‌های بزرگ با تعداد اعضای بالای ده نفر اصلاً موفق نخواهد بود و تنها می‌تواند برای پروژه‌های کوچک مفید باشد. دلیل آن را نیز می توان در طبیعت این روش دانست؛ زیرا مستندات چندانی برای نرم‌افزار وجود ندارد و فقط دو نفر یا حداکثر چهار نفر می‌توانند در مورد قسمتی از نرم‌افزار اطلاعاتی داشته باشند. همچنین نرم‌افزار تولیدشده توسط این روش هیچ‌گونه طراحی سازمان یافته‌ای ندارد که این موضوع می‌تواند برای مراحل پس از نصب یعنی تعمیرات و نگهداری سیستم باعث بروز مشکلاتی گردد.

از جمله مزایای اکس‌پی می‌توان به این نکته اشاره نمود که از آن جایی که یک برنامه‌نویس به صورت مستقیم کدهای برنامه را کنترل می کند، می‌توان گفت که کیفیت نرم‌افزار تولیدی بالا می‌رود. همچنین می‌توان گفت از آن جایی که دو برنامه‌نویس با هم کار می‌کنند، آموزش کمتری نیاز است و در نتیجه هزینه تولید نرم‌افزار پایین خواهد آمد. اما این روش مشکلات خاص خود را نیز دارد. مثلاً تصورکنید اگر در یک گروه، یک برنامه‌نویس تمایلی برای کار با برنامه نویس دیگری را نداشته باشد یا در یک روز یکی از دو عضو گروه غایب باشد یا ... در نتیجه چون نمی‌توان با یک برنامه‌نویس به ادامه کار پرداخت، اتمام پروژه با تأخیر مواجه خواهد شد.

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

روشRational Unified Process) ‌RUP)

در این بخش یکی از معروف‌ترین رویه‌های تولید نرم‌افزار که توسط شرکت آی‌بی‌ام طراحی گردیده‌است را معرفی می‌کنیم. این روش با نام Rational Unified Process) ‌RUP) در بسیاری از پروژه‌های نرم‌افزاری به کار گرفته می‌شود.
در حقیقت هدف اصلی RUP مطمئن‌شدن از این موضوع مهم است که آیا نرم‌افزار تولیدشده نیازهای کاربرانش را به صورت کامل، با کیفیت بالا‌، در زمان معین و با بودجه مشخص برآورده کرده است یا خیر.

مطابق تحقیقات انجام شده، از آن جایی که RUP به تمامی اعضای تیم، اطلاعاتی مشترک می‌دهد و تمامی اعضای گروه با یک زبان مشترک با هم مرتبط هستند، بازده کاری گروه را بالا می‌برد.

RUP دارای سه جزء اصلی است. جزء اول از مجموع راه‌حل‌های خوب که در رویه می‌تواند مورد استفاده قرار گیرد تشکیل شده است. جزء دوم همان مراحل تهیه نرم‌افزار است و جزء آخر قسمت‌های تشکیل‌دهنده این رویه می باشد.

‌ ‌ RUP شش راه‌حل خوب که می‌تواند در مراحل مختلف این رویه به ما کمک کند را معرفی کرده است. از آن جمله:

1- استفاده از USE CASEها که می‌توانند در جمعآوری نیازهای کاربران مفید باشند.

2- استفاده از معماری نرم‌افزار قابل تغییر‌ (‌component reuse)

3- استفاده از روش‌های تکمیلی و Iterative برای کنترل بهتر و آسان پروژه نرم‌افزاری‌

4- استفاده از نمودارهای UML

5- کنترل تغییرات در نرم‌افزار

6- کنترل کیفیت نرم‌افزار با توجه به درخواست‌های اولیه کاربران

شکل 3 رویه RUP را نمایش می‌دهد. همان‌طور که در این شکل مشخص شده است چرخه تولید نرم‌افزار به چهار قسمت اصلی تقسیم شده است:

الف: Inception phase یا مرحله آغازین:
در این مرحله اهداف پروژه مشخص شده و درخواست‌های اولیه کاربران تعریف می‌شود. از خروجی‌های این مرحله می‌توان به مدل اولیه Use Case، آزمون ریسک در پروژه و برنامه زمانبندی پروژه اشاره کرد.

ب: Elaboration phase یا مرحله مقدماتی:
در این مرحله نیازهای کاربران تحلیل و بررسی شده و راه‌حل کلی طراحی سیستم ترسیم می‌شود. از خروجی‌های این مرحله می‌توان از مدل کامل شده Use Case، فهرست نیازهای کامل کاربران و طرح کلی سیستم نام برد.

ج: Construction phase:
یا مرحله ساخت و توسعه: در این مرحله نرم‌افزار طراحی شده ساخته می‌شود و به اصطلاح، کد برنامه نوشته شده و قسمت‌های مرتبط به هم ارتباط داده می‌شوند. از خروجی این مرحله می‌توان از نرم‌افزار، راهنمای استفاده از نرم‌افزار و مستندات سیستم نام برد.

د: Transition phase یا مرحله تغییرات:
در این مرحله اگر نرم‌افزار به وجود آمده در مرحله ساخت دچار مشکل شود، مشکل رفع خواهد شد.

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

همان‌طور که در این قسمت ذکر شد، روش RUP روشی انعطاف پذیر، قابل تغییر و پیشرفته است که می‌تواند در صورت استفاده صحیح، باعث افزایش کارایی و کیفیت نرم‌افزار تولیدی گردد. اما آیا RUP می‌تواند رویه خوبی برای تولید نرم‌افزارهای کوچک باشد؟ در جواب باید گفت که RUP را طوری طراحی کرده‌اند که بتواند برای انواع پروژه‌های نرم‌افزاری در هر اندازه مفید باشد و از آن جایی که از ابزارهای خوبی مثل UML نیز استفاده می‌کند، UML) در گروه‌های کوچک که نرم‌افزارهای کوچک طراحی می‌کنند ابزار مدلی خوبی است) می‌تواند باعث همکاری و هماهنگی بیشتر گروه گردد.

اما همان‌طور که در ادامه این بحث خواهید دید، اگر بتوانیم رویه‌های ساده‌تر را با یکدیگر ادغام کنیم، شاید بتوانیم راه حلی با کارایی بالاتری داشته باشیم.
روش های PSP و TSP
PSP یا Personal Software Process در حقیقت روش تولید نرم‌افزار نیست بلکه روشی است نوین که با ملزم نمودن اعضای گروه پروژه‌های نرم‌افزاری به رعایت اصولی مشخص و استفاده از فرم‌ها و تکالیفی مشخص به آن‌ها کمک می‌کند کارایی و بهره‌وری کاری خود را بالا ببرند. این روش همچنین حاوی تکنیک‌های خوبی برای کنترل، ا‌ندازه‌گیری و تشخیص اشکالات می‌باشد که می‌تواند به شخص (مثلاً برنامه‌نویس) کمک کند تا مثلاً با اندازه‌گیری نرم‌افزار، یادداشت میزان فعالیت روزانه و ساعات هدر رفته، و اشکالات به وجود آمده، مشکلات را حل کند و در نتیجه بهره‌وری خود را بالاتر ببرد. TSP یا Team Software Process مانند PSP است، ولی برای یک تیم طراحی شده و با طرح روش‌های منظم جهت کنترل و جمع‌آوری اطلاعات روزانه به اعضای تیم کمک می‌کند تا کارایی خود را بالا ببرند.

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

روش RUP + Scrum
همان‌طور که قبلاً اشاره شد، روش Scrum روشی آسان برای تولید نرم‌افزار است که مدیریت پروژه و نظم موجود در آن می‌تواند بسیار کارگشا باشد. حال تجسم کنید که روش RUP را اجرا و قسمت‌هایی از Scrum را در آن ادغام کنیم. پس از این کار متوجه خواهید شد که روش RUP می‌تواند از مدل Scrum کمک بگیرد و با ادغام این دو می‌توان پروسه‌ای منظم برای تولید نرم‌افزارهای کوچک سازماندهی کرد. اما همان‌طور که می‌دانید نمی‌توان دو رویه ناهمگون را با هم ترکیب نمود. آیا RUP و Scrum با هم شباهت‌هایی دارند؟

همان‌طور که قبلاً بیان شد، هر دو رویه ساخت نرم‌افزار روش حلقه‌ای تکرارکننده یا Iterative را خط مشی خود قرار داده‌اند(البته در RUP تعریف بهتر و کامل‌تری از Iterative شده است). در Scrum تعریف نیازهای کاربران توسط اعضای تیم انجام می‌پذیرد، اما در RUP تنها یک شخصRequirement Engineer) یا مهندس مسئول نیازهای کاربران) است که این مسئولیت را برعهده دارد. در زمینه مدل سیستم اگر چه Scrum مسئولیت انجام این کار را به تمامی اعضای گروه داده است، اما هر دو روش از مدل UML پشتیبانی می‌کنند و استفاده از آن را پیشنهاد می‌دهند.

ضمناً هر دوی این روش‌ها روش‌های هوشمند و Iterative هستند که مدیریت و اندازه گیری کیفیت نرم‌افزار در تمامی مراحل این رویه‌ها به خوبی دیده می‌شود. همچنین هر دوی این روش‌ها انجام تغییرات را در طول پروژه مجاز می‌دانند. البته همان‌طور که در قسمت Scrum توضیح داده شد، این روش تغییرات را در طول مراحل Sprint مجاز نمی‌داند، اما مدیر Scrum می‌تواند تغییرات درخواستی توسط کاربران را جمعآوری و در جلسه بعدی مطرح نماید.

به تازگی RUP نیز ابزارهای جدیدی مانند RUP Builder و RUP modeller را عرضه کرده که به مدیران پروژه‌ها اجازه می‌دهد تا برخی از اصول Scrum را درRUP اجرا کنند. در نتیجه این دو پروسه تولید نرم‌افزار می‌توانند به کمک بیایند و روشی مناسب برای تولید نرم‌افزارها به‌خصوص در اندازه کوچک باشند.


روش RUP + XP
روش دومی که مورد آزمایش قرار گرفت، تلفیقی بود از اکس‌پی و RUP. ولی می‌توان گفت ادغام این دو رویه بسیار متفاوت است.

RUP رویه‌ای بسیار سنگین و اکس‌پی روشی بسیار سبک است. می‌دانید که RUP را می‌توانیم تقریباً برای تمامی نرم‌افزارهای کوچک و بزرگ به کار برد. اکس‌پی نیز همانند RUP براساس Iterationها یا مراحل پیوسته مانند تحلیل، طراحی و امتحان نرم‌افزار استوار است.

از آن جایی که RUP و اکس‌پی از اساس با هم تفاوت‌های زیادی دارند و اکثراً تصور می‌کنند که RUP راه‌حلی برای تولید نرم‌افزارهای بزرگ و اکس‌پی برای تولید نرم‌افزارهای کوچک است، ممکن شما هم تصور کنید که استفاده همزمان از هر دوی این روش‌ها کاردرستی نیست.

اما مطابق تحقیقات انجام شده به نظر می‌رسد که برای تولید نرم‌افزارهای کوچک روشی بین RUP و اکس‌پی نیاز است.در نتیجه با اضافه‌کردن برخی از تکنیک‌های اکس‌پی به RUP می‌توان به رویه‌ای مناسب‌تردست یافت. قبلاً نیز محققانی روی RUP کار کرده‌اند تا آن را برای پروژه‌های کوچک مناسب سازند. مثلاً در سال 2000 یک نسخه از RUP به نام dX معرفی گردید که RUP مختصر شده‌ای بود. برای نرم‌افزارهای کوچک (که اعضای پروژه اغلب در یک محیط کار می‌کنند) اکس‌پی می‌تواند روشی بسیار خوب باشد، اما اگر اعضای تیم پراکنده باشند و سیستم بخواهد توسعه یابد، اکس‌پی قادر به جوابگویی نیست و می‌توان گفت که با استفاده از قسمت‌هایی از روش قدرتمند RUP می‌توان به اکس‌پی کمک نمود.

برای تلفیق این دو روش تصورکنید که پروژه‌ای شروع شده است. در مرحله Inception یا آغازین می‌توان از تکنیک‌های اکس‌پی در زمینه برنامه‌ریزی زمانی و جمع آوری نیازهای سیستم استفاده نمود. البته نمی‌توان گفت که همیشه این دو روش با هم سازگار هستند. مثلاً در اکس‌پی مرحله‌ای به نام طراحی یا Design Phase وجود ندارد. در صورتی که RUP یک مرحله مجزا برای این قسمت دارد.

روش Iterative Process
شاید به نظر برسد که در پروژه‌های کوچک، اعضای گروه نیاز کمتری به ارتباط با یکدیگر دارند. اما از آن جایی که در این گونه پروژه ها ارتباط بین اعضای تیم و کاربر نزدیک‌تر است و عوامل خارجی نیز نقش مهمی را در پروژه‌ بازی می‌کنند، در این پروژه‌ها نیاز به ارتباط بین اعضای تیم محسوس به نظر می‌رسد. همچنین اگرچه پروژه‌های نرم‌افزاری کوچک طبیعتاً نیاز به نوشتن کدهای کمتری دارند و ممکن است به چند مدیر نیاز نداشته باشند اما مانند پروژه‌های بزرگ باید نرم‌افزاری با کیفیت بالا ارائه دهند. در نتیجه می‌توان گفت که روشی برای تولید نرم‌افزار کوچک مناسب‌تر است که تمامی موارد مذکور را در نظر بگیرد و اجرا کند.

رویه Iterative یکی از این روش‌ها است. با استفاده از این رویه دو نوع محصول به نام‌های Actual و by-product تولید می‌گردد. در واقع محصولاتی که در موفقیت پروژه نقش اساسی بازی می‌کنند، Actulas و آن دسته که به وجود آمدن Actualsها کمک می‌کنند را By-Product می‌گویند (مثلاً طرح اولیه سیستم). در این مدل هر عضو از گروه مسئول انجام‌دادن قسمتی از کار می‌شود و این مدل شامل هشت مرحله یا فاز است.

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

وقتی این مرحله تمام شد و کدهای سیستم نوشته شد، اعضای تیم در فاز جمع‌بندی کدهای سیستم را با توجه به مراحل اول تا پنج مرور می‌کنند. در مرحله آخر نیز اعضای گروه را امتحان می‌کنند تا اولاً نیازهای کاربران را تأمین کرده باشد و ثانیاً فاقد هرگونه اشکال باشد. اگر نرم‌افزار فاقد اشکال باشد، رویه تولید نرم‌افزار به آخر خواهد رسید. در غیر این صورت، اعضای گروه به دنبال منبع مشکل در مراحل قبلی می‌گردند و مجدداً رویه را از آن جایی که فکر می‌کنند باعث بروز اشکال شده است، ادامه می‌دهند.

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

از جمله این رویه‌های ساده می‌توان از Scrum نام برد. Scrum یک تکنیک مدیریت پروژه است که می‌تواند به تیم‌های نرم‌افزاری کوچک که روی پروژه‌های کوچک نرم‌افزاری کار می‌کنند کمک کند راندمان و کارایی بالاتری در کار داشته باشند. اما اگر این روش‌ها را با روش‌های مناسب دیگر ادغام کنیم، می‌توانند بیشتر مفید واقع گردند.

پس از Scrum، روش اکس‌پی توضیح داده شد و به عنوان بهترین راه برای تولید نرم‌افزارهای کوچک از آن نام برده شد. اما این روش به تنهایی کارایی چندانی نخواهد داشت. سپس RUP که می‌تواند در تمامی پروژه‌ها استفاده شود تشریح شد و در ادامه سه روش مناسب برای تولید نرم‌افزارهای کوچک ارائه گردید. اما همان‌طور که بحث شد، داشتن یک روش مناسب به تنهایی نمی‌تواند ضامن موفقیت در پروژه باشد، بلکه انتخاب منابع انسانی مناسب و با تجربه می‌تواند راه را برای موفقیت پروژه‌های نرم‌افزاری هموارتر سازد.

توسط: امین صفائی‌
منبع: ماهنامه شبکه

Paint ویندوز را دست کم نگیرید!

همگی کاربران چه مبتدی و چه پیشرفته ، مطمئنأ نرم افزار Paint یا همان نقاشی ویندوز را میشناسند. همگی زمانی را به تفریح صرف این برنامه کوچک کرده ایم. اما با آمدن نرم افزارهای حرفه ای ویرایش عکس همچون Corel ، Photoshop و ... این برنامه دیگر کاملأ به یک نرم افزار ابتدایی تبدیل گشته است. اما پیشنهاد میکنیم این نرم افزار را اصلا دست کم نگیرید! چرا که توانایی بسیار جالبی در این برنامه وجود دارد که تاکنون از دید شما پنهان مانده است. با استفاده از ترفندهای مخفی که اکنون به شما معرفی خواهیم کرد میتوانید اعمالی را با Paint انجام دهید که جزء ویژگیهای نرم افزارهای حرفه ای ویرایش تصویر است. این ترفند را اکیدأ به شما پیشنهاد میکنیم.

ابتدا برای اجرا کردن برنامه Paint ، از منوی Start و سپس All Programs وارد Accessories شده و Paint را انتخاب کنید.

پس از باز شدن برنامه ، از منوی File ، گزینه Open را انتخاب کنید. سپس در پنجره جدید باز شده یک عکس را برای نمونه انتخاب کرده و روی دکمه Open کلیک نمایید.
حالا عکس مورد نظر شما در برنامه باز شده است.

مهر زدن قطعه ای از عکس
در Paint قابلیت مخفی وجود دارد که با استفاده از آن میتوانید قطعه ای از عکس را همانند مهر کردن تکرار کنید.
برای این کار در داخل نوار ابزار برنامه ، ابزار Select را انتخاب کنید (مستطیل نقطه چین). سپس بر روی قسمتی از عکس با استفاده از موس یک مستطیل ایجاد کنید. اکنون دست خود را روی دکمه Ctrl نگه دارید و مستطیلی را که ایجاد کردید جابجا کنید و رها کنید. همواره دستتان که روی دکمه Ctrl است این عمل را ادامه دهید تا قطعه عکس انتخاب شده همانند عمل مهر زدن تکرار گردد.

ساییدن قطعه ای از عکس
با استفاده از این قابلیت مخفی ، میتوانید قطعه ای از عکس را همانند عمل ساییدن روی کل عکس بکشانید.
برای این کار در داخل نوار ابزار برنامه ، ابزار Select را انتخاب کنید (مستطیل نقطه چین). سپس بر روی قسمتی از عکس با استفاده از موس یک مستطیل ایجاد کنید. اکنون دست خود را روی دکمه Shift نگه دارید و مستطیلی را که ایجاد کردید جابجا کنید. تا زمانی که دستتان روی دکمه Shift باشد این عمل تکرار خواهد شد.

کوچک و بزرگ کردن قطعه ای از عکس
قابلیت مخفی دیگری که در Paint وجود دارد کوچک و بزرگ کردن قطعه ای از عکس به شکلی است که دیگر اجزای عکس تغییری نکند.
برای این کار در داخل نوار ابزار برنامه ، ابزار Select را انتخاب کنید (مستطیل نقطه چین). سپس بر روی قسمتی از عکس با استفاده از موس یک مستطیل ایجاد کنید. اکنون دست خود را روی دکمه Ctrl نگه دارید و یکی از دکمه های + و - را بزنید. دکمه های Ctrlو+ عکس قطعه انتخابی را بزرگ و دکمه Ctrlو- قطعه انتخابی را کوچک میکند.
لازم به ذکر است که این ترفند را میتوانید روی تمامی ابزارهای ایجاد نقاشی نیز اجرا کنید. به فرض مثال در نوار ابزار ، ابزار Brush (قلم مو) را انتخاب نمایید. اکنون دست خود را روی دکمه های Ctrl و + نگاه دارید تا نقطه بزرگتر شود.

: http://www.tarfandestan.com

عکسهای تاریخی و ...


از راست به چپ: رکابعلی ذوالقدر-یداله  فضانلو-محمدحسن خان افشار- غلامحسین اصانلو 
ادامه مطلب ...

ترجمه شعر amor mio از جیپسی کینگgipsy king

Amor mio

 

Amor mio por favor

 

Tu no te vas

Yo cuentare a las horas

 

Que nadia hoy

 

 

Vuelve

 

No volvere no volvere no volvere

 

No quiere recordan

 

No queire recordan

 

Vuelve

 

No volvere no volvere no volvere

 

No quiere recordan

 

No queire recordan

 

Lo laon lo la lo la

 

Lo la

 

Lo la

 

Lo la

 

 

=============================

یار من‏، یار من لطفا نرو


من لحظه ها را خواهم شمرد


تا او را ببینم

 

برگرد


اما من دیگر باز نخواهم گشت


باز نخواهم گشت


نمی خواهم به خاطر بیاورم


نمی خواهم به خاطر بیاورم

 

برگرد


اما من دیگر باز نخواهم گشت


باز نخواهم گشت

 

نمی خواهم به خاطر بیاورم


نمی خواهم به خاطر بیاورم

پشت پرده دنیای هکرها

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

1- آن تجارت را فراموش می کنید و به دنبال حرفه دیگری می گردید ؟
2-یک تیم حرفه ای تشکیل می دهید ویک ابزار بهتر از شرکت رقیب درست می کنید ؟
3- به سایت رقیب خود نفوذ می کنید و کد های آنها را می دزدید ؟ یا در حالت بهتر برخی از کارمندان آن را مجاب می کنید که یک وب سایت هم برای شما به همان صورت بسازند ؟

تبریک ؛ به دنیای هک کردن رقبا خوش آمدید!
در 15 اکتبر 2004 طبق فرجامی در دادگاه از ایالات متحده ،در نهین جلسه آن ،قاضی باید به شکایت دو شرکت رسیدگی می کرد. این شرکت ها در زمینه خدمات به رانندگان کامیون فعالیت می کردند. یکی از شرکت ها ، Creative Computing ، در قالب یک سایت موفق راه اندازی شده بود ، Truckstop.com ، که رانندگان کامیون را از طریق اینترنت با بار ها ارتباط می داد. در جای دیگری از این دنیا یک شرکت دیگری ، Getloaded.com ، تشکیل شد ، برای رقابت با شرکت فوق ، اما نه به صورت درست و صادقانه !.
Getloaded.com تلاشهای فراوانی را در جهت به دست آوردن اطلاعات از سایت Truckstop.com انجام داد. در ابتدا آنها لیستی از بارها و رانندگانی که اصلا با هم تطابق نداشتند را تهیه کردند. هنگامی که Truckstop در سایت خود شروع به گرفتن نام کاربری و پسورد کردند ، Getloaded نیز همین کار را کرد. در نتیجه ، رانندگان کامیونی که در هر دو سایت عضو بودند ، یک نام کاربری و یک پسورد در هر دو سایت ایجاد می کردند. در نتیجه اعضای Getloaded با نام کاربری و پسورد این دسته از رانندگان به سایت Truckstop رفته و اطلاعات آنها را برای خود ثبت می کردند.
بنابراین آنها در قالب شرکتهای مرده ! خود را در سایت فوق ثبت می کردند تا اطلاعات آنها را به دست بیاورند.
اما هنوز کار به اینجا ختم نشده بود ، طبق گفته دادگاه ، کارکنان Getloaded همچنین به وب سایت این شرکت نفوذ کردند ، سرور این وب سایت دارای یک مشکل امنیتی بود ، مایکروسافت برای این مشکل یک اصلاحیه منتشر کرده بود ولی مدیران بخش شبکه هنوز این اصلاحیه را نصب نکرده بودند. رییس و نایب رییس شرکت Getloaded با استفاده از این آسیب پذیری توانستند به سرور های سایت Truckstop نفوذ کنند.

صدای آشنا ؟
ما در بخش امنیت ، موضوعی داریم به عنوان مدیریت اصلاحیه های ( Patch Management ) و کنترل دسترسی ( Access Control ) . همین مورد نشان می دهد که ممکن است نتیجه اینگونه خرابی ها چه مقدار باشد. به صورت فزاینده ای شرکت های رقیب به دنبال اطلاعات محرمانه و قابل استفاده از سایتهای تحت وب و پایگاههای داده می باشند و یا با استفاده از آسیب پذیری ها موجود در پایگاه داده ، یک دسترسی بدون مجوز با آن برقرار می کنند و داده های حساس و مهم تجاری شرکت رقیب را به سرقت می برند.
بعضی مسایل هم غیر قابل اجتناب می باشد : برای رانندگانی که باید به سایت دسترسی داشته باشند لازم است که به بعضی از اطلاعات سایت دسترسی داشته باشند. حق دسترسی برای اینگونه موارد ، استفاده از نام کاربری و پسورد می باشد تا حق دسترسی افراد مشخص شود. کاربران معمولا از یک نام کاربری و یک پسورد استفاده می کنند و همین امر باعث می شود که برخی از کسانی که به این نام کاربری ها دسترس دارند با سوءاستفاده از آنها ، به اطلاعات مهم و حیاتی شرکت های رقیب دسترسی داشته باشند.

جاسوسی اقتصادی
به این مشکلات می توان در دو دسته تکنیکی و قانونی پاسخ داد. از دیدگاه تکنیکی ، شرکت های تجاری باید قوانین و تکنولوژی های بهتری را برای حق دسترسی کاربران و مشتری های خود در وب سایت خود ایجاد کنند. اگر شما مشاهده کردید که تلاش های فراوانی برای دسترسی به سایت شما از یک رنج IP مشخص (که شبیه آدرس های رقیب شما می باشد ) وجود داشته است که اکثر آنها با شکست مواجهه شده اند بدانید که یک اتفاق بدی در حال وقوع است.
نصب IDS ، مشاهده روزانه فایل های ثبت وقایع ( Log ) و البته مدیریت نصب اصلاحیه ها جزو موارد ثابتی می باشد که یک وب سایت برای امنیت خود بدانها نیاز دارد.
فقط کافی نیست که شما اصلاحیه ها را نصب کنید ، باید نرم افزارهایی را استفاده کنید که در هنگام بروز برخی تغییرات ، کشف آسیب پذیری جدید ، باز شدن یک پورت در سرور و همچنین تایید و تصدیق نصب اصلاحیه ها ، شما را باخبر کنند.
از نظر حقوقی وقفه ایجاد کردن و سنگ انداختن در کار رقبا از راههای غیر قانونی جرم محسوب می شود. شما مطمئنا نیاز دارید که یک مکان عمومی برای امور کاری خود داشته باشید ولی از طرفی هم باید ضوابط مشخصی را برای این مکان در نظر بگیرید تا هر کسی به هر چیزی دسترسی نداشته باشد.
بنابراین اولین چیزی که باید برای دفاع از وب سایت عمومی خود ایجاد کنید ، قرار دادن یک سری شرایط و ضوابط ست که از داده های سایت شما محافظت می کند تا بدین وسیله از داده های سایت شما علیه شما استفاده نکنند.
مثلا از بینندگان سایت همان ابتدای ورود ضمانت بگیرید که از داده های سایت شما استفاده تجاری نکنند یا از مهندسی معکوس برای نرم افزار های شما خودداری کنند و یا هر چیز دیگری شبیه این موارد که شما نیاز دارید که آنها را ممنوع اعلان کنید.
واقعا باید گفت که این موضوعات ، معضلاتی می باشد که در آینده گریبانگیر صنایع IT خواهد شد و موضوعاتی است که دادگاههای قضایی در آینده ای نه چندان دور با آن برخورد می کنند.
مشکلاتی که ممکن است سایتهای تجاری وب با آن برخورد کنند. اثبات این موضوع بر عهده دادگاه می باشد که نشان دهد کاربران سایت شما از قوانین سایت سرپیچی کرده اند یا خیر اما در اینگونه موارد بهتر است که قوانین دلخواه خود را در همان ابتدا که کاربران در حال درست کردن نام کاربری و رمز عبور هستند از آنها تایید بگیرید. تا با زیر پا گذاشتن این قوانین دست شما برای شکایت از آنها و اثبات موارد خلاف باز باشد.

هکرهاخودراچه می نامند؟
هکرها سعی در پنهان کردن هویت واقعی خود می‌کنند، هرچند مطالعات نشان داده است که بعضی از آنها از تحسین‌شدن بدلیل ماجراهایی که بوجود می‌آورند، لذت می‌برند. بیشتر آنها از اسامی مستعار مانند Hackingwiz یا Hyper Viper استفاده می‌کنند. آنها خود را افراد ماهر و هنرمندی می‌دانند که گاهی خود را از ویروس‌نویسان جدا می‌کنند.
در حقیقت، برای مشخص‌کردن یک هکر، تعریف مشخصی وجود ندارد. آنها دارای زمینه‌های متفاوتی هستند و دلایلی که پشت هک وجود دارد گستره وسیعی را می‌پوشاند، اما باعث تهدیدهای مشترکی می‌شوند. هکرها افراد باهوشی هستند و از اینکه کامپیوترها را به انجام کاری که دوست دارند وامی‌دارند، لذت می‌برند.
و اما مجله امنیت ایران، هکرها را 3 دسته جدا می نامد:

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

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

رشد هکرهای خاورمیانه ای
کریس بوید، مدیر پژوهش موسسه امنیتی FaceTim می‌گوید که او شواهدی در دست دارد که نشان می‌دهد گروه‌های هکری در خاورمیانه فعالیت‌های خود را آغاز کرده‌اند و در آینده‌ از آنها بیشتر خواهیم شنید.
وی که تحقیقات گسترده‌ای را در این حوزه انجام داده بر این باور است که گروه‌های هکری خاورمیانه در آینده روی هکرهای چینی و کره‌ای را سفید خواهند کرد! زیرا حملاتی که آنان انجام خواهند داد بسیار پیچیده خواهد بود. به گفته آقای بوید یکی از این گروه‌های هکری با ایجاد شبکه‌ای متشکل از 17 هزار رایانه معیوب و سوءاستفاده از حفره‌های امنیتی آنها توانسته‌اند حملات زیادی را به سایت‌های اینترنتی مورد نظرشان انجام دهند.
بررسی‌های آقای بوید نشان می‌دهد که این گروه‌ها از شبکه‌های به اشتراک گذاری فایل و بخصوص BitTorrent هم برای رد و بدل کردن اطلاعات مورد نظرشان استفاده می‌کنند.

اولین خبرها
اولین خبرهای مربوط به حملات هکری در خاورمیانه در آگوست سال 2005 منتشر شد. در آن زمان 2 نفر در مراکش و ترکیه به جرم همکاری در زمینه طراحی و توزیع کرم مخرب Zotob دستگیر شدند.
اما سیمون هرون از موسسه امنیتی Network Box نظر دیگری هم دارد. او معتقد است که در سال 2006 نویسندگان ویروس‌ها و نرم‌افزارهای جاسوسی در جست‌وجوی راه‌های جدیدی برخواهند آمد تا تولیدات خود را به جان رایانه‌های کاربران بیگناه بیاندازند و یکی از بهترین روش‌ها برای این کار مخفی کردن ویروس‌ها و کرم‌های اینترنتی در پوشش فایل‌های موسیقی و ویدئو است. زیرا همزمان با رشد فزاینده دستگاه‌های قابل حمل پخش موسیقی، گوشی‌های هوشمند و درایوهای فلاش با ظرفیت بالا تعداد بیشتری از افراد به گوش کردن موسیقی از این روش روی می‌آورند و سعی می‌کنند فایل‌های موسیقی موردنظرشان را در اینترنت یافته و آنها را بارگذاری کنند. هکرها هم دقیقا از همین علاقه سوءاستفاده کرده و تولیدات مخربشان را به جای فایل‌های موسیقی و ویدئو جا می‌زنند.
نکته دیگری که آقای هرون به آن اشاره می‌کند افزایش حمله به نرم‌افزارهایی است که برای فعالیت‌های جمعی در شبکه مورد استفاده است. به عنوان مثال حمله به شبکه‌های ارسال پیام فوری در حال افزایش است و انتظار می‌رود همزمان با افزایش سازگاری و هماهنگی بین فعالیت شبکه‌های مختلف مسنجری این روند تشدید شود.
در همین حال حملات Phishing با هدف خالی کردن حساب‌های بانکی افراد هم بشدت در میان خرابکاران اینترنتی محبوب شده و به گزارش IBM در حالی که در سال 2004 از هر 943 پیام الکترونیکی یکی با هدف پیشبرد یک حمله Phishing تنظیم شده بود، اما در سال 2005 از هر 304 نامه الکترونیکی یکی با این هدف تنظیم شده است.

نشست و برخاست با هکرها
هکرهای خرابکار این روزها فضای مجازی را تسخیر کرده‌اند و روز به روز بر حجم فعالیت‌های تخریبی خود می‌افزایند، همین امر موجب شده تا رویکردهای سنتی برای مقابله با هکرها که مبتنی بر دستگیری و مجازات و آموزش کاربران بوده است ناکارآمدی خود را نشان دهند و متخصصان مسائل امنیتی به فکر استفاده از روش‌های جدیدی بیافتند.
چندی پیش شرکت بزرگ مایکروسافت برای اطمینان از امنیت ویندوز ویستا تیمی از دفتر مرکزی خود را به مالزی فرستاد تا در بزرگترین اجتماع هکرها (خرابکاران رایانه ای) در آسیا حضور یابند. البته قصدشان مبارزه نبود بلکه برعکس برای کسب راهنمایی ها و اطلاعات تازه به این شهر سفر کردند.
در همین رابطه مدیر امنیتی شرکت مایکروسافت (سارا بلانکینشیپ) به رسانه ها گفت:«ما به این کنفرانس رفتیم تا ضمن نشست و برخاست با کسانی که در حوزه های امنیتی فعالند، روابط موجود را تحکیم بخشیم و فن آوری ها، ابزارها و روش های جدید را بشناسیم تا نهایتا محصولاتی امن تر تولید کنیم و امنیت بیشتر مشتریانمان را فراهم کنیم.»

مدرسه هکرها
علاوه بر تمایل هکرها به نفوذ به برنامه های کاربردی پرطرفدار و سوءاستفاده از حفره های امنیتی می توان به صراحت گفت: نوجوانان این دوره و زمانه نسبت به نسل قبلی آگاهی‌های بسیار بیشتری در مورد رایانه دارند، از این رو برای اثبات دانش بالای خود به خرابکاری در رایانه‌ها متوسل می‌شوند و پا به پای هکرهای سابقه دار و قدر سعی در از کار انداختن سیستم ها دارند.
گروهی نوجوان که اسم خود را Kutztown13 گذارده‌اند. افتخار شان هک کردن لپ‌تاپ‌های موجود در مدارس، بارگذاری محتویات ممنوعه از اینترنت و استفاده از نرم افزارهای غیرمجاز برای جاسوسی در مورد معلمان مدارس و دیگر دانش‌آموزان است.
البته افشا شدن اقدامات خلافکارانه این نوجوانان باعث برخورد شدید پلیس و دیگر مقامات شد و آنان به سختی مجازات شدند. مقامات مدرسه Kutztown - محل تحصیل این نوجوان – می‌گویند که پس از شناسایی این نوجوانان بارها به آنان هشدار داده بودند که دست از اعمال خلافکارانه بردارند وگرنه مجازات خواهند شد، اما بی‌توجهی به این اخطارها موجب شده بود تا پلیس برای مقابله با خلافکاران کوچک وارد عمل شود.
فعالیت‌های رایانه‌ای خرابکارانه در آمریکا تنها محدود به این مدرسه نیست. مدیران ده‌ها مدرسه در ایالت، پنسیلوانیا گزارش‌هایی را در مورد سوءاستفاده دانش آموزان از رایانه‌های مدارس به پلیس ارائه کرده‌اند و در برخی موارد دانش آموزان به خاطر همین گزارش‌ها توبیخ یا حتی اخراج شده‌اند.

دانشگاه ضد هک
شهر بارسلونا در اسپانیا امروزه محل اجرای یک طرح ابتکاری شده که با هدف مبارزه و نابود سازی هکرها راه‌اندازی شده است. دانشکده هکری دانشگاه La salle یک دانشکده تازه تاسیس است که برخی از بهترین معماران اسپانیایی ساختمان آن را طراحی کرده‌اند.
کارگاه‌های آموزشی این دانشگاه مملو از دانشجویانی است که در تلاشند به شبکه‌های رایانه‌ای فرضی و وب سایت‌های شخصی و تجاری آزمایشی نفوذ کنند و از این لحاظ کارگاه آموزشی مذکور از دید برخی‌ها شباهت‌ فراوانی به یک مرکز پرورش شیطان دارد.
اما گردانندگان این دانشکده امیدوارند تا با راه‌اندازی این مرکز بسیاری از تابوهای نابه‌جایی که در مورد پدیده هکر وجود دارد شکسته شود تا بتوان طرح‌های جدیدی را برای مقابله با این مشکل رو به گسترش به مرحله اجرا درآورد.
پیتر هرزوک، مدیر اجرایی این دانشکده می‌گوید: ما امیدواریم تا با تاسیس این مرکز اطلاعات جدیدی را در اختیار دانشجویان خود قرار دهیم و آنها را به نیروهایی موثر و کارا برای مقابله با هکرهای حرفه‌ای مبدل کنیم. ولی در حال حاضر بسیاری حتی نمی‌دانند که هک به چه معناست و این امر کمکی به حل مشکل نمی‌کند. بسیاری از مردم همیشه با مشکل ارسال کرم‌های اینترنتی از طریق email مواجه هستند، ولی هیچ آگاهی در مورد نحوه حل این مشکل ندارند و این امر در دراز مدت مشکل آفرین خواهد شد. لذا باید به جای آن که هک کردن را کار بدی بدانیم یا به صورت مخفیانه آن را آموزش دهیم تلاش کنیم تا در عوض این پدیده را به درستی تعریف کرده و درصدد مقابله با آن برآییم.

یک تذکر نا قابل
هدف اصلی هکرها از هک کردن سایتها برای تذکر به صاحبان سرورها بوده و تاکید بر قدرت امنیتی تیم هکر است. هک سرویس دهنده ها فرصتی است تا شهرت تیم هکر افزایش یابد و پشتوانه فعالیتهای بعدی آنها قرار گیرد که الزاما با همان عناوین هکری صورت نمیگیرد. به همین جهت تعداد گروهها و تیم های امنیتی هر روز بیشتر میشود.
خیلی از این هکرها نیز از هک کردن سایتها کسب درآمدی نیز میکنند ولی چگونه؟
هکرها معمولا در صفحه دیفیس بعد از تذکر به مدیران اعلام میکنند که اگر مدیران بخواهند این گروه میتواند به صورت رایگان نفوذ پذیری این سایت یا سرور را برای مدیران رفع کنند. ولی در بیشتر مواقع مدیر سایت بعد از تماس متوجه میشود که گروه درخواست های مالی مشخصی نیز دارد.
البته بسیاری از مدیران سایتها حاضر نمیشوند به کسانی که به سرویس هایشان حمله کرده اند اعتماد کنند و حداکثر همکاری در سطح انتقال نقاط ضعف احتمالی به مسئولین سایتها محدود می ماند.
شهرت گروههای هکری به آنها امکان جذب کارآموز می دهد. درآمد ناشی از این فعالیتها بخشی از هزینه های فعالیت هکرها را تامین میکند. گروه هکری با گرفتن مبلغی از افراد و دادن یک نام کاربری نرم افزارها یا نفوذ پذیری های جدید را در اختیار افراد قرار میدهند تا این افراد نیز بتوانند از آنها استفاده کنند. بعلاوه بعضی گروهها با برگزاری کلاسها و کارگاههای آموزشی به کسب در آمدهای بیشتر علاقه نشان می دهند.
استفاده از توانایی هکرها در ابتدا بیشتر در حوزه خصومتهای شخصی مطرح بود ولی در آینده شاهد رونق فعالیتهای گروههای هکری در چارچوب اهداف رقبای تجاری یا سیاسی خواهیم بود.
سیاست‌ها و فلسفه‌های پشت این قضیه نیز تغییر کرده است. بسیاری از گروه‌ها از هکرها برای کمک به کشف ضعفهای امنیتی سیستمهای خود استفاده می‌کنند. اینترنت مدرن به هکرها اجازه داده است که مرزهای جدید را بکاوند.
جنگ بین کشورها با هک‌کردن وب‌سایتهای یکدیگر و از کار انداختن آنها یا پایین‌آوردن سایتها با حملات DoS به یک امر معمول مبدل گشته است.

تیر هکرها به کجا می خورد؟
ارتشها از هکرها بمنظور از کار انداختن سیستمهای دفاعی دشمنانشان برای کسب برتری در جنگ استفاده می‌کنند. منافع مالی یک انگیزه بزرگ برای بعضی هکرها یا افرادی است که هکرها را بکار می‌گیرند. موسسات مالی اغلب هدف قرار می‌گیرند تا مقادیر زیادی از پولشان توسط روشهای الکترونیک بسرقت رود.
بخشی از حملات به سایتهای دولتی در ایران که توسط گروههای هکری صاحب نام انجام شد و میشود که ممکن است علاوه بر اهداف اقتصادی با هدف خاص دیگری نیز صورت گرفته باشد.
آنچه روشن است دامنه فعالیت هک در حال افزایش است و سازمانها و دستگاههای زیادی هم اکنون به دنبال شناخت گروههای هکری هستند. رقابتی که تازه آغاز شده و تا مدتها ادامه خواهد داشت.
ولی آنچه اکنون باید پیگیری کرد این است که آیا هکرها میتوانند تا هر زمان که خواستند هر کاری دلشان خواست روی سرور و سایتهای دیگر افراد انجام دهند؟
صنعت نوپاى فناورى اطلاعات و ارتباطات ایران، هم اینک از بعد قانون مدارى و مستندسازى حقوقى براى مبارزه با متخلفان و مجرمان ناقض فضاى مجازى در وضعیت نامطلوبى به ثمر مى برد.
اگرچه در سال هاى اخیر لایحه هایى مانند آزادى اطلاعات، جرایم رایانه اى و کپى رایت به تهیه و تصویب مراجع ذى صلاح رسیده است، ولى نبود ضمانت اجرایى قوى براى برخورد با متخلفان و پیاده سازى مفاد قانونى در بازار صنعت آى تى کشور، مخاطرات و چالش هایى را به وجود آورده است.
به هر حال جامعه اطلاعاتى ایران در ابعاد حقوقى متنوعى باید از پتانسیل هاى موجود آگاه شود.