به " ادامه مطلب " توجه بفرمائید
به "ادامه مطلب" توجه بفرمائید
HTML سرواژهٔ HyperText Markup Language و به معنای « زبان نشانهگذاری اَبَرمتن » است (که البته برخی آنرا « زبان علامتگذاری فرامتن » ترجمه کردهاند).
اچتیامال، سنگِبنای وب است؛ یک زبان رایانهای که برای تدوین قالب و طراحی صفحات وب به کار برده میشود. دستورالعملهای این زبان، برچسب (Tag) نام دارند که محتوای یک صفحهٔ وب، به وسیلهٔ آنها، نشانهگذاری شده و بدینترتیب، نحوهٔ نمایش آن صفحه برای مرورگرهای وِب، توصیف میشود. هر یک از برچسبهای اچتیامال، معنا و مفهوم خاصی دارند و تأثیر مشخصی بر محتوا میگذارند؛ مثلاً برچسبهایی برای تغییر شکل ظاهری متن، نظیر درشت و ضخیم کردن یک کلمه یا برقراری پیوند (Link) به صفحات دیگر در اچتیامال تعریف شدهاند. یک سند اچتیامال، یک پرونده مبتنی بر متن (Text–based) است که معمولاً با پسوند .htm یا .html نامگذاری شده و محتویات آن از برچسبهای اچتیامال تشکیل میشود.
مرورگرهای وب، که قادر به درک و تفسیر برچسبهای اچتیامال هستند، تکتک آنها را از داخل سند اچتیامال خوانده و سپس محتوای آن صفحه را نمایانسازی (Render) میکنند. اچتیامال یک زبان برنامهنویسی نیست، بلکه زبانی برای نشانهگذاری ابرمتن است و اساساً برای ساختمندکردن اطلاعات و تفکیک اجزای منطقی یک نوشتار — نظیر عناوین، تصاویر، فهرستها، بندها و جداول — به کار میرود. از سوی دیگر، اچتیامال را نباید به عنوان زبانی برای صفحهآرایی یا نقاشی صفحات وب به کار بُرد؛ این وظیفه اکنون بر دوش فناوریهای دیگری چون شیوهنامههای آبشاری است. گفتنی است اچتیامال شکلی از زبان دیگری بنام اس.جی.ام.ال است و « کنسرسیوم وب جهان گستر » آنرا به عنوان استانداردی برای نشانهگذاری مستندات ابرمتنی برای عرضه در وب، تدوین کرده است.
جمع آوري : علي نجف زاده (دانشجوي رشتة نرم افزار كامپيوتر)
برگرفته از سايت چشمک
به " ادامه مطلب " توجه بفرمائید
برای مطالعه کامل مقاله به "ادامه مطلب" توجه بفرمائید
مسائل اصلی مهندسی نرمافزار تولید نرمافزار بر اساس موارد زیر است:
کاربردهای مهندسی نرمافزار دارای ارزشهای اجتماعی و اقتصادی هستند، زیرا بهرهوری مردم را بالا برده، چند و چون زندگی آنان را بهتر میکنند. مردم با بهرهگیری از نرمافزار، توانایی انجام کارهایی را دارند که قبل از آن برایشان شدنی نبود. نمونههای از این دست نرمافزارها عبارتاند از: سامانههای توکار، نرم افزار اداری، بازیهای رایانهای، و اینترنت.
فناوریها و خدمات مهندسی نرم افزار به کاربران برای بهبود بهرهوری و کیفیت یاری میرساند. نمونههایی از زمینههای بهبود: دادگان، زبانها، کتابخانهها، الگوها، فرآیندها و ابزار.
تعریف مهندسی نرم افزار
مهندسی نرم افزار طراحی،برنامه نویسی، توسعه، مستند سازی و نگهداری نرم افزار با بکارگرفتن روشهای فنی و عملی از علوم کامپیوتر ، مدیریت پروزه ، مهندسی ، محدوده کاربرد، طراحی رابط، مدیریت تجهیزات دیجیتال و سایر زمینهها است.
اصطلاح مهندسی نرم افزار بعد از سال ۱۹۶۸ شناخته شد، طی کنفرانس مهندسی نرم افزار ناتو ۱۹۶۸ (که در گارمیش آلمان برگزار شد) توسط ریاست کنفرانس F.L. Bauer معرفی شد، و از آن پس بطور گسترده مورد استفاده قرار گرفت.
اصطلاح مهندسی نرمافزار
عنوان پیوند*بهعنوان یک اصطلاح غیر رسمی امروزی برای محدوده وسیع فعالیتهایی که قبلا برنامهنویسی و تحلیل سیستمها نامیده میشد.
مهندسی نرم افزار به مفهوم، توسعه و بازبینی یک سیستم نرم افزاری مربوط است. این رشته علمی با شناسایی، تعریف، فهمیدن، و بازبینی خصوصیات مورد نیاز نرم افزار حاصل سر و کار دارد. این خصوصیات نرم افزاری ممکن است شامل : پاسخگویی به نیازها، قابلیت اطمینان، قابلیت نگهداری، در دسترس بودن، قابلیت تست، استفاده آسان، قابلیت حمل و سایر خصوصیات باشد مهندسی نرم افزار اشاره میکند به این خصوصیات با آماده کردن مشخصات معین طراحی و فنی که ، اگر بدرستی پیاده سازی شود، نرم افزاری را تولید خواهد کرد که میتواند بررسی شود که آیا این نیازمندیها را تامین میکند یا خیر.
مهندسی نرم افزار همچنین با خصوصیات پروسه توسعه نرم افزاری در ارتباط است. در این خصوص، با خصوصیاتی مانند هزینه توسعه نرم افزار، طول مدت توسعه نرم افزار، و ریسکهای توسعه نرم افزار درگیر است.
نرم افزار عموماً از محصولات و موقعیتهایی شناخته میشود که قابلیت اطمینان زیادی از آن انتظار میرود، حتی در شرایط طاقت فرسا، مانند نظارت و کنترل نیروگاههای انرژِی هستهای، یا هدایت یک هواپیمای مسافربری در هوا، چنین برنامههایی شامل هزاران خط کد هستند، که از نظر پیچیدگی با پیچیده ترین ماشینهای مدرن قابل مقایسهاند. بهعنوان مثال یک هواپیمای مسافربری چند میلیون قطعه فیزیکی دارد (و یک شاتل فضایی خدود ده میلیون بخش دارد)، در حالی که نرم افزار هدایت چنین هواپیمایی میتواند تا ۴ میلیون خط کد داشته باشد.
مهندسین نرم افزار طرفدار تکنولوژیها و روشهای عملی بسیار متفاوت و مختلفی هستند، که با هم ناسازگارند. این بحث در سالهای دهه ۶۰ میلادی شروع شد و ممکن است برای همیشه ادامه پیدا کند. مهندسین نرم افزار از تکنولوژیها و روشهای عملی بسیار متنوعی استفاده میکنند. کسانی که کار عملی میکنند از تکنولوژیهای متنوعی استفاده میکنند : کامپایلرها، منابع کد، پردازشگرهای متن. کسانی که کار عملی میکنند از روشهای عملی بسیار متنوعی استفاده میکنند تا تلاشهایشان را اجرا و هماهنگ کنند : برنامه نویسی در دستههای دونفری، بازبینی کد، و جلسات روزانه. هدف هر مهندس نرم افزار بایستی رسیدن به ایدههای جدید خارج از مدلهای طراحی شده قبلی باشد، که باید شفاف بوده و بخوبی مستند شده باشد.
با وجود رشد فزاینده اقتصادی و قابلیت تولید فزایندهای که توسط نرم افزار ایجاد شده ، هنوز هم بحث و جدلهای ماندگار درباره کیفیت نرم افزار ادامه دارند.
David Parnas گفتهاست که مهندسی نرم افزار یک شکل از مهندسی است. Steve McConnell گفتهاست که هنوز اینطور نیست، ولی مهندسی نرم افزار باید یک شکل از مهندسی بشود. Donald Knuth گفتهاست که برنامه نویسی یک هنر است.
دیوان فعالیتهای آماری آمریکا دسته بندی کردهاست مهندسان نرم افزار را به عنوان زیرگروهی از «متخصصین کامپیوتر»، با فرصتهای شغلی ای مانند دانشمند کامپیوتر، برنامه نویس، و مدیر شبکه. BLS دسته بندی میکند تمام مهندسین دیگر این شاخه علمی ، که شامل مهندسین سخت افزار کامپیوتر نیز هست، را بهعنوان «مهندسین» .
مهندسی کامپیوتر به عنوان رشته دانشگاهی (ایران)
این رشته در ابتدا تحت پوشش رشتهای به نام انفورماتیک و تحت نظر دانشکدههای ریاضی تدریس میشد. هم اکنون این رشته در اکثر دانشگاهها با عنوان مهندسی کامپیوتر و تحت نظر دانشکده فنی (یا مهندسی) ارائه میگردد.
در این قوانین
برای ورود به دوره ی کارشناسی ارشد باید مثل همه ی مقاطع در ایران از سد کنکور گذشت ، در کنکور دانشگاه های دولتی از مباحث زیر برای هر گرایش سؤال مطرح می شود: 1- زبان عمومی وتخصصی با ضریب 1
2-ریاضیات:( ریاضی مهندسی،آمارواحتمالات، محاسبات عددی ، ساختمان های گسسته) با ضریب 2
3- دروس مشترک:( ساختمان داده ها، نظریه ی زبان ها و ماشین ها، مدارهای منطقی، معماری کامپیوتر، سیستم عامل) با ضریب 4
4- الف) دروس تخصصی معماری کامپیوتر:( VLSI، الکترونیک دیجیتال ، انتقال داده)
ب) دروس تخصصی هوش مصنوعی: ( طراحی الگوریتم ها، هوش مصنوعی)
ج) دروس تخصصی نرم افزار:(کامپایلر، زبان های برنامه سازی، طراحی الگوریتم، پایگاه داده) با ضریب "2"
د) دروس تخصصی الگوریتم ها و محاسبات (کامپایلر، زبان های برنامه سازی، طراحی الگوریتم، پایگاه داده) با ضریب "3"
و در مقطع دکترا از دروس زیر برای سه گرایش سؤال مطرح می شود:
1- مهندسی کامپیوتر _ نرم افزار
الف) مواد امتحان عمومی : 1-پایگاه داده2- نظریه ی زبان ها و ماشین ها3- ساختمان داده ها4- طراحی الگوریتم ها 5- کامپایلر 6- طراحی وپیاده سازی زبان های برنامه سازی7- سیستم عامل(40%)
ب) مواد امتحان اختصاصی: 1- سیستم عامل پیشرفته 2- پایگاه داده ی پیشرفته3- الگوریتم های موازی (60%)
2- مهندسی کامپیوتر_ معماری کامپیوتر
الف) مواد امتحان عمومی: 1- معماری کامپیوتر2- الکترونیک دیجیتال3- انتقال داده ها4- شبکه های کامپیوتری5- سیستم عامل 6- VLSI
(40%)
ب) مواد امتحان اختصاصی:1- معماری کامپیوتر پیشرفته 2- شبکه های کامپیوتری پیشرفته3- مدل سازی سخت افزار و متد های طراحی آن (60%)
3- مهندسی کامپیوتر _ هوش مصنوعی
الف) مواد امتحان عمومی:1- مدار منطقی 2- نظریه ی زبان ها و ماشین ها3- ساختمان داده ها 4- طراحی الگوریتمها 5- هوش مصنوعی 6-سیگنال ها وسیستم ها(40%)
ب-) مواد امتحان اختصاصی: 1- سیستم های خبره(50%) و منطق فازی (50%)2- شناسایی آماری الگو 3- شبکه های عصبی 4- پردازش تکاملی 5- یکی از دروس پردازش و شناسایی گفتار، تصویر پردازی رقمی (60%)
ریشهٔ واژه
ریشه واژهٔ مهندس واژه فارسی اندازه است. این واژه در فارسی میانه به گونهٔ هندسه تلفظ میشده که پس از وام گرفته شدن این واژه از سوی عربی و صرف آن در یکی از بابهای آن زبان واژه مهندس به معنی اندازه گر از آن ساخته شده است. اما امروزه مهندس به کسی اطلاق میشود که به یکی از علوم مهندسی آشنا باشد و در میان عامه کسی که هندسه بداند را مهندس خطاب نمیکنند.
پیشینه
در ابتدا, مهندس به کسی گفته می شد که ماشین های نظامی را می راند. مفهوم مهندس غیر نظامی در قرن شانزدهم در هلند پدید آمد و به سازندگان پلها وجاده ها نسبت داده می شد, و سپس این مفهوم درانگلیس وسایر کشورها هم ظاهر شد.
وظایف مهندسی بدین گونهاند که یک مهندس میبایست محدودیتهای مربوطه را تشخیص دهد تا بتواند به دستاوردهای لازم برسد. محدودیتها شامل منابع در دسترس، محدودیتهای جسمانی یا فنی، آمادگی برای پیرایشها یا افزایشهای آینده، و دیگر عاملها مانند نیازهای هزینه ای، ساختپذیر بودن، و کاربردی بودن میباشد. با درک این محدودیت ها، مهندس، شناسهها و مشخصات حدودی که یک شیء یا سامانه میتواند در چارچوب آن ساخته شود را مشخص کرده و ارائه میدهد. از اینرو ملاحظات بسیاری بر روی کار مهندسی تأثیر دارند.
از ویکیپدیا، دانشنامهٔ آزاد
نام
در زبان انگلیسی «کامپیوتر» به کسی میگفتند که محاسبات ریاضی را (بدون ابزارهای کمکی مکانیکی) انجام میداد. بر اساس «واژهنامه ریشهیابی Barnhart Concise» واژه کامپیوتر در سال ۱۶۴۶ به زبان انگلیسی وارد گردید که به معنی «شخصی که محاسبه میکند» بودهاست و سپس از سال ۱۸۹۷ به ماشینهای محاسبه مکانیکی گفته میشد. در هنگام جنگ جهانی دوم «کامپیوتر» به زنان نظامی انگلیسی و آمریکایی که کارشان محاسبه مسیرهای شلیک توپهای بزرگ جنگی توسط ابزار مشابهی بود، اشاره میکرد.
در اوایل دهه ۵۰ میلادی هنوز اصطلاح ماشین حساب (computing machines) برای معرفی این ماشینها بهکار میرفت. پس از آن عبارت کوتاهتر کامپیوتر (computer) بهجای آن بهکار گرفته شد. ورود این ماشین به ایران در اوائل دهه ۱۳۴۰ بود و در فارسی از آن زمان به آن «کامپیوتر» میگفتند. واژه رایانه در دو دهه اخیر در فارسی رایج شده و بهتدریج جای «کامپیوتر» را گرفت.
برابر این واژه در زبانهای دیگر حتما همان واژه زبان انگلیسی نیست. در زبان فرانسوی واژه "ordinateur"، که معادل «سازمانده» یا «ماشین مرتبساز» میباشد بهکار میرود. در اسپانیایی "ordenador" با معنایی مشابه استفاده میشود، همچنین در دیگر کشورهای اسپانیایی زبان computadora بصورت انگلیسیمآبانهای ادا میشود. در پرتغالی واژه computador بهکار میرود که از واژه computar گرفته شده و به معنای «محاسبه کردن» میباشد. در ایتالیایی واژه "calcolatore" که معنای ماشین حساب بکار میرود که بیشتر روی ویژگی حسابگری منطقی آن تاکید دارد. در سوئدی رایانه "dator" خوانده میشود که از "data" (دادهها) برگرفته شدهاست. به فنلاندی "tietokone" خوانده میشود که به معنی «ماشین اطلاعات» میباشد. اما در زبان ایسلندی توصیف شاعرانهتری بکار میرود، «tölva» که واژهایست مرکب و به معنای «زن پیشگوی شمارشگر» میباشد. در چینی رایانه «dian nao» یا «مغز برقی» خوانده میشود. در انگلیسی واژهها و تعابیر گوناگونی استفاده میشود، بهعنوان مثال دستگاه دادهپرداز («data processing machine»).
لایبنیتز (leibniz) ریاضیدان آلمانی از نخستین کسانی است که در ساختن یک دستگاه خودکار محاسبه کوشش کرد. او که به پدر حسابدارش در تنظیم حسابها کمک میکرد، از زمانی که برای انجام محاسبات صرف میکرد ناراحت بود.
چارلز بابیج (Charles Babbage) یکی از اولین ماشینهای محاسبه مکانیکی را که به آن ماشین تحلیلی گفته میشد، طراحی نمود، اما بخاطر مشکلات فنی فراوان مورد استفاده قرار نگرفت.
در گذشته دستگاههای مختلف مکانیکی سادهای مثل خطکش محاسبه و چرتکه نیز کامپیوتر خوانده میشدند. در برخی موارد از آنها بهعنوان کامپیوترهای آنالوگ نام برده میشود. چراکه برخلاف کامپیوترهای رقمی، اعداد را نه بهصورت اعداد در پایه دو بلکه بهصورت کمیتهای فیزیکی متناظر با آن اعداد نمایش میدهند. چیزی که امروزه از آن بهعنوان «کامپیوتر» یاد میشود در گذشته به عنوان «کامپیوترهای رقمی (دیجیتال)» یاد میشد تا آنها را از انواع «کامپیوترهای آنالوگ» جدا سازد(که هنوز در برخی موارد استفاده میشود مثلاً نشانک پرداز آنالوگ (analog signal processing).
داده به آن دسنه از ورودیهایی خام گفته میشود که برای پردازش به رایانه ارسال میشوند.
اطلاعات به دادههای پردازش شده میگویند.
رایانهها چگونه کار میکنند؟
از زمان رایانههای اولیه که در سال ۱۹۴۱ ساخته شده بودند تا کنون فناوریهای دیجیتالی رشد نمودهاست، معماری فون نوِیمن یک رایانه را به چهار بخش اصلی توصیف میکند: واحد محاسبه و منطق (Arithmetic and Logic Unit یا ALU)، واحد کنترل یا حافظه، و ابزارهای ورودی و خروجی ( که جمعا I/O نامیده میشود). این بخشها توسط اتصالات داخلی سیمی به نام گذرگاه (bus) با یکدیگر در پیوند هستند.
در این سامانه، حافظه بصورت متوالی شماره گذاری شده در خانهها است، هرکدام محتوی بخش کوچکی از دادهها میباشند. دادهها ممکن است دستورالعملهایی باشند که به رایانه میگویند که چه کاری را انجام دهد باشد. خانه ممکن است حاوی اطلاعات مورد نیاز یک دستورالعمل باشد. اندازه هر خانه، وتعداد خانهها، در رایانهٔ مختلف متفاوت است، همچنین فناوریهای بکاررفته برای اجرای حافظه نیز از رایانهای به رایانه دیگر در تغییر است(از بازپخشکنندههای الکترومکانیکی تا تیوپها و فنرهای پر شده از جیوه و یا ماتریسهای ثابت مغناطیسی و در آخر ترانزیستورهای واقعی و مدار مجتمعها با میلیونها خازن روی یک تراشه تنها).
واحد محاسبه و منطق یا ALU دستگاهی است که عملیات پایه مانند چهار عمل اصلی حساب (جمع و تفریق و ضرب و تقسیم)، عملیات منطقی (و،یا،نقیض)، عملیات قیاسی (برای مثال مقایسه دو بایت برای شرط برابری) و دستورات انتصابی برای مقدار دادن به یک متغیر را انجام میدهد. این واحد جائیست که «کار واقعی» در آن صورت میپذیرد. البته CPUها به دو دسته کلی RISC و CISC تقسیم بندی میشوند. نوع اول پردازشگرهای مبتنی بر اعمال ساده هستند و نوع دوم پردازشگرهای مبتنی بر اعمال پیچیده میباشند. پردازشگرهای مبتنی بر اعمال پیچیده در واحد محاسبه و منطق خود دارای اعمال و دستوراتی بسیار فراتر از چهار عمل اصلی یا منطقی میباشند. تنوع دستورات این دسته از پردازندهها تا حدی است که توضیحات آنها خود میتواند یک کتاب با قطر متوسط ایجاد کند. پردازندههای مبتنی بر اعمال ساده اعمال بسیار کمی را پوشش میدهند و در حقیقت برای برنامهنویسی برای این پردازندهها بار نسبتاً سنگینی بر دوش برنامهنویس است. این پردازندهها تنها حاوی ۴ عمل اصلی و اعمال منطقی ریاضی و مقایسهای به علاوه چند دستور بیاهمیت دیگر میباشند.هرچند ذکر این نکته ضروری است که دستورات پیچیده نیز از ترکیب تعدادی دستور ساده تشکیل شدهاند و برای پیادهسازی این دستورات در معماریهای مختلف از پیادهسازی سختافزاری(معماری CISC) و پیادهسازی نرمافزاری(معماری RISC) استفاده میشود.
(قابل ذکر است پردازندههای اینتل از نوع پردازنده مبتنی بر اعمال پیچیده میباشند.)
واحد کنترل همچنین این مطلب را که کدامین بایت از حافظه حاوی دستورالعمل فعلی اجرا شوندهاست را تعقیب میکند، سپس به واحد محاسبه و منطق اعلام میکند که کدام عمل اجرا و از حافظه دریافت شود و نتایج به بخش اختصاص داده شده از حافظه ارسال گردد. بعد از یک بار عمل، واحد کنترل به دستورالعمل بعدی ارجاع میکند(که معمولاً در خانه حافظه بعدی قرار دارد، مگر اینکه دستورالعمل جهش دستورالعمل بعدی باشد که به رایانه اعلام میکند دستورالعمل بعدی در خانه دیگر قرار گرفتهاست).
www.wikipeda.org معماری کامپیوتر نوشته موریس مانو
طراحی و معماری کامپیوتر نوشته پترسون
www.elecomp87.blogfa.com الکامپ 87 دنیای رایانه