theme wordpress
برنامه نویسی

۶ مرحله یک برنامه کاربردی (اصول مهندسی نرم افزار)

مهندسی نرم افزار یک برنامه کاربردی دارای ۶ مرحله می باشد :

  1. Formulation
  2. Planning
  3. Analysis
  4. Engineering
  5. Page generation and testing
  6. Customer Evaluation

مرحله چهارم خود دارای ۵ فاز می باشد که عبارتند از :

الف) Content Design

  • Architectural Design
  • Navigation Design
  • Interface Design
  • Production

حال به بررسی این مراحل در تهیه برنامه کاربردی مبتنی بر وب سیستم آموزش دانشگاه می پردازیم.

Formulation: در این مرحله هدف از سیستم و کاربران ان را عنوان می کنیم:

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

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

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

برای بهبود این مرحله و سایر مراحل بهتر است که در این مرحله جلساتی را با دانشجویان و کارکنان آموزش دانشکده ها تشکیل دهیم و در مورد موارد و محدوده برنامه با آنها توافق کرده و نیازمندی های اصلی برنامه را کشف کنیم.

Planning :  باید در این مرحله به بررسی ریسک های موجود بپردازیم و یک هزینه ای از پیاده سازی را تخمین بزنیم.

مسائل و ریسک هایی که باید به انها توجه کنیم عبارتند از :

  1. ریسک مربوط به امنیت پایگاه  داده ها ( افراد غیرمجاز نتوانند آنها را تغییر دهند)
  2. ریسک ها و خطر های مربوط به به هنگان کردن به موقع اطلاعات (به خصوص موقع ثبت نام و ترمیم)
  3. ریسک مربوط به bug های نرم افزاری.
  4. ریسک مربوط به  تشخیص هویت ناصحیح failure of user authentication
  5. مشکلات در طراحی برنامه کاربردی که امکانی را فراهم می کند تا هکر ها اطلاعات موجود را تغییر دهند.
  6. ریسک مربوط به ارتباطات ناامن که ممکن است موجب دستکاری داده ها در مسیر بین Client  و سرور شوند.
  7. ریسکهای مربوط به نام کاربری های ناذست که ممکن است سیستم ما آنها را valid   به حساب بیاورد.
  8. ریسکهای مربوط به ذخیره سازث اطلاعات د ر WEB BROWSER  ها و دسترسی به آنها با کلیک مجدد صفحه.
  9. مشکلات موجود در encryption در مراحل مختلف.
  10. ریسک های مربوط به تکنولوژی و استفاده درست افراد از سیستم.

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

Analysis :  صفحات مربوط به برنامه دارای قابلیت نمایش  متن و تصویر هستند . در این مرحله تعیین می کنیم که در هر صفحه چه اطلاعات و محتوایی قرار خواهد گرفت (کاملترش را در content design مطرح می کنیم) مثلا در صفحه “ثبت نام و ترمیم” لینک های مربوط به “فرم ثبت نام ” و خود “ثبت نام” قرار خواهد گرفت.کاربران از طریق کی بورد و ماوس به تعامل با برنامه می پردازند. محیط اجرایی این برنامه کاربردی اینترانت ( شبکه دانشگاه) و همچنین  بستر اینترنت دخواهد بود..

Design :

Architectural Design : برای ارتباط میان صفحات از معماری Hierarchical استفاده می کنیم که در آن صفحاتی که برادر هستند با یکدیگر و به پدرشان در ساختار درختی در ارتباط هستند. یعنی از هر زیر صفحه به صفحه پدر و به زیر صفحات برادر می توان رفت ولی نمی توان به زیر صفحات یک صفحه پدر دیگر رفت.

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

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

Interface Design :

۱.error های پیش آمده را به صورت کوتاه و واضح ذکر کنیم.

  1. سعی کنیم مطالب را به صورت خوانا و user friendly بچینیم.
  2. صفحات را به گونه ای طرح کنیم که در آن کاربران نیاز به scroll کردن نداشته باشند . پس در اینجا از button های لینک کننده به ادام صفحه یا صفحات بعد استفاده می کنیم.
  3. اطلاعات مربوط به نام و کد درس و نمره دانشجو و … را که مرتبط به هم هستند را در یک صفحه بیاوریم تا کاربر به همه آنها به راحتی دست یابد.
  4. به هنگام درخواست برای “نمایش کارنامه” در ابتدا معدل ترم های مختلف را ذکر کنیم چون کاربر از خواند اطلاعات زیاد در یک صفحه خوشش نمی آید.
  5. در هر صفحه لینک به صفحات مجاز را به صورت button یا icon قرار دهیم. و روی آنها توضیحات کوتاه و واضح قرار دهیم.

Page Generation and Testing  : در این مرحله ابتدا صفحات و نرم افزار را ایجاد کرده و سچس به بررسی و تست کردن آ« می پردازیم. برای مطمئن بودن از درستی نرم افزار باید موارد زیر را تست کرد:

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

بحث در مورد پارامتر های کیفیت :

  1. Usability : چون سیستم به فارسی هست و تمامی عناوین به طور واضح توضیح داده شده اند استفاده از سیستم برای دانشجویان و کارمندان آموزش راحت می باشد. یعنی حتی دانشجویان سال اول و افرادی که مهارت کافی در استفاده از اینگونه نرم افزار ها ندارند می توانند از آن استفاده بکنند. همچنین با فراهم کردن امکانی برای تغییر background صفحه ، این شخصی سازی friendliness را افزایش می دهد. همچنین help هایی که در صفحات و بر روی icon های مختلف در این سیستم طراحی شده ، کلی به کاربران کمک می کنن.

understandability, learnability, friendliness, operability, playfulness and ethics: به همه اینها در این سیستم توجه شده است.

  1. functionality: در این سیستم می توان تمامی کارایی را که می شد با سیستم قدیمی انجام داد را انجام داد. و Navigation به صفحات مختلف با توجه به دکمه ها و icon های فراهم شده هم راحت است.

Accuracy, suitability, compliance, interoperability and privacy به همه این ها در این سیستم توجه شده است.

  1. Reliability: همچنین با توجه به در نظر گرفتن پهنای باند بالا برای دانشکده و امکانات برای fault tolerant کردن سیستم ، این سیستم reliable می باشد. علاوه بر این یک سری مکانیزم ها برای recover  کردن سیستم از حالت Crash فراهم شده است. همچنین برای validate کردن خود کاربران و  داده ها و ورودی های آنها یک سری مکانیزم هایی  فراهم شده است
  2. Efficiency: در طراحی صفحات سعی شده تا ازعکس ها و تصاویرمتحرک و sound effect های با ظرفیت بالا استفاده نشود تا صفحات سریعا بالا آمده و به نیاز های کاربران سریعا پاسخ داده شود . همچنین اطلاعات موجود در صفحات تقسیم شده و حجم بالایی از آنها در صفحه قرار نمی گیرد تا صفحات سریع بالا بیایند. همچنین تدابیری برای دسترسی سریع به اطلاعات مورد نیاز ، با در نظر گرفتن چندین Cpu  در یک box  فراهم شده است.
  3. Maintainability : طراحی صفحات به صورت واضح و مرتب انجام شده و در بخش های مختلف کد ها comment های واضح قرار داده شده است . علاوه بر این ، بخش های مختلف کدها به صورت مستقل و ایزوله هستند که امکان تغییر دادن کد و یا گسترش دادن بخش های مختلف سیستم به راحتی را برای ما فراهم می کند. استفاده از این سستم بر روی brower ها با انواع و ورژن های مختلف امکان پذیر است.

با توجه به نکات گفته شده تست کردن سیستم هم راحت تر خواهد بود.

analyzability, changeability, stability, and testability   به همه اینها در طراحی سیستم توجه شده است.

برچسب ها
نمایش بیشتر

محمد مهدی دولت آبادی

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

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بستن