« سيستم دولتي يا دولت سيستماتيک | صفحه اصلی | برنامه ريزي استراتژيک براي شرکت هاي نرم افزاري 1 »
پروژه کارشناسي مهندسي نرم افزار
&"March 6, 2006&"
رشته مهندسي نرم افزار در مقطع کارشناسي ، مثل ساير رشته هاي مهندسي، يک درس سه واحدي دارد با نام پروژه کارشناسي، که مطابق معمول دانشجويان بايد با هدايت يک استاد راهنما، يک پروژه تحقيقاتي و يا عملي را در زمينه هاي مختلف نرم افزار، به اجرا برسانند و در خيلي از دانشگاه ها هم در يک جلسه از آن دفاع کنند.
گرچند خيلي با دانشجويان اين درس را نمي گيرم (چون بيشتر درس هاي پايه مورد علاقه من است)، اما اغلب مواقع مواجه شدم با سوالاتي در اين زمينه، علي الخصوص از طرف دانشجويان سابقم ، آشنايان و يا دوستان که يکي از انها اين سوال را چند روز پيش پرسيد؟ براي پروژه پاياني کارشناسي چه کنم؟
جوابي دادم به وي که خيلي دقيق نيست و تازه حجت هم ندارد که درست باشد که چه کند؟ بد نديدم آن را مکتوب کنم که اگر کسي خواست حداقل يک نظر در اين زمينه را بداند.
اولين نکته در انتخاب پروژه کارشناسي، انتخاب استاد راهنماي آن است! چرا؟ چون قبل از هر چيز بايد تکليف خودتان را با پروژه روشن کنيد، مي خواهيد واقعا کار کنيد،يا فقط مي خواهيد آن را پاس کنيد!
اگر مي خواهيد پس از اتمام تحصيل در محلي مشغول به کار شويد و در زمينه نرم افزار فعاليت کنيد، پيشنهاد مي کنم پروژه را به قصد ياد گرفتن بگيريد. به عنوان يک مدير نرم افزاري، شخصا در هنگام استخدام نيروهاي جديد، يکي از مواردي که به آن دقت مي کنم موضوع و کاري است که در اين زمينه انجام داده اند. اما اگر مي خواهيد بعد از تمام شدن تحصيل قيد نرم افزار را بزنيد و يا به صورت حرفه اي کار نکنيد (يکجا کارمند شويد، در مغازه پدرتان کارکنيد و يا شوهر کرده و خانه دار شويد)، به دنبال پروژه اي باشيد که با کمترين دردسر فقط يک موضوع داشته باشد و يک نوشته! حتي مي توانيد به روش معمول دانشجويان آن را از کسي بگيريد، بدزديد و يا حتي ديده ام که برخي مي خرند! (در انتخاب روش مختاريد!) به هر حال هر قصدي که داريد، انتخاب استاد مرتبط با آن قصد قبل از تعيين موضوع مهم است.
گام بعدي انتخاب موضوع است. توصيه موکد مي کنم، موضوع را به انتخاب استاد راهنماي خود واگذار کنيد. بدين معني که اگر وي موضوعي را پيشنهاد داد، قبول کنيد (بين چند انتخاب پيشنهادي وي مي توانيد از مشورت سايرين و يا علاقه شخصي خود پيروي کنيد) و اگر وي موضوع خاصي را پيشنهاد نداد، سعي کنيد موضوعي انتخاب کنيد که به زمينه کاري وي نزديک باشد. دليل اين تاکيد زياد بر آن است که در حين انجام پروژه بتوانيد از راهنمايي استاد راهنما استفاده کنيد. اگر استاد راهنمايتان با موضوع بيگانه باشد نه تنها در هنگام کار روي پروژه نمي تواند به شما کمکي بکند، بلکه در هنگام تحويل نيز مشکل خواهد داشت (و خواهيد داشت!)
حال اگر استاد راهنما موضوعي پيشنهاد نداد چه؟
به صورت عمومي مي توانيد دو شاخه کلي را براي اجراي پروژه کارشناسي انتخاب کنيد:
- موضوعات نظري و تحقيقاتي: در اين زمينه در يکي از موضوعات رشته خود را انتخاب کنيد، سعي کنيد اين موضوع از موضوعات جديد و داغ باشد تا بتوانيد در مورد آن منابع خوب جديد را به راحتي بدست آوريد. سپس با مطالعه و جمع بندي مطالب خوانده شده مي توانيد يک بررسي (Survey) در آن زمينه تهيه نماييد. بعد از آن اگر ايده جديدي در يکي از شاخه هاي آن موضوع به ذهنتان رسيد و يا توانسيتيد الگو برداري کنيد بانوشتن برنامه هاي شبيه سازي و يا انجام پروژه هاي آزمايشي، صحت ايده خود را نشان داده و پروژه را جمع بندي کنيد.
- موضوعات کاربردي و عملي: دراين دسته، شما مي خواهيد يک سيستم جديد (و يا از بين سيستمهاي موجود) يکي را پياده سازي نماييد و با جنبه هاي مختلف آن آشنا شويد، براي مثال ساخت يک سيستم پردازش تراکنش (TPS) براي يک کاربرد و يا يک شرکت خاص و يا نوشتن يک برنامه تحت وب براي کاربردي معين. در اين روش با جمع بندي و مرور سريع مطالب تئوري مرتبط و يا با طي فرآيند تجزيه و تحليل مي توانيد چارچوب کلي سيستم خود را استخراج نموده و آن را طراحي نماييد، سپس تحت معماري معين و با يک زبان برنامه نويسي آن را توسعه دهيد.
نکته 1: اگر پيش از انجام پروژه با يکي از دو مطلب به خوبي آشنايي داريد و مي خواهيد در پروژه چيز جديدي يادبگيريد، سعي کنيد موضوع ناآشنا تر را انتخاب کنيد تا در پايان با هر دو شيوه کار آشناشويد.
نکته 2: چنانچه قصدداريد بلافاصله پس از پايان تحصيل کار کنيد، انتخاب موضوعات کاربردي و عملي به نفعتان است، چون در هنگام استخدام به عنوان نمونه کار قابل طرح مي باشد.
نکته 3: چنانچه قصد ادامه تحصيل داريد (در داخل و يا خارج از کشور) انتخاب موضوعات نظري و تحقيقاتي بهتر است، زيرا اگر موفق شويد در پايان آن يک مقاله علمي (Academc Paper) ارائه نمايد (در کنفرانس ها و يا نشريات معتبر داخلي و يا خارجي) ، در ادامه تحصيل شما و شانس شما براي موفقيت در مصاحبه هاي علمي نقش موثري دارد.
نکته 4: فراموش نکنيد در هر دو زمينه شما در نهايت نياز به انجام يک کار عملي داريد اما حجم و ف آن متفاوت است. در يک کار تئوري معمولا برنامه ها جنبه شبيه سازي و آزمايش را دارند و حجم کمتري از کل کار را شامل مي شوند در حاليکه در پروژه هاي عملي، اصل همان برنامه است و پرداختن به آن و تهيه يک برنامه صحيح اولويت دارد.
اما چه موضوعاتي را مي توان انتخاب کرد؟ پاسخ کمي مشکل است، نرم افزار آنقدر سريع پيش مي رود که برخي از موضوعات در مدت زمان اندکي قديمي شده و به حدي تجاري مي شوند که ارزش کار دانشگاهي را در آن زمينه ندارند. اما به هر حال امروزه (اسفند 84) شايد کار روي زمينه هاي شبکه و امنيت ، هوش مصنوعي و عاملهاي هوشمند، برنامه سازي تحت وب، داده کاوي و مفاهيم پيشرفته در زمينه پايگاه داده ها، مهندسي نرم افزار و متدولوژي هاي توسعه نرم افزار و ... از زمينه هاي کلي باشند که بتوانيد در آنها فعاليت کنيد. همانگونه که گفتم موضوع جزيي تر بستگي به خودتان، دانشگاه و استاد راهنمايتان دارد.
در پايان توصيه مي کنم، سعي کنيد پروژه کارشناسي خودتان را جدي بگيرد و آن را سرهم بندي نکنيد! اجراي يک پروژه خوب صرف نظر از موضوع و زمينه آن، ضمن آشنا کردن شما با مفاهيم اجراي پروژه هاي نرم افزاري، شانستان را در مقاطع بعدي زندگي بالاتر مي برد (کار يا تحصيلات تکميلي)
همين!