אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי Software Design.

Slides:



Advertisements
Similar presentations
Object Oriented 33 MCSD DORON AMIR
Advertisements

תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
Sucha Smanchat  Steps in OOAD using UML  Use Case Diagram  Sequence Diagram / Communication Diagram  Class Diagram  State.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 10 Packages.
Slide 1 Chapter 7 Structural Modeling. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
אביב תשס"ה JCTתיכון תוכנה: ד"ר ראובן גלנט1 פרק 8 נקודות חשובות בתרגילים 7-9.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 13 Case Study: Weather Station.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
אביב תשס"ה JCTתיכון תוכנה: ד"ר ראובן גלנט1 פרק 9 נקודות חשובות בתרגיל 10 Guarded Operation.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 6 DIP דוגמאות נוספות.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 4 LSP.
UML-diagrams Unified Modelling Language Used for Classes Objects.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 11 Statecharts תכונות מתקדמות.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 12 אינטרקציה בין statecharts של אובייקטים שונים דוגמא : Dishwasher.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
CS 2511 Fall Features of Object Oriented Technology  Abstraction Abstract class Interfaces  Encapsulation Access Specifiers Data Hiding  Inheritance.
UML an overview Compiled by:Dr. Avi Rosenfeld Based on:
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכורות שמורות 1 פרק 3 OCP.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 7 ISP דוגמא נוספת.
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation (Adapted) Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra,
Unified Modeling Language
Software Engineering. Administrivia This is me: Cyndi Rader You can reach me: Or find me here: BB 280D Class notes here:
UML DIAGRAMS Unified Modeling Language for Object Oriented Programming Unified Modeling Language for Object Oriented Programming.
Slide 1 Structural Modeling Chapter 7. Slide 2 Key Ideas A structural or conceptual model describes the structure of the data that supports the business.
CH06: Considering Objects TECH Computer Science  Set, Class, Type  …of…  Objects, Actors, Agents  Data and Actions Object-Oriented Design and Development.
Copyright © 2012 Pearson Education, Inc. Chapter 13: Introduction to Classes.
Introduction to SOLID Principles. Background Dependency Inversion Principle Single Responsibility Principle Open/Closed Principle Liskov Substitution.
Real Time Systems Modeling Structure in UML (Part I)
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
1-1 C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer.
ניתוח מערכות מידע 1 Unified Modeling Language (UML) § § The Unified Modeling Language (UML) is the industry-standard language for: Specifying, Visualizing,
Design Principles iwongu at gmail dot com.
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
Structural Modeling Chapter 7. Key Ideas A structural or conceptual model describes the structure of the data that supports the business processes in.
Design Jon Walker. More UML ● What is UML again?
Week III  Recap from Last Week Review Classes Review Domain Model for EU-Bid & EU-Lease Aggregation Example (Reservation) Attribute Properties.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Chapter 10 Classes and Objects In-Depth. Chapter 10 A class provides the foundation for creating specific objects, each of which shares the general attributes,
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11a: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Class diagrams Terézia Mézešová.
1. Perspectives on Design Principles – Semantic Invariants and Design Entropy Catalin Tudor 2.
CHAPTER 3 MODELING COMPONENT-LEVEL DESIGN.
SOLID Design Principles
Software Modelling Class Diagram. Class Diagrams The main building block in object oriented modeling They are used both for general conceptual modeling.
Rhapsody 2003년 3월 12일 배대호.
1 Advanced Computer Programming Software Modeling UML Copyright © Texas Education Agency, 2013.
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 5 תרשימי מצבים Statecharts למחלקות תגובתיות Reactive Classes הקדמה ודוגמא.
Course information Old exam Resit Report Result and walkthrough
Object Oriented Programming
Object Oriented Programming
CSE687 - Object Oriented Design class notes Survey of the C++ Programming Language Jim Fawcett Spring 2004.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 11 Component-Level Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
UML - Unified Modeling Language
Object Oriented Programming
ניתוח מערכות מידע א' הרצאה 3
Software Engineering Lecture #11.
Object-Oriented Design
כל הזכויות שמורות לתמר שושן
מבוא למערכות מידע פרק 1.
IMPORTANT NOTICE TO STUDENTS:
Understand and Use Object Oriented Methods
Hao Zhong Shanghai Jiao Tong University
Copyright 2007 Oxford Consulting, Ltd
Chapter 11 Class Inheritance
Chapter 10 – Component-Level Design
Presentation transcript:

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי Software Design

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 2 פרק 1 הקדמה

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 3 מקומו של הקורס ניתוח מערכות System Analysis תיכון תוכנה Software Design תכנות Programming

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 4 מקומו של הקורס Our course Jonah’s course

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 5 מהו תיכון (טוב)? אפיון המערכת על בסיס הדרישות התמודדות יעילה עם דרישות משתנות ארגון מסגרת ומבנה לקידוד

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 6 Open Close Principle (OCP) האסטרטגיה שעל פיה ניתן לתת מענה לדרישות משתנות "תוכנה צריכה להיות פתוחה להרחבה וסגורה לשינויים" Bernard Meyer פתוחה להרחבה : ניתן יהיה להוסיף התנהגות חדשה למערכת- סגורה לשינויים : בלי לגעת בקוד שכבר כתבת. (אפילו לא לעשות קומפילציה מחדש וכד')

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 7 "חיזוק" (1) תיכון טוב זה להיות יותר חכם מפרדי

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 8 "חיזוק" (2) עליך להיות מעודכן תמיד

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 9 "חיזוק" (3) עליך לקחת את עצמך ברצינות

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 10 רשימת נושאים Open Closed Principle Principles of Class Design –Liskov Substitution Principle (LSP) –Dependency Inversion Principle (DIP) –Interface Segregation Principle (ISP) Principles of Package Design –Acyclic Dependency Principle (ADP) Case Study with Design Patterns Model Driven Development –Real Time Object Oriented Design –Executable Models (Rhapsody) Small Project Development –Extreme Programming, Test-first Programming, Refactoring, 7 Habits

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 11 בניית פרוייקט בזיקה ל- Rhapsody

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 12 מרכיבי פרוייקט Component Object Model Diagram Packages

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 13 פרוייקט Component Executable Name Scope

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 14 פרוייקט Component Configurations Current configuration

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 15 אתחול מופעים - Initial Instance פרוייקט Component Configurations

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 16 Settings Instrumentation Environment פרוייקט Component Configurations

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 17 Unified Modeling Language UML בזיקה ל- Rhapsody כלי תיאור המאפשר לתאר וללוות פיתוח של תוכנה לשלביה (ואף כלי למימוש תוכנית)

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 18 Object Model Diagram (OMD) ייצוג ויזואלי סטטי של אובייקטים/מחלקות ויחסים בניהם

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 19 OMD ייצוג Package ב- UML

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 20 OMD ייצוג Class ב - UML

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 21 OMD Class ייצוג חלקי ה - Class ב - UML Name Attributes Operation

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 22 OMD Class קשרים בין אובייקטים Object Relationships Association –Directed –Bi-Directional Aggregation –Directed –Bi-Directional Composition –Directed –Bi-Directional

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 23 OMD Class קשרים בין אובייקטים Object Relationships Dependency Inheritance Composite Multiplicity

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 24 OMD Class קשרים בין מחלקות Inheritance - ירושה Inheritance :source file

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 25 OMD Class קשרים בין מחלקות Associations - Directional Association Role Name Multiplicity Directed :source files

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 26 OMD Class קשרים בין מחלקות Associations - Bi-Directional Bi-Directional :source files

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 27 OMD Class קשרים בין מחלקות Aggregation Directed or Bi-Directional

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 28 OMD Class קשרים בין מחלקות Composition Directional Bi-Directional

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 29 OMD Class קשרים בין מחלקות Composite Composite - Directed : source files Composite : Bi-Directional

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 30 Multiplicity ריבוי

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 31 Containers/מיכלים Container / מיכל הוא מושג מופשט של אחסון וניהול ריבוי אלמנטים.

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 32 Relations טבלה המציגה כיצד Rhapsody מממש Container

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 33 Container OMCollection

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 34 Container OMList

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 35 Container OMMap

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 36 נספח לפרק 1 דוגמאות מימוש לפי Rhapsody

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 37 הגדרת מאפיינים (Attribute) דרך המחלקה

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 38 הגדרת מאפיינים (Attribute) דרך המאפיינים

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 39 הגדרת פעולות (Operations) דרך המחלקה

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 40 הגדרת פעולות (Operations) דרך הפעולה

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 41 Bi-Directional Association/Aggregation :source files // file Button.h #ifndef Button_H #define Button_H Dialer; class Button } public : Button(); ~Button(); Dialer* getItsDialer() const; void setItsDialer(Dialer* p_Dialer(); void __setItsDialer(Dialer* p_Dialer); void _setItsDialer(Dialer* p_Dialer); void _clearItsDialer(); protected : void cleanUpRelations(); Dialer* itsDialer; {; #endif // file Button.cpp #include Button.h #include Dialer.h Button::Button() { itsDialer = NULL; //#[ operation Button() setItsDialer(new Dialer); //#] } Button::~Button() { cleanUpRelations(); } Dialer* Button::getItsDialer() const { return itsDialer; } void Button::setItsDialer(Dialer* p_Dialer) { if(p_Dialer != NULL) { p_Dialer->_setItsButton(this); } _setItsDialer(p_Dialer); } //etc….

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 42 Directed Association/Aggregation :source files // file Button.h #ifndef Button_H #define Button_H class Dialer; class Button } public : Button(); ~Button(); Dialer* getItsDialer() const; void setItsDialer(Dialer* p_Dialer(); protected : void cleanUpRelations(); Dialer* itsDialer; {; #endif // file Button.cpp #include Button.h #include Dialer.h Button::Button() { itsDialer = NULL; } Button::~Button() { cleanUpRelations(); } Dialer* Button::getItsDialer() const { return itsDialer; } void Button::setItsDialer(Dialer* p_Dialer) { itsDialer = p_Dialer; } void Button::cleanUpRelations() { if(itsDialer != NULL) { itsDialer = NULL; }

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 43 Composite Or Composition (directed): Source Files // Telephone.h #ifndef Telephone_H #define Telephone_H #include "Dialer.h" class Telephone { public : Telephone(); ~Telephone(); public : Dialer* getItsDialer() const; protected : Dialer itsDialer; }; #endif // Telephone.cpp #include "Telephone.h" Telephone::Telephone() { } Telephone::~Telephone() { } Dialer* Telephone::getItsDialer() const { return (Dialer*) &itsDialer; } // Dialer.h #ifndef Dialer_H #define Dialer_H class Dialer { public : Dialer(); ~Dialer(); }; #endif // Dialer.cpp #include "Dialer.h" // Dialer.cpp Dialer::Dialer() { } Dialer::~Dialer() { }

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 44 Composite Or Composition (bi-directional): Source Files // Telephone.h, //Telephone.cpp כמו ב- Bi-directional // Dialer.h #ifndef Dialer_H #define Dialer_H class Telephone class Dialer { public : Dialer(); ~Dialer(); Telephone * getItsTelephone() const; void setItsTelephone (Telephone * p_Telephone); protected : Telephone * itsTelephone; }; #endif // Dialer.cpp #include "Dialer.h" Dialer::Dialer() { } Dialer::~Dialer() { } void Dialer::setItsTelephone(Telephon e * p_Telephone) {void Dialer::_setItsTelephone(Telepho ne* p_Telephone) { __setItsTelephone(p_Telephone); }

אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 45 Inheritance : source file //file Button.h #ifndef Button_H #define Button_H #include "Inheritance.h" class Button { public : Button(const OMString& aDeviceId); Button(); virtual ~Button(); void detect(); private : virtual bool isButtonStateON()=0; public : OMString getDeviceId() const; void setDeviceId(OMString p_deviceId); protected : OMString deviceId; }; #endif //file Button.cpp #include Button.h Button::Button(const OMString& aDeviceId) : deviceId(aDeviceId) { } // file ButtonImplementation.h #ifndef ButtonImplementation_H #define ButtonImplementation_H #include "Inheritance.h" #include "Button.h" class ButtonImplementation : public Button { public : ButtonImplementation(const OMString& aDeviceId); //etc... }; #endif //file ButtonImplementation.cpp #include ButtonImplementation.h ButtonImplementation::ButtonImplementation(con st OMString& aDeviceId) : Button(aDeviceId) { } //etc...