دانشجویان مقطع کارشناسی معمولاً در پایان دوره تحصیلاتشان و صرفاً در قالب یکی دو درس با نام «مهندسی نرمافزار» با آن آشنا میشوند و مفاهیم بسیار مهم و پیچیده تنها بهصورت گذرا معرفی میشود و فرصت کافی برای مسلط شدن بر این مفاهیم فراهم نمیشود. با وجود این، چند سالی است برخی از دانشگاههای برجسته دنیا این رشته را بهصورت مستقل از همان مقطع کارشناسی تدریس میکنند. چهارچوبهای این رشته بهصورت مدون از سوی انجمنهای IEEE و ACM معرفی شده است. در این مقاله، با استناد به کتاب «راهنمای سرفصلهای مهندسی نرمافزار» که توسط شاخه کامپیوتر انجمن IEEE تهیه شده است، چهارچوب رشته مهندسی نرمافزار را مرور کردهایم تا داوطلبان ورود به دانشگاهها (چه در مقطع کارشناسی و چه کارشناسی ارشد) که مایلند روزی بهعنوان مهندس نرمافزار (و نه برنامهنویس کامپیوتر) مشغول به کار شوند، دقیقاً بدانند چه چیزی را باید بیاموزند و چه توقعی از آنان میرود. این چهارچوب برای مؤسسات آموزشی که مایلند دانشجویان را برای بازار کار این رشته آماده کنند نیز مفید است.
طبق تعریف ساده و موجزی که در کتاب راهنمای SWEBOK v3.0 آمده است، (1)مهندسی نرمافزار عبارت است از «کاربرد یک رهیافت قابل اندازهگیری، منظم و سیستماتیک برای توسعه، اجرا و نگهداری نرمافزار، یا به طور خلاصه اعمال اصول مهندسی بر نرمافزار». فایل کامل این کتاب 335 صفحهای را میتوانید از وبسایت ماهنامه شبکه دانلود کنید. (2) این تعریف البته خیلی کلی است و برای کسانی که با این شاخه از مهندسی کاملاً آشنا نیستند مقداری گنگ است. مهمترین نکتهای که در این تعریف روشن نیست تفاوت مهندسی نرمافزار با مهارت برنامهنویسی است که درباره آن صحبت خواهیم کرد.
اما قبل از پرداختن به این موضوع لازم است دو نکته را روشن کنیم. نخست، تفاوت مهندسی نرمافزار با مهندسی کامپیوتر از نظر محتوای دروس علمی این رشته و هدف آن است. اگر هنوز مقاله «آشنایی با رشتههای اصلی کامپیوتر در دنیا در مقطع کارشناسی» در شماره 196 ماهنامه شبکه را مطالعه نکردهاید، توصیه میکنیم حتماً نگاهی به آن بیاندازید. در آنجا به تفاوت رشتههای اصلی کامپیوتر در دوره لیسانس، بهویژه تفاوت رشتههای «علوم کامپیوتر»، «مهندسی کامپیوتر» و «مهندسی نرمافزار» اشاره مختصری کردهایم. همچنین، در شماره 199 بهتفصیل درباره معنا و هدف رشته «مهندسی کامپیوتر» صحبت کردهایم. به طور خلاصه، هدف رشته «مهندسی کامپیوتر» تولید سیستمهای کامپیوتری (مانند خود کامپیوتر از قبیل لپتاپ یا گوشی موبایل هوشمند) است. اما «مهندسی نرمافزار» که زیرشاخهای از همین رشته محسوب میشود، با مقداری تغییر جهت در رویکرد و رهیافت، از مباحث سختافزاری و معماری دیجیتال عبور میکند و روی موضوع مهم «تولید انبوه نرمافزار» تمرکز میکند. دوم اینکه، چنانکه جلوتر توضیح خواهیم داد، رشته «مهندسی نرمافزار» بهدلیل ماهیت نرم این رشته به بُعد انسانی فرآیند مهندسی توجه ویژهای نشان میدهد که این بُعد در رشته «مهندسی کامپیوتر» کمرنگ است.
این متن دومین مطلب آزمایشی من است که به زودی آن را حذف خواهم کرد.
زکات علم، نشر آن است. هر وبلاگ می تواند پایگاهی برای نشر علم و دانش باشد. بهره برداری علمی از وبلاگ ها نقش بسزایی در تولید محتوای مفید فارسی در اینترنت خواهد داشت. انتشار جزوات و متون درسی، یافته های تحقیقی و مقالات علمی از جمله کاربردهای علمی قابل تصور برای ,بلاگ ها است.
همچنین وبلاگ نویسی یکی از موثرترین شیوه های نوین اطلاع رسانی است و در جهان کم نیستند وبلاگ هایی که با رسانه های رسمی خبری رقابت می کنند. در بعد کسب و کار نیز، روز به روز بر تعداد شرکت هایی که اطلاع رسانی محصولات، خدمات و رویدادهای خود را از طریق بلاگ انجام می دهند افزوده می شود.
این متن اولین مطلب آزمایشی من است که به زودی آن را حذف خواهم کرد.
مرد خردمند هنر پیشه را، عمر دو بایست در این روزگار، تا به یکی تجربه اندوختن، با دگری تجربه بردن به کار!
اگر همه ما تجربیات مفید خود را در اختیار دیگران قرار دهیم همه خواهند توانست با انتخاب ها و تصمیم های درست تر، استفاده بهتری از وقت و عمر خود داشته باشند.
همچنین گاهی هدف از نوشتن ترویج نظرات و دیدگاه های شخصی نویسنده یا ابراز احساسات و عواطف اوست. برخی هم انتشار نظرات خود را فرصتی برای نقد و ارزیابی آن می دانند. البته بدیهی است کسانی که دیدگاه های خود را در قالب هنر بیان می کنند، تاثیر بیشتری بر محیط پیرامون خود می گذارند.