جستجو در تک بوک با گوگل!


بازدید
بازدید
بازدید

Wireshark یک آنالیزگر پکت در شبکه است. یک آنالیزگر پکت، پکت هایی که در شبکه رد وبدل می شوند را به دام انداخته و آنها را مورد پردازش قرار می دهد و در صورت امکان جزئیات آن را نمایش می دهد. در واقع این نرم افزار به طور دقیق آنچه را که از طریق کابل می گذرد را به دام انداخته و مورد برسی قرار می دهد. Wireshark نام جدید برنامه معروف Ethereal است که تا کنون در برخی از دانشگاه ها تدریس می شود. در این کتاب شما اصول اساسی استفاده از این برنامه را خواهید آموخت…!
Wireshark (کوسه ای در سیم) در حقیقت برنامه ای رایگان و منبع آزاد است که امکان troubleshooting و analysis پرتوکول های ارتباطی را فراهم می سازد،.در واقع کار اصلی این برنامه بوجود آوردن شرایط و ابزار آلاتی می باشد که به شما امکان آنالیز کردن اطلاعات وروردی به یک دستگاه نظیر روتر و یا هر دستگاه ارتباطی دیگر را می دهد.
WireShark یک پلتفرم جدا است که با استفاده از GTK+ wideget Toolkit خود را بر روی Inteface کاربر پیکربندی کرده و با استفاده از pcap قادر به مانیتور کردن بسته های اطلاعاتی می باشد.این برنامه قادر به بالا آمدن بر روی انواع سیستم عامل های Unix مانند linux – MacOS X – BSD – Solaris و همچینین سیتسم عامل های ویندوزی می باشد.همچینین شما اگر علاقه ای به محیط های گرافیکی ندارید می توانید با ترمینال قدرتمند این برنامه به نام TShark کار کنید.این برنامه رایگان است و تحت مجوز GNU می باشد.
این کتاب مفید را نویسنده آن جناب آقای میلاد کهساری الهادی برای انتشار رایگان در پایگاه دانلود رایگان کتاب تک بوک ارسال کرده اند.
بازدید
بازدید
اختلال سختافزاری
علت اول و مهمترین عاملی که باعث قفل و مرگ ویندوز میشود تصادم سختافزاری است. هر قطعه سختافزاری برای ارتباط با سختافزارهای دیگر، از کانال درخواست وقفه (IRQ) استفاده میکند و برای هر قطعه باید یک IRQ تخصیص داده شود. به طور مثال چاپگر معمولا از IRQ شماره ۷ استفاده میکند، صفحه کلید از ۱ و فلاپی درایو از ۶٫ هر قطعه سخت افزاری ترجیح میدهد که IRQ اختصاصی خود را داشته باشد. اگر روی سیستمی سختافزارهای زیادی نصب شود یا سختافزاری به روش صحیح پیکربندی نشود، ممکن است دو سختافزار بخواهند از یک IRQ استفاده کنند. اینجاست که مشکل پیش میآید. برای اینکه دریابید سیستم شما هم تصادم سختافزاری دارد یا خیر این مسیر را جلو بروید :
Device Manager>>> System >>> Control Panel >>> Settings >>>Start >>> معمولاً سختافزارهایی که مشکل دارند، با علامت تعجب زرد رنگ مشخص میشوند. این مشکل میتواند به دلیل عدم هماهنگی با سایر قطعات، عدم شناسایی راهانداز و همچنین مشکلات بخش IRQ باشد که در این صورت میتوانید با رفتن به قسمت Properties سختافزار مربوطه، یک IRQ جدید به آن اختصاص داده و مشکل را برطرف کنید.
رم خراب
RAMها هم میتوانند باعث ایجاد این مشکل شوند که معمولا با Exception Fatal Error مشخص میشود. نکته مهم این است که Fatal Error فقط در مواقعی که مشکل جدی سختافزاری وجود دارد مشاهده میشود. در مورد رم، فاتال ارور ممکن است در اثر عدم همخوانی ماجولهای نصب شده یا چیپستها به وجود آید. به عنوان مثال وقتی از دو رم که یکی با زمان تاخیر ۷۰ نانوثانیه و دیگری ۶۰ نانوثانیه است، در کنار هم روی یک سیستم استفاده کنیم، سیستم مجبور به کار کردن با سرعت پائین شده و باعث مرگ ویندوز میشود . پیغام Parity Error هم به رم مربوط است. رمهای جدید به دو دسته تقسیم میشوند: ECC غیر ECC. که بهتر است این دو نوع در یک سیستم استفاده نشود.
تنظیمات BIOS
هر مادربورد دارای چندین تراشه است که توسط کارخانه تنظیم و برای کار روی مادربورد قرار داده میشوند. نام یکی از این چیپها BIOS است که میتوانیم با فشار دادن کلید Del یا F2 هنگام روشن کردن کامپیوتر، وارد تنظیمات آن شویم. مرحله دقیق و حساس کار وقتی شروع میشود که وارد BIOS میشویم.
اگر مبتدی هستید پیشنهاد میکنیم تمامی تنظیمات را روی کاغذ یادداشت کنید. در این حالت اگر تغییری را در تنظیمات انجام دهید میتوانید مجددا به تنظیم قبلی باز گردید. یکی از مشکلات معمول BIOS، CAS Legacy است که این مشکل هم به RAM مربوط میشود. برای رمهای EDO قدیمی مقدار CAS معادل با ۳ و برای SDRAM های جدیدتر معادل ۲ است. تنظیم نادرست باعث میشود که باز هم آن پنجرهای که دوستش نداریم جلوی روی ما ظاهر شود. همیشه به خاطر داشته باشید که ویندوز بهتر از BIOS میتواند IRQها را بین سختافزارها تقسیم کند. پس بهتر است در تنظیمات BIOS برای تخصیص (IRQ) گزینه Auto را انتخاب کنیم.
هارددیسک ها
بعد از چند هفته کار با کامپیوتر اطلاعات روی هارددیسک پراکنده میشوند یعنی ممکن است تکههای یک فایل را در قسمتهای مختلف هارد پیدا کرد. در اینجاست که Defrag کردن مرتب هارد میتواند تاثیر مثبتی روی سیستم داشته باشد. البته با تکنولوژیهای جدید و هاردهای مدل بالا به نظر میرسد این کار خیلی هم موثر نباشد. خیلی از مشکلات کامپیوتر مربوط به خرابی هارد دیسک است. مثلت زمانیکه ویندوز دیر بالا میآید سیستم هنگ میکند. برنامهها درست اجرا نمیشوند و …
خرابی هارددیسک حتی روی کارهای اینترنت هم تاثیر میگذارد و میتواند باعث ایجاد مشکلاتی در دریافت دیتا شود که خیلی از افراد آن را به مودم و خط تلفن ارتباط میدهند. اگر ظرفیت هارددیسک پر باشد، سرعتش کم شده و قفل میکند پس لازم است هر از چند گاهی خانه تکانی کنید و فایلهای اضافی را روی CD یا DVD را رایت کرده و از هارد پاک کنیم. سطل آشغال سیستم را هم مرتب کنید تا آشغالهای داخل آن بو نگیرند!!
مشکلات OE Exception و VXD
منشا این مشکلات معمولا زیر سر کارت گرافیکی است. با نصب درایور مناسب و تنظیم صحیح وضوح و عمق رنگ میتوان این مشکلات را هم برطرف کرد. به طور کلی OE Exception دلایل بسیاری میتواند داشته باشد که از رابط DMAا شانزده بیتی تا اشکالات رجیستری و ناهماهنگی در بخش شبکه را شامل میشود. اما در نهایت تمام این دلایل به دلیل ارسال دستورالعمل اشتباه یا دسترسی به یک داده اشتباه ایجاد میشود. در این شرایط بر اساس کد خطای اعلام شده باید مشکل را پیگیری کرد. ممکن است هنگام شروع به کار ویندوز یا شاتدان با این پیام روبهرو شوید:
A fatal exception XY has occurred at xxxx:xxxxxxxx
که این نشان دهنده همین fatal exception error است.
ویروسها
ویروسها هم با ایجاد اختلال در رابط سختافزار و نرمافزار عامل بزرگی در این مورد به حساب میآیند. مثلا ویروس BSOD که روی ویندوز ویستا تاثیر میگذارد با Fixer آنتیویروس NOD32 قابل حل است در کل نصب یک آنتیویروس خوب و به روز شده روی سیستم ضروری است.
چاپگر
وقتی فایلی را به چاپگر میفرستیم در واقع یک فایل بزرگتر درست میکنیم که به آن پست اسکریپت میگویند. هر چاپگر مقدار کمی رم دارد که به آن بافر میگویند. این بافر به راحتی پر میشود، پرشدن بافر از یک طرف انتظار برای فرستادن داده از طرف کامپیوتر و مشغول بودن پردازنده هم از طرف دیگر دست به دست هم میدهند تا سرعت کار کم شود. اگر دیدید که چاپگر به جای متن مورد نظر شما غزلیات بیل گیتس را چاپ میکند، عملیات چاپ را Cancel و آن را خاموش کنید. سپس آن را مجددا روشن کنید، با این کار بافر سیستم را خالی کردهاید.
نرمافزارها
این روزها آشفته بازار نرم افزار مثل مد لباس و کفش شده است. خیلی از افراد فقط انواع مختلف نرمافزارها را خریداری میکنند. بعضیها هم آخرین ورژنهای ETABS، Matlab، CoolEdit، Photoshop، را روی کامپیوتر خود نصب کردهاند بدون اینکه واقعا به آنها نیاز داشته باشند.
لازم است بدانیم که سیستمعامل شما برای کارهای معمولی و روزمره کامل است به عبارت بهتر خیلی کامل تر از چیزی است که تصور میکنید. بنابراین پس از نصب ویندوز کمی فکر کنیم و فقط برنامههایی را نصب کنیم که به آنها احتیاج داریم.
گرمای بیش از حد
گرم شدن بیش از حد قطعات کامپیوتر علاوه بر آسیبرسانی به سختافزارها، عمر آنها را نیز کوتاه میکند و حتی تاثیر منفی روی نرمافزارهای در حال اجرا خصوصا Kernel میگذارد. برای حل این مشکل سعی کنیم همیشه فضای داخل کیس را خنک نگه داریم.
مشکلات منبع تغذیه
این مشکلات شوخی بردار نیست چراکه گاهی دردسرهایی درست میکند که مجبور میشوید کل سیستم را عوض کنید. خلاصه کلام اینکه اگر کامپیوترتان را دوست دارید همین امروز یک محافظ برای آن تهیه کنید. منبع تغذیه به دلیل ارتباط مداوم با نوسانات برق، گرمای تولیدی و موارد دیگر یکی از قطعات پر استهلاک دستگاه است و بنابراین اغلب مشکلاتی که پس از یکی دو سال بروز میکنند به دلیل ایرادات این بخش هستند. ضمن اینکه گاهی این ایرادات بهطور ناگهانی بروز میکنند.
بازدید
بازدید
در این کتاب مفید اموزشی بصورت جامع با نصب و راه اندازی شبکه های رایانه ای آشنا خواهید شد.
این کتاب مفید را نویسنده محترم آن جناب آقای رضا رمضانی برای انتشار در پایگاه دانلود رایگان کتاب تک بوک ارسال داشته اند.
بازدید
این کتاب شامل دو بخش است:
بخش۱: دوبعدی سطح ۲
مخاطب اصلی این بخش کسانی هستند که با فرمانهای اولیه اتوکد آشنایی داشته باشند (کتاب «لذت اتوکد-سطح۱» به عنوان پیش نیاز، پیشنهاد می گردد). در این سطح، مطالب تکمیلی جهت رساندن کاربر تازه کار به حدی که با سرعت قابل قبولی قادر به ترسیم نقشه های دوبعدی در حد فاز ۲ معماری است، بیان می گردد. این مطالب شامل زیرشاخه های مهم فرمانهای قبلی، فرمانهای میانبر و تکمیلیِ جدید و زیرشاخه های آنها، و نیز روشهای ابتکاری جهت بالا بردن «خلاقیت» میباشد.
در برخی موارد ، ابتدا مساله ای ترسیمی آمده است، که کاربر باید قبل از خواندن ادامه مطلب، مساله را حل کند. این امر باعث می شود تا اهمیت فرمان، زیرشاخۀ جدید یا روش پیشنهادی که بیان می شود به خوبی درک شده و فرمان به راحتی فراموش نگردد.
بخش ۲: سه بعدی سطح ۱
در مدلسازی سه بعدی بعلت اضافه شدن یک بعد، و تعداد زیادی فرمانِ دیگر بر فرمانهای دوبعدی، امکان ترکیب فرمانها و یا به عبارتی راههای رسیدن به هدف، بسیار بیشتر از دوبعدی می باشد. این امر علیرغم اینکه زمینه بسیار خوبی جهت خلاقیت و ابتکار در ترکیب امکانات و فرمانها و در نتیجه لذت بیشتر از کار را فراهم آورده است، از سوی دیگر باعث مشکلتر شدن کار نیز شده است؛ گفتن تمام فرمانها از ابتدا باعث می شود که کاربر در انتخاب فرمان بهینه دچار تردید گردد و یا احساس سردرگمی کند. به همین خاطر در قسمت اول یک تمرین عملی و یک روش پیشنهادی برای انجام آن گفته شده که به بازتر شدن دید کاربر و خلاقیت وی کمک بسزایی می کند. ضمن پیشرفت کار، فرمانهای جدید با توجه به نیاز در همان قسمت گفته شده است. این روش همچنین باعث می شود هر فرمان همراه با حداقل یک کاربرد در ذهن کاربر ثبت شود که به محض نیاز به آن کاربرد، خودبخود فرمان یادآوری شود. در قسمت بعد تمامی فرمانهایی که در مدلسازی سه بعدی مورد استفاده قرار می گیرند گفته شده تا هر کاربر بنا بر سلیقه شخصی خود بتواند از فرمان مورد علاقه خود برای ترسیم یا ویرایش حجم مورد نظرش استفاده کند. البته بیان برخی زیر شاخه ها یا فرمانها که توضیحات مفصل و گاه پیچیده ای داشته و در عین حال چندان کاربردی نبوده اند به سطوح بعدی موکول شده است.
بازدید

کامپیوتر را با کدامیک از کاربرد هایش می شناسید؟! کاربرد های عمومی؟ بازی؟ پخش موسیقی و ویدئو؟ تایپ و طراحی گزارش؟
یا کاربرد های تخصصی تر؟ برنامه نویسی وب و پایگاه داده ها؟ شبیه سازی فرآیند ها؟ انجام محاسبات پیچیده ؟ یا….
طراحی مدار های واسط کامپیوتری ، یکی از مباحث کاربردی رشته های مهندسی سخت افزار ، مهندسی پزشکی و مهندسی برق می باشد که نحوه مرتبط کردن دستگاههای مختلف با کامپیوتر را تشریح میکند. دامنه این بحث از طراحی کارت های کامپیوتری تا طراحی واسط هایی برای ارتباط موازی و سریال با کامپیوتر گسترده است . از دیگر مباحث مرتبط با این حوزه میتوان به نحوه برقراری ارتباط با چاپگر و مودم ، چگونگی کنترل دستگاهها از دور به کمک تلفن و شبکه اینترنت و نیز شبکه های کنترلی مانند I2C , CAN , X10 اشاره کرد. حتی اگر بخواهید به جای کامپیوتر از مادربورد های صنعتی برای کنترل دستگاههای پیچیده استفاده کنید، باید با اصول طراحی مدار های واسط آشنایی داشته باشید.
در این کتاب تلاش شده است مباحث مرتبط با طراحی مدار های واسط کامپیوتری به زبان ساده و بصورت پایه ای بیان شود.
این کتاب را جناب آقای دکتر جواد راستی نوستده محترم آن برای انتشار در پایگاه دانلود رایگان کتاب تک بوک ارسال کرده اند.
بازدید
۱-۱-۱سازمانهای نرم افزاری بالغ و نابالغ
تعیین اهداف ملموس برای توسعه فرآیندها و درک تفاوتهای فی مابین سازمانهای نرم افزاری بالغ و نابالغ، یکی از نیازهای اساسی جامعه ما است. ویژگیهای سازمانهای بالغ و نابالغ نرم افزاری ذیلاً ارائه می گردد:
۱-سازمان نرم افزاری بالغ
فرآیندهای یک سازمان نرم افزاری بالغ به گونه ایست که در سرتاسر سازمان برای مدیریت و پشتیبانی از ایجاد و توسعه نرم افزار، توانایی دارد. فرآیند نرم افزار دقیقاً فی مابین نیروهای موجود و کارکنان جدید، قابل به اشتراک گذاشتن است. فرآیندهای حکم شده به دلیل سازگار بودن با راه کارهای واقعی انجام کار، قابل استفاده هستند. این فرآیندهای تعریف شده، زمانیکه موردنیاز باشد به هنگام درخواهند آمد و توسعه تدریجی آنها از طریق کنترلهای لازم بر آزمون پروژه های نمونه و یا تجزیه و تحلیل هزینه و سود، امکانپذیر خواهد بود.
قوانین و مسئولیتها در فرآیندهای تعریف شده در سرتاسر سازمان و حین انجام پروژه واضح و روشن است. در سازمان بالغ، مدیریت سازمان، کیفیت محصولات نرم افزاری و فرآیند تهیه آنها را زیر نظر دارد.
برای قضاوت در امر کیفیت و تجزیه و تحلیل محصول و فرآیند، اهدافی وجود دارند که اساساً کمّی شده اند. برنامه زمانبندی و بودجه بندی بر مبنای کارآیی های تاریخی و واقعیت های منبعث از آنها، بنا شده اند. نتایج مورد انتظار برای هزینه، برنامه زمانبندی، قابلیت کارکردی و کیفیت، معمولاً قابل حصول هستند. بطور کلی، فرآیند به نظم درآمدن بطور سازگارانه ای دنبال می شود. زیرا، درک مشترک از ارزش آنچیزی که فرآیند ایجاد می کند و زیرساختهای لازم برای پشتیبانی آن، در سرتاسر سازمان بوجود خواهد آمد.
۲-سازمان نرم افزاری نابالغ
دریک سازمان نرم افزاری نابالغ، فرآیندهای نرم افزاری عموماً در جریان انجام یک پروژه توسط انجام دهندگان و مدیران ایجاد می شوند. حتی اگر یک فرآیند نرم افزار با این روش ایجاد شود، به اندازه کافی جدی گرفته نخواهد شد و دنبال نمی گردد. سازمان نرم افزاری نابالغ، ارتجاعی است. مدیریتش معمولاً تمرکز برحلّ مشکلات بحرانی دارد. زمانبندی و بودجه بندی بصورت دائمی در حال افزایش است زیرا بر مبنای تخمین های واقعی بنا نشده اند.
اکثر مواقع مشاهده شده است که یک برنامه زمانبندی فشرده برای تهیه یک نرم افزار تحمیل شده است. قابلیت کارکردی و کیفیت محصول حاصل از این برنامه ریزی، اغلب دستخوش مصالحه با برنامه زمانبندی خواهد شد. در یک سازمان نابالغ، اهداف اساسی پایه ای برای توانایی قضاوت کیفیت محصول یا برای حلّ مشکلات محصول یا مسائل فرآیند، تدوین نگردیده اند . بنابراین پیش بینی کیفیت محصول مشکل است. وقتی پروژه از برنامه زمانبندی خود به تعویق می افتد فعالیتهایی که به افزایش کیفیت منجر می شوند (مانند بازنگری ها و آزمون ها) اغلب خلاصه یا محو می شوند.
۱-۱-۲-مفاهیم پایه ای متضمن بلوغ فرآیند
فرآیند نرم افزار می تواند بوسیله مجموعه ای از فعالیتها، روشها، تمرینها و تغییراتی که نیروی انسانی برای توسعه و نگهداشت و به اشتراک گذاشتن آنها صرف می کنند، تعریف شود. (مانند: برنامه ریزی پروژه، طراحی مستندات، کُد، آزمون موارد و راهنمای استفاده کنندگان) بطوریکه فرآیند نرم افزار در یک سازمان رشدیافته، به خوبی تعریف شده و سازگاری پیاده سازی آن در سرتاسر سازمان بیشتر به چشم می خورد. در این صورت ویژگیهایی از قابلیت فرآیند نرم افزار در محدوده ای از نتایج قابل پیش بینی شده ، بوسیله پیروی از فرآیند نرم افزار قابل دستیابی است.
قابلیت فرآیند نرم افزار یک سازمان به یک معنی پیش بینی احتمالی آندسته قابلیتهایی است که سازمان درنظر دارد تا در نرم افزارهای آتی خود بگنجاند. کارآیی فرآیند نرم افزار به معنی واقعی آن به وسیله پی گیری فرآیند نرم افزار نمایش داده می شود. از اینرو کارآیی فرآیند نرم افزار تمرکز بر نتایج قابل انتظار دارد. بلوغ فرآیند نرم افزار به اندازه ای است که یک فرآیند خاص، آشکارانه تعریف، مدیریت، اندازه گیری، کنترل و تأثیرگذار شده باشد. بلوغ، به پتانسیلی برای رشد در قابلیت، منجر می شود و شامل هم دستیابی به فرآیندهای نرم افزاری سازمان و نیز سازگاری با پروژه های جدیدی است که در سازمان مطرح می شود.
سودی که یک سازمان نرم افزاری در بلوغ فرآیند نرم افزار بدست می آورد، این است که با استفاده از خط مشی ها، استانداردها و ساختارهای سازمانی مناسب، در مسیر فرآیند نرم افزار قرار خواهد گرفت. جاری ساختن فرآیند نرم افزار در سازمان مستلزم ایجاد یک زیرساخت و فرهنگ سازمانی است که روشها، عملیات و دستورالعمل های کاری در این زیرساخت با تحمل و بردباری خاص مورد پشتیبانی قرار گیرد بطوریکه پس از آن بصورت نهادینه درسرتاسر سازمان رسوخ پیدا کند.
۱-۲-۱پنج سطح بلوغ فرآیند نرم افزار
توسعه مستمر فرآیند بر مبنای تعدادی مراحل تحولی و تکاملی به جای تغییرات انقلابی، بنا شده است. ساختار مراحل CMM بر مبنای اصول کیفیت محصول مورد اعتقاد والتر شوارت، ادوارد دمینگ، ژوزف یوران و فیلیپ کرازبی، بنا شده است. ( مرجع CMM V1.1 )
CMM چارچوبی برای ساماندهی به این مراحل توسعه تدریجی در ۵ مرحله بلوغ که منجر به زیرسازی موفقیت آمیزی برای توسعه مستمر فرآیند خواهد شد، ارائه نموده است. این ۵ مرحله بلوغ، درجه بندی کمّی برای اندازه گیری بلوغ فرآیند نرم افزار سازمان و ارزیابی قابلیت فرآیند نرم افزاررا تعریف می کند. این سطوح همچنین نسبت به تشخیص اولویت های نیازمند تلاش برای تجزیه و تحلیل و نیز فاصله دستیابی به توسعه سازمان، کمک خواهد نمود.
سطوح بلوغ، بخوبی و به گونه ای هموار، بصورت تدریجی در سطح سازمان برای دسترسی به فرآیند نرم افزار بالغ، تعریف شده است. هر سطح بلوغ، شامل مجموعه ای از اهداف فرآیندی است. توانایی خرسندسازی، زمانی حاصل می شود که مؤلفه های مهم فرآیند نرم افزار در سازمان، تثبیت شده باشد. دسترسی به هر سطح از چارچوب بلوغ، مؤلفه های مختلفی از فرآیند نرم افزار را برقرار می سازد و منجر به افزایش قابلیت فرآیند در سازمان خواهد شد.
سازماندهی CMM در ۵ سطحی که در شکل ۱-۲ نشان داده شده است، تعیین کننده اولویت بندی فعالیت های توسعه ای برای افزایش بلوغ فرآیند نرم افزار است. برچسب هایی که برروی پیکانها در شکل ۱-۲ نوشته شده است، شامل نوع قابلیت فرآیندی است که بوسیله ساماندهی هر مرحله از چارچوب بلوغ دائر می گردند.
شکل ۱-۲- پنج سطح بلوغ فرآیند نرم افزار
۱-۲-۲-مشخصه های سطوح بلوغ
سطوح بلوغ ۲ الی ۵ می تواند بوسیله فعالیت های تهیه شده توسط سازمان توصیف گردند. این توصیف برای ایجاد یا توسعه فرآیند نرم افزار بوسیله تهیه فعالیتها در هر پروژه و نتایج حاصله از قابلیت فرآیند طی انجام پروژه، صورت می پذیرد. صفات رفتاری سطح ۱، به عنوان ابتدایی ترین پایه سنجش برای توسعه فرآیند در نظر گرفته شده است.
-سطح یک- سطح ابتدایی
در سطح ابتدایی، سازمان نمونه، محیط پایداری برای توسعه و نگهداشت نرم افزار تهیه نکرده است. ایجاد تعهد در کارکنان چنین سازمانهایی برای انجام عملیات فرآیند مهندسی نرم افزار در محیط بحران، مکرراً با سختی مواجه است. در زمان بحران، پروژه ها از روشهای اجرایی برنامه ریزی شده تخطی می کنند و به برنامه نویسی و آزمایش کردن می پردازند. موفقیت در اینچنین پروژه هایی کاملاً وابسته به مدیریت استثنایی، زمان وقوع و اثربخشی تیم نرم افزاری است. بعضی اوقات ، قابلیت و تأکید مدیران نرم افزار می تواند در مقابل فشارهای ناشی از کم کردن زمان برای دستیابی به فرآیند نرم افزار، مقاومت کند ولی به محض اینکه آنها پروژه را ترک کنند، نفوذ ایجاد شده توسط آنها نیز پروژه را ترک خواهد کرد. حتی یک فرآیند قوی مهندسی، نمی تواند در مقابل بی ثباتی ناشی از غیبت یک مدیر قوی دوام بیاورد. مشکلات ناشی از تکروی این فرآیند در سازمان سطح یک می تواند بارها و بارها تکرار شود. ضمن اینکه پروژه ها نیز از لحاظ زمان و هزینه در تنگنا قرار می گیرند. موفقیت در سطح سازمان به شایستگی و شجاعت کارکنانی که در آن کار میکنند وابسته است و حتی در شرایط مشابه قابل تکرار نیست. از اینرو در سطح یک، قابلیت، یک مشخصه فردی است و نه سازمانی.
سطح دو- سطح تکرارپذیر
در سطح تکرارپذیر، خط مشی مدیریت پروژه نرم افزاری و دستورالعملهای پیاده سازی آن خط مشی ها، دایر گردیده اند. برنامه ریزی و مدیریت پروژه جدید بر مبنای تجارب حاصل از پروژه های مشابه قبلی صورت می پذیرد. قابلیت فرآیندها برمبنای نظم و ترتیب حاکم بر هر پروژه، به سرعت پیشرفت می نماید. یک فرآیند مؤثر می تواند توسط موارد زیر توصیف گردد:
• تمرین شده باشد.
• مستند شده باشد.
• تأکیدشده باشد. (جدی گرفته شده باشد.)
• آموزش داده شده باشد.
• اندازه گیری شده باشد.
• قابل توسعه باشد.
مبانی کنترل مدیریت نرم افزار در سطح دو، سازمان دهی شده و ایجاد می شود. تعهدات واقعی پروژه بر مبنای نتایج مشاهده شده از پروژه های قبلی و نیازمندیهای پروژه جاری، بنا شده اند.
مدیران نرم افزار برای پی گیری هزینه های نرم افزار، برنامه های زمانبندی و تعیین قابلیت های کارکردی، در زمانیکه مشکلاتی رخ می دهد، توسط برقراری جلسات مشورتی نسبت به تعیین تکلیف و حل آنها اقدام می کنند.
نیازمندیهای نرم افزاری و کارهای مربوط به توسعه محصولات بر مبنای فعالیت آنها و همچنین پیوستگی آنها تحت کنترل هستند.
استانداردهای پروژه های نرم افزاری تعریف شده اند و سازمان مطمئن است که از آنها با وفاداری کامل، متابعت می شود.
کارهای پروژه های نرم افزاری که بوسیله پیمانکاران انجام می شود- اگر وجود داشته باشد- در چارچوب تعامل بین مشتری و عرضه کننده، انجام می شود.
فرآیندها در سازمان سطح دو ممکن است متفاوت باشد. نیازمندی سازمانی برای دستیابی به سطح دو، آن است که تعدادی خط مشی برای راهنمایی پروژه ها، اختصاصاً جهت فرآیندهای مدیریتی، برپاگردد.
قابلیت فرآیند نرم افزاری سازمانهای سطح دو می تواند در نظم و ترتیب خلاصه گردد، زیرا عمل برنامه ریزی و پی گیری پروژه نرم افزاری، صورت می پذیرد و حصول موفقیت می تواند تکرار شود. فرآیندهای پروژه، تحت کنترل مؤثر یک سیستم مدیریت پروژه قرار دارد و پیروی از یک برنامه واقعی، بر مبنای اثربخشی حاصل از پروژه های قبلی بنا شده است.
سطح سه- سطح تعریف شده
درسطح تعریف شده، فعالیت های به نظم کشیده شده در سطح دو منجر به تهیه استاندارد برای فرآیند نرم افزار می گردد و این استاندارد برای توسعه و نگهداشت مناسب نرم افزارها در کل سازمان مستند شده است. این فرآیند هم شامل مهندسی نرم افزار و هم شامل فرآیندهای مدیریت پروژه است و به نحویکه بصورت مجموعه ای یکپارچه بین مؤلفه هایش ارتباط منطقی ایجاد شده است.
در فرآیند استانداردسازی سازمان به فرآیند مذکور در سرتاسر CMM، مراجعه شده است. فرآیندهای ایجادشده در سطح سه که برای کمک به مدیران نرم افزار و کارکنان فنی بصورت مؤثرتری تهیه شده است، مورد استفاده (تغییر داده شده، اختصاص داده شده) قرار می گیرد. عملیات مهندسی نرم افزار زمانی بر رفتارهای سازمانی تأثیرپذیر است که فرآیندهای نرم افزاری آن استاندارد شده باشند. در این فرآیند، گروهی وجود دارد که نسبت به فعالیت های فرآیند نرم افزاری، مسئولیت دارد [به عنوان مثال: گروه فرآیند مهندسی نرم افزار یا SEPG در فاولر۹۰]. یکی از مسئولیتهای اصلی این گروه آنستکه اطمینان حاصل کند برنامه های آموزشی پیاده شده در سرتاسر سازمان موجب شده باشد که کلیه کارکنان و مدیران ذیربط نسبت به انجام وظائفی که به آنها احاله شده است مهارت و دانش کافی را کسب کرده باشند.
در پروژه هایی که بنابه درخواست مشتری تعریف می شود، فرآیند نرم افزار استاندارد سازمان برای توسعه فرآیند نرم افزار مشتری که دارای تعهدات مالی منحصر به فردی است، بخوبی توصیف خواهد شد. این فرآیند توصیف شده و تغییر داده شده به CMM ای منتسب می گردد که در فرآیند نرم افزار تعریف شده برای پروژه، بیان گردیده است.
فرآیند نرم افزار تعریف شده (بومی شده استاندارد برای پروژه خاص) شامل مجموعه ای به هم پیوسته و مربوط با مهندسی نرم افزار و فرآیندهای مدیریتی آن می باشد. فرآیند به خوبی تعریف شده مذکور می تواند توسط معیارهایی برای قبولی، ورودیها، استانداردها و روشهای اجرایی کار برای تهیه مکانیزمهایی برای صحت سنجی (مانند بازنگری)، خروجیها و تکمیل معیارها مشخص گردد. زیرا فرآیند بخوبی تعریف شده نرم افزار، بینش خوبی در مدیریت، برای پیشرفت فنی در سرتاسر پروژه، ایجاد می کند. (این موارد میتواند در مستندی تحت عنوان “برنامه ریزی کیفیت” (Qualitty Plan) ارائه گردد.)
قابلیت فرآیند نرم افزار در سازمانهای سطح سه، در سازگاری و استانداردسازی خلاصه می شود. زیرا هم مهندسی نرم افزار و هم فعالیتهای مدیریتی، پابرجا و قابل تکرار هستند. با تأسیس خط تولید، هزینه، برنامه زمانبندی و قابلیت کارکردی، تحت کنترل قرار خواهند گرفت و کیفیت نرم افزار، پی گیری خواهد شد. این قابلیت فرآیند، مشترکاً بر مبنای درک فعالیتهای سازمانی و قوانین و مسئولیتهای تعریف شده در فرآیند نرم افزار، بنا شده است.
سطح- چهار- سطح مدیریت شده
در سطح مدیریت شده، سازمان به مجموعه ای از اهداف کمّی، هم برای محصولات نرم افزاری و هم برای فرآیندهای آن، دست خواهد یافت.
بهره وری و کیفیت فعالیتهای مهم فرآیند نرم افزار در کل پروژه ها، یک قسمت از برنامه اندازه گیری سازمانی می باشد و قابل اندازه گیری است. در سرتاسر سازمان، پایگاه داده فرآیند نرم افزار که از جمع آوری و تجزیه و تحلیل داده های قابل دسترس از فرآیندهای نرم افزاری پروژه های تعریف شده ایجاد شده است، مورد استفاده قرار می گیرد.
فرآیندهای نرم افزاری با معیارهای سازگار و خوب، بصورت ابزار درخواهند آمد. این معیارهای ایجاد شده، پایه ای خواهد بود برای کمّی کردن ارزیابی فرآیندها و محصولات پروژه های نرم افزاری.
حصول قابلیت کنترل بر محصولات و فرآیندهای پروژه ها، بوسیله محدود کردن انجام تغییرات در کارآیی فرآیندها با پذیرش یک محدوده از کمیتهای قابل پذیرش، امکان پذیر خواهدشد. تغییرات معنی دار در کارآیی فرآیند، از تغییرات تصادفی، بخصوص با راه اندازی خط تولید، می تواند تمیز داده شود.
ریسک حاصل از درگیری برای افزایش سطح منحنی دانش در محدوده برنامه های کاربردی بایستی شناخته شود و به دقت مدیریت شود.
قابلیت فرآیند نرم افزار در سازمان سطح چهار، می تواند بوسیله قابلیت کمّی بودن و پیش بینی کردن، خلاصه گردد. زیرا فرآیندها در محدوده های قابل اندازه گیری اجرا و اندازه گرفته می شوند. این سطح از قابلیت فرآیند، یک سازمان را به پیش بینی روند قابلیت فرآیند و کیفیت محصول، در محدوده مذکور، قادر می سازد. زیرا، وقتی که برخی شرایط استثنایی رخ می دهد، فرآیند هم پابرجا می ماند و هم قابل اندازه گیری خواهد بود و دلایل خاص تغییرات می تواند تعریف و عنوان شود. زمانیکه محدودیتهای شناخته شده از فرآیند پیشی گیرد، می توان عکس العمل های مناسبی در موقعیت صحیح اتخاذ نمود. محصولات نرم افزاری با کیفیت بالایی، قابل پیش بینی خواهند شد.
سطح پنج، سطح بهینه شونده
درسطح بهینه شونده ، در تمام سازمان، بر توسعه تدریجی و مستمر فرآیندها تمرکز شده است. سازمان اهدافی برای مشخص نمودن نقاط قوت و ضعف فرآیندهای فعال خود دارد. این اهداف با مشخص نمودن نحوه پیشگیری از وقوع نقایص قابل حصول خواهد بود.
داده های حاصل از فرآیند نرم افزار غیرمؤثر و تجزیه و تحلیل هزینه و سود آنها برای دستیابی به فنآوریهای جدید و تغییر در فرآیند نرم افزار سازمان، مورد استفاده قرار می گیرند. با انجام این عمل، نوآوریهای زیادی حاصل سازمان می گردد.
تیم پروژه نرم افزاری، در سازمان سطح پنج، نسبت به تجزیه و تحلیل نقایص برای تعیین دلایل آن اقدام می کند. فرآیندهای نرم افزار برای پیشگیری از تکرار انواع نقایص شناخته شده، مورد ارزیابی قرار می گیرد و درسهایی برای جلوگیری از نشر آنها به دیگر پروژه ها می آموزد.
اتلاف شدیدی که از دوباره کاری در کارها در جریان تغییرات تصادفی در هر سیستم ساده بوجود می آید، اتلاف غیرقابل قبولی است. تلاشهای زیادی برای حذف اتلاف ناشی از تغییر در سیستم ها، سازمان یافته است که به عنوان مثال: توسعه فرآیند به منظور پیشگیری از عدم کارآیی بوسیله تغییر در دلایل مشترک، از آن جمله است.
گرچه این مسئله درکلیه سطوح بلوغ واقعیت دارد ولی در سطح پنج برروی آن متمرکز می شود.
قابلیت فرآیند نرم افزار در سازمان سطح پنج، می تواند بوسیله تمرکز بر توسعه مستمر مشخص گردد. زیرا سازمان سطح پنج، کوشش مستمری برای توسعه در محدوده ای از قابلیت فرآیند که در پروژه های جاری اش کارآیی دارد، بکار می بندد. توسعه، هم بوسیله پیشرفتهای صعودی در فرآیندهای موجود و هم بوسیله نوآوریهائی که با استفاده از فنآوریها و روشهای جدید ایجاد می شود، رخ می دهد. توسعه فرآیند و فنآوری در فعالیتهای کاری متداول، برنامه ریزی و مدیریت می شود.
۱-۲-۳-قابلیت فرآیند
بلوغ فرآیند نرم افزار سازمان به پیش بینی قابلیت دستیابی به اهداف، کمک می کند. پروژه ها در سازمانهای سطح یک، ابعاد وسیعی از دسترسی به هزینه ها، برنامه زمانبندی، قابلیت کارکردی و اهداف کیفی را تجربه می کنند. همانطور که در شکل ۴-۲ توضیح داده شده است، سه بهسازی در دستیابی به اهداف تعیین شده، در بلوغ فرآیند نرم افزاری سازمان انتظار می رود.این انتظارات بر مبنای نتایج کمّی از توسعه فرآیندهای دستیافته در دیگر صنایع بنا شده است و آنها با نتایج حاصل از موردکاوی اولیه گزارش شده از سازمانهای نرم افزاری، سازگار هستند.(Dion 92, Hamphrey 91b, Lipke 92, Wohlwen 93)
اولاً دلایل رشد بلوغ این است که تفاوت بین نتایج مورد انتظار و نتایج واقعی در طول پروژه کاهش یابد. برای مثال سازمان سطح یک اغلب برنامه زمانبندی اولیه خود را نمی تواند بپوشاند و در یک محدوده وسیعی نسبت به پیش بینی اولیه، کار را تحویل می دهد. در صورتیکه سازمانهای سطح بالاتر قادرند با دقت بیشتری نسبت به این کار اقدام نمایند و فاصله زمانی، برنامه ریزی شده و واقعی بسیار کمتر خواهد بود. (این مسئله به وسیله مساحت زیر منحنی حاصل از سمت راست خط هدف در شکل ۴-۲ نشان داده شده است.) به عبارتی دیگر، توسعه بلوغ، متغیری است از کاهش فاصله نتایج واقعی و نتایج هدف. به عنوان مثال: در سازمان سطح یک، تاریخهای تحویل برای پروژه های در اندازه مشابه غیرقابل پیش بینی تر نسبت به پروژه های مشابه در سازمانهای با سطوح بلوغ بالاتر هستند و با اختلاف بیشتری نسبت به آنها به انجام می رسند (این مسئله در شکل ۴-۲ بوسیله سطحی از منحنی که نزدیک به خط هدف هستند، نشان داده شده است)
ثانیاً، توسعه نتایج هدف گذاری شده در سازمانهای بالغ بصورت صعودی است و آن به این معنی است که در سازمانهای بالغ نرم افزاری، هزینه ها کاهش یافته، زمان پیاده سازی کوتاهتر می گردد و بهره وری و کیفیت افزایش می یابد. ازآنجائیکه برای حذف اشتباهات و انجام دوباره کاریها، زمان زیادی لازم است. سازمانهای با بلوغ بالاتر، با افزایش اثربخشی فرایندهایشان نسبت به کاهش هزینه های دوباره کاری اقدام می نمایند. دراین حالت زمان پیاده سازی نیز کاهش می یابد.
(این مسئله در شکل ۴-۲ بوسیله تغییر مکان دادن افقی خط هدف نسبت به مبداء نشان داده شده است.)
توسعه در پیش بینی نتایج پروژه در شکل ۴-۲ نمایش داده شده است. فرض کنید که نتایج حاصل از پروژه های نرم افزاری قابل پیش بینی تر از قبل باشند، دراین صورت مواردی از دوباره کاری ها در فرآیند نرم افزار، حذف می شود. اگرچه فنآوریهای جدید و برنامه های کاربردی تحت قابلیت فرآیندها، تصویر پیچیده ای از سیستم های جدید ایجاد می کنند و این امر بوسیله ایجاد قابلیت افزایش تغییر پذیری صورت می گیرد ، با همه این تفاصیل مدیریت و مهندسین در سازمانهای با بلوغ بیشتر خیلی سریعتر و راحت تر مشکلات را نسبت به سازمانهای با بلوغ کمتر، حل می کنند. در بعضی از موارد فرآیند بالغ بدین معنی است که احتمال شکست پروژه را در طول زیستچرخ نرم افزار، زودتر از موعد تشخیص بدهد و هدر رفتن سرمایه را به حداقل برساند.
موردکاوی توسعه فرآیندنرم افزار مستندشده شامل نتایج معنی داری از توسعه کیفیت و بهره وری در سازمانهایی است که با تلاش نسبت به بهبود خود اقدام نموده اند. (Dion 92, Hamphrey 91b, Lipke 92, Wohlwen 93)
در سازمانهای سطح پنج، کارآیی بصورت پیوسته توسعه می یابد. 5 احتمال
…/ هزینه/ زمان
برمبنای درک کمّی از فرآیندها و محصولات، در سازمانهای سطح چهار، فرآیند توسعه مستمر، آغاز می گردد. 4 احتمال
…/ هزینه/ زمان
با فرآیندهای خوب تعریف شده، کارآیی ها در سازمانهای سطح سه، توسعه می یابند. 3 احتمال
…/ هزینه/ زمان
در سازمانهای سطح ۲، برنامه ریزی ها بر مبنای کارآیی های گذشته، واقعی تر هستند. 2 احتمال
…/ هزینه/ زمان
برنامه زمانبندی و هزینه هدف بطور نمونه در سازمانهای سطح یک از تخمین اولیه بیشتر خواهند شد. 1 احتمال
…/ هزینه/ زمان
شکل ۴-۲- قابلیت فرآیند نشان داده شده بوسیله سطوح بلوغ