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

نرم افزار دارای ویژگیهای منحصر به فردی است که آن را از سایر محصولات مهندسی متمایز میکند، از جمله عدم فرسودگی فیزیکی و قابلیت تغییر و انعطافپذیری بالا. شناخت این ویژگیها برای توسعه موفق آن ضروری است.
طبقه بندی نرم افزار بر اساس کاربرد، اندازه یا پیچیدگی، به درک بهتر گستره وسیع آن و همچنین انتخاب رویکردهای مناسب برای توسعه کمک شایانی میکند.
نوع فایل: پی دی اف – 185 صفحه
فهرست مطالب:
- مهندسی نرم افزار
- مراجع
- بحران نرم افزاری و مهندسی نرم افزاری
- دوره های تکاملی مهندسی نرم افزار
- ویژگیهای نرم افزار
- طبقه بندی نرم افزار
- ضوابط ارزیابی نرم افزار
- فرق بین فرآیند نرم افزار و مهندسی نرم افزار
- الگوهای موجود در مهندسی نرم افزار
- فرایند
- فعالیتهای مهندسی نرمافزار
- مدل فرایند
- رویه حل مسئله
- مزیت رویه حل مسئله
- معایب مدل آبشاری
- مزایای مدل آبشاری
- معایب بکارگیری prototype
- شرایط مورد نیاز جهت بکارگیری مدل RAD
- مواردی آه نمی توان ازمدل RAD استفاده آرد
- معایب روش فرمال
- مدل افزایشی
- مدل حلزونی برنده برنده(Win-Win)
- مدل توسعه همزمان (مهندسی همزمانی)
- ترآیب الگوها
- Analysis modeling
- روش های آنالیز و طراحی نرم افزار
- اهداف آنالیز
- روش های structural و طراحی سیستم
- Data dictionary
- Data Flow Diagram
- State transition diagram
- Data modeling
- Cardinality and modality
- Modality
- رابطه mandatory و optional
- نمودار سلسله مراتبی object data ها
- استانداردهای رسم dfd
- نکات مهم در رسم نمودار dfd در ssadm
- ELH(Entity Life History)
- Jackson notation
- مقدمه ای بر متدلوژی
- اهمیت متدلوژی
- ویژگیهای یک متدلوژی مطلوب
- مدل فرایند نرم افزار در SSADM
- ویژگی های CASE TOOLS ها
- EAP (Enquary Access Path)
- BPM(Bussiness Process Modeling)
قیمت: 110/500 تومان
برای ارزیابی کیفیت و کارایی یک نرم افزار، ضوابط ارزیابی نرم افزار مشخصی وجود دارد که ابعاد مختلفی از جمله قابلیت اطمینان، کارایی و قابلیت نگهداری را شامل میشود. این ارزیابیها بخش مهمی از مبانی مهندسی نرم افزار را تشکیل میدهند.
مطالب مرتبط
- دانلود pdf آزمایشگاه مهندسی نرم افزار در 70 صفحه
درک فرق بین فرآیند نرم افزار و مهندسی نرم افزار حائز اهمیت است؛ فرآیند به گامهای عملی تولید اشاره دارد، در حالی که مهندسی نرم افزار شامل اصول، روشها و ابزارهای سازماندهی این فرآیند است.
فرایند توسعه نرم افزار مجموعهای از گامهای منطقی و مرتبط است که برای تولید یک محصول نرم افزاری انجام میشود. این فرایند شامل مراحل مختلفی از تعریف تا استقرار است.
فعالیتهای مهندسی نرم افزار مانند ارتباط، برنامهریزی، مدلسازی، ساخت و استقرار، ارکان اصلی تشکیلدهنده هر چرخه عمر نرم افزاری هستند و مدل فرایند، چگونگی انجام این فعالیتها را ترسیم میکند.
یک رویه حل مسئله مؤثر، قلب هر فرآیند مهندسی نرم افزار است که با شناسایی دقیق مسئله، ارائه راهحلهای بالقوه و انتخاب بهینه آنها پیش میرود. این رویکرد ساختاریافته، توسعه را هدایت میکند.
مزیت رویه حل مسئله در کاهش ابهامات، افزایش کارایی و اطمینان از دستیابی به راهحلی است که نیازهای واقعی کاربر را برآورده سازد و به این ترتیب، خطاهای احتمالی را به حداقل میرساند.
مدل آبشاری، یکی از اولین و شناختهشدهترین الگوهای توسعه نرم افزار، با ساختاری خطی و متوالی، مراحلی مانند تحلیل، طراحی، پیادهسازی و آزمایش را دنبال میکند. این مدل اگرچه دارای مزایای سادگی و مستندسازی قوی است، اما محدودیتهایی نیز دارد.
مهمترین معایب مدل آبشاری در انعطافناپذیری در برابر تغییرات و تأخیر در بازخورد مشتری نهفته است، در حالی که مزایای مدل آبشاری شامل وضوح مراحل و مدیریت آسان پروژه در پروژههای کوچک و با نیازهای ثابت است، که در مبانی مهندسی نرم افزار به تفصیل بررسی میشود.
بکارگیری نمونه اولیه یا پروتوتایپ (prototype) میتواند در برخی موارد برای درک نیازها مفید باشد، اما معایب بکارگیری پروتوتایپ شامل صرف زمان و منابع زیاد برای نمونهای که ممکن است دور انداخته شود و همچنین احتمال انتظارات غیرواقعبینانه از محصول نهایی است.
در مقابل، مدل توسعه سریع برنامه یا راد (Rapid Application Development – RAD) بر سرعت و تکرار تمرکز دارد تا نرم افزار را در مدت زمان کوتاهتری تحویل دهد و به نیازهای متغیر پاسخ دهد.
شرایط مورد نیاز جهت بکارگیری مدل RAD، وجود تیمی کوچک و متخصص، نیازهای کاربردی مشخص اما با امکان تغییر، و تعامل قوی مشتری با تیم توسعه است. این شرایط برای موفقیت این مدل حیاتی هستند.
با این حال، مواردی که نمیتوان از مدل RAD استفاده کرد شامل سیستمهای با پیچیدگی فنی بسیار بالا، سیستمهای با ریسکپذیری بالا، یا پروژههایی که تعامل مداوم مشتری امکانپذیر نیست، میشوند.
روشهای فرمال (Formal Methods) در توسعه نرم افزار، با استفاده از زبانها و تکنیکهای ریاضی دقیق، به اثبات صحت سیستم میپردازند. اما معایب روش فرمال شامل پیچیدگی یادگیری و کاربرد، زمانبر بودن و هزینه بالای آن است که استفاده از آنها را محدود میکند.
از دیگر الگوهای توسعه، مدل افزایشی (Incremental Model) است که نرم افزار را در قالب بخشهای کوچکتر و قابل تحویل، به تدریج میسازد و به مشتری ارائه میدهد، که این رویکرد از مبانی مهم در مهندسی نرم افزار است.
مدل حلزونی برنده برنده (Win-Win Spiral Model) یک رویکرد تکراری است که ریسکها را به طور فعال شناسایی و مدیریت میکند و در هر چرخه، راهحلهای بهینه برای همه ذینفعان را جستجو میکند. این مدل پیچیده، برای پروژههای بزرگ مناسب است.
مدل توسعه همزمان (مهندسی همزمانی) (Concurrent Development Model)، فعالیتهای مهندسی را به صورت موازی و همزمان انجام میدهد تا سرعت توسعه را افزایش داده و انعطافپذیری بیشتری در برابر تغییرات داشته باشد، که این رویکرد نیز از جمله مبانی مهندسی نرم افزار محسوب میشود.
در بسیاری از پروژههای واقعی، ترکیب الگوها (Combination of Paradigms) برای بهرهمندی از مزایای چندین مدل و پوشش ضعفهای آنها، رویکردی رایج و مؤثر است. این ترکیب به مهندسان نرم افزار امکان میدهد تا متناسب با ویژگیهای پروژه، بهترین استراتژی را انتخاب کنند.
مدل سازی تحلیل (Analysis Modeling) در فازهای اولیه توسعه، به شناسایی و نمایش نیازمندیهای سیستم میپردازد و اهداف آنالیز شامل شفافسازی دامنه مسئله، شناسایی موجودیتها و روابط بین آنها است.
روشهای آنالیز و طراحی نرم افزار، ابزارهایی سیستماتیک برای درک، مدلسازی و پیادهسازی نیازمندیها به یک طراحی عملیاتی هستند. این روشها به تضمین کیفیت و قابلیت نگهداری محصول کمک میکنند.
روشهای ساختاری و طراحی سیستم (Structural Methods and System Design) مانند تجزیه و تحلیل ساختاریافته، بر تفکیک سیستم به زیرسیستمهای کوچکتر و مدیریتپذیرتر تأکید دارند و جریان داده و فرآیندها را مدل میکنند.
فرهنگ داده (Data Dictionary) به عنوان یک مخزن مرکزی برای نگهداری تعریف دقیق تمامی دادههای مورد استفاده در سیستم عمل میکند، که این امر به یکپارچگی و هماهنگی اطلاعات کمک شایانی مینماید.
نمودار جریان داده (Data Flow Diagram – DFD) ابزاری گرافیکی برای نمایش جریان اطلاعات و فرآیندهای تبدیل آن در یک سیستم است، در حالی که نمودار گذار حالت (State Transition Diagram – STD) تغییرات حالت یک شیء را در پاسخ به رویدادها نشان میدهد.
مدل سازی داده (Data Modeling) فرآیند تعریف و تحلیل ساختار دادهها برای حمایت از فرآیندهای کسب و کار است و پایه و اساس طراحی پایگاه دادهها را فراهم میکند. این بخش مهمی از مبانی مهندسی نرم افزار به شمار میرود.
مفاهیم کاردینالیتی (Cardinality) و مدالیته (Modality) در مدلسازی داده، تعداد نمونههای ممکن از یک موجودیت را که میتوانند با نمونههای موجودیت دیگر در ارتباط باشند، مشخص میکنند و رابطه اجباری و اختیاری (Mandatory and Optional Relationship) نیز این اتصالات را دقیقتر تبیین میکند.
نمودار سلسله مراتبی دادههای شیء (Hierarchical Diagram of Object Data) ساختار ارتباطی بین اشیاء و دادههای آنها را به صورت سلسله مراتبی نمایش میدهد و به درک ساختار کلی سیستم کمک میکند.
برای اطمینان از وضوح و قابلیت درک، استانداردهای ترسیم نمودار جریان داده (DFD Drawing Standards) تدوین شدهاند و نکات مهم در ترسیم نمودار جریان داده در SSADM (Structured Systems Analysis and Design Method) نیز بر رعایت این استانداردها و اصول خاص این متدلوژی تأکید دارد.
تاریخچه حیات موجودیت (Entity Life History – ELH) تمامی رویدادها و تغییراتی را که یک موجودیت در طول عمر خود تجربه میکند، ثبت و نمایش میدهد و به درک دینامیک سیستم کمک میکند.
نمادگذاری جکسون (Jackson Notation) نیز روشی ساختاریافته برای نمایش ساختار برنامهها و دادهها است و مقدمهای بر متدلوژی (Introduction to Methodology) به بررسی اهمیت متدلوژی (Importance of Methodology) و ویژگیهای یک متدلوژی مطلوب (Characteristics of a Desirable Methodology) میپردازد.
مدل فرایند نرم افزار در SSADM، مراحل مختلف تحلیل و طراحی سیستم را به صورت ساختاریافته ارائه میدهد و رویکردی جامع برای توسعه سیستمهای اطلاعاتی بزرگ فراهم میکند.
ویژگیهای ابزارهای CASE (Computer-Aided Software Engineering Tools) شامل خودکارسازی فرآیندهای توسعه، نگهداری و مدیریت پروژههای نرم افزاری است که با استفاده از مسیر دسترسی به پرس و جو (Enquiry Access Path – EAP) و مدل سازی فرآیندهای کسب و کار (Business Process Modeling – BPM) به تسهیل کار مهندسان در مبانی مهندسی نرم افزار کمک میکند.