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