بخشی از مقاله
خلاصه طرح
در این پروژه به بررسی شرکت تولید کننده نرم افزارهای رایانه ای از دیدگاه کارآفرینی پرداخته شده است ، هدف از این پروژه بررسی توجیه اقتصادی طرح مذکور میباشد ، برای رسیدن به هدف مورد نظر با بهره گیری از روش های آماری و اقتصادی و برآورد مالی طرح مورد بررسی قرار گرفته است ، این پروژه مشتمل بر پنج فصل میباشد ، فصل اول معرفی طرح است ، نام طرح ، ظرفیت تولید ،
محصولات تولیدی و ... فصل دوم به بررسی نیروی انسانی مورد نیاز پرداخته است ، فصل سوم شامل هزینه های مورد نیاز طرح میباشد ، فصل چهارم شرح فرآیند تولید محصول میباشد ، در این فصل به بررسی اطلاعات فنی مورد نیاز پرداخته شده است ، فصل پنجم چکیده مطالعات فنی و اقتصادی طرح میباشد .
پیشگفتار :
مهندسی نرمافزار پیشهای است که به یاری دانش رایانه و دیگر فناوریها و روشها به آفریدن و نگاهداری نرمافزار رایانهای میپردازد. مسائل اصلی مهندسی نرمافزار تولید نرمافزار بر اساس موارد زیر است:
• الزامات تعیین شده
• در زمان تعیین شده
• در محدودهٔ بودجه پیشبینی شده
کاربردهای مهندسی نرمافزار دارای ارزشهای اجتماعی و اقتصادی هستند، زیرا بهرهوری مردم را بالا برده، چند و چون زندگی آنان را بهتر میکنند. مردم با بهرهگیری از نرمافزار، توانایی انجام کارهایی را دارند که قبل از آن برایشان شدنی نبود. نمونههای از این دست نرمافزارها عبارتاند از: سامانههای توکار، نرم افزار اداری، بازیهای رایانهای، و اینترنت. فناوریها و خدمات مهندسی نرم افزار به کاربران برای بهبود بهرهوری و کیفیت یاری میرساند. نمونههایی از زمینههای بهبود: دادگان، زبانها، کتابخانهها، الگوها، فرآیندها و ابزار.
فصل اول
معرفی طرح
فصل اول – معرفی طرح
1-2-مشخصات محصول
1-1-2- نام و کاربرد محصول:
ایجاد و راه اندازی شرکت و موسسه های تولیدی نرم افزار های رایانه ای ، از شرکت ها به صورت گروهی در پروژه های برنامه نویسی و طراحی وب برای شرکت های صنعتی و غیره فعالیت می نمایند
2-1-2-مشخصات فنی محصول
تولید و ارائه نرم افزار های مختلف صنعتی و تجاری و حسابداری و بازرگانی و خدماتی برای شرکت های مختلف .
3-1-2-معرفی روشهای تولید
استفاده از روش تولید گروهی و با سیستم های مجتمع و شی گرای و طراحی متناوب با استفاده از نیروی کاری مناسب و در زمان تولید مشخص
4-1-2-تشریح مختصر فرایند
تولید و ارائه انواع نرم افزار های رایانه ای
فصل دوم
تعیین ظرفیت
فصل دوم – تعیین ظرفیت
2-2-تعیین ظرفیت تولید
ردیف نام محصول ظرفیت تولید سالانه ظرفیت تولید ماهانه ظرفیت تولید روزانه
1 تهیه تجهیزات مورد نیاز -
2 نصب وراه اندازی شبکه - - ---------
3 نصب و تجهیز سیستم امنیتی - - -
4 نصب سیستم عامل ونرم افزارهای کاربردی - - -
5 تولید نرم افزار - - ----------
6 پیاده سازی وب سایت - - -
2-3-برآورد میزان مصرف مواد اولیه و قطعات خریدنی
ردیف نام ماده اولیه/ قطعات خریدنی مشخصات فنی مورد مصرف در محصول میزان مصرف
در محصول مصرف سالیانه منبع تامین
مقدار واحد داخلی خارجی
1 سیستم و ایستگاه رایانه ای
- - - 6 *
2 سیستم های کنترل شبکه ای 3 *
3 سیستم های نرم افزاری تحت شبکه 3 *
4 سیستم های ایجاد امنیت شبکه 6 *
2-4-معرفی دستگاه ها و تجهیزات تولید
ردیف نام ماشین آلات/
تجهیزات تولید مشخصات فنی تعداد منبع تامین
داخلی خارجی
1 Router L22m3 2 *
2 Microwave Cb Tent 1 *
3 Solution C Micro 1 *
4 Server Station - 3 *
5 Lise Line - 2 *
6 External Modem High Dlink 60 *
2-5-معرفی تجهیزات و تاسیسات عمومی
ردیف عنوان تاسیسات به مقدار مصرف مقدار مصرف
محوطه کارگاه اداری بنزین گازوییل
1 برق * *
2 آب *
3 گاز * *
4 تلفن *
5 سوخت گرمایش * *
فصل سوم
معرفی نیروی انسانی
فصل سوم – معرفی نیروی انسانی
معرفی نیروی انسانی
1-3-برآورد پرسنل تولیدی
ردیف عناوین شغلی تعداد میزان تحصیلات جنسیت
1 سرپرست 1 کارشناسی ارشد رایانه – گرایش نرم افزار مرد
2 مهندس 4 کارشناس رایانه مرد
3 تکنسین 8 فوق دیپلم - مسلط به زبان های برنامه نویسی مرد
5 اپراتور رایانه 2 فوق دیپلم مرد - زن
2-3-پرسنل اداری و خدمات
ردیف نوع مسئولیت تعداد شرح وظایف
1 مدير 1
2 خدمات 15
3 حسابدار 1
فصل چهارم
هزینه ها
فصل چهارم – هزینه ها
معرفی هزینه ها
ردیف عنوان هزینه مبلغ سالانه به ريال
1 مواد مصرفی 5000000
2 تامین انواع انرژی سوخت(تاسیسات-گرمایش-سرمایش) 1800000
3 هزینه خدمات نیروی انسانی 75000000
4 هزینه ماشین آلات و تجهیزات خط تولید 50000000
5 هزینه زمین-ساختمان 40000000
6 هزینه لوازم اثاثیه اداری 5000000
7 هزینه های قبل از بهره برداری 3000000
8 جمع کل هزینه ها 179800000
برآورد هزینه استهلاک
شرح ارزش دارایی
( ریال) درصد هزینه استهلاک
محوطه سازی
ساختمان
ماشین آلات و وسایل آزمایشگاهی 50000000 10 5000000
تاسیسات
وسایل حمل و نقل
وسایل دفتری 5000000 10 500000
پیش بینی نشده
جمع کل 55000000 10 5500000
سود ناخالص= هزينه هاي ساليانه- در آمدسالیانه
70200000 = 179800000 - 250000000
فصل پنجم
شرح فرایند واطلاعات فنی مورد نیاز
فصل پنجم – شرح فرایند و اطلاعات فنی مورد نیاز :
تعریف مهندسی نرم افزار
مهندسی نرم افزار طراحی،برنامه نویسی، توسعه، مستند سازی و نگهداری نرم افزار با بکارگرفتن روشهای فنی و عملی از علوم کامپیوتر ، مدیریت پروزه ، مهندسی ، محدوده کاربرد، طراحی رابط، مدیریت تجهیزات دیجیتال و سایر زمینهها است.
اصطلاح مهندسی نرم افزار بعد از سال ۱۹۶۸ شناخته شد، طی کنفرانس مهندسی نرم افزار ناتو ۱۹۶۸ (که در گارمیش آلمان برگزار شد) توسط ریاست کنفرانس F.L. Bauer معرفی شد، و از آن پس بطور گسترده مورد استفاده قرار گرفت.
اصطلاح مهندسی نرمافزار عموماً به معانی مختلفی به کار میرود :
بهعنوان یک اصطلاح غیر رسمی امروزی برای محدوده وسیع فعالیته
ایی که قبلا برنامهنویسی و تحلیل سیستمها نامیده میشد.
بهعنوان یک اصطلاح جامع برای تمامی جنبههای عملی برنامهنویسی کامپیوتر، در مقابل تئوری برنامه نویسی کامپیوتر، که علوم کامپیوتر نامیده میشود.
بهعنوان اصطلاح مجسم کننده طرفداری از یک رویکرد خاص نسبت به برنامهنویسی کامپیوتر ، که اصرار میکند که مهندسی نرمافزار، بجای انکه هنر یا مهارت باشد، باید بهعنوان یک رشته عملی مهندسی تلقی شود و از جمع کردن و تدوین روشهای عملی توصیه شده به شکل متدولوژیهای مهندسی نرم افزارطرفداری میکند.
مهندسی نرم افزار عبارتست از : الف) کاربرد یک رویکرد سیستماتیک، انتظام یافته، قابل سنجش نسبت به توسعه، عملکرد، و نگهداری نرم افزار، که کاربرد مهندسی در نرم افزار است و ب) مطالعه روشهای موجود در استاندارد IEEE
محدوده مهندسی نرم افزار و تمرکز آن
مهندسی نرم افزار به مفهوم، توسعه و بازبینی یک سیستم نرم افزاری مربوط است. این رشته علمی با شناسایی، تعریف، فهمیدن، و بازبینی خصوصیات مورد نیاز نرم افزار حاصل سر و کار دارد. این خصوصیات نرم افزاری ممکن است شامل : پاسخگویی به نیازها، قابلیت اطمینان، قابلیت نگهداری، در دسترس بودن، قابلیت تست، استفاده آسان، قابلیت حمل و سایر خصوصیات باشد مهندسی نرم افزار اشاره میکند به این خصوصیات با آماده کردن مشخصات معین طراحی و فنی که ، اگر بدرستی پیاده سازی شود، نرم افزاری را تولید خواهد کرد که میتواند بررسی شود که آیا این نیازمندیها را تامین میکند یا خیر.
مهندسی نرم افزار همچنین با خصوصیات پروسه توسعه نرم افزاری در ارتباط است. در این خصوص، با خصوصیاتی مانند هزینه توسعه نرم افزار، طول مدت توسعه نرم افزار، و ریسکهای توسعه نرم افزار درگیر است.
نیاز به مهندسی نرم افزار
نرم افزار عموماً از محصولات و موقعیتهایی شناخته میشود که قابلیت اطمینان زیادی از آن انتظار میرود، حتی در شرایط طاقت فرسا، مانند نظارت و کنترل نیروگاههای انرژِی هستهای، یا هدایت یک هواپیمای مسافربری در هوا، چنین برنامههایی شامل هزاران خط کد هستند، که از نظر پیچیدگی با پیچیده ترین ماشینهای مدرن قابل مقایسهاند. بهعنوان مثال یک هواپیمای مسافربری چند میلیون قطعه فیزیکی دارد (و یک شاتل فضایی خدود ده میلیون بخش دارد)، در حالی که نرم افزار هدایت چنین هواپیمایی میتواند تا ۴ میلیون خط کد داشته باشد.
تکنولوژیها و روشهای عملی
مهندسین نرم افزار طرفدار تکنولوژیها و روشهای عملی بسیار متفاوت و مختلفی هستند، که با هم ناسازگارند. این بحث در سالهای دهه ۶۰ میلادی شروع شد و ممکن است برای همیشه ادامه پیدا کند. مهندسین نرم افزار از تکنولوژیها و روشهای عملی بسیار متنوعی استفاده
میکنند. کسانی که کار عملی میکنند از تکنولوژیهای متنوعی استفاده میکنند : کامپایلرها، منابع کد، پردازشگرهای متن. کسانی که کار عملی میکنند از روشهای عملی بسیار متنوعی استفاده میکنند تا تلاشهایشان را اجرا و هماهنگ کنند : برنامه نویسی در دستههای دونفری، بازبینی کد، و جلسات روزانه. هدف هر مهندس نرم افزار بایستی رسیدن به ایدههای جدید خارج از مدلهای طراحی شده قبلی باشد، که باید شفاف بوده و بخوبی مستند شده باشد.
با وجود رشد فزاینده اقتصادی و قابلیت تولید فزایندهای که توسط نرم افزار ایجاد شده ، هنوز ه
م بحث و جدلهای ماندگار درباره کیفیت نرم افزار ادامه دارند.
ماهیت مهندسی نرم افزار
David Parnas گفتهاست که مهندسی نرم افزار یک شکل از مهندسی است. Steve McConnell گفتهاست که هنوز اینطور نیست، ولی مهندسی نرم افزار باید یک شکل از مهندسی بشود. Donald Knuth گفتهاست که برنامه نویسی یک هنر است.
دیوان فعالیتهای آماری آمریکا دسته بندی کردهاست مهندسان نرم افزار را به عنوان زیرگروهی از «متخصصین کامپیوتر»، با فرصتهای شغلی ای مانند دانشمند کامپیوتر، برنامه نویس، و مدیر شبکه. BLS دسته بندی میکند تمام مهندسین دیگر این شاخه علمی ، که شامل مهندسین سخت افزار کامپیوتر نیز هست، را بهعنوان «مهندسین»
مدیریت ریسک در مهندسی نرم افزار :
مدیریت ریسک کاربرد سیستماتیک سیاستهای مدیریتی، رویهها و فرایندهای مربوط به فعالیتهای تحلیل، ارزیابی و کنترل ریسک میباشد. مدیریت ریسک عبارت از فرایند مستندسازی تصمیمات نهایی اتخاذ شده و شناسایی و بهکارگیری معیارهایی است که میتوان از آنها جهت رساندن ریسک تا سطحی قابل قبول استفاده کرد.
از طرف موسسه مدیریت پروژه، مدیریت ریسک به عنوان یکی از نه سطح اصلی «کلیات دانش مدیریت پروژه» معرفی شدهاست. در تعریف این موسسه، مدیریت ریسک پروژه به فازهای شناسایی ریسک، اندازه گیری ریسک، ارائه پاسخ (عکس العمل در مقابل ریسک) و کنترل ریسک تقسیم شدهاست. در این تعریف، مدیریت ریسک پروژه عبارت است از «کلیه فرایندهای مرتبط با شناسایی، تحلیل و پاسخگویی به هرگونه عدم اطمینان که شامل حداکثرسازی نتایج رخدادهای مطلوب و به حداقل رساندن نتایج وقایع نامطلوب میباشد».
در منابع مختلف، تعاریف دیگری نیز ارائه شدهاست. بنا بر نظر بوهم، مدیریت ریسک فرایندی شامل دو فاز اصلی است؛ فاز تخمین ریسک (شامل شناسایی، تحلیل و اولویت بندی) و فاز کنترل ریسک (شامل مراحل برنامه ریزی مدیریت ریسک، برنامه ریزی نظارت ریسک و اقدامات اصلاحی) میباشد. بنا به اعتقاد فیرلی مدیریت ریسک دارای هفت فاز است: ۱) شناسایی فاکتورهای ریسک؛ ۲) تخمین احتمال رخداد ریسک و میزان تاثیر آن؛ ۳) ارائه راهکارهایی جهت تعدیل ریسکهای شناسایی شده؛ ۴) نظارت بر فاکتورهای ریسک؛ ۵) ارائه یک طرح احتمالی؛ ۶) مدیریت بحران؛ ۷) احیا سازمان بعد از بحران.
موسسه مهندسی نرم افزار، به عنوان یکی از سازمانهای پیشرو در ارائه روشهای جدید در مدیریت پروژههای نرم افزاری، به مدیریت ریسک پروژه به عنوان فرایندی با ۵ فاز مجزا نگاه میکند (شناسایی، تحلیل، طراحی پاسخ، ردیابی و کنترل) که با یک سری عملیات انتقال ریسک مرتبط است.
موسسه مدیریت پروژه، در راهنمای خود در مورد کلیات دانش مدیریت پروژه (نسخه سال ۲۰۰۰)، برای فرایند مدیریت ریسک پروژه شش فاز را معرفی کردهاست: ۱) برنامه ریزی مدیریت ریسک، ۲) شناسایی، ۳) تحلیل کیفی ریسک، ۴) تحلیل کمّی ریسک، ۵) برنامه ریزی پاسخ ریسک و ۶) نظارت و کنترل ریسک. کلیم و لودین، برای مدیریت ریسک یک فرایند چهار مرحلهای را معرفی کردهاند (شناسایی، تحلیل، کنترل و گزارش) که در موازات چهار قدم معروف دمینگ در مدیری
ت پروژه (برنامه ریزی، اجرا، بررسی و عمل) قرار میگیرند.
چاپمن و وارد، یک فرایند مدیریت ریسک پروژه کلی را ارائه کردهاند که از نه فاز تشکیل شدهاست: ۱) شناسایی جنبههای کلیدی پروژه؛ ۲) تمرکز بر یک رویکرد استراتژیک در مدیریت ریسک؛ ۳) شناسایی زمان بروز ریسک ها؛ ۴) تخمین ریسکها و بررسی روابط میان آنها؛ ۵) تخصیص مالکیت ریسکها و ارائه پاسخ مناسب؛ ۶) تخمین میزان عدم اطمینان؛ ۷) تخمین اهمیت رابطه میان ریسک¬های مختلف؛ ۸) طراحی پاسخها و نظارت بر وضعیت ریسک و ۹) کنترل مراحل اجرا.
کرزنر، مدیریت ریسک را به صورت فرایند مقابله با ریسک تعریف کرده و آن را شامل مراحل چهارگانه زیر میداند: ۱) برنامه ریزی ریسک، ۲) ارزیابی (شناسایی و تحلیل) ریسک، ۳) توسعه روشهای مقابله با ریسک و ۴) نظارت بر وضعیت ریسکها.
مراحل اصلی در پیادهسازی مدیریت ریسک
بسیاری از پروژهها که فرض میشود تحت کنترل هستند، با ریسک به عنوان رخدادی شناختهنشده روبرو گردیده و کوشش میکنند آن را کنترل کنند. اکثر پروژهها چنین رخدادهایی را به خوبی از سر رد میکنند ولی با یک تلاش جامع مدیریت ریسک ، رویدادهای ریسک قبل از وقوع، شناسایی و کنترل میگردند و یا برنامهای تهیه میشود که در زمان وقوع این رویدادها با آنها مقابله کند.
با درنظر گرفتن این مفاهیم پایهای، امکان مقابله با ریسک به وجود میآید . لذا ابتدا باید نسبت به شناسایی ریسکهای محتمل پروژه اقدام کرد. این کار با دستهبندی ساختار کارها و با پرسش چند سوال از خود و یا اعضای گروه پروژه ، امکانپذیر است. مثلا : درموقع نیاز به منبعی یا منابعی که در دسترس نیستند چه اتفاقی خواهد افتاد ؟ اگر کنترلی در مورد مولفهای که بر پروژه اثرگذار است نداشته باشیم چه اتفاقی میافتد ؟ بدترین سناریو چیست ؟ چه چیزی باعث آن میگردد ؟ چه قدر وقوع این اتفاق محتمل است ؟ عواقب آن چیست ؟
ممکن است سوالهای دیگری نیز به ذهن شما خطور کند که البته این سوالها سرآغاز خوبی است که شما را در مسیر درست هدایت کند . هرچیزی که به مغز شما خطور میکند فهرست کنید ، سپس در مرحله بعد تعیین کنید که آیا نیاز به مقابله و پیشگیری ریسک است و یا بایستی تا زمان وقوع آن صبر کرد . اگر ریسکها را مشخص کنید و تصمیم بگیرید که هیچ عملی نباید انجام گیرد باز بهتر از آن است که آنها را شناسایی نکرده باشید . پس از این مرحله تمام ریسکهای شناسایی شده را کمی کنید ؛ ابتدا ریسکها را دستهبندی و سپس احتمال وقوع هر ریسک را تعیین کنید . برای تخصیص مقادیر احتمالی به ریسکها از مقادیر پیشنهادی زیر میتوانید استفاده کنید :
قریب الوقوع = ۸۵٪
بالا = ۸۵٪
محتـــــمل = ۶۰٪
متوسط = ۵۰٪
ممــــــکن = ۴۰٪
پایین = ۱۵٪
غیرمحتـمل = ۱۵٪
اکنون احتمال وقوع هر ریسک قابل محاسبهاست . راه دیگر ، نسبت دادن درصد وزنی به هریک از ریسکهاست . مشکل اصلی این روش آن است که همواره دادههای تجربی به اندازه کافی در دسترس نیستند تا این کار به دقت انجام گیرد . در این روش معمولا افراد باتجربهای مبادرت به این کار میکنند که تجارب جامعی از انواع رویدادها در پروژههای مختلف کسب کردهاند ؛ مجموع درصدهای تخصیصی به رویدادها بایستی صد باشد .
در مرحله بعد به هر ریسک ، یک مقدار نسبت دهید . این مقدار میتواند در صورت نیاز برحسب هزینه و یا زمان باشد ؛ به عنوان مثال اگر هدف تعیین زمان اتمام پروژهاست ، هر ایدهای در مورد مدت زمان فعالیتها میتواند یک سناریوی ریسک محسوب شود . در این مرحله میتوان مقدار حقیقی ریسک را با محاسبه حاصلضرب مقادیر تخصیص داده شده به ریسک و احتمال وقوع آن به دست آورد و با توجه به نتایج حاصل میتوان نسبت به انجام عملی یا به تعویق انداختن آن تصمیمگیری نمود . بعد از انجام مراحل مدیریت ریسک ، میتوانید فرایندهای نگهداری مجموعه ریسک را آغاز کنید . برای این کار بازنگری دورهای ریسک را آغاز کنید که مبتنی بر پیچیدگی و مدت پروژه و وقوع تغییرات پروژهاست .نچه یکبار این کار را انجام دهید و ریسکها را شناسایی و به صورت کمی آنها را کنترل کنید در آن صورت به ارزش مدیریت ریسک پی خواهید برد . بنابراین در مرحله نخست اقدام به شناسایی ریسکهای پروژه در بالاترین سطح WBS کنید و از اینکه راه به سطوح پایینتر مییابید نگران نباشید . بعد از چند بار انجام این کار ، مساله خیلی واضحتر خواهد شد .
ما در دنیای مخاطرات ریسک زندگی میکنیم . باید ریسکها را تحلیل کنیم ؛ اگر با آنها برخورد داریم باید آنها را شناسایی و در مجموع تمام ریسکها و عواید آنها را باید ارزیابی کنیم . منافع حاصل از مدیریت ریسک ممکن است تا غلبه پروژه بر آن ملموس نباشد اما به خاطر داشته باشید که کسی که از برنامهریزی اجتناب کند به طور حتم برنامه شکست پروژه خود را طرحریزی نمودهاست !
مهندسی معکوس در رایانه :
یکی از مهمترین علومی که در برنامهنویسی و مهندسی نرمافزار از آن استفاده می شود و برای برنامهنویسان حرفهای کاربرد فراوان دارد علم مهندسی معکوس[1] هست. در واقع برنامه نویسان توسط این علم می توانند اشکالهای (باگهای) موجود در برنامه خود را پیدا کنند و به رفع آنها بپردازند.