X
تبلیغات
رایتل

مهندسی نرم افزار

مهندسی نرم‌افزار پیشه‌ای است که به یاری دانش رایانه و دیگر فناوری‌ها و روش‌ها به آفریدن و نگاهداری نرم‌افزار رایانه‌ای می‌پردازد.

مسائل اصلی مهندسی نرم‌افزار تولید نرم‌افزار بر اساس موارد زیر است:

* الزامات تعیین شده
* در زمان تعیین شده
* در محدودهٔ بودجه پیش‌بینی شده

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

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

فناوری‌ها و خدمات مهندسی نرم‌افزار به کاربران برای بهبود بهره‌وری و کیفیت یاری میرساند. نمونه‌هایی از زمینه‌های بهبود: پایگاه داده‌ها، زبان‌ها، کتابخانه‌ها، الگوها، فرآیندها و ابزار.

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

اصول پایگاه داده ها

در این مقاله میخوانید:

پایگاه داده‌ها

تاریخچه پایگاه داده

انواع دادگان ها

مدل‌های پایگاه داده

ویژگی‌های سیستم مدیریت پایگاه داده‌ها

فهرست سیستم‌های متداول مدیریت دادگان

منابع مفید پیرامون این مبحث

پایگاه داده‌ها

پایگاه داده‌ها یا دادِگان ( یا بانک اطلاعاتی) به مجموعه‌ای از داده‌هابا ساختار منظم و سامانمند گفته می‌شود. پایگاههای داده‌ها معمولاً در قالبی که برای دستگاه‌ها و رایانه‌ها قابل خواندن و دسترسی باشد ذخیره می‌شوند. البته چنین شیوه ذخیره‌سازی اطلاعات تنها روش موجود نیست و شیوه‌های دیگری مانند ذخیره‌سازی ساده در پرونده‌ها نیز استفاده می‌گردد. مسئله‌ای که ذخیره‌سازی داده‌ها در دادگان را موثر می‌سازد وجود یک ساختار مفهومی است برای ذخیره‌سازی و روابط بین داده‌ها است.

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

یک تعریف ممکن این است که: پایگاه داده مجموعه‌ای از رکوردهای ذخیره شده در رایانه با یک روش سیستماتیک (اصولی) مثل یک برنامه رایانه‌ای است که می‌‌تواند به سوالات کاربر پاسخ دهد. برای ذخیره و بازیابی بهتر، هر رکورد معمولاً به صورت مجموعه‌ای از اجزای داده‌ای یا رویدادها سازماندهی می‌‌گردد. بخش‌های بازیابی شده در هر پرسش به اطلاعاتی تبدیل می‌‌شود که برای اتخاذ یک تصمیم کاربرد دارد. برنامه رایانه‌ای که برای مدیریت و پرسش و پاسخ بین پایگاه‌های داده‌ای استفاده می‌‌شود را مدیر سیستم پایگاه داده‌ای یا به اختصار (DBMS) می‌‌نامیم. خصوصیات و طراحی سیستم‌های پایگاه داده‌ای در علم اطلاعات مطالعه می‌‌شود.

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

 

 

 

 

 

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

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

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

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

اهمیت طراحی برنامه


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

الگوریتم


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

الگوریتم های میکرو در مقابل ماکرو


الگوریتم ها دارای ویژگی های متفاوتی می باشند . ما می توانیم در رابطه با  الگوریتم  استفاده شده  به منظور نوشتن یک برنامه مشخص صحبت نمائیم . از این زاویه  ، ما  صرفا" در رابطه با الگوریتم  در سطح ماکرو(macro level)  ، صحبت نموده ایم . در چنین مواردی ، الگوریتم ارائه شده ، سعی در بدست آوردن جنبه های عمومی برنامه از طریق یک مرور کلی به برنامه در مقابل درگیر شدن در جزئیات را  دارد.ما می توانیم در رابطه با الگوریتم ها ، از سطح "میکرو" صحبت نمائیم . از این زاویه ، به سطوح پایین تر رفته و به عوامل اساسی ونگهدارنده ای  که یک جنبه خاص از برنامه را با  یکدیگر مرتبط می نماید، صحبت کرد.  مثلا" در صورتیکه شما دارای داده هائی هستید که می بایست قبل از استفاده  مرتب گردند ،الگوریتم های مرتب سازی متعددی در این زمینه وجود داشته و  می توان یکی از آنها را بمنظور تامین اهداف مورد نظر خود انتخاب نمود. انتخاب یک الگوریتم مرتب سازی  ، صرفا" باعث حل شدن یکی از جنبه های متفاوت برنامه می گردد . پس از مرتب سازی داده ها ،می بایست از یک الگوریتم میکرو دیگر بمنظور نمایش  داده  ها ی مرتب شده استفاده  گردد .
همانگونه که احتمالا" حدس زده اید ، ما می توانیم تمام الگوریتم های میکرو را بمنظور ایجاد یک الگوریتم ماکرو ، جمع آوری نمائیم . اگر ما با الگوریتم های میکرو ، آغاز نمائیم ، و حرکت خود را بسمت نمایش ماکروی یک برنامه ، پیش ببریم ، کاری را انجام داده ایم که موسوم به طراحی " پایین به بالا" (
buttom-up)  ، است . اگر ما فعالیت خود را با یک الگوریتم ماکرو آعاز و حرکت خود را بسمت پائین و الگوریتم های میکرو ، ادامه دهیم ، طراحی از نوع " بالا به پایین " (top-down)  را انجام داده ایم .
شاید این سوال مطرح گردد که  کدام روش بهتر است ؟ اگر شما تمام مقالاتی را که تاکنون در این زمینه نوشته شده اند را  دنبال نمائید ، هرگز به یک نتیجه قابل قبول دست نخواهید یافت . هر رویکرد، دارای نکات مثبت و منفی مربوط به خود است . صرفنظر از رویکرد طراحی استفاده شده ، می بایست دارای الگوئی (طرحی) مناسب برای برنامه باشیم .حداقل، نیازمند یک اعلامیه از مسئله برنامه نویسی و یک طرح ( الگو) برای برخورد با مسئله ، خواهیم بود . پس از شناخت مسئله ، می توان  نحوه حل مسئله را  ترسیم کرد.  شناخت عمیق و مناسب نسبت به  مسئله ای که قصد حل آن را داریم ، شرط اساسی و ضروری برای طراحی یک برنامه است .
با توجه به اینکه این اعتقاد وجود دارد که شناخت جامع و کلی از مسئله ای که حل آن را داریم ، بخشی ضروری در اولین مرحله برنامه نویسی است ، ما در ادامه از رویکرد "بالا - پایین "، تبعیـت می نمائیم . فراموش نکنیم که  رویکرد فوق ، امکان مشاهده مجازی از هر مسئله برنامه نویسی را فراهم خواهد نمود.

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