תוכנית עבודה לשנה"ל תשס"ח תיכון עמל1 זרזיר בהנהלת: ד"ר פואז פואז יולי 2007
תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי
-
Upload
ann-medina -
Category
Documents
-
view
67 -
download
1
description
Transcript of תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי
![Page 1: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/1.jpg)
1כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
להנדסה תוכנה מערכות תיכוןאישי פרוייקט ופיתוח
Software Design
![Page 2: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/2.jpg)
2כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
1פרק
הקדמה
![Page 3: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/3.jpg)
3כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
הקורס של מקומו
System Analysisניתוח מערכות • Software Design תיכון תוכנה • Programmingתכנות •
![Page 4: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/4.jpg)
4כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
הקורס של מקומו
Our course
Jonah’s course
![Page 5: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/5.jpg)
5כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
?) טוב ) תיכון מהו
אפיון המערכת על בסיס הדרישות•התמודדות יעילה עם דרישות משתנות•ארגון מסגרת ומבנה לקידוד•
![Page 6: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/6.jpg)
6כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Open Close Principle (OCP)
מענה לתת ניתן פיה שעל האסטרטגיהמשתנות לדרישות
"תוכנה צריכה להיות פתוחה להרחבה וסגורה לשינויים"
Bernard Meyer
- ניתן יהיה להוסיף התנהגות חדשה למערכתפתוחה להרחבה :
. בלי לגעת בקוד שכבר כתבתסגורה לשינויים :
('אפילו לא לעשות קומפילציה מחדש וכד)
![Page 7: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/7.jpg)
7כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
( " (1חיזוק"זה טובתיכון
מפרדי חכם יותר להיות
![Page 8: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/8.jpg)
8כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
( " (2חיזוק"תמיד מעודכן להיות עליך
![Page 9: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/9.jpg)
9כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
( " (3חיזוק"ברצינות עצמך את לקחת עליך
![Page 10: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/10.jpg)
10כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
נושאים רשימת• 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
![Page 11: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/11.jpg)
11כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
פרוייקט בנייתRhapsodyבזיקה ל-
![Page 12: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/12.jpg)
12כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
פרוייקט מרכיבי
•Component•Object Model Diagram•Packages
![Page 13: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/13.jpg)
13כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
פרוייקט
Component
Executable
Name
Scope
![Page 14: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/14.jpg)
14כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
פרוייקט Component
Configurations
Current configuration
![Page 15: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/15.jpg)
15כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Initial Instanceאתחול מופעים -
פרוייקט Component
Configurations
![Page 16: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/16.jpg)
16כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Settings
Instrumentation
Environment
פרוייקט Component
Configurations
![Page 17: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/17.jpg)
17כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Unified Modeling Language
UML Rhapsodyבזיקה ל-
כלי תיאור המאפשר לתאר וללוות פיתוח של תוכנה לשלביה(ואף כלי למימוש תוכנית)
![Page 18: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/18.jpg)
18כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Object Model Diagram (OMD)
ייצוג ויזואלי סטטי של אובייקטים/מחלקות ויחסים בניהם
![Page 19: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/19.jpg)
19כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
OMD
ב- Packageייצוג UML
![Page 20: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/20.jpg)
20כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
OMD
UML ב- Classייצוג
![Page 21: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/21.jpg)
21כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
OMDClass
UML ב- Classייצוג חלקי ה-
Name
Attributes
Operation
![Page 22: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/22.jpg)
22כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
OMDClass
קשרים בין אובייקטים Object Relationships
• Association– Directed– Bi-Directional
• Aggregation– Directed– Bi-Directional
• Composition– Directed– Bi-Directional
![Page 23: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/23.jpg)
23כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Telephone
Dialer:Dialer1
OMDClass
קשרים בין אובייקטים Object Relationships
• Dependency
• Inheritance
• Composite
• Multiplicity
![Page 24: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/24.jpg)
24כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
OMDClass קשרים בין מחלקות
Inheritance ירושה -
+deviceId : OMString
+detect():void-isButtonStateON():bool+Button(OMString aDeviceId)
Button
<<Abstract>>
+buttonState : tButtonState
-isButtonStateON():bool+ButtonImplementation(OMString aDeviceId)
ButtonImplementation
Inheritance :source file
![Page 25: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/25.jpg)
25כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
OMDClass קשרים בין מחלקות
Associations - Directional
Association Role Name
Multiplicity
Directed :source files
![Page 26: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/26.jpg)
26כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
OMDClass קשרים בין מחלקות
Associations - Bi-Directional
Button Dialer
itsDialer
1itsButton1
Bi-Directional :source files
![Page 27: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/27.jpg)
27כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Button Dialer
itsDialer
1
OMDClass קשרים בין מחלקות
Aggregation
Directed or Bi-Directional
Button Dialer
itsDialer
1
itsButton
1
![Page 28: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/28.jpg)
28כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Button Dialer
itsDialer
1
OMDClass קשרים בין מחלקות
Composition
Directional
Telephone Dialer
itsTelephone itsDialer
1 1
Bi-Directional
![Page 29: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/29.jpg)
29כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
OMDClass קשרים בין מחלקות
Composite
Telephone
itsDialer:Dialer1
Composite -Directed: source files
Composite : Bi-Directional
![Page 30: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/30.jpg)
30כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Multiplicityריבוי
![Page 31: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/31.jpg)
31כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Containersמיכלים/
•Container מיכל הוא מושג מופשט של / אחסון וניהול ריבוי אלמנטים.
![Page 32: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/32.jpg)
32כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Relations Rhapsodyטבלה המציגה כיצד
Containerמממש
Multiplicity Property Container Type Implementation
0..1 or 1 scalar Pointer
m..n, n or * Unordered OMCollection
n Static Array Array Array of Pointers
m..n, n or * ordered Ordered OMList
Qualifier Qualified OMMap
![Page 33: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/33.jpg)
33כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Container
OMCollection
![Page 34: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/34.jpg)
34כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Container
OMList
![Page 35: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/35.jpg)
35כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Container
OMMap
![Page 36: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/36.jpg)
36כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
לפרק 1נספח
Rhapsodyדוגמאות מימוש לפי
![Page 37: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/37.jpg)
37כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
)Attribute(הגדרת מאפיינים המחלקה דרך
![Page 38: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/38.jpg)
38כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
)Attribute(הגדרת מאפיינים המאפיינים דרך
![Page 39: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/39.jpg)
39כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
)Operations(הגדרת פעולות המחלקה דרך
![Page 40: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/40.jpg)
40כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
)Operations(הגדרת פעולות הפעולה דרך
![Page 41: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/41.jpg)
41כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Button Dialer
itsDialer
1itsButton1
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.hButton::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….
![Page 42: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/42.jpg)
42כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Directed Association/Aggregation :source files
Button Dialer
itsDialer
1
// 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.hButton::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; }}
![Page 43: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/43.jpg)
43כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Composite Or Composition (directed): Source Files DialerTelephone
11
itsDialeritsTelephone
Telephone
itsDialer:Dialer1
// 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_Hclass Dialer {public : Dialer(); ~Dialer();};#endif
// Dialer.cpp#include "Dialer.h"// Dialer.cpp Dialer::Dialer() {}Dialer::~Dialer() {}
![Page 44: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/44.jpg)
44כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
Telephone Dialer
itsTelephone itsDialer
1 1Telephone
itsDialer:Dialer1
Composite Or Composition (bi-directional): Source Files
// Telephone.h, //Telephone.cpp Bi-directionalכמו ב-
// Dialer.h #ifndef Dialer_H #define Dialer_Hclass Telephoneclass 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(Telephone * p_Telephone) {void Dialer::_setItsTelephone(Telephone* p_Telephone) { __setItsTelephone(p_Telephone);}
![Page 45: תיכון מערכות תוכנה להנדסה ופיתוח פרוייקט אישי](https://reader033.fdocuments.net/reader033/viewer/2022061612/56812bce550346895d902a03/html5/thumbnails/45.jpg)
45כל הזכויות שמורות תיכון תוכנה ד"ר ר' גלנט / י' לויאןJCT אביב תשס"ה
+deviceId : OMString
+detect():void-isButtonStateON():bool+Button(OMString aDeviceId)
Button
<<Abstract>>
+buttonState : tButtonState
-isButtonStateON():bool+ButtonImplementation(OMString aDeviceId)
ButtonImplementation
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.hButton::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.hButtonImplementation::ButtonImplementation(con
st OMString& aDeviceId) : Button(aDeviceId) }{//etc...