1 / 37

290353 Object-Oriented Analysis and Design

290353 Object-Oriented Analysis and Design. อ.ธารารัตน์ พวงสุวรรณ thararat@buu.ac.th. บทที่ 1 วงจรการพัฒนาระบบและ รูปแบบการพัฒนาซอฟต์แวร์. เนื้อหา. Definition ที่เกี่ยวข้อง SDLC : System Development Life Cycle แบบจำลองการพัฒนาระบบหรือซอฟต์แวร์ แนวทางการพัฒนาระบบหรือซอฟต์แวร์

senona
Download Presentation

290353 Object-Oriented Analysis and Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 290353Object-Oriented Analysis and Design อ.ธารารัตน์ พวงสุวรรณ thararat@buu.ac.th บทที่ 1วงจรการพัฒนาระบบและ รูปแบบการพัฒนาซอฟต์แวร์

  2. เนื้อหา Definition ที่เกี่ยวข้อง SDLC : System Development Life Cycle แบบจำลองการพัฒนาระบบหรือซอฟต์แวร์ แนวทางการพัฒนาระบบหรือซอฟต์แวร์ แนวคิดการพัฒนาระบบงานเชิงวัตถุ เปรียบเทียบการพัฒนาระบบแบบเดิมกับแบบเชิงวัตถุ เครื่องมือสนับสนุนการพัฒนาระบบ

  3. Definition • Software • Computer programs and associated documentation such as requirements, design models, and user manuals • Software engineering (IEEE standard 612-12(1999) • the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software. • System analyst • Responsible for analysis and design of information system

  4. (SDLC: System Development Life Cycle) • หมายถึง ขั้นตอนหรือกระบวนการในการพัฒนาระบบงาน ประกอบด้วย 1. เข้าใจปัญหา (Problem Recognition) 2. ศึกษาความเป็นไปได้ (Feasibility Study) 3. วิเคราะห์ (Analysis) 4. ออกแบบ (Design) 5. สร้าง หรือพัฒนา (Construction) 6. การติดตั้งหรือการปรับเปลี่ยน (Installation, Conversion) 7. บำรุงรักษา (Maintenance)

  5. (SDLC: System Development Life Cycle) • สามารถแบ่งช่วงชีวิตของ information system เป็น 2 ช่วง • Systems development • System operation and support

  6. แบบจำลองการพัฒนาระบบหรือซอฟต์แวร์(Software Development Process Model) • เป็นกรรมวิธีในการพัฒนาซอฟต์แวร์ใช้เพื่อเป็นแนวทางในการพัฒนาซอฟต์แวร์ตั้งแต่เริ่มต้นจนสำเร็จ • แบบจำลองแต่ละแบบมีข้อดีข้อเสียแตกต่างกัน • โมเดลการพัฒนาซอฟต์แวร์สมัยใหม่ตามหลักวิศวกรรมซอฟต์แวร์ มักจะผนวกขั้นตอนหรือกระบวนการที่ทำงานในลักษณะ Iteration, Incremental และ Prototyping • มีการผสมผสานแบบจำลองเข้าด้วยกัน

  7. แบบจำลองการพัฒนาระบบหรือซอฟต์แวร์(Software Development Process Model) • Water Fall Model • Iterative Model • Incremental Model • Spiral Model • Prototype Model • Rapid Application Development (RAD) • Joint Application Development (JAD) • Rational Unified Process(RUP) • Etc.

  8. Traditional Water Fall Model

  9. Iterative Model

  10. Water Fall Model

  11. Incremental Model

  12. รูปแบบการพัฒนาซอฟต์แวร์(Software Development Methodologies) • การพัฒนาซอฟต์แวร์แบบโครงสร้าง (Structured Methodologies) เป็นแบบดั้งเดิม • การพัฒนาซอฟต์แวร์แบบเชิงวัตถุ (Object Oriented Methodologies)

  13. Structured Methodologies • ใช้แนวคิดแบบระดับบนสู่ระดับล่าง (Top - down design) • พิจารณางานหลักๆ จากนั้นจึงแตกแยกย่อยเป็นงานเล็กๆ จนถึงขั้นตอนที่แสดงรายละเอียดการปฏิบัติงานต่ำสุด • พิจารณางาน (Process oriented) มากกว่าการพิจารณาเกี่ยวกับข้อมูล (Data oriented) • การออกแบบเชิงโครงสร้าง (Structured Design) • การโปรแกรมเชิงโครงสร้าง (Structured Programming) • เหมาะกับโปรเจ็คที่มีความต้องการจากผู้ใช้ที่แน่นอน

  14. Structured analysis and design (SAD) • Analysis Phase • Determine system requirements • Structuring system process requirements • Logical requirements (logical modeling) • Structuring system data requirements • Design Phase • Database Design (DB Normalization) • Forms and report design (GUI Design)

  15. Analysis Phase • Determine system requirements • Interviewing • Structuring system process requirements • Data Flow diagram (logical process modeling) • DFD Levels (process decomposition) • Context diagram • Logical requirements (logical modeling) • Use decision tree /table (logical choice in conditional statements) • Structuring system data requirements • ER diagram

  16. Structured Methodologies Input number Process1 Calculate salary N N Number<0 End of file Process2 pos=pos+1 Y Y Process3 neg=neg+1 STOP (1)Sequence (3) Repetition (2) Decision

  17. Logic Modeling Techniques

  18. Structured Methodologies

  19. Structured Methodologies • มองปัญหาในรูปของกระบวนการทำงาน จากนั้นให้แตกกระบวนการทำงานดังกล่าวออกเป็นส่วนย่อยๆ เรียกว่า ฟังก์ชัน แล้วจึงนำฟังก์ชันต่างๆมาเชื่อมโยงการทำงานเข้าด้วยกันในภายหลัง • ตัวอย่างภาษาคอมพิวเตอร์ที่ใช้ในการพัฒนา ได้แก่ Pascal, C เป็นต้น

  20. Object Oriented Methodologies • Object-oriented analysis and design (OOAD) • การออกแบบและการโปรแกรมเชิงวัตถุ (OOAD & OOP) • มองทุกอย่างในระบบเป็นวัตถุ (Object) • รองรับระบบงานที่มีความซับซ้อนสูง • เหมาะกับโปรเจ็คที่มีขนาดใหญ่และมีความเสี่ยงในการเปลี่ยนแปลงความต้องการจากผู้ใช้

  21. Object-Oriented Development • มีลักษณะเป็นกระบวนการแบบ Iterative และ Incremental • เรียกว่า Agile Development • ประกอบไปด้วย • การวิเคราะห์ความต้องการระบบ • วิเคราะห์ระบบ • ออกแบบระบบ • พัฒนาและติดตั้งระบบ • บำรุงรักษาระบบ

  22. แนวคิดการพัฒนาระบบงานเชิงวัตถุแนวคิดการพัฒนาระบบงานเชิงวัตถุ • เป็นความคิดที่ใช้ในการสร้างโมเดลของสิ่งที่มีความซับซ้อน โดยมีจำนวนเหตุการณ์ที่เกิดขึ้นจำนวนมากที่เกี่ยวกับเช็ตของวัตถุ • ความสัมพันธ์ของเหตุการณ์ที่เกิดขึ้นเกี่ยวพันและเชื่อมโยงกับวัตถุ • การใช้วิธีการเชิงวัตถุจึงเป็นวิธีการทางเทคนิคที่ทำให้เกิดรูปธรรม

  23. แนวคิดการพัฒนาระบบงานเชิงวัตถุแนวคิดการพัฒนาระบบงานเชิงวัตถุ

  24. หลักการของการคิดเชิงวัตถุหลักการของการคิดเชิงวัตถุ • มองการพัฒนาระบบเหมือนกับการมองโลกแห่งความเป็นจริง • มองสิ่งต่างๆ เป็นวัตถุหรือออบเจ็กต์ แต่ละออบเจ็กต์จะมีคุณสมบัติและการทำงานเฉพาะตัว • ออบเจ็กต์สามารถมีความสัมพันธ์กับออบเจ็กต์อื่นๆ ได้ • ออบเจ็กต์มีคุณลักษณะบางประการคล้ายๆ กัน เราก็จะนำกลุ่มออบเจ็กต์เหล่านั้นมารวมให้อยู่ในกลุ่มเดียวกัน

  25. Object-oriented analysis and design (OOAD) • Based on objects rather than data or processes • Object : a structure encapsulating attributes and behaviors of a real-world entity • Object class : a logical grouping of objects sharing the same attributes and behaviors • An Object can have relation to other objects or classes.

  26. Object-oriented analysis and design (OOAD) • Analysis Phase • Structuring requirements (Use case) • Conceptual data modeling (Class diagram) • Object relationship modeling • Class diagram --> ER Diagram • Design phase • Physical DB design • Design elements : classes, component, system architecture • GUI design

  27. Object Oriented Methodologies • เป็นการคิดและสร้างระบบงานในลักษณะโลกของความเป็นจริง • มองสิ่งต่างๆ เป็นวัตถุหรือออบเจ็กต์ ซึ่งออบเจ็กต์ต่างๆ จะมีความอิสระไม่ขึ้นต่อกัน แต่มีการทำงานร่วมกัน • ตัวอย่างภาษาคอมพิวเตอร์ที่ใช้ในการพัฒนา ได้แก่ Java,C++ ,SmallTalk เป็นต้น

  28. Object Oriented Methodologies

  29. Object Oriented Methodologies

  30. เปรียบเทียบวิธีการแบบเดิมกับวิธีการเชิงวัตถุเปรียบเทียบวิธีการแบบเดิมกับวิธีการเชิงวัตถุ

  31. Key differences between structured and object oriented analysis and design

  32. เครื่องมือสนับสนุนการพัฒนาระบบ (CASE Tools) • CASE Tool (Computer-Aided Software Engineering) • เป็นเครื่องมือที่นำมาใช้สนับสนุนการพัฒนาระบบให้มีความรวดเร็ว มีมาตรฐานและมีคุณภาพมากยิ่งขึ้น • สามารถช่วยสร้างแผนภาพ รายงาน โค้ดโปรแกรม ในระหว่างการวิเคราะห์และออกแบบระบบให้เป็นไปโดยอัตโนมัติ • เป็นโปรแกรมประยุกต์หรือเป็นซอฟต์แวร์ชนิดหนึ่ง ที่ช่วยในการพัฒนาระบบ และสนับสนุนการทำงานในแต่ละขั้นตอนของการพัฒนา

  33. เครื่องมือสนับสนุนการพัฒนาระบบ (CASE Tools) • ประเภทของ Case tools • Upper Case tools • เป็นเครื่องมือที่ช่วยสนับสนุนการทำงานในขั้นตอนต้น ๆ ของการพัฒนาระบบ ได้แก่ ขั้นตอนการวางแผน ขั้นตอนการวิเคราะห์ และขั้นตอนการออกแบบระบบ • Lower Case tools • เป็นเครื่องมือที่ช่วยสนับสนุนการทำงานในขั้นตอนสุดท้ายในการพัฒนาระบบ ได้แก่ ขั้นตอนการออกแบบ ขั้นตอนการพัฒนาและทดสอบระบบ และขั้นตอนการให้บริการหลังการติดตั้งระบบ

  34. เครื่องมือสนับสนุนการพัฒนาระบบ (CASE Tools) • CASE ทั้งสองระดับนี้ มีการทำงานที่ซ้ำซ้อนกันอยู่ บางครั้งองค์กรอาจเลือกใช้งาน CASE Tools ทั้ง 2 ระดับร่วมกันได้ • ตัวอย่างของ Software CASE Tools1. Rational Rose : ใช้สำหรับวาด UML Design for OO(Object Oriented) และ generate code2. Visible Analyst: ใช้สำหรับวาด Context Diagram และ Data flow diagram3. Visual Studio : ทำออกแบบและสร้าง web4. Oracle Enterprise Development Suite5. Paradigm Plus6. Logic Works Suite7. AxiomSys and AxiomDsn8. V32 & X32

  35. Upper Case Tools

  36. Upper Case Tools

  37. Lower Case Tools

More Related