ورود

View Full Version : جلوگیری از سوء استفاده اعضای برنامه نویس یک تیم



rshnm@yahoo.com
سه شنبه 29 بهمن 1387, 11:35 صبح
سلام.
من به دنبال روش هایی برای مقابله با سوء استفاده برنامه نویسان یک تیم نرم افزاری از سرقت یا کپی سورس های نرم افزاری که بر روی آن کار می کنند هستم.
لطفا هر کس اطلاعاتی در این زمینه دارد یا ابزار یا نرم افزاری را می شناسد که این کار را می کند، کمک کند.
توضیح آنکه من یک تیم برنامه نویسی دارم و نرم افزار ها را به صورت تیمی می نویسیم. اخیراً مشاهده کردم که قسمتی از کدهای برنامه توسط برخی از برنامه نویسان تیم من، جهت مصارف شخصی به بیرون از محیط شرکت منتقل شده است. می خواهم بدانم شرکت های دیگر در ایران یا هر یک از کشور های دیگر که کار برنامه نویسی تیمی انجام می دهند، چگونه و با چه روشی از درج کردن سورس نرم افزارهایشان به خارج از محیط شرکت جلوگیری می کنند.
ممنون.

Nima NT
سه شنبه 29 بهمن 1387, 12:31 عصر
هر پروژه یک مدیر داره , قرار نیست همه به همه سورس دسترسی داشته باشن , شما باید تقسیم کار کنی , و هر کسی قسمتی رو به عنوان یک کیت طراحی کنه , بعد همه سورس ها رو برای وصل کردن به هم به مدیر پروژه بدین , اینطوری همه , همه سورس رو ندارن , در غیر این صورت از لحاظ نرم افزاری نمیشه از دزدی جلوگیری کرد.( البته فکر میکنم )

joker
سه شنبه 29 بهمن 1387, 12:32 عصر
معمولا از روشهای فیزیکی استفاده میشه مثل بستن دسترسی به شبکه اینترنت - بستن پورتهای یو اس بی - بستن سی دی رام ها روش نرم افزاری هم داره که اجازه بده کاربر به تمام موارد بالا دسترسی داشته باشه منتها سورس ها را برد خونشون بهش کار نده که خب خیلی در مقابل این روشهای سخت افزاری به صرفه نیست 5-6میلیون تومن قیمتشه

Mehdi Asgari
سه شنبه 29 بهمن 1387, 12:59 عصر
و ذکر در قرارداد و اعمال روش های قانونی (کپی رایت) در مورد نقض مفاد قرارداد

rshnm@yahoo.com
سه شنبه 29 بهمن 1387, 13:06 عصر
ممنون از دوستان.
من فکر می کنم امروزه یکی از ابزارهای مورد نیاز در برنامه نویسی، اینترنت است. برنامه نویسان برای پیدا کردن پاسخ سوالاتی که دارند می توانند در اینترنت جستجو کنند. حال آنکه با همین اینترنت می توان قسمتی از سورس برنامه را با Email فرستاد. برای جلوگیری از Email کردن سورس آیا راهی وجود دارد؟

rshnm@yahoo.com
سه شنبه 29 بهمن 1387, 13:08 عصر
با تشکر از Nima NT.
چطور می توان دسترسی برخی افراد را به سورس محدود کرد با توجه به این نکته که، برنامه نویسان برای compile و اجرای برنامه به تمامی سورس احتیاج دارند؟

دنیای دلفی
سه شنبه 29 بهمن 1387, 13:25 عصر
مطمئن باشيد راهي براي اين كار پيدا نخواهيد كرد اگر كسي بخواهد سورسي را ببرد مي برد شما هم هرچه مي خواهيد سيستم ايمني بگذاريد . ولي تنها راه به نظر بنده وجدان كاري است همين و بس . . .!

Nima NT
سه شنبه 29 بهمن 1387, 14:57 عصر
با تشکر از Nima NT.
چطور می توان دسترسی برخی افراد را به سورس محدود کرد با توجه به این نکته که، برنامه نویسان برای compile و اجرای برنامه به تمامی سورس احتیاج دارند؟
نه به همه سورس , شما میتونی اول نرم افزار رو به چند گروه و چندین زیرگروه تقسیم کنی , هر زیر گروه نوشته های خودش رو بده به سرگروه تا تست بشه و تمامی سرگروه ها هم برنامه رو میدن به مدیرپروژه برای کارهای نهایی , اینطوری کسی اگر سورسی رو هم ببره , به دردش نمیخوره چون دقیقا" چیزی رو می دزده که خودش نوشته :لبخند:

vcldeveloper
سه شنبه 29 بهمن 1387, 18:31 عصر
برای همچین اموری، باید یک سیستم ورژن کنترل داشته باشید، و همه سورس های مربوط به همه پروژه های شما در یک سیستم ذخیره شوند. بخش های مختلف سورس مربوط به هر پروژه هم باید به پوشه های مختلفی تقسیم شوند. هر گروه از تیم برنامه نویسی باید بتونه سورس مربوط به خودش را از سیستم مرکزی (اصطلاحا Repository) دریافت کنه. اگر لازم هست که خودش هم پروژه را کامپایل کنه، باید برای سایر بخش های پروژه فقط فایل های کامپایل شده باینری را دریافت کنه، نه سورس اون بخش ها را.
برای کامپایل پروژه توسط شرکت، باید یک سیستم Build Automation نصب بشه، که آخرین تغییرات روی سروس ها را از Repository دریافت کنه، و همه سورس ها را کامپایل کنه، و برنامه را تولید کنه. معمولا در این مرحله یک سری تست هم انجام میشه تا عملکرد درست برنامه بررسی بشه. این روال بطور خودکار و در فواصل زمانی معین تکرار میشه، مثلا هر روز در پایان وقت اداری. اگر هم مشکلی در هنگام کامپایل پروژه یا تست آن بوجود بیاد، میشه با مراجعه به خطای رخ داده، و log مربوط به سیستم کنترل ورژن، بررسی کرد که چه کاربری موجب ایجاد خطا در کد شده.

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

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

xxxxx_xxxxx
سه شنبه 29 بهمن 1387, 18:55 عصر
سيستم كنترل ورژن
سيستم مركزي (Repository)
سيستم Build Automation

ببخشيد ميشه در مورد اين سه تا يكم توضيح بديد

vcldeveloper
سه شنبه 29 بهمن 1387, 19:10 عصر
هر سیستم Version Control، یک منبع (Repository) داره. Version Control نرم افزاری هست که به شما امکان میده نسخه های مختلفی از یک یا چند فایل را در Repository ذخیره کنید. مثلا برنامه نویس اول سورس A را تغییر می دهد، و آن را به Repository ارسال می کند. برنامه نویس دوم هم همان سورس را تغییر می دهد و به Repository ارسال می کند. در حالت عادی، تغییرات برنامه نویس دوم موجب حذف تغییرات برنامه نویس اول خواهد شد، ولی در یک سیستم کنترل ورژن، هر دو تغییر ثبت خواهند شد، و مدیر پروژه می توانند آنها را با هم ادغام کند، یا در صورت لزوم، یکی را لغو کند، و یکی را نگهداری کند.
درباره Version Control می تونید توی Wikipedia جستجو کنید. Subversion یکی از انواع نرم افزارهای کنترل ورژن هست.

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

بطور کلی، در بهترین حالت، بعد از مشخص شدن پروژه و طرح های آن، در مرحله کدنویسی، برنامه نویسان بر اساس طرح های آماده شده کدهای خود را می نویسند، و به Repository ارسال می کنند. در پایان روز هم سیستم مدیریت Build بطور خودکار عمل کامپایل، تست (تست هایی مثل unit testing، یا Automated GUI Testing، یا آنالیز سورس کد)، ساخت فایل Setup، و غیره را انجام می دهد، و براساس نتایج عملیات، گزارش هایی را برای مدیریت تولید می کند. Final Builder یکی از نرم افزارهای Build Automation هست.

joker
سه شنبه 29 بهمن 1387, 20:37 عصر
ممنون از دوستان.
من فکر می کنم امروزه یکی از ابزارهای مورد نیاز در برنامه نویسی، اینترنت است. برنامه نویسان برای پیدا کردن پاسخ سوالاتی که دارند می توانند در اینترنت جستجو کنند. حال آنکه با همین اینترنت می توان قسمتی از سورس برنامه را با Email فرستاد. برای جلوگیری از Email کردن سورس آیا راهی وجود دارد؟



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

rshnm@yahoo.com
چهارشنبه 30 بهمن 1387, 12:39 عصر
با تشکر از علی آقای کشاورز.

با توجه به اینکه من با زبان #C و Net. برنامه نویسی می کنم، نظرتون در باره SourceSafe چیه؟ و چه تفاوت هایی با subVersion دارد؟ کدومشون بهتر هستند؟ یا اصولاً چه نرم افزارهایی را برای زبان #C و Visual Studio IDE معرفی می کنید؟

Mehdi Asgari
چهارشنبه 30 بهمن 1387, 14:18 عصر
SourceSafe مگه هنوز زنده است ؟!
از SVN (http://tortoisesvn.tigris.org/)یا Vault (www.sourcegear.com/vault)استفاده کن (اولی که رایگانه. دومی هم برای یک کاربر ، رایگانه)
برای ویژوال استودیو: Vault که خودش integrate میشه. برای SVN : این (http://www.visualsvn.com/)و این (http://ankhsvn.open.collab.net/)
(این روزا خیلی در مورد distributed version control می شنوم ، ولی هنوز کار نکردم باهاشون. مثال: git (git-scm.com/) )