دانلود مقاله درک مفهوم نرم افزار (و سرانجام درکی از مهندسی نرم افزار)

Word 225 KB 18103 53
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۱۴,۸۵۰ تومان
قیمت با تخفیف: ۱۰,۰۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • ویژگیهای نرم افزار
    برای درک مفهوم نرم افزار (و سرانجام درکی از مهندسی نرم افزار)، بررسی آن دسته از ویژگیهای نرم افزار که آن را از دیگر چیزهای ساخته دست بشر متمایز می سازد، اهمیت دارد. هنگامی که سخت افزاری ساخته می شود، فرآیند آفرینش بشری (تحلیل، طراحی، ساخت، آزمون)، سرانجام به یک شکل فیزیکی منتهی می شود. اگر یک کامپیوتر جدید می سازیم، طرحهای اولیه، ترسیمات طراحی رسمی و نمونه های اولیه به یک محصول فیزیکی (تراشه ها، مدارها، منبع تعذیه و غیره) تکامل می یابند.
    نرم افزار یک عنصر سیستمی منطقی است نه فیزیکی. از این رو، نرم افزار دارای ویژگیهایی است که تفاوت چشمگیری با ویژگیهای سخت افزار دارند.
    1. نرم افزار، مهندسی و بسط داده می شود و چیزی نیست که به معنای کلاسیک کلمه، ساخته شود.
    گرچه شباهتهایی میان بسط نرم افزار و ساخت سخت افزار وجود دارد، این دو عمل تفاوت بنیادی دارند. در هر دو عمل، کیفیت بالا از طریق طراحی خوب به دست می آید، ولی فاز ساخت برای سخت افزار باعث بروز مشکلات کیفیتی می شود که برای نرم افزار وجود ندارند (یا به راحتی قابل رفع هستند). هر دو عمل وابسته به انسان هستند، ولی رابطه میان انسان و کاری که انجام می شود، کاملاً متفاوت است (فصل 7). هر د. عمل مستلزم ساخت یک ((محصول)) هستند ولی روشها متفاوت است.
    هزینه های نرم افزار در مهندسی آن متمرکز است. این بدان معناست که پروژه های نرم افزاری را نمی توان همانند پروژه های تولید معمولی مدیریت کرد.
    2. نرم افزار فرسوده نمی شود.
    شکل 1-1 نمودار آهنگ شکست را به صورت تابعی از زمان برای سخت افزار نشان می دهد. این رابطه که غالباً ((منحنی وانی)) نامیده می شود، نشان می دهد که سخت افزار، آهنگ شکست نسبتاً شدیدی در ابتدای عمر خود نشان می دهد (این شکستها را غالباً می توان به عیوب طراحی و تولید نسبت داد)؛ این عیوب تصحیح می شوند و آهنگ شکست برای یک دورۀ زمانی به حدی ثابت نزول می کند (که امید می رود، بسیار پایین باشد). با گذشت زمان، سخت افزار شروع به فرسایش کرده دوباره آهنگ شکست شدت می گیرد.
    نرم افزار نسبت به ناملایمات محیطی که باعث فرسایش نرم افزار می شود، نفوذپذیر نیست. بنابراین، در تئوری، منحنی شکست برای نرم افزار باید شکل منحنی ایده آل شکل 2-1 را به خود بگیرد. عیوب کشف نشده باعث آهنگ شکست شدید، در ابتدای عمر برنامه می شود. ولی، این عیوب برطرف می شوند (با این امید که خطاهای دیگر وارد نشود) و منحنی به صورتی که نشان داده شده است، هموار می شود. منحنی ایده آل نسبت به منحنی واقعی مدلهای شکست نرم افزار، بسیار ساده تر است (برای اطلاعات بیشتر، فصل 8 را ببینید). ولی، معنای آن واضح است، نرم افزار هرگز دچار فرسایش نمی شود بلکه فاسد می شود!
    این تناقض ظاهری را می توان با در نظر گرفتن ((منحنی واقعی)) به بهترین وجه توضیح داد (شکل 2-1). نرم افزار در دوران حیات خود دستخوش تغییر می شود (نگهداری). با اعمال این تغییرات، احتمال دارد که برخی عیوب جدید وارد شوند و باعث خیز منحنی آهنگ شکست شوند (شکل 2-1). پیش از آن که منحنی بتواند به آهنگ شکست منظم اولیه خود برسد، تغییر دیگری درخواست می شود که باعث خیز دوباره منحنی می شود. حداقل میزان شکست به آهستگی افزایش می یابد – نرم افزار در اثر تغییر فاسد می شود.
    یک جنبۀ دیگر از فرسایش نیز اختلاف میان سخت افزار و نرم افزار را نشان می دهد. هنگامی که یک قطعه از سخت افزار فرسوده می شود، با یک قطعه یدکی تعویض می شود. ولی نرم افزار قطعات یدکی ندارد. هر شکست نرم افزار نشانگر خطایی در طراحی یا فرآیندی است که طراحی از طریق آن به کدهای قابل اجرا روی ماشین تبدیل می شود. از این رو، نگهداری نرم افزار به مراتب پیچیده تر از نگهداری سخت افزار است.
    3. گرچه صنعت در حال حرکت به سوی مونتاژ قطعات است، اکثر نرم افزارها همچنان به صورت سفارشی ساخته می شوند.
    شیوه ای را در نظر بگیرید که در آن یک سخت افزار کنترلی برای یک محصول کامپیوتری طراحی و ساخته می شود. مهندس طراح یک الگوی ساده از مدار دیجیتالی رسم می کند، قدری تحلیل بنیادی انجام می دهد تا از عملکرد صحیح اطمینان حاصل کند، و سپس به قفسۀ حاوی کاتالوگهای قطعات رجوع می کند. پس از انتخاب همۀ قطعات می تواند آنها را سفارش دهد.
    به موازات تکامل یک رشته مهندسی، مجموعه ای از قطعات طراحی استاندارد ایجاد می شود. پیچ های استاندارد و مدارات مجتمع فقط دو مورد از هزاران قطعۀ استانداردی هستند که مهندسان مکانیک و برق در طراحی سیستمهای جدید به کار می برند. قطعات قابل استفاده مجدد طوری طراحی شده اند که مهندس بتواند بر عناصر واقعاً جدید یک طراحی، یعنی قطعاتی از طراحی که ارائه دهنده چیزی تازه هستند، تمرکز داشته باشد. در جهان سخت افزار، استفاده مجدد از قطعات، بخشی طبیعی از فرآیند مهندسی است. در مهندسی نرم افزار این امر به تازگی مورد توجه قرار گرفته است.
    یک قطعه نرم افزاری باید چنان طراحی و پیاده سازی شود که بتوان در برنامه های متفاوت از آن بهره برد. در دهۀ 1960، کتابخانه هایی از زیرروال های علمی ساختیم که در آرایۀ گسترده ای از کاربردهای مهندسی و علمی قابل استفاده بودند. این کتابخانه ها از الگوریتم هایی معین به شیوه ای کارامد استفاده می کردند، ولی دامنه کاربرد محدودی داشتند. امروزه، ایدۀ استفاده مجدد نه تنها الگوریتم ها، بلکه ساختمان داده ها را نیز در بر می گیرد. قطعات مدرن قابل استفاده مجدد، هم داده ها و هم پردازشی را که در مورد آنه اعمال می گردد، پنهان سازی کرده مهندس نرم افزار را قادر می سازد تا از قطعات قابل استفادۀ دوباره، برنامه های کاربردی جدید بسازد. برای مثال، واسطهای کاربر گرافیکی امروزی با استفاده از قطعات قابل استفاده مجدد ساخته می شوند که ایجاد پنجره های گرافیکی، منوهای باز شونده و انواع راهکارهای محاوره را میسر می سازند.
    کاربردهای نرم افزار
    نرم افزار را در وضعیتی می توان به کار برد که در آن یک مجموعه مراحل از پیش تعیین شده (یعنی یک الگوریتم) تعریف شده باشد (استثنائات قابل ملاحظه در این خصوص، نرم افزارهای سیستم های خبره و نرم افزارهای شبکه عصبی اند). محتوای اطلاعاتی و قطعیت اطلاعاتی عوامل مهمی در تعیین ماهیت کاربرد یک نرم افزار هستند. منظور از محتوا، معنی و شکل اطلاعات ورودی و خروجی است. برای مثال، در بسیاری کاربردهای تجاری، از داده های ورودی بسیار ساخت یافته (یک بانک اطلاعاتی) استفاده می شود و ((گزارشهای)) فرمت شده تولید می شود. نرم افزاری که یک ماشین خودکار را کنترل می کند (مثلاً کنترل عددی) داده هایی مجزا با ساختاری محدود را می پذیرد و فرمانهایی انفرادی را به توالی برای آن ماشین تولید می کند.
    قطعیت اطلاعاتی به معنای قابلیت پیش بینی ترتیب و زمان بندی اطلاعات است. یک برنامه تحلیل مهندسی، داده هایی را می پذیرد که دارای ترتیبی از پیش تعیین شده بوده الگوریتم (های) تحلیلی را بدون وقفه اجرا نموده داده های حاصل را در گزارش یا با قالب گرافیکی تولید می کند. چنین کاربردهایی دارای قطعیت هستند. ولی یک سیستم عامل چند منظوره، ورودی هایی را می پذیرد که دارای محتوای گوناگون و زمان بندی اختیاری هستند؛ الگوریتمهایی را اجرا می کند که توسط شرایط خارجی قابل وقفه اند و خروجی تولید می کند که تابعی از محیط و زمان است. کاربردهایی با این ویژگی فاقد عزم هستند.
    تعیین گروههای کلی با معنی برای کاربردهای نرم افزار قدری دشوار است. با پیچیده تر شدن نرم افزار، مرزهای صریح و روشن، رنگ می بازند. زمینه های زیر را می توان به عنوان گروههای کاربردی مشخص کرد:
    نرم افزارهای سیستمی.نرم افزار سیستمی مجموعه ای از برنامه هاست که برای سرویس دهی به برنامه های دیگر نوشته شده اند. برخی نرم افزارهای سیستمی (مثل کامپایلرها، ویراستارها و برنامه های کمکی مدیریت فایل) ساختارهای اطلاعاتی پیچیده ولی قطعیت دارند. برخی برنامه های سیستمی دیگر (نظیر قطعات سیستم عامل، راه اندازها، پردازنده های ارتباط راه دور) مقادیر زیادی ار داده های میانی را پردازش می کنند. در هر حال، مشخصه های حیطۀ نرم افزارهای سیستمی عبارتند از: برهمکنش سنگین با سخت افزار کامپیوتر؛ استفاده سنگین توسط چند کاربر؛ عمل کنونی که مستلزم زمانبندی است؛ مدیریت فرآیند پیچیده و اشتراک منابع؛ ساختمان داده های پیچیده و واسطهای خارجی چندگانه.

صنعت نرم‌افزاري در جهان و ايران صنعتي است نو و نسبتاً جديد. با اين وجود در طي عمر بسيار کوتاه، اين صنعت تحولات وسيع، عميق و شگرفي را شاهد بوده است. مهم‌ترين اين نوع تحولات را مي‌توان موارد زير دانست: ? رشد شديد و قابل توجه در درآمد بخش ? تاثير آن

در عصر اطلاعات نمي توان علم يا صنعتي را يافت که آثار فن آوري اطلاعات در آن ديده نشود . فن آوري اطلاعات علاوه بر اين که به عنوان يک فن آوري زير بنايي قادر است که ابعاد ديگر زمينه ها را دگرگون کند ( به گونه اي که نگرش فعلي به اين زمينه ها را با دگرگون

تعريف نرم افزار تعريف نرم افزار نرم افزار عبارت است: 1- برنامه هاي کامپيوتري که در صورت اجرا شدن باعث انجام عمل و کار خواسته شده مي شوند. 2- ساختمان داده هايي که باعث مي‌شوند، برنامه ها بطور مناسبي اطلاعات را دستکاري کنند. 3- مستنداتي که توصيف کنن

مهندسي نرم افزار : مهندسي نرم افزار ( SE ) طراحي ، توسعه و ثبت نرم افزار با بکارگيري تکنولوژي ها و کار با علم کامپيوتر ، مديريت پروژه ، مهندسي محدوده هاي کاربرد طرح همبست ، مديريت دارايي ديجيتال و ديگر زمينه ها است . اصطلاح مهندسي نرم افزار پس از 19

گرچه براي پروژه هاي کوچک مي توان صرفاً با اتکا بر خلاقيت و بدون توجه به برنامه ريزي و نظمي خاص به نتيجه رسيد اما براي ايجاد يک پروژه بزرگ و پيچيده نياز به پيروي از يک روش (method) مشخص است. يک متد تعيين مي کند که براي توليد يک پروژه چه گام هايي نياز

تشريح پروژه درس مهندسي نرم افزار موضوع: سيستم جامع کتابداري (بانک اطلاعاتي کتابخانه ) شرح مختصري از سيستم هاي فعلي کتابخانه : اين قسمت در دانشگاه يک بخش فعال در زمينه کرايه کتاب به دانشجويان مي باشد. اين بخش فاقد هر گونه سيستمي است و کار

چکیده دراین پروژه مشتری را به عنوان ACTOR معرفی میکنیم. کسی که به مشاور املاک مراجعه می کند ویکی از تقاضاهای زیر را مطرح می کند که USE CASE های این سیستم را شامل میشود: 1-تقاضای خرید 2-تقاضای فروش 3-تقاضای اجاره (رهن) که این تقاضاها می تواند خرید ، فروش یا اجاره خانه ، مغازه ویا تقاضای خرید یا فروش زمین را باشد . بعد از بررسی صورت گرفته وانتخاب ملک مورد نظر از طرف مشتری قولنامه ...

لينگو يک نرم افزار تحت ويندوز است که 16000 متغير و 8000 محدوديت مي گيرد و به چهار مگابايت حافظه احتياج دارد . کاربرد لينگو در تمام مسائل بهينه سازي مثل تحقيق درعمليات ، اقتصاد مهندسي ، شبيه سازي ، کنترل کيفيت ،کنترل پروژه ، کنترل موجودي و…. مي باشد

مرحله SR را مي توان ” مرحله تحليل مسئله ” چرخه حيات ناميد. هدف اين مرحله تحليل نيازهاي کاربر بيان شده در URD و تهيه مجموعه اي کامل، به هم پيوسته و صحيح از نيازهاي نرم افزار است. بيان نيازهاي نرم افزار از وظايف توليد کننده آن است. در اين امر مي بايست

پیچیدگی در نرم افزار بدلیل تفاوت ذاتی بین نرم افزار و سخت افزار پیچیدگی خاصی در ابعاد مختلف از جمله تعریف نرم افزار، طراحی و پیاده‌سازی، تست و نگهداری آن وجود دارد که: با پیچیدگی سیستم‌های طبیعی و محصولات فیزیکی ساخت است بشر متفاوت است. یک خاصیت ذاتی سیستمهای نرم افزاری بزرگ بنابراین نمی‌توان این پیچیدگی را از بین برد بلکه باید آنرا کنترل نمود. انواع پیچیدگی: intelleictually ...

ثبت سفارش
تعداد
عنوان محصول