2.57k likes | 3.16k Views
تحلیل و طراحی سیستمهای شی گرا. حسین دهقان دانشگاه آزاد بوشهر. مرجع. نحوه ارزيابي. امتحان پايان ترم 12 نمره پروژه گروهی 8 نمره تحلیل و طراحی سامانه نرمافزاری یکپارچه سامانه نرم افزاری و مستندات (پیشنهاد، تحلیل، طراحی) نیاز به کد نویسی ندارد !
E N D
تحلیل و طراحی سیستمهای شی گرا حسین دهقان دانشگاه آزاد بوشهر
مرجع حسین دهقان hd.dehghan@gmail.com
نحوه ارزيابي • امتحان پايان ترم 12 نمره • پروژه گروهی 8 نمره • تحلیل و طراحی سامانه نرمافزاری یکپارچه • سامانه نرم افزاری و مستندات (پیشنهاد، تحلیل، طراحی) • نیاز به کد نویسی ندارد ! • تاریخ تحویل فاز نهایی: ؟ (حداکثر تاریخ ممکن) • سایت گروهی پروژه 1+ نمره • درج تکوینی نتایج فعالیتهای فردی و گروهی ------------------- 21 نمره --------------------- حسین دهقان hd.dehghan@gmail.com
نحوه ارتباط • ایمیل hd.dehghan@gmail.com • زمانهای ملاقات در دانشگاه ؟ حسین دهقان hd.dehghan@gmail.com
تحلیل و طراحی سیستمهای شی گرا مقدمه حسین دهقان دانشگاه آزاد بوشهر
مهندسی نرمافزار یا مهندسی سختافزار حسین دهقان دانشکده فنی و مهندسی جم
سختافزار و نرمافزار • هر دستگاه برنامه پذیر (مانند یک کامپیوتر یا یک میکروکنترلر) دارای دو بخش اصلی است: سخت افزار و نرم افزار • سخت افزار: هر قطعه قابل لمس و فیزیکی • نرم افزار: برنامه هاي کامپيوتري یا کدهایی که روی قطعات سختافزای نصب میشوند (قرار میگیرند) و باعث کار کردن سخت افزارميشوند. • نرمافزار نصب شده، باید در مورد سخت افزار خود اطلاعاتی داشته باشد. • بین نرمافزار و سختافزار باید هماهنگی کاملی وجود داشته باشد. حسین دهقان دانشکده فنی و مهندسی جم
سختافزار و نرمافزار حسین دهقان دانشکده فنی و مهندسی جم
مهندسی نرمافزار با مهندسی سختافزار تفاوت دارد. • چرا بسیاری از نرمافزارها فاجعه هستند ولی سختافزارها نه؟ • Mariner Bugs Out (1962) • Cost: $18.5 million • Destroyed the rocket 293 seconds after liftoff. • Medical Machine Kills (1985) • Cost: Three people dead, three people critically injured • a subtle bug called a race condition • Ariane 5 rocket explosion • Cost: $360 million • 16 bit memory, . . . . • یکی از دلایل این مشکلات: عدم تست سیستم حسین دهقان دانشکده فنی و مهندسی جم
تفاوت HWو SW • HW • هزینه ارتقا سیستم • طراحی HWباید قبل از عملیات ساخت به پایان برسد. • اشکال در HW: برگشتدادن آن • SW • هزینه ارتقا سیستم • انتظار بهتر شدن SWبا گذشت زمان • اشکال در SW: انتظار برای ارتقا (upgrade) • قدیمی شدن سختافزار و نرمافزارهای قدیمی حسین دهقان دانشکده فنی و مهندسی جم
فرآيند مهندسي كه براي هر كاربرد جديد منحصر به فرد است مكانيكي ماهيت فرآيند توليد: منطقي فيزيكي ماهيت محصول: تفاوت HWو SW • فرايند توليد نرم افزار يك فرايند مهندسي است نه يك فرايند توليد صتعتي نرم افزار سخت افزار بوسيله استفاده كننده گان نهائي بوسيله متخصصين تعيين مشخصات: حسین دهقان دانشکده فنی و مهندسی جم
پس از رفع خطاهاي طراحي و ساخت آغاز فرسودگي تفاوت HWو SW منحني نرخ خرابي سخت افزار نسبت به زمان نرخ خرابي حسین دهقان دانشکده فنی و مهندسی جم زمان
تفاوت HWو SW منحني نرخ خرابي نرم افزار نسبت به زمان نرخ خرابي حسین دهقان دانشکده فنی و مهندسی جم زمان
بحران نرمافزار • پيشرفت شگرف سخت افزار • ضعف روشهاي توليدنرم افزار • ناتواني روشهاي توليدنرم افزار در كنترل پيچيدگي نرم افزار حسین دهقان دانشکده فنی و مهندسی جم
نشانههای بحران نرمافزار • عدم بهره گيري كامل از قدرت سخت افزار • ناتواني روشهاي توليد نرم افزار در پاسخگوئي به افزايش تقاضا • هزينه هاي هنگفت توليد نرم افزار • عدم تحويل به موقع • عدم تامين نيازمنديهاي كاربر • كيفيت پايين و نامطمئن • سختي نگهداري بعلت كيفيت پايين طراحي حسین دهقان دانشکده فنی و مهندسی جم
مهندسی نرمافزار • براي مقابله با بحران نرمافزار، مهندسي نرم افزار مطرح شد. • ويژگيهاي مهندسي نرم افزار • تجديد نظر در روشهاي برنامه ريزي و كنترل • استفاده از تجربيات ديگر رشته هاي مهندسي • تهيه و جايگزيني استانداردهاي مطمئن حسین دهقان دانشکده فنی و مهندسی جم
مهندسی نرمافزار (ادامه) • تعريف بكارگيري يك روش سيستماتيك، منظم و قابل اندازهگيري براي توليد و توسعه، عملياتي كردن و نگهداري نرم افزار؛ بكارگيري اصول مهندسي در توليد نرم افزار حسین دهقان دانشکده فنی و مهندسی جم
اهداف مهندسی نرمافزار • افزايش كيفيت، قابليت اطمينان، قابليت نگهداري • رضايت كاربر و سهامداران • كاهش هزينه • تحويل به موقع • استفاده از مولفه هاي استاندارد • استفاده مجدد حسین دهقان دانشکده فنی و مهندسی جم
سیستم اطلاعاتی حسین دهقان دانشکده فنی و مهندسی جم
سیستم اطلاعاتی • سیستم • اجزایی که در کنار یکدیگر و با همدیگر برای دستیابی به یک هدف تلاش میکنند. • چند نفر که در یک اداره یا سازمان با یکدیگر کار میکنند. • آنها معمولا کارهای روزمره خود را بدون کامپیوتر انجام میدهند. • سیستم اطلاعاتی (Information System – IS) • سیستمی که برای تسهیل کارهای خود بخواهند از فناوری اطلاعات (استفاده از سختافزار، نرمافزار، شبکه، پایگاه داده و دیگر امکانات رایانه) استفاده نمایند. • مجموعهای از افراد، دادهها، فرایندها و اطلاعات که با بکارگیری فناوری اطلاعات به منظور پشتیبانی و بهبود کسب و کار شکل میگیرد. حسین دهقان دانشکده فنی و مهندسی جم
نرم افزار • محصولی است که توسط مهندسین نرمافزار طراحی و ایجاد میشود. • شامل برنامهای است که در کامپیوتری اجرا میشود: • برنامهو داده • مستنداتیکه حاوی متنها، فرمها • سیستم اطلاعاتی تعریف کلی تری از نرمافزار میباشد. • یک سیستم اطلاعاتی ممکن شامل شبکه و سختافزاری باشد که نرمافزار آن قابل دیدن نباشد. حسین دهقان دانشکده فنی و مهندسی جم
چه کسانی در سیستم اطلاعاتی دخیل هستند • صاحبان سیستم • کسانی که برای ایجاد سیستم هزینه میکنند. • معمولا از طبقه مدیران ارشد یا میانی میباشند. • کاربران سیستم (مشتری) • افرادی که از سیستم برای انجام عملیات و کارهای خود استفاده میکنند. • این افراد اموری مانند وارد کردن و تایید اطلاعات، پاسخ دهی و ذخیرهسازی را بعهده دارند. • تیم پروژه • افرادی که برای تحلیل، طراحی و پیادهسازی سیستم اطلاعاتی تلاش میکنند. • این افراد معمولا مهندسین نرمافزار میباشند. حسین دهقان دانشکده فنی و مهندسی جم
وظیفه یک مهندس نرمافزار • فهمیدن اینکه یک سیستم اطلاعاتی چگونه میتواند نیازهای کسب و کار را براورده کند. • این افراد با طراحی، ساخت و تحویل آن به کاربر، از کسب و کار اقتصادی حمایت میکنند. • اگر شما تاکنون کلاس برنامه نویسی داشتهاید یا اینکه برنامهای برای خود نوشتهاید، فکر میکنید که نوشتن یک نرمافزار برای یک سازمان کار راحتی است. • متاسفانه این چنین نیست. حسین دهقان دانشکده فنی و مهندسی جم
آمار نرمافزارها • سال 1995 حسین دهقان دانشکده فنی و مهندسی جم Challenged: Completed late, over budget, feature missing
آمار نرمافزارها (ادامه) • سال 2000 حسین دهقان دانشکده فنی و مهندسی جم
دوره حیات توسعه سیستم حسین دهقان دانشکده فنی و مهندسی جم
دوره حیات توسعه سیستم • ساخت یک سیستم اطلاعاتی (یا نرمافزار) بسیار شبیه به ساخت یک خانه است. • یک ایدهساده • طراحیهای کلی و ساده روی کاغذ (طرحها باز طراحی میشوند تا اینکه توسط مشتری تایید گردد) • طراحی با جزئیات تکمیلی از پروژه • ساختنخانه به کمک طرحهایی فاز 3 ساختن خانه در ایران = ساختن نرمافزار در ایران ؟ حسین دهقان دانشکده فنی و مهندسی جم
دوره حیات توسعه سیستم (ادامه) • منظور مراحلی است که برای ساخت یک نرمافزار باید طی شود. • برنامهریزی Planning • آنالیز Analysis • طراحی Design • پیادهسازی Implementation هر فاز از گامها یا زیر مراحلی تشکیل شدهاست. خروجی هر فاز مستدات و فایلهایی است که با مشتری تحویل داده میشود. حسین دهقان دانشکده فنی و مهندسی جم
برنامه ریزی • چرا یک سیستم اطلاعاتی باید برای سازمان ساخته شود؟ • میتوان پروژه را ساخت یا انجام داد؟ • آیا طرح پیشنهادی میتواند کسب و کار را ارتقا دهد؟ • آگر پیادهسازی شود، آیا از سیستم استفاده خواهد شد؟ • نحوه انجام داده پروژه از بعد برنامهریزی • Project Plan حسین دهقان دانشکده فنی و مهندسی جم
برنامه ریزی (گامها) • مطرح شدن یک ایده جدید برای ایجاد یک سیستم نرمافزاری جدیدی توسط یک سازمان • ارائه درخواست توسط بخشهای حسابداری، مالی و ... • امکان سنجی طرح پیشنهادی توسط سازمان و تیم پروژه • بررسی انجام یا عدم انجام پروژه • مدیریت پروژه • خروجی این مرحله نمودار زمانی انجام پروژه (Project Plan) حسین دهقان دانشکده فنی و مهندسی جم
آنالیز • چه کسی از سیستم استفاده خواهد کرد؟ • سیستم چه کاری انجام خواهد داد؟ • چه زمانی و کجا از سیستم استفاده خواهد شد؟ • تیم پروژه • سیستم موجود در سازمان و سیستمهای دیگر را بررسی میکند • فرصتهای بهبود را بررسی میکند • کلیت سیستم جدید را توسعه میدهد حسین دهقان دانشکده فنی و مهندسی جم
آنالیز (گامها) • گام تجزیه و تحلیل: شامل آنالیز سیستم فعلی سازمان (as-in system) و مشکلات آن و آنالیز راهی برا طراحی سیستم جدید (to-be system) • جمع آوری نیازهای سیستم: بدست آوردن اطلاعات در مورد سیستم جاری از طریق مصاحبه، پرسشنامه • ارائه مستندات طرح پیشنهادی سیستم (system proposal) به سازمان حسین دهقان دانشکده فنی و مهندسی جم
طراحی • بررسی جزئیاتسیستم • سختافزار • نرمافزار • شبکه • رابط کاربری • فرمها وگزارشات نرمافزار • زبان برنامهنویسی • فایلها و پایگاه داده حسین دهقان دانشکده فنی و مهندسی جم
طراحی (گامها) • استراتژی طراحی (Design strategy) • سیستم باید توسط برنامهنویسان خود سازمان یا توسط تیم پروژه انجام شود. • یک برنامه متن باز (Open Source) باید تهیه گردد یا نرمافزاری باید خریداری شود. • طراحی • Architecture Design: بعد سختافزاری، نرمافزاری و زیر بنای شبکه • Interface Design: رابط کاربری سیستم، فرمها و گزارشات سیستم • پایگاه داده و فایلها • طراحی برنامه (Program Design): هر برنامه واقعا چه کاری انجام خواهد داد. حسین دهقان دانشکده فنی و مهندسی جم
پیادهسازی (گامها) • ساخت سیستم: سیستم ساخته و تست میشود. • نصب سیستم: در این مرحله سیستم قبلی از کار انداخته و سیستم جدید شروع به کار میکند • روش حذف سریع: سیستم جدید به سرعت جایگزین سیستم قدیمی میشود. • روش موازی: دو سیستم برای یک یا دو ماه بصورت موازی کار میکنند تا مشکلات سیستم جدید کاملا برطرف شود. • روش تبدیل: سیستم جدید در یک بخش از سازمان به عنوان یک آزمایش اولیه نصب میشود و سپس به تدریج در بخشهای دیگر استفاده میشود. • طرح پشتیبانی: نحوه پیادهسازی تغییرات جزئی و کلی در سیستم حسین دهقان دانشکده فنی و مهندسی جم
تحلیل و طراحی سیستمهای شی گرا مدلهای توسعه سیستمشروع یک پروژه حسین دهقان دانشگاه آزاد بوشهر
مدلهای توسعه سیستم حسین دهقان دانشکده فنی و مهندسی جم
مدل های توسعه سیستم • روشهای قاعدهمند براي پيادهسازي چرخه حيات توسعه سيستم (SDLC) Planning Analysis Design حسین دهقان دانشکده فنی و مهندسی جم Implementation + System
تقسیم بندی (1) • تاکید این مدلها بر فرایندهای کسب و کار یا دادهها • متدولوژيهاي فرآيندگرا: بر تعريف فعاليتها در سيستم تاكيد دارند. • متدولوژيهاي دادهگرا: بر دادهها و نحوه سازماندهي آنها تاكيد دارند. • متدولوژيهاي شيگرا: يك نوع توازن و تعادل بين دو متدولوژي فوق ايجاد ميكند. • فرایند (Process): فعالیتهای انجام شده در یک سازمان که اهداف سازمان را برآورده میکند. • داده (Data): حقایقی درمورد سازمان و تعاملات کسب و کار یا مواد اولیه برای انجام کسب و کار در یک سازمان حسین دهقان دانشکده فنی و مهندسی جم
تقسیم بندی (1) حسین دهقان دانشکده فنی و مهندسی جم
تقسیم بندی (2) • طراحی ساختیافته • مدل آبشاری • مدل موازی • مدلهای توسعه سریع (RapidApplicationDevelopment) یا RAD • مدل فازبندی شده (PhasedDevelopment) • مدل نمونهسازی حسین دهقان دانشکده فنی و مهندسی جم
مدل آبشاری حسین دهقان دانشکده فنی و مهندسی جم
مدل آبشاری (مزایا) • اگر اولين مرحله مدل آبشاری به خوبي انجام شده باشد ورودي درست به مرحله بعد ميدهد و ميتوان انتظار داشت كه اين مرحله نيز به خوبي انجام شود. • ارائه اصول و تكنيكهاي مناسب در اكثر مراحل مختلف اين مدل، انجام مراحل آن را آسان ميكند. حسین دهقان دانشکده فنی و مهندسی جم
مدل آبشاری (معایب) • در مدل آبشاري با وجوديكه مراحل اوليه بسيار مهم ميباشند ولي عملاً توجه لازم به اين مرحله نميشود. • درصد هزينه ها براساس آمار: • فهم و تحليل خواسته ها 3% • تعيين مشخصات 3% • طراحي 5% • پياده سازي 7% • تست 15% • نگهداشت 67% حسین دهقان دانشکده فنی و مهندسی جم
مدل آبشاری (معایب) • در مدل آبشاري استفادهكننده بايد كليه خواستههاي خود را در مرحله اول صريحاً بيان كند. • بيان كليه خواستهها در مرحله اول توسط استفادهكننده مشكل است • مشتری ممكن است بعضي از آنها را فراموش كند • ممكن است همه نيازها را نتواند مشخص كند و به طور كامل نداند. حسین دهقان دانشکده فنی و مهندسی جم
مدل آبشاری (معایب) • مرحله تعیین خواسته توسط زبان طبيعي صورت ميگيرد كه زبان طبيعي داراي ابهامات زيادي ميباشد. • زبان مشتركي بين تحليلگر و كاربر وجود ندارد بطوريكه كاربر نميداند تقاضاي چه امكاناتي را بكند و تحليلگر نميداند چه سوالاتي را مطرح كند. • استفادهكننده بايد صبور باشد. يك اجراي عملي از برنامه ها قابل مشاهده نيست تا اينكه پروژه به اتمام برسد. • در عمل بازگشت به عقبدر این مدلبه صرفه نيست. حسین دهقان دانشکده فنی و مهندسی جم
مدل موازی حسین دهقان دانشکده فنی و مهندسی جم
مدل موازی (ویژگیها) • مدل موازی تلاش میکند زمان طولانی که بین فازهای آنالیز و تحویل پروژه وجود دارد را کاهش دهد. • مهمترین ویژگی این مدل این است که زمان تحویل سیستم را کاهش میدهد. • ممکن است زیر سیستمها کاملا از یکدیگر مستقل نباشند و باید بین زیر پروژه هماهنگی برقرار گردد. حسین دهقان دانشکده فنی و مهندسی جم
مدل فاز بندی شده حسین دهقان دانشکده فنی و مهندسی جم
مدل فازبندی شده (ویژگیها) • مدل مبتنی بر فازبندی، یک سیستم را به نسخههای مختلفی تقسیمبندی میکند. • این زیر نسخهها پشت سرهم آنالیز، طراحی و پیادهسازی میشوند. • مهمترین و اساسیترین نیازهای سیستم با اولین نسخه از سیستم همراه خواهد بود. • در این مدل، به سرعت یک سیستم برای کار کاربر آماده میشود. • اشکال عمده این مدل • کاربران شروع به کار با سیستمیکه عمدا ناقص است، میکنند. • تشخیص ویژگیهای مهم و مفید که در نسخه اول باید قرار گیرد، بسیار مشکل است. حسین دهقان دانشکده فنی و مهندسی جم