PDA

View Full Version : لایه مرتبط با سخت افزار کدام است؟



leilav_1984
چهارشنبه 20 تیر 1386, 15:03 عصر
سلام به همگی
من مشغول انجام پروژه ای هستم که یه Windows Application هست برای کنترل و مانیتورینگ یک سوئیچ مخابراتی
سوالم اینه که کلاسهایی که به دستگاه فرمان می دن یا فرمان رسیده از اونو می خونن و ... خلاصه روی پورت COM چیزهایی می نویسن یا می خونن تو کدام منطق برنامه باید قرار داده بشن؟
UserInterface یا Business یا Data هیچکدوم به نظر درست نمی رسه
آیا منطق دیگه ای باید اضافه کرد؟

اَرژنگ
چهارشنبه 20 تیر 1386, 15:22 عصر
بله، حداقل یک لایه Hardware که به سخت افزار فرمان میده و از سخت افزار اطلاعات را بگیره لازم است، ولی اگر قراره که با دستگاه‌هایه مختلف کار کنید در آن سورت ممکنه که این لایه را هم به چند لایه دیگر تقسیم کنید.

manager
چهارشنبه 20 تیر 1386, 18:28 عصر
لایه های برنامه شما رو سطح انتزاع شما مشخص می کنه. بسته به View شما ارتباط با پورت می تونه در لایه های پائین و یا لایه های بالا تر باشه. دقیقا مثل مدل OSI (از نظر سطوح انتزاعی). به نظر من در پروژه شما ارتباط با پورت ها باید در پائین ترین لایه ها صورت بگیره. به همین ترتیب هرچه به لایه های بالاتر نزدیک تر می شیم، توجه ما به کاربر و منطق برنامه بیشتر می شه در حالی که در لایه های پائین شما دقدقه ارسال بایت به پرت و سرومله زدن با Hardware رو دارید.

whitehat
پنج شنبه 21 تیر 1386, 08:46 صبح
من مشغول انجام پروژه ای هستم که یه Windows Application هست برای کنترل و مانیتورینگ یک سوئیچ مخابراتی
سوالم اینه که کلاسهایی که به دستگاه فرمان می دن یا فرمان رسیده از اونو می خونن و ... خلاصه روی پورت COM چیزهایی می نویسن یا می خونن تو کدام منطق برنامه باید قرار داده بشن؟
UserInterface یا Business یا Data هیچکدوم به نظر درست نمی رسه

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

leilav_1984
چهارشنبه 27 تیر 1386, 08:57 صبح
این سوال شما بسیار بستگی به این داره که شما دنبال چی هستید، آیا می خواهید دیاگرام خاصی را بکشید؟ متدلوژی شما چیه و می خواهید از چه معماری ای استفاده کنید؟ محدوده پروژه شما چیست ؟
در کل چیزی که من می بینم فکر می کنم شما یک عامل (Actor) سوئیچ دارید ، یک کلاس Interface که با پورت Com درگیر است، و چند کلاس برای کنترل سوئیچ. اگر جواب سوال ها را بدهید بهتر میشه راهنمایی کرد.
موفق باشید

صورت مساله تقریبا همینه که شما می گین
البته هنوز در ابتدای مرحله تحلیل هستیم و دیاگرامها کامل مشخص نیستن
متدولوژی OO هست و راجع به معماری هم از شما اساتید راهنمایی می خوام

whitehat
چهارشنبه 27 تیر 1386, 19:14 عصر
شما باید سوئیچ یا به عبارت بهتر پورت COM را بصورت یک عامل خارجی فرض کنید. برای طراحی سیستم بهتر است یک لایه را برای توابع و کلاسهایی در نظر بگیرید که مستقیما با پورت در ارتباط هستند.شما می بایست اینترفیسهای لازم را برای این لایه طراحی کنید بطوریکه توابع سخت افزاری از دید سایر لایه های سیستم نهان باشد(Transparency) اگر این موارد را رعایت کنید می توانید نام این لایه را لایه Hardware (یا به عبارت بهتر Middleware) بگذارید.
(البته من جواب سوال های ابتدای پست قبلم را نگرفتم)
برای این سیستم بهتره دیاگرامهای Sequence و Collaboration به همراه کلاس حتما کشیده شود.

leilav_1984
شنبه 30 تیر 1386, 10:43 صبح
شما می بایست اینترفیسهای لازم را برای این لایه طراحی کنید بطوریکه توابع سخت افزاری از دید سایر لایه های سیستم نهان باشد(Transparency) .

ممکنه راجع به این قسمت توضیح بیشتری بدین؟

whitehat
دوشنبه 01 مرداد 1386, 10:21 صبح
برای طراحی لایه های معماری و جدا کردن سطوح انتزاع از یک دیگر ،زمانیکه دارید کلاسی طراحی می کنید ،باید طوری طراحی بشه که کسی (برنامه /شخص دیگر) که قرار است از آن استفاده کند نیاز به دانستن جزئیات آن ندارد،مثلا شما از یک ماشین توقع دارید که حرکت کند بدون اینکه نیاز به دانستن چگونه عملکرد موتور آن داشته باشید
برای نیاز شما (البته من نمی دانم شما چه عملیاتی بر روی سوییچ انجام می دهید لذا یک مورد استفاده دیگر COM را مثال می زنم) فرض کنید شما می بایست برنامه ای بنویسید که قرار است یک Seven Segment را روشن کند
اگر شما بتوانید کلاسی بنویسید که مثلا با دادن عدد مثلا 8 بصورت String تمام سگمنت های Seven Segment را روشن کند شما دارای اینترفیس مناسببی برای کلاس خود هستید
اگر قراره این کلاس قسمتی از یک برنامه باشه فقط کافیه یک رشته را به اینترفیس کلاس بفرستد و آن عدد نمایش داده شود(در کلاس مربوطه باید ارتباط سخت افزاری برقرار شود ،عبارت ورودی پردازش شودو به بایتهای مناسب تبدیل شده و به سخت افزار فرستاده شود و احتمالا خطا در صورت وجود برگردد که همه این جزئیات از دید صدا زننده کلاس پنهان است)
موفق باشید

_alish_
دوشنبه 01 مرداد 1386, 14:52 عصر
با سلام
همانطور که دوست عزیزمان گفت دقیقا روشن نسیت که چه کاری می خواهید انجام دهید و سوالتان در کدام فاز بوده تا با همان دیدگاه جواب دهیم:
-در Inception phase,Elaboration با نظر دوستم موافقم ولی بیشتر باید در خصوص لایه ها بحث کرد،
- در خصوص Implimentation(construction) به سویچ انتخابی شما بستگی دارد ، در درجه اول در صورت ارتباط دوطرفه با سویچ پورت کام را پیشنهاد نمی کنم ، در درجه دوم دونبال TSP سویچهای مخابراتی بگرد، کار را ساده تر می کنند

leilav_1984
سه شنبه 02 مرداد 1386, 08:34 صبح
راجع به جزییات کار به دلایل غیر فنی نمی تونم توضیح بیشتری بدم... :هیییس: !!!

و راجع به انتخاب پورت COM هم که اینکار توسط کارفرما صورت گرفته و ما نه اختیار نه امکان تغییر نداریم
به هر حال از کمک همه دوستان ممنونم