موضوع
کارآفرینی شرکت تولید کننده نرم افزار های رایانه
Entrepreneurial company producing computer software
فهرست مطالب
عنوان شماره صفحه
خلاصه طرح.......5
پیشگفتار :.... 6
فصل اول – معرفی طرح....... 7
1-2-مشخصات محصول... 8
1-1-2- نام و کاربرد محصول:.....8
2-1-2-مشخصات فنی محصول....... 8
3-1-2-معرفی روشهای تولید..... 9
4-1-2-تشریح مختصر فرایند.... 9
فصل دوم – تعیین ظرفیت.... 11
2-2-تعیین ظرفیت تولید.... 11
2-3-برآورد میزان مصرف مواد اولیه و قطعات خریدنی.... 11
2-4-معرفی دستگاه ها و تجهیزات تولید..... 12
2-5-معرفی تجهیزات و تاسیسات عمومی.......... 12
فصل سوم – معرفی نیروی انسانی..................................................................................................... 14
معرفی نیروی انسانی..................................................................................................................... 14
1-3-برآورد پرسنل تولیدی............................................................................................................. 14
2-3-پرسنل اداری و خدمات.......................................................................................................... 14
فصل چهارم – هزینه ها.................................................................................................................. 16
معرفی هزینه ها........................................................................................................................... 16
برآورد هزینه استهلاک................................................................................................................... 17
فصل پنجم – شرح فرایند و اطلاعات فنی مورد نیاز :............................................................................. 19
تعریف مهندسی نرم افزار............................................................................................................... 19
اصطلاح مهندسی نرمافزار عموماً به معانی مختلفی به کار میرود :............................................................. 19
محدوده مهندسی نرم افزار و تمرکز آن............................................................................................... 20
نیاز به مهندسی نرم افزار................................................................................................................ 20
تکنولوژیها و روشهای عملی........................................................................................................... 21
ماهیت مهندسی نرم افزار............................................................................................................... 21
مدیریت ریسک در مهندسی نرم افزار :............................................................................................... 22
مراحل اصلی در پیادهسازی مدیریت ریسک......................................................................................... 23
مهندسی معکوس در رایانه :............................................................................................................ 26
برنامه نویسی رایانه :..................................................................................................................... 26
زبان برنامهنویسی......................................................................................................................... 27
زبانهای برنامه نویسی................................................................................................................... 27
نمونه یک برنامه........................................................................................................................... 28
پارادایمها................................................................................................................................... 29
برنامه نویسی موازی :.................................................................................................................... 30
تعریف...................................................................................................................................... 30
هوش مصنوعی :.......................................................................................................................... 31
تعریف و طبیعت هوش مصنوعی....................................................................................................... 33
فلسفهٔ هوش مصنوعی................................................................................................................. 34
مدیریّت پیچیدگی......................................................................................................................... 34
تکنیک ها وزبانهای برنامه نویسی هوش مصنوعی................................................................................... 36
سیستمهای خبره.......................................................................................................................... 37
عاملهای هوشمند........................................................................................................................ 37
برنامه نویسی شی گرا :.................................................................................................................. 38
وراثت....................................................................................................................................... 39
کپسولهسازی............................................................................................................................... 39
چندریختی................................................................................................................................. 40
انتزاع / تجرید............................................................................................................................. 40
یک مثال کاربردی......................................................................................................................... 40
ارتباط اشیاء................................................................................................................................ 41
سامانه های چند عامله :.................................................................................................................. 42
مزایا......................................................................................................................................... 42
معایب....................................................................................................................................... 43
روبوکاپ................................................................................................................................... 43
مدریت برنامه های به هم وابسته....................................................................................................... 44
چهار نوع متفاوت تعاملات بین مسائل:............................................................................................... 44
5 تنظیم ترکیب پورتفولیو................................................................................................................ 45
مدیریت پروژه و راهبری پروژه......................................................................................................... 46
فصل پنجم : چکیده مطالعات فنی ، مالی و اقتصادی............................................................................... 49
جدول (1-1) جمع بندی مشخصات اصلی طرح تولید............................................................................ 50
نتیجه گیری :.............................................................................................................................. 52
در این پروژه به بررسی شرکت تولید کننده نرم افزارهای رایانه ای از دیدگاه کارآفرینی پرداخته شده است ، هدف از این پروژه بررسی توجیه اقتصادی طرح مذکور میباشد ، برای رسیدن به هدف مورد نظر با بهره گیری از روش های آماری و اقتصادی و برآورد مالی طرح مورد بررسی قرار گرفته است ، این پروژه مشتمل بر پنج فصل میباشد ، فصل اول معرفی طرح است ، نام طرح ، ظرفیت تولید ، محصولات تولیدی و ... فصل دوم به بررسی نیروی انسانی مورد نیاز پرداخته است ، فصل سوم شامل هزینه های مورد نیاز طرح میباشد ، فصل چهارم شرح فرآیند تولید محصول میباشد ، در این فصل به بررسی اطلاعات فنی مورد نیاز پرداخته شده است ، فصل پنجم چکیده مطالعات فنی و اقتصادی طرح میباشد .
مهندسی نرمافزار پیشهای است که به یاری دانش رایانه و دیگر فناوریها و روشها به آفریدن و نگاهداری نرمافزار رایانهای میپردازد. مسائل اصلی مهندسی نرمافزار تولید نرمافزار بر اساس موارد زیر است:
کاربردهای مهندسی نرمافزار دارای ارزشهای اجتماعی و اقتصادی هستند، زیرا بهرهوری مردم را بالا برده، چند و چون زندگی آنان را بهتر میکنند. مردم با بهرهگیری از نرمافزار، توانایی انجام کارهایی را دارند که قبل از آن برایشان شدنی نبود. نمونههای از این دست نرمافزارها عبارتاند از: سامانههای توکار، نرم افزار اداری، بازیهای رایانهای، و اینترنت. فناوریها و خدمات مهندسی نرم افزار به کاربران برای بهبود بهرهوری و کیفیت یاری میرساند. نمونههایی از زمینههای بهبود: دادگان، زبانها، کتابخانهها، الگوها، فرآیندها و ابزار.
ایجاد و راه اندازی شرکت و موسسه های تولیدی نرم افزار های رایانه ای ، از شرکت ها به صورت گروهی در پروژه های برنامه نویسی و طراحی وب برای شرکت های صنعتی و غیره فعالیت می نمایند
|
تولید و ارائه نرم افزار های مختلف صنعتی و تجاری و حسابداری و بازرگانی و خدماتی برای شرکت های مختلف .
|
استفاده از روش تولید گروهی و با سیستم های مجتمع و شی گرای و طراحی متناوب با استفاده از نیروی کاری مناسب و در زمان تولید مشخص
|
تولید و ارائه انواع نرم افزار های رایانه ای
|
ردیف |
نام محصول |
ظرفیت تولید سالانه |
ظرفیت تولید ماهانه |
ظرفیت تولید روزانه |
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 |
سرپرست |
1 |
کارشناسی ارشد رایانه – گرایش نرم افزار |
مرد |
2 |
مهندس |
4 |
کارشناس رایانه |
مرد |
3 |
تکنسین |
8 |
فوق دیپلم - مسلط به زبان های برنامه نویسی |
مرد |
5 |
اپراتور رایانه |
2 |
فوق دیپلم |
مرد - زن |
ردیف |
نوع مسئولیت |
تعداد |
شرح وظایف |
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 گفتهاست که مهندسی نرم افزار یک شکل از مهندسی است. SteveMcConnell گفتهاست که هنوز اینطور نیست، ولی مهندسی نرم افزار باید یک شکل از مهندسی بشود. Donald Knuth گفتهاست که برنامه نویسی یک هنر است.
دیوان فعالیتهای آماری آمریکا دسته بندی کردهاست مهندسان نرم افزار را به عنوان زیرگروهی از «متخصصین کامپیوتر»، با فرصتهای شغلی ای مانند دانشمند کامپیوتر، برنامه نویس، و مدیر شبکه. BLS دسته بندی میکند تمام مهندسین دیگر این شاخه علمی ، که شامل مهندسین سخت افزار کامپیوتر نیز هست، را بهعنوان «مهندسین»
مدیریت ریسک در مهندسی نرم افزار :
مدیریت ریسک کاربرد سیستماتیک سیاستهای مدیریتی، رویهها و فرایندهای مربوط به فعالیتهای تحلیل، ارزیابی و کنترل ریسک میباشد. مدیریت ریسک عبارت از فرایند مستندسازی تصمیمات نهایی اتخاذ شده و شناسایی و بهکارگیری معیارهایی است که میتوان از آنها جهت رساندن ریسک تا سطحی قابل قبول استفاده کرد.
از طرف موسسه مدیریت پروژه، مدیریت ریسک به عنوان یکی از نه سطح اصلی «کلیات دانش مدیریت پروژه» معرفی شدهاست. در تعریف این موسسه، مدیریت ریسک پروژه به فازهای شناسایی ریسک، اندازه گیری ریسک، ارائه پاسخ (عکس العمل در مقابل ریسک) و کنترل ریسک تقسیم شدهاست. در این تعریف، مدیریت ریسک پروژه عبارت است از «کلیه فرایندهای مرتبط با شناسایی، تحلیل و پاسخگویی به هرگونه عدم اطمینان که شامل حداکثرسازی نتایج رخدادهای مطلوب و به حداقل رساندن نتایج وقایع نامطلوب میباشد».
در منابع مختلف، تعاریف دیگری نیز ارائه شدهاست. بنا بر نظر بوهم، مدیریت ریسک فرایندی شامل دو فاز اصلی است؛ فاز تخمین ریسک (شامل شناسایی، تحلیل و اولویت بندی) و فاز کنترل ریسک (شامل مراحل برنامه ریزی مدیریت ریسک، برنامه ریزی نظارت ریسک و اقدامات اصلاحی) میباشد. بنا به اعتقاد فیرلی مدیریت ریسک دارای هفت فاز است: ۱) شناسایی فاکتورهای ریسک؛ ۲) تخمین احتمال رخداد ریسک و میزان تاثیر آن؛ ۳) ارائه راهکارهایی جهت تعدیل ریسکهای شناسایی شده؛ ۴) نظارت بر فاکتورهای ریسک؛ ۵) ارائه یک طرح احتمالی؛ ۶) مدیریت بحران؛ ۷) احیا سازمان بعد از بحران.
موسسه مهندسی نرم افزار، به عنوان یکی از سازمانهای پیشرو در ارائه روشهای جدید در مدیریت پروژههای نرم افزاری، به مدیریت ریسک پروژه به عنوان فرایندی با ۵ فاز مجزا نگاه میکند (شناسایی، تحلیل، طراحی پاسخ، ردیابی و کنترل) که با یک سری عملیات انتقال ریسک مرتبط است.
موسسه مدیریت پروژه، در راهنمای خود در مورد کلیات دانش مدیریت پروژه (نسخه سال ۲۰۰۰)، برای فرایند مدیریت ریسک پروژه شش فاز را معرفی کردهاست: ۱) برنامه ریزی مدیریت ریسک، ۲) شناسایی، ۳) تحلیل کیفی ریسک، ۴) تحلیل کمّی ریسک، ۵) برنامه ریزی پاسخ ریسک و ۶) نظارت و کنترل ریسک. کلیم و لودین، برای مدیریت ریسک یک فرایند چهار مرحلهای را معرفی کردهاند (شناسایی، تحلیل، کنترل و گزارش) که در موازات چهار قدم معروف دمینگ در مدیریت پروژه (برنامه ریزی، اجرا، بررسی و عمل) قرار میگیرند.
چاپمن و وارد، یک فرایند مدیریت ریسک پروژه کلی را ارائه کردهاند که از نه فاز تشکیل شدهاست: ۱) شناسایی جنبههای کلیدی پروژه؛ ۲) تمرکز بر یک رویکرد استراتژیک در مدیریت ریسک؛ ۳) شناسایی زمان بروز ریسک ها؛ ۴) تخمین ریسکها و بررسی روابط میان آنها؛ ۵) تخصیص مالکیت ریسکها و ارائه پاسخ مناسب؛ ۶) تخمین میزان عدم اطمینان؛ ۷) تخمین اهمیت رابطه میان ریسک¬های مختلف؛ ۸) طراحی پاسخها و نظارت بر وضعیت ریسک و ۹) کنترل مراحل اجرا.
کرزنر، مدیریت ریسک را به صورت فرایند مقابله با ریسک تعریف کرده و آن را شامل مراحل چهارگانه زیر میداند: ۱) برنامه ریزی ریسک، ۲) ارزیابی (شناسایی و تحلیل) ریسک، ۳) توسعه روشهای مقابله با ریسک و ۴) نظارت بر وضعیت ریسکها.
مراحل اصلی در پیادهسازی مدیریت ریسک
بسیاری از پروژهها که فرض میشود تحت کنترل هستند، با ریسک به عنوان رخدادی شناختهنشده روبرو گردیده و کوشش میکنند آن را کنترل کنند. اکثر پروژهها چنین رخدادهایی را به خوبی از سر رد میکنند ولی با یک تلاش جامع مدیریت ریسک ، رویدادهای ریسک قبل از وقوع، شناسایی و کنترل میگردند و یا برنامهای تهیه میشود که در زمان وقوع این رویدادها با آنها مقابله کند.
با درنظر گرفتن این مفاهیم پایهای، امکان مقابله با ریسک به وجود میآید . لذا ابتدا باید نسبت به شناسایی ریسکهای محتمل پروژه اقدام کرد. این کار با دستهبندی ساختار کارها و با پرسش چند سوال از خود و یا اعضای گروه پروژه ، امکانپذیر است. مثلا : درموقع نیاز به منبعی یا منابعی که در دسترس نیستند چه اتفاقی خواهد افتاد ؟ اگر کنترلی در مورد مولفهای که بر پروژه اثرگذار است نداشته باشیم چه اتفاقی میافتد ؟ بدترین سناریو چیست ؟ چه چیزی باعث آن میگردد ؟ چه قدر وقوع این اتفاق محتمل است ؟ عواقب آن چیست ؟
ممکن است سوالهای دیگری نیز به ذهن شما خطور کند که البته این سوالها سرآغاز خوبی است که شما را در مسیر درست هدایت کند . هرچیزی که به مغز شما خطور میکند فهرست کنید ، سپس در مرحله بعد تعیین کنید که آیا نیاز به مقابله و پیشگیری ریسک است و یا بایستی تا زمان وقوع آن صبر کرد . اگر ریسکها را مشخص کنید و تصمیم بگیرید که هیچ عملی نباید انجام گیرد باز بهتر از آن است که آنها را شناسایی نکرده باشید . پس از این مرحله تمام ریسکهای شناسایی شده را کمی کنید ؛ ابتدا ریسکها را دستهبندی و سپس احتمال وقوع هر ریسک را تعیین کنید . برای تخصیص مقادیر احتمالی به ریسکها از مقادیر پیشنهادی زیر میتوانید استفاده کنید :
قریب الوقوع = ۸۵٪
بالا = ۸۵٪
محتـــــمل = ۶۰٪
متوسط = ۵۰٪
ممــــــکن = ۴۰٪
پایین = ۱۵٪
غیرمحتـمل = ۱۵٪
اکنون احتمال وقوع هر ریسک قابل محاسبهاست . راه دیگر ، نسبت دادن درصد وزنی به هریک از ریسکهاست . مشکل اصلی این روش آن است که همواره دادههای تجربی به اندازه کافی در دسترس نیستند تا این کار به دقت انجام گیرد . در این روش معمولا افراد باتجربهای مبادرت به این کار میکنند که تجارب جامعی از انواع رویدادها در پروژههای مختلف کسب کردهاند ؛ مجموع درصدهای تخصیصی به رویدادها بایستی صد باشد .
در مرحله بعد به هر ریسک ، یک مقدار نسبت دهید . این مقدار میتواند در صورت نیاز برحسب هزینه و یا زمان باشد ؛ به عنوان مثال اگر هدف تعیین زمان اتمام پروژهاست ، هر ایدهای در مورد مدت زمان فعالیتها میتواند یک سناریوی ریسک محسوب شود . در این مرحله میتوان مقدار حقیقی ریسک را با محاسبه حاصلضرب مقادیر تخصیص داده شده به ریسک و احتمال وقوع آن به دست آورد و با توجه به نتایج حاصل میتوان نسبت به انجام عملی یا به تعویق انداختن آن تصمیمگیری نمود . بعد از انجام مراحل مدیریت ریسک ، میتوانید فرایندهای نگهداری مجموعه ریسک را آغاز کنید . برای این کار بازنگری دورهای ریسک را آغاز کنید که مبتنی بر پیچیدگی و مدت پروژه و وقوع تغییرات پروژهاست .
آغاز اجرای این کار ممکن است بیهوده و هزینهزا به نظر آید اما چنانچه یکبار این کار را انجام دهید و ریسکها را شناسایی و به صورت کمی آنها را کنترل کنید در آن صورت به ارزش مدیریت ریسک پی خواهید برد . بنابراین در مرحله نخست اقدام به شناسایی ریسکهای پروژه در بالاترین سطح WBS کنید و از اینکه راه به سطوح پایینتر مییابید نگران نباشید . بعد از چند بار انجام این کار ، مساله خیلی واضحتر خواهد شد .
ما در دنیای مخاطرات ریسک زندگی میکنیم . باید ریسکها را تحلیل کنیم ؛ اگر با آنها برخورد داریم باید آنها را شناسایی و در مجموع تمام ریسکها و عواید آنها را باید ارزیابی کنیم . منافع حاصل از مدیریت ریسک ممکن است تا غلبه پروژه بر آن ملموس نباشد اما به خاطر داشته باشید که کسی که از برنامهریزی اجتناب کند به طور حتم برنامه شکست پروژه خود را طرحریزی نمودهاست !
یکی از مهمترین علومی که در برنامهنویسی و مهندسی نرمافزار از آن استفاده می شود و برای برنامهنویسان حرفهای کاربرد فراوان دارد علم مهندسی معکوس[1] هست. در واقع برنامه نویسان توسط این علم می توانند اشکالهای (باگهای) موجود در برنامه خود را پیدا کنند و به رفع آنها بپردازند.
علم رخنهگری رایانهای (کرکینگ) شاخه ای از علم مهندسی معکوس هست. از این رو برای درک معنا و مفهوم علم رخنهگری باید با مهندسی معکوس آشنا شویم. اما برای درک مهندسی معکوس هم باید یک پله عقب تر برویم : تا زمانی که با علم مهندسی نرمافزار یا همان برنامه نویسی آشنا نشویم ، متوجه مهندسی معکوس هم نخواهیم شد. به همین خاطر تمام کسانی که مایل به یادگیری علم کرک هستند باید تا حدودی با برنامه نویسی و مهندسی نرم افزار آشنایی داشته باشند.
برای اینکه بتوانیم یک رخنهگر حرفه ای باشیم باید معنا و مفاهیم خیلی از علوم پایه ای رایانه را بدانیم. در واقع علم کرکینگ چندان علم آسانی نیست و مشکلات زیادی در راه یادگیری این علم خواهیم داشت. به عنوان مثال لازم هست بدانیم زبان ماشین چیست ، واحد پردازش مرکزی چگونه کار میکند، تا حدودی با برنامه نویسی آشنا باشیم، زبان اسمبلی را بلد باشیم، ساختار فایلهای اجرایی (PE)را بشناسیم و... . در واقع پیشنیازهای یادگیری علم رخنهگری زیاد هستند.
برنامهنویسی رایانه در فرهنگ واژه غیر متخصصین ممکن است به تمام پروژه ساخت نرمافزار یا برنامهٔ رایانهای گفته شود. با این همه برنامهنویسی تنها بخشی از فرآیند توسعه نرمافزار یا برنامه رایانهای است. اهمیت، توجه و منابع اختصاص داده شده به برنامهنویسی، بسته به ویژگیهای مشخص شده محصول و خواست افراد درگیر در پروژه و کاربران و در نهایت شیوهٔ انتخاب شده مهندسی نرمافزار متغیر است. برنامهنویسی در دیدی ساده آخرین مرحله بزرگ ساخت یک برنامه رایانهای پس از مراحل تحلیل و طراحی برنامه است. در بسیاری از موارد، برنامهنویسی بخشی از تلاش ما برای پیادهسازی نسخهای از دنیای پیرامون ما، با بازسازی قوانین ریاضی و طبیعی در محیط خنثی رایانه است. به این سبب برنامهنویسی بارقههایی بزرگ از ریاضیات و مهندسی با خود دارد. برای مطالعه بیشتر به توسعه نرمافزار نگاه کنید.
اجرا و عملی ساختن الگوریتمهای انتزاعی وابسته به هم بهوسیله تولید یک برنامه رایانهای مشخص با ابزار زبان برنامهنویسی ممکن است. گرچه نزدیکترین راه برای بازسازی این قوانین در رایانه کار روی مدارهای الکترونیکی سختافزار آن است. اما این کاری طاقتفرسا و زمانبر و درنتیجه کمابیش ناممکن است. واسطهایی ساخته شدند تا میان سختافزار و انسان قرار گیرد. طبیعی است یک واسط به ساده کردن و انتزاعی کردن رویدادهای ممکن درون سخت افزار میپردازد. این انتزاعی کردن، سازنده سطوح گوناگون یا لایهبندی در معماری زیرساخت برنامهها است. به همین ترتیب زبانهای برنامهنویسی گوناگون هم هرکدام برای ساخت برنامههای یک یا شماری اندک از این لایهها قابل استفاده هستند.
با متفاوت بودن آنچه برنامهنویس برای آسانی استفاده خود آفریده با ورودی واقعیسخت افزار برای اجرای فرامین (که به زبان ماشین معروف است) برنامه واسط باید شیوهٔ خط برنامه نویس را به زبان ماشین برگرداند .
تعدادی از زبانهای برنامهنویسی به شمار زیر هستند :
دقت كنيد كه زبان هايی مانند اچتیامال (HTML) زبان برنامهنويسی نيستند بلكه زبانهای قالب بندی هستند.
یک برنامهٔ ساده در زبان برنامهنویسیBasic که از سادهترین زبانهای برنامهنویسی است میتواند به شکل زیر باشد:
REM MY FIRST TRY TO COMMAND THIS MACHINE TO DO WHAT I LIKE PRINT "HELLO NEW WORLD!" END
سطر نخست که با واژه کلیدی "REM" آغاز شده و از سوی برنامهٔ واسط درنظر گرفته نمیشود و تنها برای نگاه داشتن یک توضیح یا مانند آن برای خود برنامهنویس است. سطر دوم با واژه کلیدی "PRINT" به دستگاه فرمان میدهد تا نوشته "HELLO NEW WORLD!" ("سلام دنیای نو!") را روی نمایشگر بنویسد (چاپ کند). سطر آخر پایان فرامین و برنامه را به ماشین اطلاع میدهد.
پس از نوشتن یک برنامه مانند بالا، برنامهٔ مترجم (در اینجا Basic) دستورات را تبدیل به فرامینی میکند که لایه زیرین، که ممکن است همان سخت افزار باشد، میتواند آنها را اجرا کند.
زبانهای برنامهنویسی گوناگون براساس قابلیتهای درنظر گرفته شده از شیوهٔ خطهای مختلف استفاده میکنند. موارد ریزتری مانند چگونگی برخورد با نیازهای پشت پردهٔ ماشین مانند مدیریت حافظه و مدیریت زباله نیز در زبانهای مختلف متفاوت است. علاوه بر اینها، مفاهیمی متفاوت از (اجرای) یک برنامه تصور شدهاند که پارادایم یا الگو نام دارند. مثلاً پارادایم برنامهنویسی رویهای با برنامهها به صورت مجموعهای از پیمانهها برخورد میکند و در برنامهنویسی منطقی برنامهها گروههایی از قضایا و قوانین منطقی هستند که ما را به نتایج راهنمایی میکنند. زبانهای برنامهنویسی گوناگون بر اساس این پارادایمها ساخته میشوند. مثلاً زبان برنامهنویسی Pascal و ++C بر مبنای برنامهنویسی شیگرا و Prolog برای برنامهنویسی منطقی طراحی شدهاند. پارادایمها در مواردی به هم مشابهاند و ممکن است تنها در شمار اندک اما تأثیرگذاری از ویژگی ها، متفاوت باشند. همچنین زبانهای گوناگون ممکن است از ویژگیهای چند پارادایم همزمان استفاده کنند. مثلاً ++C ویژگیهایی از برنامهنویسی شیگرا، برنامهنویسی رویهای و برنامهنویسی نوعی دارد.
برنامهسازی موازی یا محاسبات موازی به اجرای همزمان یک برنامه (که به بخشهای کوچکتری تقسیم شده است) بر روی چند پردازنده به منظور دستیابی به سرعت بیشتر اطلاق می شود. ایده اصلی این است که فرآیند حل یک مساله را معمولاً میتوان به زیروظایف خردتری تقسیم کرد که با اجرای همزمان این زیروظایف و هماهنگ کردن آنها مساله اصلی در زمان کوتاهتری حل می شود.
یک سیستم محاسبات موازی رایانه ایست با بیش از یک پردازنده که برای پردازش موازی استفاده می شود. در گذشته، در یک سیستم چند پردازنده هر پردازنده در یک بسته بندی جداگانه قرار داشت، اما امروزه با معرفی تراشه های چند هسته ای، چندین پردازنده در کنار یکدیگر در یک بسته بندی قرار می گیرند. در حال حاضر انواع بسیار گوناگونی از رایانه های موازی وجود دارند که بر اساس نوع اتصالات بین پردازنده ها و حافظه از یکدیگر متمایز می شوند. رده بندی Flynn که یکی از پذیرفته شده ترین رده بندی ها برای رایانه های موازی است، رایانه های موازی را بر این اساس طبقه بندی می کند که آیا شامل پردازنده هایی هستند که همگی همزمان یک دستور یکسان را روی داده های متفاوتی اجرا می کنند (یک دستور چند داده SIMD: Single Instruction Multiple Data) و یا هر پردازنده دستور متفاوتی را روی داده هایی متفاوت اجرا می کند (چند دستور چند داده MIMD: Multiple Instruction Multiple Data).
هوش مصنوعی (به انگلیسی: Artificial Intelligence) را باید عرصهٔ پهناور تلاقی و ملاقات بسیاری از دانشها، علوم، و فنون قدیم و جدید دانست. ریشهها و ایدههای اصلی آن را باید در فلسفه، زبانشناسی، ریاضیات، روانشناسی، نورولوژی، و فیزیولوژی نشان گرفت و شاخهها، فروع، و کاربردهای گوناگون و فراوان آن را در علوم رایانه، علوم مهندسی، علوم زیستشناسی و پزشکی، علوم ارتباطات و زمینههای بسیار دیگر.
هدف هوش مصنوعی بطور کلی ساخت ماشینی است که بتواند «فکر» کند. اما برای دسته بندی و تعریف ماشینهای متفکر، میبایست به تعریف «هوش» پرداخت. همچنین به تعاریفی برای «آگاهی» و «درک» نیز نیازمندیم و در نهایت به معیاری برای سنجش هوش یک ماشین نیازمندیم.
با وجودی که برآورده سازی نیازهای صنایع نظامی، مهمترین عامل توسعه و رشد هوش مصنوعی بودهاست، هم اکنون از فراوردههای این شاخه از علوم در صنایع پزشکی، رباتیک، پیش بینی وضع هوا، نقشهبرداری و شناسایی عوارض، تشخیص صدا، تشخیص گفتار و دست خط و بازیها و نرم افزارهای رایانهای استفاده میشود.
مباحث هوش مصنوعی پیش از بوجود آمدن علوم الکترونیک، توسط فلاسفه و ریاضی دانانی نظیر بول (Boole) که اقدام به ارائه قوانین و نظریههایی در باب منطق نمودند، مطرح شده بود. در سال ۱۹۴۳، با اختراع رایانههای الکترونیکی، هوش مصنوعی، دانشمندان را به چالشی بزرگ فراخواند. بنظر میرسید، فناوری در نهایت قادر به شبیهسازی رفتارهای هوشمندانه خواهد بود.
با وجود مخالفت گروهی از متفکرین با هوش مصنوعی که با دیده تردید به کارآمدی آن مینگریستند تنها پس از چهار دهه، شاهد تولد ماشینهای شطرنج باز و دیگر سامانههای هوشمند در صنایع گوناگون هستیم.
نام هوش مصنوعی در سال ۱۹۶۵ میلادی به عنوان یک دانش جدید ابداع گردید. البته فعالیت درزمینه این علم از سال ۱۹۶۰ میلادی شروع شدهبود.(مرجع۱)
بیشتر کارهای پژوهشی اولیه در هوش مصنوعی بر روی انجام ماشینی بازیها و نیز اثبات قضیههای ریاضی با کمک رایانهها بود. در آغاز چنین به نظر میآمد که رایانهها قادر خواهند بود چنین اموری را تنها با بهره گرفتن از تعداد بسیار زیادی کشف و جستجو برای مسیرهای حل مسئله و سپس انتخاب بهترین آنها به انجام رسانند.
اين اصطلاح(هوش مصنوعی) برای اولين بار توسط جان مكارتی (John Mccorthy) كه از آن بهعنوان پدر «علم و دانش توليد ماشينهای هوشمند» یاد میشود استفاده شد. با اين عنوان میتوان به هويت هوشمند يک ابزار مصنوعی اشاره كرد. (ساختهٔ دست بشر، غير طبيعی، مصنوعی)
حال آنكه AI به عنوان يك اصطلاح عمومی پذيرفته شده كه شامل محاسبات هوشمندانه و تركيبی (مركب از مواد مصنوعی) میباشد.
از اصطلاح strong and weak AI میتوان تا حدودی برای معرفی ردهبندی سيستمها استفاده كرد. AI ها در رشتههای مشتركی چون علم كامپيوتر، روانشناسی و فلسفه مورد مطالعه قرار میگيرند، كه مطابق آن باعث ايجاد يک رفتار هوشمندانه، يادگيری و سازش میشود و معمولاً نوع پيشرفتهٔ آن در ماشينها و كامپيوترها استفاده میشود.
محققين هوش مصنوعی علاقهمند به تولید ماشينی هستند كه دستورات مورد نياز را به صورت هوشمندانه انجام دهد. به عنوان مثال قابلیت كنترل، برنامهريزی و زمانبندی، توانايی تشخيص جواب به سوال مصرف كننده،دست نويسها، زبان شناسی، سخنرانی و شناسايی چهره را داشته باشد. مطالعه بر روی يک AI دارد به يک رشتهٔ مهندسی تبديل میشود كه كانون مشروط است بر حل مشكلات زندگی واقعی، علم معدن كاری، نرم افزارهای كاربردی، استراتژی بازيها مثل بازی شطرنج و بازيهای ويدئويی يكی از بزرگترين مشكلات (سختیها) با AIها، قوهٔ درک آنها است.
تاحدی دستگاههای توليدشده میتوانند شگفتانگيز باشند، اما كارشناسان هوش مصنوعی ادعا میكنند كه ماشينهای هوشمند ساختهشده دارای درک واقعی و حقيقی نيستند.
هنوز تعریف دقیقی که مورد قبول همهٔ دانشمندان این علم باشد برای هوش مصنوعی ارائه نشدهاست، و این امر، به هیچ وجه مایهٔ تعجّب نیست. چرا که مقولهٔ مادر و اساسیتر از آن، یعنی خود هوش هم هنوز بطور همهجانبه و فراگیر تن به تعریف ندادهاست. در واقع، میتوان نسلهایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سؤال عمده نمودهاند که: هوش چیست؟
اما اکثر تعریفهایی که در این زمینه ارایه شدهاند بر پایه یکی از ۴ باور زیر قرار میگیرند:
شاید بتوان هوش مصنوعی را این گونه توصیف کرد:«هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را میتوان وادار به کارهایی کرد که در حال حاضر انسانها آنها رابهتر انجام میدهند»(مرجع۲).
بطور کلی ماهیت وجودی هوش به مفهوم جمع آوری اطلاعات, استقرا و تحلیل تجربیات به منظور رسیدن به دانش و یا ارایه تصمیم میباشد. در واقع هوش به مفهوم به کارگیری تجربه به منظور حل مسایل دریافت شده تلقی میشود. هوش مصنوعی علم و مهندسی ایجاد ماشینهایی با هوش با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و یا حیوانی و نهایتا دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی میباشد.
در مقایسه هوش مصنوعی با هوش انسانی میتوان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم میباشد در حالی که هوش مصنوعی مبتنی بر قوانین و رویههایی از قبل تعبیه شده بر روی کامپیوتر میباشد. در نتیجه علی رغم وجود کامپیوترهای بسیار کارا و قوی در عصر حاضر ما هنوز قادر به پیاده کردن هوشی نزدیک به هوش انسان در ایجاد هوشهای مصنوعی نبودهایم.
بطور کلّی، هوش مصنوعی را میتوان از زوایای متفاوتی مورد بررسی و مطالعه قرار داد. مابین هوش مصنوعی به عنوان یک هدف، هوش مصنوعی به عنوان یک رشته تحصیلی دانشگاهی، و یا هوش مصنوعی به عنوان مجموعهٔ فنون و راه کارهایی که توسط مراکز علمی مختلف و صنایع گوناگون تنظیم و توسعه یافتهاست باید تفاوت قائل بود.
ایجاد و ابداع فنون و تکنیکهای لازم برای مدیریّت پیچیدگی را باید به عنوان هستهٔ بنیادین تلاشهای علمی و پژوهشی گذشته، حال، و آینده، در تمامی زمینههای علوم رایانه، و به ویژه، در هوش مصنوعی معرّفی کرد. شیوهها و تکنیکهای هوش مصنوعی، در واقع، برای حلّ آن دسته از مسائل به وجود آمدهاست که به طور سهل و آسان توسط برنامهنویسی تابعی (Functional programming)، یا شیوههای ریاضی قابل حلّ نبودهاند.
در بسیاری از موارد، با پوشانیدن و پنهان ساختن جزئیّات فاقد اهمّیّت است که بر پیچیدگی فائق میآییم، و میتوانیم بر روی بخشهایی از مسئله متمرکز شویم که مهمتر است. تلاش اصلی، در واقع، ایجاد و دستیابی به لایهها و ترازهای بالاتر و بالاتر تجرید را نشانه میرود، تا آنجا که، سرانجام برنامههای کامپوتری درست در همان سطحی کار خواهند کرد که خود انسانها به کار مشغولند.
به یاری پژوهشهای گسترده دانشمندان علوم مرتبط، هوش مصنوعی از آغاز پیدایش تاکنون راه بسیاری پیمودهاست. در این راستا، تحقیقاتی که بر روی توانایی آموختن زبانها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این علم، یاری کردهاست. یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
برای نمونه به رباتی هوشمند بیاندیشید که بتواند اعضای بدن خود را به حرکت درآورد، او نسبت به این حرکت خود آگاه بوده و با سعی و خطا، دامنه حرکت خود را گسترش میدهد، و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی میدود و یا به روشی برای جابجا شدن، دست مییابد، که سازندگانش، برای او، متصور نبودهاند.
هر چند مثال ما در تولید ماشینهای هوشمند، کمی آرمانی است، ولی به هیچ عنوان دور از دسترس نیست. دانشمندان، عموماً برای تولید چنین ماشینهایی، از تنها مدلی که در طبیعت وجود دارد، یعنی توانایی یادگیری در موجودات زنده بخصوص انسان، بهره میبرند.
آنها بدنبال ساخت ماشینی مقلد هستند، که بتواند با شبیهسازی رفتارهای میلیونها یاخته مغز انسان، همچون یک موجود متفکر به اندیشیدن بپردازد.
هوش مصنوعی که همواره هدف نهایی دانش رایانه بودهاست، اکنون در خدمت توسعه علوم رایانه نیز است. زبانهای برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن میسازند، پایگاههای دادهای پیشرفته، موتورهای جستجو، و بسیاری نرمافزارها و ماشینها از نتایج پژوهشهای هوش مصنوعی بهره میبرند.
مبلغ قابل پرداخت 28,700 تومان