رشته حقوق

ماهیت نوشتاری نرم افزارها

دانلود پایان نامه

ماهیت عمدتا نوشتاری نرم افزارها

کامپیوترها از حروف ، کلمات و اعداد انسانی هیچ نمی فهمند حتی و 1 را نیز متوجه نمی شود ولی به لحاظ ساختار فیزیکی که دارد ، چنان چه    نوشته شود جریان برق قطع می گردد و در صورتی که 1 نوشته شود جریان برقرار خواهد بود . بدین لحاظ پایین ترین سطح در زبان برنامه نویسی برای ماشین آن است که برنامه را با و 1 که اصطلاحا به آن زبان ماشین یا obiect code گفته می شود بنویسیم . در نتیجه برای این که با زبان مزبور توسط ماشین اجرا شود به هیچ برنامه ی مترجمی که واسطه ی ماشین و برنامه شود نیاز نیست [1] .

در برخی مواقع از آن جا که نوشتن برنامه به زبان ماشین نیاز به دقت فراوان داشت پاره ای از عملیات را که  تکراری بودند به صورت سمبلیک نشان دادند بدین نحو که یک کد به صورت 001  را که مثلا برای جمع بایستی نوشته شود ذخیره نموده و به جای تکرار آن در نوشته ، چنین مقرر می شد که معادل لفظ مثلا Add باشد و در برنامه به جای کد از کلمه ی معادل آن استفاده می کردند . برخی از نویسندگان معتقدند نرم افزارها به غیر ازموارد اندک با زبان های دیگری غیر از زبان آثار ادبی و هنری نوشته می شوند اما به نظر می رسد نرم افزارها عمدتا در مورد هدف و طراحی به زبان نوشتاری آثار ادبی و هنری نوشته شده و سپس به زبان کامپیوتر برگردان می شوند [2] .

الف ) بخش های نوشتاری نرم افزار

حال قبل از پرداختن به موضوع ، مختصری از مراحل تولید یک نرم افزار را بیان می کنیم :

اولین مرحله در تولید نرم افزار این است که ما هدف خود را مشخص نماییم . تعیین نیاز باید به     گونه ای باشد که به ما کمک کند سیر بهتری را برای نرم افزار خود مشخص کنیم . اگر بخواهیم به شکل دقیق تری این موضوع را بیان کنیم مثال ساده ای از یک کار روزمره بیان می کنیم . زمانی که شما قصد دارید به سرکار ، دانشگاه و یا محل مورد نظر خود بروید ذهن شما تحلیل می کند و با توجه به هدف شما که چه مکانی است و در کدامین نقطه از شهر واقع شده است مسیری را به شما توصیه می کند این توصیه براساس پارامترهای مختلفی است مثلا در بررسی انجام شده در ذهن شما مسیرهای پر ترافیک حذف شده و یا حداقل از مسیرهای جایگزین با ترافیک کم تر استفاده می شود وسیله ی مورد نظر شما در ذهن ترسیم شده و نتیجه این می شود که شما از کدام وسیله ی نقلیه استفاده می کنید ، تاکسی ، اتوبوس و یا مترو .

این مطلب که ما بدانیم در نتیجه ی ساختن نرم افزار به چه هدفی می رسیم اولین مرحله ی ساخت یک نرم افزار است که در مرحله ی دوم با توجه به پارامترهایی که در دست داریم یک ساختار منظمی ترتیب می دهیم . در حقیقت اولین مرحله ی تولید نرم افزار طرحی است که ما در ذهن خود یا بر روی کاغذ برای رسیدن به هدف معین می کنیم .

مطلب مشابه :  تکنیک های تصمیم گیری

در مرحله بعد بررسی می شود که چگونه خواسته های مشخص شده به وسیله ی نرم افزار برآورده   می شود . این مرحله از تولید نرم افزار دارای دو قسمت است که این دو قسمت عبارتند از تقسیم های کلی و تقسیم های جزیی . در مثالی که بیان شد تقسیم های کلی عبارتند از انتخاب راه ها ی رسیدن به مقصد در حالی که تقسیمات جزیی آن هایی هستند که به انتخاب وسیله ، زمان حرکت و … بر می گردند و در حقیقت برنامه ریزی های فرعی اند . به این فهرست که از مراحل کار تهیه می شود الگوریتم گفته می شود .

برای فهم راحت الگوریتم فلوچارتی تهیه می شود که این فلوچارت مبنای نوشتن بخش های مختلف یک نرم افزار قرار می گیرد . در مرحله ی بعد با تهیه ی فلوچارت ما باید این فلوچارت را به زبان ماشین تبدیل کنیم که به این مرحله اصطلاحا کامپایل کردن می گویند[3] .

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

 

1- تعیین هدف  مشخص ساختن این که برنامه چه کاری انجام می دهد .

2- تهیه ی فهرستی از مراحل کار   الگوریتم

 

3- تهیه ی فلوچارت  قابل فهم کردن الگوریتم

4- نگارش مدل ها براساس فلو چارت  تهیه ی مدل نرم افزاری

 

5- نهایی کردنsource code   اضافه نمودن مجموعه ی دستورات از پیش آماده برای اجرا

6- کامپایل کردن  برگرداندن فلوچارت به زبان ماشین توسط کامپایلر

 

7- آزمایش obiect code  آزمایش نرم افزار برای تصحیح خطاهای احتمالی

8- نهایی کردن نرم افزار   اتمام کار ساخت نرم افزار

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

مراحل ساخت و تولید نرم افزار :

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

حال می خواهیم الگوریتمی بنویسیم و آن را به صورت نموداری نشان دهیم ؛

اگر هدف ما نوشتن الگوریتمی باشد که دو عدد از ورودی دریافت کند و سپس تعیین شود که مجموع دو عدد بزرگ تر از 20  است یا خیر به این شکل نوشته می شود :

شروع :

 

1- دو عدد bوa را از ورودی دریافت کن

2- a +b  را محاسبه کن

 

3- آیا a +b>20     است ؟ اکر بلی برو به مرحله ی 6

4- بنویس خیر

 

5- به مرحله ی 7 برو

6- بنویس بلی

7- پایان

[1] . امیر صادقی نشاط ، پیشین،ص59.

[2] . سید حسن میر حسینی، مقدمه ای بر حقوق مالکیت معنوی، پیشین ، ص 92 .

. [3] امیر صادقی نشاط، پیشین،ص63.

با این سیر مختصر دریافتیم که نرم افزارها همچون بیشتر آثار ادبی و هنری ماهیتی نوشتاری دارند . ما در بقیه ی آثار ادبی و هنری هم ابتدا زمانی که می خواهیم دست به خلق اثر بزنیم هدف خود را تعیین       می کنیم در ذهن و یا بر روی کاغذ مراحل کار را ترسیم می کنیم و اثر را خلق می کنیم ، البته بایستی دانست برخی از آثار ادبی و هنری نیز هستند که ماهیتی نوشتاری ندارند اما ما با توسل به نمادهای بارز این آثار به مقایسه می پردازیم .

در این جا این شباهت ها را با کتاب که یکی از بارزترین آثار ادبی است نشان می دهیم . برای نوشتن یک کتاب نویسنده در ابتدای امر هدف خود را از پدیدآوردن مشخص می نماید سپس به تهیه ی نقشه ی راه یا همان پلان می پردازد که بدون داشتن پلان مناسب اثر پدید آمده اثر شایسته ای نخواهد بود . در حقیقت در این مرحله فصل بندی کتاب با جزئیات آن نشان داده می شود این شباهت تا جایی است که در هر دو اثر، پدید آورنده با زبان انسانی آن ها را می نویسد . یکی از دیگر شباهت های کتاب و نرم افزار در قابلیت ترجمه ی آنها به زبانی دیگر است در نرم افزار از زبان انسان به زبان کامپیوتر ( ماشین ) یا بالعکس و در کتب از زبان مردمی به زبان مردم دیگر مثل ترجمه از زبان فارسی به انگلیسی و بالعکس .

ب ) بخش های غیر نوشتاری نرم افزار

همان طور که دیدیم بخش های نوشتاری نرم افزار شامل متن خود نرم افزار بود که اول به زبان انسان و سپس به   Object code( زبان کامپیوتر ) تبدیل می شود اما این همه ی مسئله نیست نرم افزار علاوه بر دستورات الگوریتم و تحلیل نیاز را نیز شامل می شود به عبارت دیگر همه ی اهمیت نرم افزار به عملکرد آن نیست .

الگوریتم که همان ساختار نرم افزار است از بخش های غیر نوشتاری نرم افزار محسوب می شود جالب است بدانیم که حمایت از نرم افزارها معمولا تنها به شکل ظاهری آن ها یعنی مرحله ی              Object code محدود می شود و قبل از این حمایتی صورت نمی گیرد و ایراد اساسی این است که به راحتی می شود قسمت اصلی که تحلیل نیازها و تهیه ی الگوریتم است را مورد استفاده قرار داد .

شاید بتوان یکی از دلایل عدم حمایت از قسمت های دیگر نرم افزار را هدف قانون گذار در پیشرفت دانش دانست و همین امر باعث اختلاف نظر میان گروه هایی شده است که برخی خواهان حمایت حداکثری از نرم افزارهای تولیدی هستند و عنوان می دارند بایستی از این مرحله هم حمایت به عمل آید تا تولید و سرمایه گذاری بیشتری انجام شود وگروهی که اعتقاد آن ها بر این است که با این امر جلوی پیشرفت دانش گرفته می شود و حمایت وسیع از نرم افزارها باعث می شود که پدیدآورندگان آثار جدید با مشکلاتی همچون اجازه ی بهره برداری در مورد آثاری که اندک بهره ای از آنها برده ، روبرو شوند .

برای دانلود متن کامل فایل این  پایان نامه می توانید  اینجا کلیک کنید