مهندسی وب

مقدمه

 

در طول یک دهه ، وب وسیع جهانی همه جا موجود گشته است و با سرعتی نمایی بدون تعلل در حال رشد است.

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

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

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

به نظر میرسد بسیاری از توسعه دهندگان وب تصور میکنند که توسع برنامه کاربردی وب به سادگی ایجاد صفحه وب با HTML یا نرم افزار توسعه وب مانند Front Page یا Dreamweaver و قراردادن تعدادی تصویر و ابر پیوند در بدنه صفحات وب است.گرچه برنامه های کاربردی ساده ای مانند صفحات وب شخصی ، اعلان سمینار ها و بروشورهای آنلاین ساده شرکت ها که برای نمایش محتوا وراهبری ساده استفاده میشوند در این گروه قرار میگیرند ، بسیاری از برنامه های کاربردی وب پیچیده هیتنو باید با آرایه وسیعی از نیازمندیها که دائم تغییر یافته یا تکمیل میشوند دست وپنجه نرم کنند. توسعه برنامه کاربردی وب چیزی  بیشتر از طراحی بصری و رابط کاربراست. این توسعه شامل طرح ریزی ، معماری وب و طراحی سیستم ، تست ، تضمین کیفیت ، ارزیابی کارایی و به روز رسانی دائمی و نگهداری سیستم ها  است مادامی که نیازمندیها  و کاربرد رشد پیدا کرده و توسعه میابد.

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

از همه مهمتر ، بسیاری از شرکت ها و سازمان ها نمی خواهند سیستم های وب پر اشتباه داشته باشند  یا زمان از کار افتادگی یا ناسازگاری یا اطلاعات/ محتوای کهنه را تحمل کنند.ایرادات وب بسیار سریع قابل رویت است و کاربران را گیج میکند و هزینه های سنگینی را به شرکت ها ، کاربران و مشتری ها تحمیل کرده و اعتماد را از بین میبرد. بنابراین گفته میشود:"ما نمیتوانیم ایرادات وب را مخفی کنیم."

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

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

 مهندسی وب قانون مند درحال ظهور این نیازهارادارد و بر توسعه موفق سیستمها وبرنامه های کاربردی تحت وب متمرکز میشود.

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

ضرورت مهندسی وب برای این است که به طور موفقیت آمیز ، تنوع و پیچیدگی  توسعه برنامه های کاربردی وب را مدیریت کرد و به ویژه ، از شکست های بالقوه ای که نتایج جدی دارد جلوگیری شود.

این فصل براین است که آگاهی در مورد این موضوعات را افزایش دهد و مهندسی وب را به عنوان راه مدیریت پیچیدگی و تنوع توسعه وب در اندازه بزرگ معرفی کند.

 

تکامل تدریجی وب

 

 امروزه وب با زندگی ما گره خورده و سالهای اندکی است که به کار گرفته شده است. پس از  اهداف اولیه تسهیل، ایجاد آسان و به اشتراک گذاری اطلاعات میان تعدادی از دانشمندان با استفاده از وب سایت های ساده که عمدتا از مستندات متنی ابرپیوند تشکیل شده اند ،  وب ، با سرعت زیاد دامنه  گستره کاربرد خود را رشد داده و توسط اینترنت و تکنولوژی های وب و استانداردها مورد حمایت و پشتیبانی قرار گرفته است.در مدت 10 سال ، تعداد وب سایت ها از 100 به بیشتر از 45 میلیون رسیده است .(شکل 1)

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

 

شکل 1: رشد وب سایت ها

 

 

سال

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

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

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

 

مدیا: یکپارچه کردن انواع مختلف مدیا مانند داده ، متن ، گرافیک ، تصاویر ، ویدیو و صدا و نمایش آنها (انیمیشین سه بعدی) ، انواع مختلف تعامل و کانالهای ارتباطی (یک به یک ،یک به چند ، چند به یک ، و چند به چند ).

 

علم اطلاعات:  سازماندهی اطلاعات ، نمایش ، شاخص بندی ، بازیابی ، تراکم و مدیریت و ایجاد محتوای توزیع شده و همکار.

 

تکنولوژی اطلاعات و ارتباطات و شبکه بندی : ذخیره سازی انبوه و کارامد  متناسب با هزینه ،بازیابی  ،پردازش و نمایش اطلاعات ، ابر ساختارهایی که انتقال و اشتراک داده و اطلاعات را آسان میکند ، ارتباطات اینترنتی بی سیم و باسیم و برنامه های کاربردی وب شخصی شده .

 

جدول 1: گروه های  برنامه های کاربردی وب بر پایه کاربرد

 

گروه/کاربرد

مثال ها

اطلاعاتی

روزنامه های آنلاین ، خبر نامه ها گزارش ها ،کتابهای راهنما ، کتابهای آنلاین

محاوره ای

فرم های ثبت نام ، نمایش اطلاعات سفارشی ، بازی های آنلاین

تراکنشی

خرید اینترنتی (سفارش کالاها و سرویس ها) ، بانک آنلاین ،رزرو بلیت هوا پیما آنلاین ، پرداخت صورتحساب آنلاین

گردش کار گرا

طرح ریزی آنلاین و زمان بندی ، مدیریت دارایی ، نظارت وضعیت

محیط های کاری همکاری

سیستم های توزیع شده ، ابزارهای طراحی همکاری

انجمن ها و فروشگاههای آنلاین

گروههای گفتگو ، سیستمهای سفارش دهنده ، فروشگاه های آنلاین ، حراج آنلاین ، واسطه ها

 

بسیاری از تکنولوژی های وب جدید و استاندارها در جند سال اخیر با پشتیبانی بهتر برنامه های کاربردی جدید ظهور پیدا کرده اند: XML ، سرویس های وب ، وب معنایی ، تکنیکهای شخصی سازی وب ، وب کاوی ، هوش

وب و سرویسهای  موبایل.   

پیشرفت های اینترنت و تکنولوژی های وب و فواید آنها منجر به یک بهمن وب سایت ، رنج متفاوتی از برنامه های کاربردی و رشد فوق العاده در کاربرد وب شده است.                                 

 

  

مهندسی وب

 

 در روزهای نه چندان دور، وب سایتها چیزی بیش از مجموعه ای از لینکها و فایلهای متنی با گرافیک محدود نبودند.با گذر زمان اچ. تی. ام. ال.(HTML: HyperText Markup Language)  با ابزارهای توسعه و زبانهای برنامه سازی دیگری نظیر ایکس. ام. ال. (XML:Extensible Markup Language) و JAVA ادغام شد و باعث شد که عملیات محاسباتی نیز روی اطلاعات امکان پذیر شود. با ادغام سیستمهای مبتنی بر وب و نرم‌افزارهای کاربردی،نرم افزارهای مبتنی بر وب(WebApplications :WebAPP) متولد شد. امروز "نرم افزارهای مبتنی بر وب" شامل ابزارهای محاسباتی قدرتمندی هستند که علاوه بر اینکه می توانند به صورت توابع مستقل عمل کنند، قابلیت ادغام با پایگاه داده ها و نرم‌افزارهای کاربردی تجاری را نیز به خوبی دارا می باشند. در حقیقت امروزه "نرم افزارهای مبتنی بر وب" می توانند از یک صفحه وب ساده تا وب سایتهای بسیار پیچیده که تمامی اطلاعات قابل نمایش خود را توسط واکشی اطلاعات از پایگاه داده های مختلف و اعمال محاسباتی بر روی آنها تهیه می کنند[1] ، تشکیل شده باشند که هر کدام از اطلاعات و پردازش های روی آنها می توانند جایی در اینترنت ،اینترانت و اکسترانت در گوشه ای از دنیا قرار گرفته باشد.
 
تفاوت نرم افزارهای تحت وب با دیگر نرم افزارها


 نرم افزارهای تحت وب خصوصیات خاصی دارند که آنها را از بقیه نرم افزارها متمایز می کند . به تعدادی از این خصوصیات در ذیل اشاره می کنیم :
Network intensiveness
: "نرم افزارهای مبتنی بر وب" بر روی یک ساختار شبکه ای قرار می گیرند و باید به احتیاجات اجتماعات و دسته های مختلفی از مشتریان پاسخگو باشند.یک"نرم افزارهای مبتنی بر وب" ممکن است بر روی اینترنت قرار بگیرد و قابل دسترسی برای سازمان خاصی باشد و یا بر روی اکسترانت قرار گرفته و در اختیار شبکه ای خاص از کاربران قرار گیرد.
Concurrency
: ممکن است تعداد زیادی از کاربران در یک زمان به "نرم افزارهای مبتنی بر وب" دستیابی پیدا کنند.در اغلب موارد الگوی استفاده میان کاربران مختلف بسیار متفاوت است.
Unpredictable load
: ممکن است تعداد کاربران یک "نرم افزارهای مبتنی بر وب"در روزهای مختلف متفاوت باشد و این مسئله به خوبی قابل پیش بینی نیست.به عنوان نمونه این دوشنبه سیستم 100 کاربر داشته،5 شنبه 10000 کاربر و دوشنبه آینده 2000 کاربر.
Performance
: در صورتیکه کاربر "نرم افزار مبتنی بر وب" انتظار زیادی برای دستیابی به پردازشهای سمت سرور و یا قالب بندی و نمایش سمت کلانیت بکشد، ممکن است براحتی از رجوع مجدد خود داری کند و سیستم مشتریان خود را از دست بدهد .
Availability
: هیچوقت نمی توان 100 درصد مواقع در دسترس بود . با اینحال باید در نظر گرفت که در هر زمان از 24 ساعت روز ممکن است کاربرانی از یک نقطه جهان بخواهند از سیستم استفاده کنند. به همین علت یک "نرم افزار مبتنی بر وب" باید 24 ساعت شبانه روز، هفت روز هفته و 365 روز سال در دسترس باشد.
Data driven: عملکرد اصلی بسیاری از "نرم افزارهای مبتنی بر وب"استفاده از هایپرمدیا(Hypermedia
) برای نمایش متون، گرافیکها، اصوات و تصاویر می باشد. به عبارت دیگر عمده "نرم افزارهای مبتنی بر وب" از اطلاعاتی که بر روی پایگاه داده های محلی و غیر محلی وجود دارند به صورت مشترک استفاده می کنند و محتوای خود را توسط این اطلاعات تهیه می کنند.
Content sensitive
: یکی از معیارهای مهم کیفیت یک "نرم افزار مبتنی بر وب"،کیفیت و زیبایی محتوای آن می باشد.
Continuous evolution
: تکامل در "نرم افزارهای مبتنی بر وب" امری عادی به حساب می آید."نرم افزارهای مبتنی بر وب" همانند یک باغ مدام در حال تغییر و رشد می باشند و اطلاعات و محتوای آنها می توانند دائماً تغییر یابند. به همین علت نگهداری و مراقبت مداوم امری مهم و حیاتی محسوب می شود.
Immediacy
: منظور از فوریت، لزوم هر چه سریعتر در دسترس بودن سیستم در بازار می باشد. این خصوصیت مربوط به خیلی از سیستمها می باشد. ولی در مورد بسیاری از "نرم افزارهای مبتنی بر وب" زمان حضور در بازار چند روز و یا چند هفته است  و در مقایسه با دیگر نرم افزارها این زمان بسیار کوتاه است. برای همین باید از روشهایی برای ایجاد "نرم افزارهای مبتنی بر وب" استفاده کنیم که این ویژگی را پوشش دهند. البته توسط ابزاهایی که امروزه وجود دارند می توان یک "نرم افزار مبتنی بر وب" ساده را در چند ساعت آماده کرد .
Security
: همانگونه که گفته شد "نرم افزارهای مبتنی بر وب" توسط یک ساختار شبکه ای می توانند در دسترس کاربران مختلف با مقاصد مختلف در هر سوی جهان باشند. بسیار دشوار و حتی غیر ممکن است که جمعیت کاربرانی را که به سیستم دسترسی دارند را محدود کرد. به همین علت به منظور محافظت از اطلاعات حساس و ایمن نمودن انتقال داده ها، از ساختارهای امنیتی قدرتمندتری نسبت به دیگر نرم افزارها باید استفاده کنیم.
Aesthetics: یک جزء لاینفنک هر "نرم افزار مبتنی بر وب" زیبایی ظاهری آن می باشد. برای موفقیت یک "نرم افزار مبتنی بر وب" طراحی زیبایی ظاهری نقش بیشتری نسبت به طراحی تکنیکی دارد. همه ویژگیهای بالا به نحوی در "نرم افزارهای مبتنی بر وب" اثر گذارند.

 

 


 
دسته بندی "نرم افزارهای مبتنی بر وب"


 "نرم افزارهای مبتنی بر وب" بر اساس عملیاتی که انجام می دهند به گروههای مختلفی تقسیم می شوند. در ادامه به گروههایی که بیشتر مورد استفاده قرار می گیرند اشاره می کنیم :
Informational
: در این نوع از "نرم افزارهای مبتنی بر وب" فقط امکان مشاهده و خواندن محتوای سایت به همراه امکان ناوبری ساده وجود دارد.
Download
: در این نوع از "نرم افزار مبتنی بر وب" امکان دانلود داده ها و اطلاعات از سرورهایی خاص فراهم می شود.
Customizable
: این نوع سیستمها امکان شخص سازی محتوا را به منظور برآورد نیازهای خاصی فراهم می کنند.
Interaction: امکان ارتباط میان اجتماعات مختلفی از کاربران توسط ابزارهایی مانند اتاقهای گفتگو (chatroom)،تابلو اعلانات(bulletin) و یا پیام فوری (instant messaging
) توسط "نرم افزار مبتنی بر وب" فراهم می شود.
User input
: امکان استفاده از ورودیهای فرم مانند برای مقاصد مختلفی همانند دریافت اطلاعات کابران میسر است.
Transaction-oriented
: در این "نرم افزار مبتنی بر وب" بر اساس در خواست کاربر، تراکشهایی برای پاسخ به آن توسط سیستم انجام می شود.
Service-oriented
: در این سیسمتها سرویس های خاصی برای کاربران مهیا می شود.
Portal
: "نرم افزار مبتنی بر وب" در غالب دروازه های به سوی دیگر "نرم افزارهای مبتنی بر وب" و یا سرویسهایی که جزء حوزه "نرم افزار مبتنی بر وب" نیستند،عمل می کند.
Database access: توسط این سیستمها کاربران کاوش‌هایی(Query
) را روی پایگاه داده بزرگی اجرا کرده و اطلاعات مورد نیاز خود را استخراج می کنند.
Data warehousing
: توسط این "نرم افزارهای مبتنی بر وب" کاربران می توانند کورِیهایی را بر روی چند پایگاه داده بزرگ اجرا کنند و اطلاعاتی را از آنان استخراج کنند. البته خیلی از "نرم افزارهای مبتنی بر وب" از ترکیب چند تایی این گروهها ایجاد می شوند و یک "نرم افزار مبتنی بر وب" می تواند جزء چندین دسته از این گروهها قرار بگیرد.
 
پیاده سازی نرم افزارهای مبتنی بر وب


 پیاده سازی "نرم افزارهای مبتنی بر وب" نیازمند مدل فرآیندی خاص، متدهای مهندسی نرم افزار که منطبق با ویژگیهای "نرم افزارهای مبتنی بر وب" باشند و تکنولوژیهای خاصی که امکانات ذکر شده را برای ما فراهم کند می باشد.تمامی موارد فوق در غالب مهندسی وب(Web Engineering) بروز می کند. مدل فرآیندی و متدهای مهندسی نرم افزار مختلفی برای توسعه یک "نرم افزار مبتنی بر وب" معرفی شده اند. از جمله آنان رهیافت Agile می باشد که توضیح آن از حوصله این مقوله خارج است و علاقه مندان می توانند با مراجعه به منابع فراوان آن با این رهیافت آشنا شوند.
تکنولوژیهای مختلفی نیز برای پیاده سازی "نرم افزارهای مبتنی بر وب"ی گوناگون مطرح شده اند. از جمله ای این تکنولوژیها می توان به HTML،XHTML،XML،اسکریپت های سمت سرور همانند JSP ، ASP.Net ، PHP و اسکریپتهای سمت کلاینت همانند VbScript و JavaScript را نام برد. در مورد هرکدام از این اصطلاحات کتابهای زیادی نوشته شده است.برای ایجاد یک نرم افزار تحت وب باید حداقل با HTML
برای قالب بندی محتوای وب سایت ، یک زبان و فناوری اسکریپتی سمت سرور برای انجام پردازشها و محاسبات سمت سرور ، یک زبان اسکریپتی سمت "سرویس گیرنده"، برای پردازش و محاسبات سمت "سرویس گیرنده"  و پایگاه داده آشنا بود.
 امروزه وجود این تکنولوژیها توانایی ایجاد "نرم افزارهای مبتنی بر وب" بسیار پیچیده را فراهم کرده است که خدمات بسیاری را برای میلیونها انسان در سراسر جهان فراهم می کنند و هر روزه نیز به تعداد آنان افزوده می شود. با بررسی تحقیقات و فناوریهای ارائه شده در دهه اخیر در می یابیم که حرکت و سمت و سوی علم و کاربرد رایانه و فناوری اطلاعات به سمت نرم افزارهای تحت وب میباشد و نرم افزارهای دیگر کاربردهای خود را به وب میدهند .

 

 

 

 

 

فرموله کردن/تحلیل سیستم های مبتنی بر وب

 

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

مجموعه سوالات زیر مشحص میکند که باید در آغاز فرمولاسیون چه چیزی پرسیده شود و پاسخ داده شود:

 

  • انگیزه اصلی برای برنامه وب چیست؟
  • چرا به آن نیاز داریم ؟
  • چه کسی از آن استفاده میکند؟

 

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

 

فرموله کردن شرکت مورد نظر

 

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

 

نیازمندیهای عملیاتی:

 

  1. امکان تعریف ، حذف  و ویرایش کارمندان .همچنین عکس هر کارمند نیز باید در فیلد مربوطه در پایگاه داده سیستم درج شود.
  2. امکان تعریف ، حذف و ویرایش نقش ها
  3. انتساب نقش های مختلف و حقوق دسترسی  به کاربران بطوریکه بتوان به هر کاربر نقشهای مشخصی با حقوق دسترسی مشخص را نسبت داد و یا آن را از وی گرفت و یا نقشهای جدید با حقوق دسترسی جدید به وی ایفا نمود.
  4. واسط کاربر نرم افزار باید بتواند دو زبان انگلیسی و فارسی را پشتیبانی کند.
  5. امکان استفاده از هر یک از موارد نیازمندیهای عملیاتی بر اساس نقش افراد در سیستم میباشد.
  6. چنانچه در انجام هر یک از عملیاتهای برنامه خطایی اتفاق افتاد ، گزارش خطا به صورت یک صفحه گزارش خطا به کاربر اطلاع داده شود و با استفاده از خصوصیت تراکنشها وضعیت پایگاه داده به حالت قبل از خطا منتقل گردد.

 

نکته:دقت شود که ممکن است هر یک از مدیران نیز بعنوان یکی از کارمندان پروژه ها باشند و کارهایی به آنها محول شود پس همه افراد کارمند می باشند و تنها حقوق ونقشهایشان متفاوت است.

 

 

 

نیازمندیهای غیر عملیاتی:

 

  1. امکان ثبت اطلاعات زمان ورود کارمندان . یعنی کارمندی هنگام ورود کارمندان شرکت اطلاعات زمان ورود ، خروج و مرخص و..را ثبت نماید.

  2. امکان تعریف پروژه بهمراه قابلیت ویرایش وحذف .

  3. امکان شکست پروژه به زیر پروژه ها  بهمراه قابلیت ویرایش وحذف .

  4. امکان شکست زیر پروژه به کار ها  بهمراه قابلیت ویرایش وحذف .

  5. امکان انتساب کارمند به هر پرئزه بهمراه قابلیت ویرایش وحذف .توجه شود که یک کارمند میتواند در چندین فعالیت از چندین پروژه شرکت داشته باشد.

  6. امکان انتساب کارها به کارمندان به همرا ه قابلیت ویرایش وحذف

  7. هر کارمند باید بتواند اطلاعات هر یک ازفعالیت های انجام دشه روی هر پروژه در طی یک روز کاری اش را وارد سیستم کند.جهت این کار پنجره ای به وی نمایش داده میشود که دقیقا مشخص شود که هریک از کارهای انجام گرفته در قالب چه کاری از چه پروژه ای بوده است.

  8. ساختا ر مدیریتی شرکت به صورت مدیرعامل،معاونین ،مدیران بخش ،مدیران پروژه ،مسئول زیرپروژه ،و کارمندان پروژه میباشد.این سطوح برا ساس نقش اختصاص یافته به هر کارمند میباشد و به عنوان مثال ممکن است یک کارمند به مدیر کل و یایک مدیرکل به معاون تبدیل شود.

  9. ارائه لیست پرسنل درگیر در هر پروژه

  10. ارائه لیست پرسنل درگیر در هرزیر پروژه

  11. ارائه لیست پرسنل درگیر در هر کار

  12. تهیه log فعالیت کاربران و مشاهده فعالیت های هر کاربر بطوریکه کلیه فعالیت های هر کاربر از جمله عمل انتخاب شده و Query های ارسال شده به پایگاه داده بر اساس تاریخ و زمان مشخص باشد.

/ 0 نظر / 10 بازدید