گزارش سمینار کارشناسی ارشد
کامپیوتر- نرم افزار
چکیده
این نوشتار، گزارش سمینار کارشناسی ارشدی است که بر بهبود فرآیندها منطبق بر مدل CMMI و تعامل این مدل با معماری تمرکز دارد. برای دستیابی به این هدف، توضیحاتی در معرفی معماری و اهمیت آن در سازمانها، بهبود فرآیندها بصورت یکپارچه و مدلهای مرتبط با آن و توضیحی کلی از تعامل مدل های استانداردسازی و معماری در این گزارش آورده شده است.
با رشد سازمانها و گستردگی پروژه های امروزه، نحوه مدیریت پروژه ها و روندهای عملیاتی سازمان ها، راه مناسبی برای رقابت با سایر سازمانها میباشد. از مهمترین اهداف مهندسی نرم افزار میتوان: تولید محصول نرم افزاری با بیشترین سرعت، بهترین کیفیت و کمترین هزینه را نام برد. در واقع کیفیت یک صنعت را کیفیت فرآیندهای تشکیلدهنده آن صنعت تعیین مینماید و بنابراین بایستی تمرکز را بر بهبود کیفیت فرآیند قرار داد تا به بهبود کیفیت محصول دست یابیم. ایده CMMs از همین اصل به میان آمد.CMMs در واقع بر اصل بهبود فرآیندهای موجود در سازمان تمرکز دارد و یک روال قانونمند و قابل ارزیابی را برای بهبود فرآیندها ارائه میدهد.
موفقیت SW-CMM در افزایش کیفیت روند تولید، سبب ایجاد و توسعه سایر مدلهای نرم افزاری شد. اکثر مدلهای خانواده CMM که در بخش قبل ذکر شد در سال 2003 به صورت جامع و استاندارد تعریف گردید و تا قبل از آن به صورت جامعی تعریف نگردیده بود .
از آنجاییکه هریک از اعضای خانواده CMM اصطلاحات و معیارهای ارزیابی خاص خود را داشته و امکان مقایسه دو سازمان ارزیابی شده با دو مدل با یکدیگر نبود، [1]SEI ، در دانشگاه Carnegie Mellon ، در اواخر سال 2000، ایده مدل CMMI را بنا نمود و تغییر از SW-CMM در بازه زمانی May 2001 تا 2002، صورت گرفت .
CMMI یک مدل مبتنی بر فرآیند بوده و برای تعیین سطوح به نتایج عملیاتی توجهی نمی نمود. در واقع CMMI ، مدلی یکپارچه سازی شده از صفات کلیدی سطوح مختلف مدلهای گذشته است که مشکل عدم عملیات موازی و همر وند را از بین برد .
با توجه به دید فرآیندنگر هم مدل CMMI و هم معماری سازمانی و تمرکز ایندو بر بهبود روال سازمانی، نقاط مشترک متعددی را میتوان در تعاملهای این مدل و معماری سازمانی یافت و از این تعاملات میتوان در رفع کاستیها و تقویت نقاط قدرت ایندو استفاده نمود.
آنچه در این گزارش میخوانید عموما گزینشی از متون برگزیده از کتب و مقالات مربوط به سال 2003 میباشد، مگر در بین، مطالبی که پیشنهادات شخصی اینجانب بوده و ارائه گردیده است.
فصل اول
مفاهیم عمومی
[2]DOD پیشبینی کرده است که بزودی سیستمهایی مورد نیاز خواهد بود که شاید بیش از 40 میلیون خط کد داشته باشند. در سیستمهای پیچیده تمیز دادن توابع سخت افزاری و نرم افزاری دشوار است. این پیچیدگی در
بسیاری از سیستمهای کنونی بوضوح دیده میشود که خود بر فعالیتهایی که برای توسعه سازمانها صورت میگیرد تأثیرگذار است.
بهبود و توسعه فرآیندها به خودی خود، فرآیندی واضح و قابل فهم است اما همانطور که گفته شده است:
هنگامیکه بهبود فرآیند در سیستمهای پیچیده و یا نظمهای سازمانهای بزرگ به خدمت گرفته میشود، دچار پیچیدگی میشود .[1]
چراکه در یک سازمان بزرگ ممکن است در بخشهای مختلف، هر کدام تعاریف خاص خود را داشته باشند و همچنین برای چنین پروژه هایی معمولا از گروههای عملیاتی مختلف که هرکدام مدل خاصی را که حتی
ممکن است با یکدیگر در تداخل باشند، برای بهبود عملیات استفاده نمایند. حتی ممکن است رقابت بین گروهها وجود داشته باشد و کلا این امکان وجود دارد که بیشتر انرژی و فعالیتها صرف مسائل پیرامونی شود تا خود فعالیتهای مربوط به بهبود عملیات .
مثال دیگر برای این موضوع آن است که فرض کنید سازمان با مشتریان و یا محیط عملیاتی روبرو است که
مداوما نیازمندیها و یا محیط عملیاتی و یا برنامه زمانی پروژه در آن تغییر میکند، تصور کنید که تمهیدات،
مدلها و منابع لازم برای مقابله با این موضوع را در نظر نگرفته باشیم، از آنجاییکه سیستم را در سازمان بزرگی
با گروههای عملیاتی مختلف در نظر گرفتیم، ممکن است هر گروه احساس کند که این تغییرات قبلا توسط مشتری به گروهی دیگر اخطار داده شده بوده است و به اینصورت بهبود روال عملیاتی با مشکل روبرو خواهد شد. اینجاست که نیاز به یک روش منظمتر مهندسی مشخص میشود .
1-1 مفاهیم اولیه معماری سازمانی :
سازمان، مجموعه ای متشکل از تعداد زیادی از واحدهاست که از طریق تبادل اطلاعات باهم درارتباطند و
این واحدها برای انجام یک مأموریت خاص در حیطه حرفه مورد نظر، اطلاعات را به اشتراک میگذارند و این واحدها بایستی برای رسیدن به اهداف کلی بصورت هماهنگ با یکدیگر عمل نمایند.
اما در سازمانهای کنونی چالشهایی همچون موارد زیرمشاهده میشود که رفع آنها برای رسیدن به اهداف سازمان از اهمیت خاصی برخوردار است:
نیاز به فناوری اطلاعات
حجم سریع ورود فناوریهای جدید به بازار
افزایش مدام میزان رقابت و تغییرشکل آن
ذائقه بسیار متغیر مشتریان
نیاز به تغییرات فراوان در زمانهای کم
نیاز فراوان به برقراری ارتباطات سریع و مطمئن
نیاز به اطلاعات صحیح، دقیق و سازگار برای تصمیمگیری
برای رفع این چالشها در سازمانها از معماری استفاده میکنند. منظور از معماری، تعیین ساختار کلی یک
سیستم و روشهای میانی است که این ساختار را قادر به تأمین ویژگیهای کلیدی آن سیستم میکند. این
ویژگیها عبارتند از : کارایی، قابلیت تغییر، قابلیت درک، استفاده مجدد، نوآوری در تکنولوژی، شفافیت طرحها و ... . این سیستمها میتواند همان سازمان باشد که از اجزای متفاوت تشکیل یافته است. معماری هم به جنبه ساختاری سیستم توجه دارد و هم به جنبه رفتاری سیستم.
آنچه در معماریهای نوین درنظر گرفته میشود عبارتست از :
استفاده از مدلهای مشترک بعنوان زبان مشترک
اتکا بر ایده های مؤلفه ای
تغییرات براستی از طریق جایگزینی مؤلفه ها انجام میشود
برای اعمال یک تغییر لازم نیست کل سامانه اطلاعاتی مختل شود.
که این موارد درواقع در پی ارائه راهکارهایی برای رفع چالشهای ذکرشده درنظر گرفته شده است.
ویژگی یک معماری خوب آن است که :
قابل فهم باشد
مؤلفه های آن قابل استفاده مجدد باشد
موارد اصلی کاربری سیستم را درنظر گرفته باشد
نسبت به تغییرات انعطافپذیر باشد
واسط های بین زیرسیستمها را بنحوی تعریف کرده باشد
واسطهای بین زیرسیستمها را بنحوی تعریف کرده باشد، تا زیر سیستمها کمترین وابستگی را به یکدیگر داشته و اعمال تغییر در آن ساده تر باشد.
۴
یک سازمان در واقع از مؤلفه های متعددی همچون مؤلفه های فرهنگی، فرآیندی، تکنولوژی و داده ای
تشکیل یافته است که بایستی برای برآوردن اهداف یک سازمان، این مؤلفه ها سازماندهی گردد. و معماری
سازمانی عبارتست از مجموعه ای از ارائه های توصیفی یا مدلها در ارتباط با تشریح یک سازمان، آنچنانکه
بتواند منطبق بر نیازمندیهای مدیریت که همان کیفیت میباشد، تولید شده و در حوزه چرخه حیات خود، قابل نگهداشت و تغییرپذیر باشد.[3]
1-1-1 اجزاء معماری سازمانی :
برای تشکیل یک معماری سازمانی، بایستی اجزاء آن تشخیص داده شده، استاندارد شده و قابلیت اتصال به یکدیگر را داشته باشد که به این اجزاء عناصر پایه گوییم.
هریک از عناصر فوق نیاز به توصیفی دارند که از طریق تکنیکهای مربوط به انواع مدلها انجام میشوند. از این
منظر میتوان گفت که مدل توصیفی است از یک یا چند عنصر پایه که شامل خواص، عملکرد و نحوه ارتباط
آن با سایر عناصر است. عناصر پایه معماری سازمانی عبارتند از: اطلاعات، داده ها، فرآیندها، مکانها،
زمانبندیها، افراد و انگیزه ها. بسته به اینکه بخواهیم تا چه سطحی از جزئی نگری به توصیف یک عنصر پایه بپردازیم، میتوانیم از سطح تکنیکهای مختلفی استفاده نماییم. بعنوان مثال همانطور که میدانیم برای توصیف
اطلاعات، و سطح جزئی نگری و دیدگاه کسی که آنرا توصیف میکند، بایستی بتوانیم از تکنیکهای مختلف، مدلهای داده استفاده نماییم مانند : فهرست سرفصلهای اطلاعاتی، نمودار ارتباط منطقی موجودیت.
این موضوع در مورد فرآیندها نیز صادق بوده و در این مورد میتوان به نمودار فرآیند، نمودار فعالیت و نمودار جریان داده اشاره کرد. بنابراین سطوح تجریدی مختلف را میتوان برای یک عنصر پایه میتوان درنظر گرفت و به هریک از این سطوح تجریدی، یک دیدگاه گویند.
بنابراین برای یک عنصر پایه در بالاترین سطح تجریدی، میتوان دیدگاه یک برنامه ریز را در نظر گرفت کهتنها به توصیفات متنی حامل سرفصلهای اطلاعاتی مورد نیاز برای پیگیری در سازمان بسنده میکند. درواقع
معماری سازمانی، توصیفی کامل از کلیه عناصر پایه سازمان است که در سطح تجریدی خاصی و در گستره خاصی از سازمان مطرح میشود.
برای توصیف عناصر پایه از مدلها استفاده میشود. خوشبختانه امروزه تکنیکهای استانداردی برای انواع مدلها وجود دارند که پیوسته در حال بروزرسانی و تکامل هستند. مدلها میتواند در قالب مدلهای متنی یا گرافیکی ارائه گردد و به اینگونه مدلها، یک محصول معماری گویند.
وجود مدلهای گرافیکی برای تصمیمگیریها، تجزیه و تحلیلها، ارزیابی و اصلاح فرآیندهای کاری، پیشبینی و برنامه ریزی تغییرات، ارزیابی هزینه ها و ... کمک مؤثری است.
در واقع معماری سازمانی نگرشی است کلان به مأموریتها و وظایف سازمانی، فرآیندهای کاری،
موجودیتهای اطلاعاتی و داده ای، شبکه ارتباطی، سلسله مراتب و ترتیب انجام کارها در یک سازمان که با هدف ایجاد سیستمهای اطلاعاتی و کارامد صورت میگیرد.
همزمان با بررسی نقشه های معماری اطلاعاتی، بایستی برخی ملاحظات را نیز در ارتباط با اهداف حرفه درنظر بگیرید. برخی از این موارد عبارتند از:
موارد کاربری به ارثبرده شده: پس از ایجاد طرح اجرایی، بایستی درمورد اینکه موارد کاربری قدیمی تغییر یابند و یا حذف شوند و یا انتقال یابند تصمیمگیری شود.
یکپارچه سازی سیستم: پس از ارزیابی سیستمها، بایستی سیستمهای موجود را عمومیت بخشیده و با فن آوری جدید یکپارچه نماییم.
۶
همکاری های بین المللی: جلوگیری از هزینه های اضافه، ممکن است به شکل زیر صورت گیرد: استفاده از یک برنامه نویس هندی برای نوشتن یک برنامه 20000$ هزینه میبرد، در حالیکه استفاده از یک برنامه نویس آمریکایی برای نوشتن همین برنامه 80000$ هزینه خواهد برد.3
بنابراین برای بهبود همکاریهای بین المللی، نیازمند طراحی صحیح فرآیندها و مدیریت دقیق آن و تشخیص
اینکه واقعا چه پروژه هایی نیازمند همکاری بین المللی هستند میباشد. توجه کافی به فرآیندها، ارتباطات و
استانداردها، یکی از عوامل اصلی تعیین کننده کارایی مدلهای بکار رفته در پروژه های ین المللی است.
از آنجاییکه فرآیندها، اجزاء کاری سازمان را تشکیل میدهند، میدیریت فرآیندهای حرفه سازمان، امکان مدیریت
کار سازمان و مدیریت تغییرات را فراهم میکند.