HW2.pdf

‫دانشکده مهندسی کامپیوتر‬
‫دانشگاه صنعتی شریف‬
‫بسمهتعالی‬
‫تمرین اول مهندسی کاربرد‬
‫موعد تحویل‪ ۹ :‬دی ‪۱۳۹۴‬‬
‫استاد درس‪ :‬مهندس فرهادی‬
‫نیمسال اول‬
‫سال تحصیلی ‪۱۳۹۴-۹5‬‬
‫تمرین دوم مهندسی کاربرد‬
‫هدف تمرین‬
‫هدف از این تمرین‪ ،‬مطالعه و آشنایی با چارچوبهای یکپارچهسازی سازمانی و پیادهسازی عملی یک سناریو با این ابزارها است‪ .‬در این‬
‫تمرین شما با استفاده از چارچوب ‪ Apache Camel‬یک نمونه ساده از یکپارچهسازی منابع موجود را پیادهسازی خواهید کرد‪.‬‬
‫صورت تمرین‬
‫شما در یک شرکت بینالمللی مشغول به کار هستید که ساختمان مرکزی آن در یک کشور اروپایی قرار دارد! دفاتر دیگر شرکت در‬
‫سرتاسر جهان مستقر بوده و هرکدام با ارزهای مختلفی کار میکنند‪ .‬دارایی موجود در هریک از شعبات در قالب یک فایل متنی ذخیره‬
‫شده و به صورت روزمره برای دفتر مرکزی ارسال میشود‪ .‬وظیفه شما‪ ،‬محاسبه مجموع دارایی شرکت و ذخیره آن در یک فایل جدید‬
‫است‪ .‬برای محاسبه مجموع دارایی‪ ،‬از فایل ‪ xml‬موجود در آدرس زیر استفاده کنید‪:‬‬
‫‪http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml‬‬
‫در این فایل‪ ،‬تمامی ارزهایی که ممکن است در شرکت مورد استفاده قرار گیرد‪ ،‬به همراه نرخ تبدیل یورو به هرکدام قرار گرفته است‪ .‬از‬
‫طریق لینک زیر میتوانید اطالعات بیشتری در خصوص این لیست به دست آورید‪.‬‬
‫‪http://www.ecb.europa.eu/stats/exchange/eurofxref/html/index.en.html‬‬
‫(شایان ذکر است‪ ،‬این شرکت رژیم اشغالگر قدس را به دلیل ارتکاب جنایات جنگی در برابر ملت مظلوم فلسطین تحریم کرده و لذا در‬
‫هیچیک از شعب‪ ،‬از واحد پول ‪ ILS‬استفاده نخواهد شد!)‬
‫در این تمرین شما باید فعالیتهای زیر را به انجام برسانید‪:‬‬
‫‪ -۱‬بسته نرمافزاری ‪ Maven‬را نصب کرده و یک پروژه جدید با آن ایجاد کنید‪ .‬میتوانید از نسخههای ‪ Eclipce‬یا ‪ Intellij‬دارای‬
‫‪ Maven‬هم استفاده کنید‪ .‬توصیه میشود که ‪ Archetype‬پروژه خود را ‪ quickstart‬انتخاب نمایید‪.‬‬
‫‪ -2‬پیشنیازهای الزم برای کار با ‪ Apache Camel‬را در ‪ Maven‬تعریف کنید‪ .‬حداقل نیازمندیها بستههای‪ camel-core ،‬و‬
‫‪ camel-http4‬هستند اما میتوانید از هر بسته دیگری که میخواهید نیز استفاده کنید‪.‬‬
‫‪ -۳‬برنامهای به زبان جاوا و با استفاده از ‪ ۱Apache Camel DSL‬بنویسید که وظایف زیر را به انجام برساند‪:‬‬
‫‪ -۱-۳‬فایلهای موجود در پوشه ‪ branches‬را خوانده و آنها را ادغام کند‪.‬‬
‫‪ -2-۳‬با اتصال به اینترنت و دریافت فایل ‪ xml‬مذکور‪ ،‬نرخهای تبدیل ارزهای مختلف به یورو را دریافت کند‪.‬‬
‫‪ -۳-۳‬تمامی ارزها را به یورو تبدیل کرده و مجموع آنها را محاسبه کند‪.‬‬
‫‪ -۴-۳‬به عنوان خروجی‪ ،‬در یک فایل متنی با نام ‪ Sum.txt‬دارایی شرکت در قالب هر ارز را به صورت سطربهسطر نوشته‬
‫و در انتها مجموع آنها را به یورو در یک سطر مجزا قرار دهد‪ .‬محاسبات اعشاری را تا دو رقم انجام دهید‪.‬‬
‫‪Domain Specific Language‬‬
‫‪۱‬‬
‫‪۱‬‬
‫دانشکده مهندسی کامپیوتر‬
‫دانشگاه صنعتی شریف‬
‫استاد درس‪ :‬مهندس فرهادی‬
‫نیمسال اول‬
‫سال تحصیلی ‪۱۳۹۴-۹5‬‬
‫بسمهتعالی‬
‫تمرین اول مهندسی کاربرد‬
‫موعد تحویل‪ ۹ :‬دی ‪۱۳۹۴‬‬
‫مثالی از یک اجرای برنامه در زیر قابل مشاهده است‪ .‬با چنین ورودیهایی ‪ ،‬پس از اجرای برنامه شما‪ ،‬باید فایلی مشابه آنچه در ادامه‬
‫قرار گرفته است تولید شده و اطالعات تجمیعشده درون آن وارد شوند‪:‬‬
‫‪450 USD‬‬
‫‪1100 TRY‬‬
‫‪7100 USD‬‬
‫‪940 GBP‬‬
‫‪1180 CAD‬‬
‫‪87600 JPY‬‬
‫‪110 USD‬‬
‫‪320 SGD‬‬
‫‪87600 JPY‬‬
‫‪7660 USD‬‬
‫‪940 GBP‬‬
‫‪320 SGD‬‬
‫‪1180 CAD‬‬
‫‪1100 TRY‬‬
‫‪10353.30 EURO‬‬
‫‪2‬‬
‫دانشکده مهندسی کامپیوتر‬
‫دانشگاه صنعتی شریف‬
‫بسمهتعالی‬
‫تمرین اول مهندسی کاربرد‬
‫موعد تحویل‪ ۹ :‬دی ‪۱۳۹۴‬‬
‫استاد درس‪ :‬مهندس فرهادی‬
‫نیمسال اول‬
‫سال تحصیلی ‪۱۳۹۴-۹5‬‬
‫نکات مهم‬
‫به منظور انجام مطلوب تمرین‪ ،‬توجه به نکات زیر ضروری است‪:‬‬
‫‪ ‬پاسخهای خود را در قالب پوشه ‪ src‬حاوی فایلهای ‪ .java‬و یک فایل ‪ pom.xml‬مربوط به ‪ Maven‬تحویل دهید‪.‬‬
‫‪ ‬مطالب موردنیاز در این تمرین به صورت کامل در کتاب ‪ Camel in Action‬و همچنین وبسایت پشتیبانی این محصول به آدرس‬
‫‪ http://camel.apache.org‬قابل دسترسی هستند‪.‬‬
‫‪ ‬پاسخ خود را در یک فایل ‪ zip‬فشرده کرده و تا زمان مقرر‪ ،‬به آدرس ‪ [email protected]‬ارسال نمایید‪.‬‬
‫‪ ‬برای این تمرین‪ ،‬جلسه توضیح و پرسش و پاسخ درنظر گرفته شده است که زمان آن اطالعرسانی خواهد شد‪.‬‬
‫‪ ‬مشورت و تبادل نظر در خصوص تمرین آزاد بوده و توصیه میشود‪ .‬ولی تمرین باید صورت فردی انجام شود؛ به این معنی که کدهای‬
‫هرکس باید تمام و کمال توسط وی تهیه شده باشد‪ .‬هرگونه رونوشت از کد دیگران تقلب محسوب شده و به هر دو طرف نمره صفر‬
‫تعلق خواهد گرفت‪.‬‬
‫‪۳‬‬