sara-afshar777
عضو جدید
سلام
با توجه به بحث ها و گفتگوهای انجام شده بین بچه ها، قرار شد دوستانی که مشغول مطالعه برای کنکور ارشد هستند، بصورت هماهنگ دروسی را انتخاب کنند و پس از مطالعه خلاصه ای از یاداشتهای خود را در سایت فرار دهند تا بقیه هم ضمن استفاده از این یاداشتها، با مطرح کردن سوال در باره موضوع یاداشتها همدیگر را در افزایش آگاهی و علم کمک کنند...
سارا خانوم عزیز قدم اول رو برداشتند و یاداشتهای خودشون رو اینجا قرار دادند:
باتشکر(کربلایی)
خلاصه فصل اول مهندسی نرم افزار پرسمن وسامرویل :
سوال اول : نرم افزار چیست؟
جواب اول :
یک محصول هست که صرف نظر از اندازه و نوع و ساختارکامپیوتر بر روی آن اجرامی شود.
جواب دوم:
به مجموعه مستنداتی که شامل کد – داده – شکلها وچارت ها هستند نرم افزارمی گویند. ومهمتر از همه طبق اصول پذیرفته شده مهندسی توسعه یابد
بحث : یعنی اگر کسی بدون طی مراحل پروسه تولید نرم افزار مستقیما برود سراغ نوشتن کد نمی توانیم آن محصول را یک محصول نرم افزاری بنامیم در واقع بیشترین مرحله کار در قسمت تحلیل هست .
نکته :
نرم افزار کامپیوتری عامل اصلی در ایجاد تمایز بین محصول وخدمات مختلف هست!!!؟؟؟؟؟؟؟؟؟
.سوال دوم : مهندسی نرم افزار چیست؟
کار اصلی مهندسان نرم افزار تولید محصولی مهندسی شده بنام نرم افزار هست ارایه این محصول هم شامل طی یکسری مراحل کاری هست که اصطلاحا بهش پروسه ( فرآیند ) تولید نرم افزار می گویند
برای ایجاد یک نرم افزار نوعی ما نیازمند یکسری ابزارها و روشهایی هستیم که به ما در تولید نرم افزار کمک کند
به طور خلاصه ما با استفاده از ابزارهایی که در اختیارمان گذاشته شده و روشهایی که یاد می گیریم
به تولید یک محصول نرم افزاری می پردازیم.
نکته:
نرم افزار هم محصول هست و هم وسیله ( وسیله ای برای انتقال وحمل محصول )
بحث :
به عنوان مثال نرم افزار rational rose خود یک نوع نرم افزار هست ( محصول ) که به تولید کنندگان نرم افزار کمک می کند در طی قسمتی از راه تولید نرم افزار در مراحلی از کار خود از آن بهره بگیرند( وسیله ).
یا همین سیستم عامل خود یک نوع وسیله ای هست که به عنوان بستر اصلی برای سایر نرم افزار ها عمل می کند.
در حین اینکه خود در تعریف اول یک نرم افزار هست .
می توانیم اینگونه هم نرم افزار را تعریف کنیم ( البته شاید! نمی دونم برداشتم درست باشد ) :
اگر نرم افزاری از سخت افزار برای ارایه خدمات و سرویسها و تولید اطلاعات استفاده کند بیشتر به عنوان وسیله از آن بهره می گیرند مثل سیستم عامل وسایر نرم افزارهای سیستمی
ولی اگر نرم افزاری از خدمات سایر نرم افزارهای اصلی استفاده کند بیشتر به عنوان تولید کننده اطلاعات وانتقال دهنده اطلاعات بکار می رود که البته این برداشت موقعی می تواند درست محسوب شود که به انواع نرم افزارها به صورت سلسله مراتبی نگاه کنیم چیزی که توی کتاب های سیستم عامل بدان اشاره شده است.
یا مثلا وقتی که از نرم افزاردر زمینه پزشکی استفاده می شود اینجا دیگر نرم افزار بیشتر نقش وسیله را دارد محصول ممکن هست چیز دیگری باشد.
یا موقعی که از یک نرم افزار برای تولید یک برنامه انیمیشن استفاده می شود اینجا نرم افزار مورد استفاده یک وسیله محسوب می شود و محصول تولیدی آن برنامه انیمیشنی هست.
خلاصه اگر به عنوان تولید کننده ، انتقال دهنده ،نمایش دهنده و سازمان دهنده اطلاعات باشد به عنوان یک محصول مطرح می شود ولی اگر از آن بهره گرفته شود تا محصول دیگری را تولید کرد یا محصول را انتقال داد ( مثلا نتایج حاصل از چکاب پزشکی یک بیمار از طریق شبکه های کامپیوتری از یک نقطه به نقطه دیگر منتقل گردد ) یا کنترل کرد ( مثلا استفاده از نرم افزار در کنترل موشک ) دیگر به عنوان یک وسیله تلقی می شود .
می گویند دنیا به مانند زندان هست این روزها نمی دانم چرا بیشتر از هر زمان دیگر حس زندانی بودن می کنم .
تفاوت بین سخت افزار ونرم افزار:
نرم افزار و سخت افزار هر دو محصول هستند ولی روشهای ساخت این دو با هم تفاوت دارد
وبرای این که خواننده به تفاوت بین این دو پی ببرد موقع صحبت از نرم افزار می گوییم طراحی یا توسعه نرم افزار ولی در مورد سخت افزار بیشتر می گوییم ساخت سخت افزار
سه مشخصه اصلی که نرم افزار را از سخت افزار ( منظور از سخت افزارهم شامل وسایل الکترونیکی می شود وهم شامل وسایل مکانیکی هم در مقیاس میکرو ونانو وهم در مقیاس ماکرو) متمایز می کند
مشخصه اول: نرم افزار طراحی ( توسعه ) می شود ولی سخت افزار ساخته می شود.
بحث :
به نظر من تفاوتی که مد نظر نویسنده بوده اینکه در مرحله طراحی محصول اگر محصول سخت افزاری باشد به هنگام بروز اشکال در ساخت سخت افزار باید از نو دوباره کاری کرد ولی در مورد نرم افزار اگر در مرحله طراحی مشکلی یا نقصی به وجود آید به راحتی می توان این مشکل ونقص را برطرف کرد
مشخصه دوم : نرم افزار فرسوده نمی شود ولی منسوخ می شود در حالی که سخت افزار به مرور زمان با کار کردن بیشتر فرسوده شده ودچار نقص می شود .
بحث :
با توجه به نمودار ص 42 کتاب پرسمن ( منحنی وارونه شکل ) می تونیم متوجه شویم که چرا همیشه برای اکثر تولیدات کارخانه ها ( چه در زمینه وسایل صنعتی وچه در زمینه وسایل خانگی و... )یک دوره ضمانت کالا بعد از خرید در نظر می گیرند( البته این برداشت شخصی من هست)
اما با توجه به نمودار ایده آل و واقعی شکست برای نرم افزار متوجه می شویم هرچقدر در مرحله شناخت و طراحی نرم افزاربیشتر دقت کنیم میزان نرخ شکست به سطح ثابتی میل خواهد کرد وکمتر دچار افت کیفیت در اثر تغییر خواهد شدوالبته این میسر نخواهد شد مگر با بهره گیری از شیوه های مهندسی نرم افزار( ارایه نرم افزاریک فرآیند مکانیکی مانند ساخت وتولید یک قطعه سخت افزاری نیست )
مشخصه دوم : معمولا امروزه برای ساخت قطعات سخت افزاری جدید بیشتر از قابلیت مونتاژ قطعات موجود استفاده می کنند در حالی که نرم افزارها هنوز به صورت سفارشی ساخته می شود .
بحث :
امروزه صنعت توسعه نرم افزار به سمت تولید نرم افزار می رود به این صورت که می خواهد با استفاده از قطعات از پیش ساخته هم مدت زمان تولید نرم افزار را کاهش دهد و هم هزینه های آن را .
فاکتورهای تعیین ماهیت یک برنامه کاربردی:
1- محتوای اطلاعات :
منظور، معنی وشکل اطلاعات ورودی وخروجی
2-میزان قطعیت اطلاعات(قابلیت پیش بینی وزمان بندی اطلاعات ) :
نرم افزارها یا اصولا روی منطق بولی ( قطعی ) ساخته می شوند ویا اینکه برمبنای منطق فازی ( غیر قطعی) ساخته می شود.
3-میزان دقت وصحت اطلاعات :
نکته:در راه توسعه نرم افزار ما باید به ماهیت مشکلاتی که بر کیفیت نهایی نرم افزار تاثیر می گذارد پی ببریم.
سوال :
منظور از بحران نرم افزارچیست ؟ اینکه پرسمن می گویند علم توسعه نرم افزار از یک بیماری مزمن رنج می برد چیست ؟
در واقع هدف توسعه نرم افزار با استفاده از شیوه های مهندسی این هست که سعی کنیم در مورد پروژه ای که می خواهیم انجام بدهیم قبل از شروع کار واقعی، اطلاعات بسیاری در مورد آن پروژه بدست آوریم. اطلاعات هر چه قدر بیشتر ، بهتر
چرا ؟
چون هزینه نهایی کار، کاهش یافته ، نیاز به دوباره کاری کاهش یافته و زمان تحویل کار نیز کاهش می یابد در ضمن مهمتر از همه، هزینه های دوران پس از تحویل محصول به مشتری نیز کاهش خواهد یافت چون میزان تغییرات کاهش خواهد یافت.
درواقع مشکل اکثر افرادی که نمی توانند به یک تحلیل گر حرفه ای تبدیل شوند این است که نمی توانند در مدت زمان کوتاهی اطلاعات بیشتری از ویژگیهای محصول مورد نظر مشتری بدست آورند( معمولا هر کسی بیشتر در زمینه حوزه فعالیت خودش اطلاعات تخصصی دارد )
نظر شخص من این هست که یک تحلیل گر باید مثل یک روزنامه نگار کنجکاو وسمج باشد که برای بدست آوردن اطلاعات مورد نظرش حتی از آبدارچی محیط عملیاتی واطلاعاتی خودش صرفنظر نمی کند بخصوص توی کشور ما که یک آبدارچی بیشتر از کارمندان یک اداره یا شرکت اطلاعات دارند!!!
با توجه به بحث ها و گفتگوهای انجام شده بین بچه ها، قرار شد دوستانی که مشغول مطالعه برای کنکور ارشد هستند، بصورت هماهنگ دروسی را انتخاب کنند و پس از مطالعه خلاصه ای از یاداشتهای خود را در سایت فرار دهند تا بقیه هم ضمن استفاده از این یاداشتها، با مطرح کردن سوال در باره موضوع یاداشتها همدیگر را در افزایش آگاهی و علم کمک کنند...
سارا خانوم عزیز قدم اول رو برداشتند و یاداشتهای خودشون رو اینجا قرار دادند:
باتشکر(کربلایی)
خلاصه فصل اول مهندسی نرم افزار پرسمن وسامرویل :
سوال اول : نرم افزار چیست؟
جواب اول :
یک محصول هست که صرف نظر از اندازه و نوع و ساختارکامپیوتر بر روی آن اجرامی شود.
جواب دوم:
به مجموعه مستنداتی که شامل کد – داده – شکلها وچارت ها هستند نرم افزارمی گویند. ومهمتر از همه طبق اصول پذیرفته شده مهندسی توسعه یابد
بحث : یعنی اگر کسی بدون طی مراحل پروسه تولید نرم افزار مستقیما برود سراغ نوشتن کد نمی توانیم آن محصول را یک محصول نرم افزاری بنامیم در واقع بیشترین مرحله کار در قسمت تحلیل هست .
نکته :
نرم افزار کامپیوتری عامل اصلی در ایجاد تمایز بین محصول وخدمات مختلف هست!!!؟؟؟؟؟؟؟؟؟
.سوال دوم : مهندسی نرم افزار چیست؟
کار اصلی مهندسان نرم افزار تولید محصولی مهندسی شده بنام نرم افزار هست ارایه این محصول هم شامل طی یکسری مراحل کاری هست که اصطلاحا بهش پروسه ( فرآیند ) تولید نرم افزار می گویند
برای ایجاد یک نرم افزار نوعی ما نیازمند یکسری ابزارها و روشهایی هستیم که به ما در تولید نرم افزار کمک کند
به طور خلاصه ما با استفاده از ابزارهایی که در اختیارمان گذاشته شده و روشهایی که یاد می گیریم
به تولید یک محصول نرم افزاری می پردازیم.
نکته:
نرم افزار هم محصول هست و هم وسیله ( وسیله ای برای انتقال وحمل محصول )
بحث :
به عنوان مثال نرم افزار rational rose خود یک نوع نرم افزار هست ( محصول ) که به تولید کنندگان نرم افزار کمک می کند در طی قسمتی از راه تولید نرم افزار در مراحلی از کار خود از آن بهره بگیرند( وسیله ).
یا همین سیستم عامل خود یک نوع وسیله ای هست که به عنوان بستر اصلی برای سایر نرم افزار ها عمل می کند.
در حین اینکه خود در تعریف اول یک نرم افزار هست .
می توانیم اینگونه هم نرم افزار را تعریف کنیم ( البته شاید! نمی دونم برداشتم درست باشد ) :
اگر نرم افزاری از سخت افزار برای ارایه خدمات و سرویسها و تولید اطلاعات استفاده کند بیشتر به عنوان وسیله از آن بهره می گیرند مثل سیستم عامل وسایر نرم افزارهای سیستمی
ولی اگر نرم افزاری از خدمات سایر نرم افزارهای اصلی استفاده کند بیشتر به عنوان تولید کننده اطلاعات وانتقال دهنده اطلاعات بکار می رود که البته این برداشت موقعی می تواند درست محسوب شود که به انواع نرم افزارها به صورت سلسله مراتبی نگاه کنیم چیزی که توی کتاب های سیستم عامل بدان اشاره شده است.
یا مثلا وقتی که از نرم افزاردر زمینه پزشکی استفاده می شود اینجا دیگر نرم افزار بیشتر نقش وسیله را دارد محصول ممکن هست چیز دیگری باشد.
یا موقعی که از یک نرم افزار برای تولید یک برنامه انیمیشن استفاده می شود اینجا نرم افزار مورد استفاده یک وسیله محسوب می شود و محصول تولیدی آن برنامه انیمیشنی هست.
خلاصه اگر به عنوان تولید کننده ، انتقال دهنده ،نمایش دهنده و سازمان دهنده اطلاعات باشد به عنوان یک محصول مطرح می شود ولی اگر از آن بهره گرفته شود تا محصول دیگری را تولید کرد یا محصول را انتقال داد ( مثلا نتایج حاصل از چکاب پزشکی یک بیمار از طریق شبکه های کامپیوتری از یک نقطه به نقطه دیگر منتقل گردد ) یا کنترل کرد ( مثلا استفاده از نرم افزار در کنترل موشک ) دیگر به عنوان یک وسیله تلقی می شود .
می گویند دنیا به مانند زندان هست این روزها نمی دانم چرا بیشتر از هر زمان دیگر حس زندانی بودن می کنم .
تفاوت بین سخت افزار ونرم افزار:
نرم افزار و سخت افزار هر دو محصول هستند ولی روشهای ساخت این دو با هم تفاوت دارد
وبرای این که خواننده به تفاوت بین این دو پی ببرد موقع صحبت از نرم افزار می گوییم طراحی یا توسعه نرم افزار ولی در مورد سخت افزار بیشتر می گوییم ساخت سخت افزار
سه مشخصه اصلی که نرم افزار را از سخت افزار ( منظور از سخت افزارهم شامل وسایل الکترونیکی می شود وهم شامل وسایل مکانیکی هم در مقیاس میکرو ونانو وهم در مقیاس ماکرو) متمایز می کند
مشخصه اول: نرم افزار طراحی ( توسعه ) می شود ولی سخت افزار ساخته می شود.
بحث :
به نظر من تفاوتی که مد نظر نویسنده بوده اینکه در مرحله طراحی محصول اگر محصول سخت افزاری باشد به هنگام بروز اشکال در ساخت سخت افزار باید از نو دوباره کاری کرد ولی در مورد نرم افزار اگر در مرحله طراحی مشکلی یا نقصی به وجود آید به راحتی می توان این مشکل ونقص را برطرف کرد
مشخصه دوم : نرم افزار فرسوده نمی شود ولی منسوخ می شود در حالی که سخت افزار به مرور زمان با کار کردن بیشتر فرسوده شده ودچار نقص می شود .
بحث :
با توجه به نمودار ص 42 کتاب پرسمن ( منحنی وارونه شکل ) می تونیم متوجه شویم که چرا همیشه برای اکثر تولیدات کارخانه ها ( چه در زمینه وسایل صنعتی وچه در زمینه وسایل خانگی و... )یک دوره ضمانت کالا بعد از خرید در نظر می گیرند( البته این برداشت شخصی من هست)
اما با توجه به نمودار ایده آل و واقعی شکست برای نرم افزار متوجه می شویم هرچقدر در مرحله شناخت و طراحی نرم افزاربیشتر دقت کنیم میزان نرخ شکست به سطح ثابتی میل خواهد کرد وکمتر دچار افت کیفیت در اثر تغییر خواهد شدوالبته این میسر نخواهد شد مگر با بهره گیری از شیوه های مهندسی نرم افزار( ارایه نرم افزاریک فرآیند مکانیکی مانند ساخت وتولید یک قطعه سخت افزاری نیست )
مشخصه دوم : معمولا امروزه برای ساخت قطعات سخت افزاری جدید بیشتر از قابلیت مونتاژ قطعات موجود استفاده می کنند در حالی که نرم افزارها هنوز به صورت سفارشی ساخته می شود .
بحث :
امروزه صنعت توسعه نرم افزار به سمت تولید نرم افزار می رود به این صورت که می خواهد با استفاده از قطعات از پیش ساخته هم مدت زمان تولید نرم افزار را کاهش دهد و هم هزینه های آن را .
فاکتورهای تعیین ماهیت یک برنامه کاربردی:
1- محتوای اطلاعات :
منظور، معنی وشکل اطلاعات ورودی وخروجی
2-میزان قطعیت اطلاعات(قابلیت پیش بینی وزمان بندی اطلاعات ) :
نرم افزارها یا اصولا روی منطق بولی ( قطعی ) ساخته می شوند ویا اینکه برمبنای منطق فازی ( غیر قطعی) ساخته می شود.
3-میزان دقت وصحت اطلاعات :
نکته:در راه توسعه نرم افزار ما باید به ماهیت مشکلاتی که بر کیفیت نهایی نرم افزار تاثیر می گذارد پی ببریم.
سوال :
منظور از بحران نرم افزارچیست ؟ اینکه پرسمن می گویند علم توسعه نرم افزار از یک بیماری مزمن رنج می برد چیست ؟
در واقع هدف توسعه نرم افزار با استفاده از شیوه های مهندسی این هست که سعی کنیم در مورد پروژه ای که می خواهیم انجام بدهیم قبل از شروع کار واقعی، اطلاعات بسیاری در مورد آن پروژه بدست آوریم. اطلاعات هر چه قدر بیشتر ، بهتر
چرا ؟
چون هزینه نهایی کار، کاهش یافته ، نیاز به دوباره کاری کاهش یافته و زمان تحویل کار نیز کاهش می یابد در ضمن مهمتر از همه، هزینه های دوران پس از تحویل محصول به مشتری نیز کاهش خواهد یافت چون میزان تغییرات کاهش خواهد یافت.
درواقع مشکل اکثر افرادی که نمی توانند به یک تحلیل گر حرفه ای تبدیل شوند این است که نمی توانند در مدت زمان کوتاهی اطلاعات بیشتری از ویژگیهای محصول مورد نظر مشتری بدست آورند( معمولا هر کسی بیشتر در زمینه حوزه فعالیت خودش اطلاعات تخصصی دارد )
نظر شخص من این هست که یک تحلیل گر باید مثل یک روزنامه نگار کنجکاو وسمج باشد که برای بدست آوردن اطلاعات مورد نظرش حتی از آبدارچی محیط عملیاتی واطلاعاتی خودش صرفنظر نمی کند بخصوص توی کشور ما که یک آبدارچی بیشتر از کارمندان یک اداره یا شرکت اطلاعات دارند!!!
آخرین ویرایش توسط مدیر: