۱۳۸۹ فروردین ۲۴, سه‌شنبه

تحقيق مهندسي نرم‌افزار براي 89/01/01


گروه با مديريت:

مهران جودوي: RUP - Rational Unified Process
علي رفيعي: SCM - Software Configuration Management
ايمان مرتضي زاده: CRM - Customer Relationship Management
فاطمه عبيري: ERP - Enterprise Resource Planning
محمدرضا رضايي: BSP - Business System Planning

۱۳۸۹ فروردین ۲۳, دوشنبه

جدي نگيريد!!


شانزده دلیل
برای «میوه فروش» شدن به جای «مهندس نرم افزار» شدن!

1- عدم وجود گارانتی: بعد از فروش نرم افزار باید آن را گارنتی کنی. برخلاف بسیاری از مشاغل که شما بابت
گارانتی پول اضافه می گیرد و نزد خود نگه می دارید، در نرم افزار بر عکس عمل می شود و این کارفرمای شماست که از شما تضمین (درصدی از قرارداد، چک تضمین، سفته و یا ضمانت نامه بانکی یا همه مواد) می گیرد. در حالیکه میوه فروشی گارانتی ندارد، جنس فروخته شده پس گرفته نمی شود.


2- بازه کوتاه زمان فروش: یک پروژه نرم افزاری ماهها طول می کشد و باعث فرسایش نیروی کار می شود در حالیکه در میوه فروشی، صبح زود بار میوه و سبزی می آوری، حداکثر تا ظهر سبزی ها تمام می شود، میوه ها هم، بسته به محیط شما، در مدت زمان کوتاهی فروش می روند و شما بازهم بار جدیدی می آورید.


3- تغییر نیاز ندارید: رایج است که نیازهای مشتری تازه زمانی آشکار می شود که شما نرم افزار را فروخته اید و مشتری متوقع است که در چارچوب همان قرارداد تغییرات اعمال شود، حتی اگر ماهیت تغییر کند. اما در میوه فروشی، خریدار که از مغازه خارج شد شما دیگر مسؤولیتی ندارید، اگر تصمیمش عوض شد، شما نگران نیستید، یک کالای جدید به وی می فروشید.


۴- عدم محصول ارجاعی: در نرم افزار اگر محصول شما کار نکرد و یا قدیمی شد مشتری یا ارجاع می دهد و یا دیگر سراغش نمی آید، در میوه فروشی شما میوه سالم را به مردم به فیمت گران، میوه نیمه خراب را ارزان تر به مردم کم درآمد تر و احتمالا میوه کاملا خراب را به آبمیوه فروشی ها و نمی دانم لواشک سازی ها می فروشید!


۵-واسطه گری به جای تولید: در میوه فروشی شما محلی برای عرضه کالای دیگران هستید، معمولا افزایش قیمت بین میدان میوه و تره بار با مغازه شما چند برابراست . اما در نرم افزار شما تولید می کنید و دردسر های آن را دارید تازه در انتها و پس از کسر انواع مالیات و بیمه هزینه تولید را در بیاورید خیلی هنر کرده اید!

۶-مدیریت نیروی انسانی، خیر! : شما در شرکت نرم افزاری با نیروی لوس و نازک نارنجی کارشناس سروکار دارید که کافی است یک کم ناراحت شود، هوس کانادا به سرش می زند، اما در میوه فروشی یکی دو کارگر از برادران افغانی می گیرید، مثل ساعت برای شما کار می کنند و غر که نمی زنند هیچ با همه سختی ها هم می سازند.


۷-فصلی بودن کار، تعطیل: در تولید و فروش نرم افزار شما وابسته به زمان هستید، برای مثال دولتی ها معمولا در ماه های خاصی خرید بیشتری می کنند، یا در فروردین و اردیبهشت شما با افت فروش مواجه می شوید، اما در میوه فروشی هر فصلی میوه خودش را دارد و شما آن را می آورید، هر میوه ای هم طرفدار خاص خودش را دارد و شما تقریبا در همه سال فروش خود را یکنواخت خواهید داشت. شب عید ها هم که جای خودش را دارد و شما پوست خلایق را حسابی خواهید کند.


۸- بازار دائمی: نرم افزاری ها مانند یک کارگر ساختمانی هستند، باید ساختمانی ساخته شود تا به آنان نیاز باشد، وقتی بودجه IT کشور صفر شود که نمی توان پروژه ای تعریف کرد که نرم افزاری روی آن کار کند، چون هنوز از دیدگاه اغلب تصمیم گیرندگان ما، نرم افزار یک کار تشریفاتی است. اما میوه فروشی نیاز روز مردم است، همه هر روز خرید خودشان را دارد، وضع مردم بد هم بشود باز هم مهمانی می آید که شما وادار شوید حتما میوه خوب بخرید.


۹-درهم است: در نرم افزار شما قاصر هستید از اینکه به یک مشتری بفهمانید نرم افزار با نرم افزار متفاوت است. چون با یک چیز انتزاعی طرف است، بین نرم افزاری حسابداری 5 هزارتومانی با حسابداری 10 میلیون تومانی فرقی قائل نیست. در حالیکه در میوه فروشی ، مشتری تفاوت سیب با سیب را در می یابد و اگر دنبال کیفیت خوب است پولش را هم می پردازد.


۱۰- شما فقط میوه را می فروشید: در نرم افزار وقتی شما نرم افزاری عرضه می کنید، داستان عرضه خدمات پس از فروش شروع می شود، آموزش کاربران -بعضا واقعا تعطیل!- تبدیل اطلاعات و انتقال آنها از سیستم قدیمی به جدید، عرضه سخت افزار، نگرانی از کارکردن نرم افزار روی هر نوع سخت افزار آشغالی که مشتری به شما می دهد و ... اما در میوه فروشی، شما فقط میوه را می فروشید اینکه هندوانه را چطور می خورند، گیلاس را چطور؟ اینکه آیا مشتری ظرف مناسبی برای نگهداری میوه دارد و یا خیر نیز به شما ربطی ندارد.

۱۱- یک بار برای همیشه، هرگز: نرم افزار را که می فروشید مشتری توقع دارد این نرم افزار مادام العمر باشد برایش ، به سادگی حاضر نیست قرارداد پشتیبانی و ارتقاء نرم افزار ببندد، اما همه می دانیم که یک میوه را برای همه سال نمی توان نگه داشت، خورده می شود بالاخره! باید میوه جدیدی خرید!

۱۲- باگ: خرابی میوه نگرانی ندارد، روشهای نگهداری میوه معلوم است و اگر شما یک کم تجربه پیدا کنید می توانید به سادگی آن را نگهداری کنید، اما در نرم افزار آنقدر مشکلات متعدد و متفاوت پیش می آید که شما گیج می شوید که این خطا از کجاست و راه حلش چطور است؟ مناطق بحرانی ، آنقدر خطایابی را سخت می کنند که شما نیاز به فاز مجزایی برای آن پیدا می کنید و هزینه زیادی برای هر خطا می پردازید، تازه تضمینی وجود ندارد که همه خطا ها را پیدا کرده باشید و روز تحویل به مشتری، جلوی چشم وی، آنقدر سیستم خطا می دهد که شما آب می شوید و زمین می روید.


۱۳-آن که خربزه می خورد پای لرزش می نشیند: شما مسؤول نحوه استفاده مشتری از میوه نیستید، مهم نیست برایتان که در عزا بخورند یا در عروسی، مهم نیست که به طرف نمی سازد یا می سازد. اما در نرم افزار، کافی است از نرم افزار شما سوء استفاده شود، نمی دانم چرا یقه شما را می گیرند که چرا از طریق نرم افزار شما به ما آسیب وارد شد، چرا هک شد، چرا ....؟


1۴-دوره بازپرداخت سریع: در میوه فروشی به محض فروش میوه پولتان را می گیرید، اما در نرم افزار تازه پروژه را که تحویل دادید و صورتجلسه کردید، باید بدوید به دنبال پولتان، آنقدر این پول دادن دیر و تکه تکه می شود که به نوش داروی پس از مرگ سهراب می ماند، به شکلی که بعضی وقت ها بی خیال پولتان می شوید.


1۵- تنوع مشتری: شما در یک شرکت نرم افزاری با طیف خاصی از مشتری سروکار دارید، یا دولتی یا خصوصی یا آموزشی یا ... اما در میوه فروشی شما قیدی برای مشتری ندارید، زن و مرد، کوچک و بزرگ، دارا و ندار، پیر و جوان، شهری و روستایی ،... همه به نوعی مشتری شما هستند، آنهم مشتری دائمی که از همه چیز می گذرد الا از خوردن!


1۶- کپی رایت: در میوه فروشی نمی توانید یک میوه را بخرید و تکثیر کنید، در نرم افزار می توانید، خوب هم می توانید. اگر تولید کننده ناراحت هم شد مهم نیست، چون یا قانون کافی نداریم و یا آنقدر این قضیه پیچیده است که شما بی خیال می شوید.


۱۳۸۹ فروردین ۲۱, شنبه

ارائه و تمرين javascript در تاريخ 89/01/26


ارائه روز پنج شنبه مورخ 89/01/26 به صورت زير است:
غلامي محمدرضا: CSS (Styles in HTML)
سپس تمرين php قبلي و تمرين javascript جديد، تحويل گرفته خواهد شد.

تمرين جديد:
برنامه‌اي بنويسيد كه اطلاعات يك كتاب شامل نام كتاب، نام نويسنده، سال انتشار و قيمت آن را دريافت كرده و با زدن كليد تاييد، ابتد بررسي مي‌كند كه سال انتشار كتاب عددي بين 1000 و 1400 باشد. در غير اين صورت پيام خطايي نمايش داده شده و اطلاعات تاييد نمي‌شود. در صورت صحت و تاييد اطلاعات، در پايين صفحه در زير فرم، اطلاعات دريافتي را در يك سطر جديد در يك جدول نشان دهد. اين جدول 4 ستون دارد كه اطلاعات كتاب را نشان مي‌دهد. پس اگر مثلا اطلاعات 10 كتاب به صورت صحيح وارد شد، جدول 10 سطر خواهد داشت. تعداد ستون‌ها نيز 4 ستون خواهد بود. لازم به ذكر است كه همه كارها در client و با استفاده از javascript صورت مي‌گيرد يعني براي افزودن سطر به جدول و براي بررسي صحت اطلاعات ورودي بايد از javascript استفاده كنيد.

تمرين پايگاه داده براي 89/01/26


جداول زير را فرض كنيد:

users (usrId, usrName)

كاربران (كد كاربر، نام كاربر

-----------------------------------

meals ( mealId, mealPrice, mealDesc )

وعده غذايي ( كد وعده غذايي، قيمت وعده غذايي، شرح وعده غذايي

-----------------------------------

(receipts ( rcptId, rcpUsrId, rcpAmount, rcpNo, rcpDate

فيش ( كد فيش، كد كاربر، مبلغ فيش، شماره فيش، تاريخ فيش

-----------------------------------

reserveMeal( mealUsrId, mealId, mealDate )

رزرو غذا ( كد كاربر، كد وعده غذايي، تاريخ وعده غذايي رزرو شده

-----------------------------------

eatMeal( mealUsrId, mealId, mealDate )

خوردن غذا ( كد كاربر، كد وعده غذايي، تاريخ وعده غذايي خورده شده

-----------------------------------

فرض كنيد علي تا بحال يك بار براي امور غذايي مبلغ 5000 تومان پول واريز كرده است. براي روز شنبه صبحانه و ناهار ر ا رزرو كرده است و فقط ناهار را خورده است. بنابراين اطلاعات زير در جداول وجود خواهد داشت

users: 1, علي

meals: 1, صبحانه, 100

2, 300, ناهار

3, 200, شام

receipt: 10, 1, 5000, 12345, 89/01/15

reserveMeal: 1, 1, 89/01/17
1, 2, 89/01/17

eatMeal: 1, 2, 89/01/17

مبلغ هر وعده غذايي پس از رزرو از حساب فرد كسر خواهد شد، چه فرد آن را بخورد چه نخورد!
-----------------------------------

سوالات زير را به زبان جبر رابطه‌اي و به زبان Sql پاسخ دهيد:

  • بررسي كنيد كه كاربر با نام علي براي يك تاريخ خاص چه وعده هاي غذايي را رزرو كرده است؟
  • بررسي كنيد كدام كاربران تمام وعده هاي غذاهايي را كه رزرو كرده ‌اند، حتما خورده اند؟
  • بررسي كنيد كدام وعده غذايي (شام يا ناهار يا صبحانه)، اگر رزرو شده است، حتما خورده شده است؟
  • بررسي كنيد آيا مانده پول يك فرد براي رزرو يك ناهار كافي است؟
  • بررسي كنيد چه وعده غذايي بيشترين طرفدار را دارد؟
  • بررسي كنيد چند درصد كساني كه صبحانه را در يك روز رزرو كرده اند، شام همان روز را هم رزرو كرده‌اند؟
  • بررسي كنيد كدام روز و كدام وعده غذايي از همه بيشتر رزرو شده است؟
  • بررسي كنيد كل مبلغي كه تا بحال براي ناهار پرداخت شده است چقدر بوده است؟
  • بررسي كنيد كل مانده موجود از كل فيش‌هاي واريزي چقدر است؟
  • بررسي كنيد كه هر فرد آخرين روزي كه يك وعده غذايي را هم رزرو كرده و هم خورده است چه روزي بوده است؟
  • بررسي كنيد كدام افراد تا بحال هيچ غذايي رزرو نكرده‌اند؟
  • بررسي كنيد كدام افراد تا بحال هر چه ناهار رزرو كرده اند، نخورده‌اند؟
  • بررسي كنيد چه كسي از همه بيشتر غذا رزرو كرده است كه نخورده است؟
  • چه كسي بيشترين پول را بابت رزرو غذاي نخورده داده است؟
  • نام كاربران، تعداد نهار، تعداد شام، مجموع مبلغ پرداختي براي غذا و مبلغ آخرین فیش پرداختي را اعلام نماييد؟

۱۳۸۹ فروردین ۱۷, سه‌شنبه

مهندسي نرم‌افزار


تاريخ ارائه نتايج تحقيق يك هفته به تعويق افتاد و در تاريخ 89/01/25 و 89/01/26 خواهد بود تا فرصت كافي براي جمع كردن كار افراد در هر تيم وجود داشته باشد.
لذا نتايج بررسي خود را حداكثر تا تاريخ 89/01/21 براي من ارسال كنيد.
تيم هاي با مديريت علي رفيعي و ايمان مرتضي زاده تا مهلت مقرر هيچ ايميلي براي من ارسال نكرده اند كه بدين دليل 0.25 از نمره نهايي را از دست مي‌دهند.

۱۳۸۹ فروردین ۱۵, یکشنبه

ترتيب ارائه javascript


اين دانشجويان ارائه خود را در تاريخ 89/01/19 انجام خواهند داد:

خاوري فاطمه: Array
فيروزجاييان گلوگاه كوثر: Table, tableCell, tableRow

۱۳۸۹ فروردین ۱۴, شنبه

پروژه مهندسي نرم‌افزار


مدير هر تيم نتيجه10 پروژه تحقيقي را حداكثر تا تاريخ 89/01/16 براي من ارسال كند تا بررسي كنم.

پروژه javascript و php


كساني كه تا مهلت مقرر 89/01/15 تاييد پروژه javascript خود را دريافت نكرده‌اند، حداكثر تا تاريخ 89/01/22 فرصت دارند كه تاييد آن را دريافت كنند. براي اين تاخير 0.25 از نمره نهايي آنان كسر خواهد شد.
توجه كنيد كه بررسي هر فايل‌ ارسالي شما توسط من نيز چند روز طول خواهد كشيد.

برنامه php را نيز حداكثر تا تاريخ 88/01/18 به من ايميل نماييد. در تاريخ 88/01/19 برنامه به صورت حضوري يا در شكل كوئيز يا ... تحويل گرفته خواهد شد.