سلام
فقط "هسته یا پوسته ؟!! " .

من در ادامه حرف اساتید ، می خوام روش خودم رو بگم ؛
من بعد از بررسی کامل ، طراحی (به صورت دستی) کارها و ساختار برنامه به سراغ طراحی دیتابیس در بخش هسته میرم .
سپس بستر رو برای برنامه نویسی آماده میکنم . مثلا طراحی کلاس های دیتابیس ، مدیریت فایل ، مدیریت خطاها و گزارش و .... ( در این شرایط شما می تونید از فریم ورک ها که اساسا بزرگترین هدفشون همینه، استفاده کنید. فریم ورک ها می تونند بستر برنامه نویسی امن رو برای شما فراهم کنند )
در مرحله بعد شروع به نوشتن هسته برنامه میکنم . در واقع هسته رو من اینطوری تعریف میکنم : بخش های اصلی و کنترلی برنامه که با استفاده از کلاس هایی که به عنوان "بستر" در نظر گرفته شده ، چهار چوب و ساختار برنامه شما رو کنترل و مدیریت می کنند . در واقع توابع مورد نیاز برای محاسبه و انجام کارهای برنامه ...
در این زمان شما نه تنها اطلاعات مربوط به اینترفیس برنامه رو به صورت کاغذی دارید ، بلکه به طور دقیق اهداف و روش های بررسی شده رو در هسته پیاده سازی میکنید .
بعد واسط هایی رو برای هسته و UI می نویسیم که معمولا بخش اعظمی از این واسط رو کنترلر تشکیل میده ...
در نهایت به سراغ پوسته و به طور کلی ظاهر کاربری می روید و با استفاده از لایه زیرین ( واسط ) ، نتیجه کار رو به نمایش می ذارید. این میشه ورژن یک یا بیس برنامه شما و از روز اول با تست و بررسی نتایج، به اصلاح در دو ساختار "بهینه سازی" و "اصلاحات پایه ای" می پردازید.
اینهایی که گفتم تجربی بود و نزدیک به همون سیستم MVC ...
این پاسخ شما ، اما !
اما اگه به دنبال اصول اصلی و مکتوب می گردید ، تا دلتون بخواد اصول محکم و تست شده وجود داره ، مثلا :
*- فرم درخواست برنامه رو بگیرید و بررسی کنید.
*- نتایج بررسی( پلتفرم ، زبان برنامه نویسی ، دیتابیس ، ساختار پیاده سازی ، هزینه ها و منابع مورد نیاز ) رو در ساختار یک پروپوزال به درخواست کننده برگردونید.
*- در صورت تایید کار رو با تحقیق و بررسی آغاز میکنید .
*- وارد فاز طراحی میشد
*- ....
*- ....
*- به سراغ UML میرید نتایج کاغذی رو پیاده سازی میکنید . ( در قالب چهار چارت کلی و هزاران چیز دیگه ... )
*- ....
*- ...
*- طراحی دیتابیس ....
*- تازه می رسید به آغاز کد نویسی و مابقی ماجرا
( ببخشید خیلی ذهنی نوشتم

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

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

.