به نام خدا ارائه دهنده : امین امیدوار استاد درس : دکتر عبدهللا زاده درس هوش تجاری http://ceit.aut.ac.ir/islab )source data transformation( تغییرشکل داده های منبع )reconciliation( تلفیق )peer.

Download Report

Transcript به نام خدا ارائه دهنده : امین امیدوار استاد درس : دکتر عبدهللا زاده درس هوش تجاری http://ceit.aut.ac.ir/islab )source data transformation( تغییرشکل داده های منبع )reconciliation( تلفیق )peer.

Slide 1

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 2

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 3

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 4

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 5

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 6

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 7

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 8

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 9

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 10

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 11

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 12

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 13

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 14

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 15

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 16

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 17

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 18

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 19

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 20

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 21

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 22

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 23

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 24

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 25

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 26

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27


Slide 27

‫به نام خدا‬

‫ارائه دهنده‪ :‬امین امیدوار‬
‫استاد درس ‪ :‬دکتر عبدهللا زاده‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

)source data transformation( ‫تغییرشکل داده های منبع‬
)reconciliation( ‫تلفیق‬
)peer reviews( ‫بررس ی زوجی‬
ETL ‫تست‬
)formal test plan( ‫برنامه ی تستهای رسمی‬
ETL development ٍ( ETL ‫فعالیت های توسعه ی‬
)activities
‫خروجی مراحل باال‬
2

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

.1
.2
.3

.4
.5
.6

.7

3

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

4

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

Customer

Accounting

Inventory

Orders

5

E
E
X
T
R
A
C
T

E

E

E

T

T
R
A
N
S
F
O
R
M

T

T

T

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

L
O
A
D

BI Target
Database

‫‪‬‬

‫در رابطه با استخراج داده های منابع‬
‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫چه کس ی باید برنامه ی ‪ ETL‬را بنویسد؟ آیا قبال توسعه دهندگان برنامه‬
‫های ‪ ETL‬نوشته اند؟ آیا آنها پروسه ی ‪ ETL‬را می فهمند؟‬
‫آیا ابزارهای ‪ ETL‬از پروژه های پیشین وجود دارند؟ چندتا از آنها نیاز به‬
‫تغییر دارند؟‬
‫آیا برنامه نویسان سیستمهای عملیاتی سازمان داده ها را به ما می دهند یا‬
‫خودمان باید داده ها را استخراج کنیم؟‬
‫قبل از اینکه داده ها را بگیریم‪ ،‬تا چه میزان از سیستم عملیاتی سازمان‬
‫اطالع داریم؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪6‬‬

‫‪‬‬

‫در رابطه با ابزار ‪ETL‬‬
‫‪ ‬آیا قبال با این ابزار کار کرده ایم یا ابزار جدیدی است؟ در صورت جدید‬
‫بودن تا چه میزان با آن آشنایی داریم؟‬
‫‪ ‬آیا تیم ‪ ETL‬به اندازه ی کافی برای کار با ابزار ‪ ETL‬آموزش دیده اند؟‬
‫‪ ‬آیا ابزار ‪ ETL‬مورد استفاده قابلیت انتقال تمامی داده ها را دارد ویا مجبور‬
‫هستیم در برخی مواقع خود اقدام به کدنویس ی کنیم؟ از چه زبانی برای کد‬
‫نویس ی استفاده کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪7‬‬

‫‪‬‬

‫در رابطه با وابستگی های پروسه ی ‪ETL‬‬
‫‪ ‬چه وابستگی هایی میان ماژولهای برنامه وجود دارد؟ توالی اجرای ماژول‬
‫های برنامه ی ‪ ETL‬باید به چه صورت باشد ؟‬
‫‪ ‬چندتا از ماژولهای برنامه می توانند به صورت همزمان اجرا شوند؟‬
‫‪ ‬چه ارتباطاتی میان جداول وجود دارد؟ آیا نیاز است که برخی از جداول قبل‬
‫از جدول های دیگر لود شوند؟‬
‫‪ ‬چه تعداد جدول می توانیم به صورت همزمان لود کنیم؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪8‬‬

‫‪‬‬

‫در رابطه با تست‬
‫‪ ‬آیا باید بررس ی زوجی (‪ )peer reviews‬صورت گیرد؟ آیا از تکنیک های‬
‫‪ XP‬استفاده می کنیم؟‬
‫‪ ‬چند نفر تست کننده برای پروژه در اختیار داریم؟‬
‫‪ ‬هماهنگ کننده ی انجام تست چه کس ی هست؟ چه کس ی از نتایج تست‬
‫‪ log‬تهیه می کند و آنها را نگاهداری می کند؟‬
‫‪ ‬چه نوع از تستها را باید انجام دهیم؟‬
‫‪ ‬چه افرادی در انجام ‪ acceptance testing‬شرکت خواهند کرد؟‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪9‬‬

‫‪‬‬

‫فعالیت های تغییرشکل داده (‪)data transformation activities‬‬

‫‪‬‬

‫ناچیز پنداشتن تالش های مورد نیاز برای تغییرشکل داده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪10‬‬

‫‪Integration‬‬

‫‪aggregation‬‬

‫‪Derivation‬‬

‫‪summarization‬‬

‫‪cleansing‬‬

‫‪Cleansing‬‬
‫‪‬‬
‫پروسه ای است که در آن داده هایی را که از قوانین تعریف شده تخطی می کنند‬
‫را تغییر داده تا از قوانین تبعیت کنند‪.‬‬
‫‪Summarization ‬‬
‫در این مرحله داده های عددی را خالصه می کنند تا بتوانیم دید کلی (تعداد ‪،‬‬
‫مجموع) نسبت به داده ها داشته باشیم‪.‬‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪11‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪Derivation‬‬
‫در این قسمت داده های جدید از منابع داده ای ورودی ساخته میشوند‪ .‬برای مثال‬
‫فیلدی به جدول برای طبقه بندی کردن مشتریان اضافه می شود‪ .‬و یا اینکه از روی‬
‫تاریخ تولد سن فرد را محاسبه کنیم و در فیلدی جدا ذخیره کنیم‬
‫‪Aggregation‬‬
‫تمامی داده های مربوط به ش ئ مورد نظر در یک جا جمع آوری می شود‪ .‬برای مثال‬
‫تمامی داده های مربوط به مشتریان از منابع مختلف داده ای خوانده شده و در یکجا‬
‫نوشته می شوند‬
‫‪Integration‬‬
‫در این قسمت دامنه و نوع داده های مربوط به یک ش ئ را توسط نرمالسازی و ‪ ...‬به‬
‫یک فرمت و شکل در می آوریم‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪12‬‬

‫‪‬‬
‫‪‬‬

‫پیش بینی مقدار حجم کار برای تغییرشکل داده ها بسیار مشکل است‪.‬‬
‫برای برخی سازمان ها که ساختار فایل آنها بسیار قدیمی می باش‪ ،‬تالش مورد‬
‫نیاز برای تغییر شکل داده ها برابر با ‪ %80‬کار پروژه است‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪13‬‬

‫در این قسمت می خواهیم با استفاده از روش های زیر مطمئن شویم تمامی داده های‬
‫ورودی به ‪ ETL‬به خروجی تبدیل شده باشند‪ .‬برای این منظور از تکنیک های‬
‫زیر استفاده می کنیم‬
‫‪ ‬شمار رکوردها (‪)record counts‬‬
‫‪ ‬شمار دامینها (‪)domain counts‬‬
‫‪ ‬شمار مقدار )‪)Amount counts‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪14‬‬

‫رکوردهای‬
‫خروجی‬
‫ماژول فرآیند‬

‫رکوردهای ورودی‬

‫رکوردهای‬
‫ردشده‬
‫باید مجموع تعداد رکوردهای خروجی و رکوردهای ردشده برابر با تعداد رکوردهای‬
‫ورودی باشد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪15‬‬

‫در این قسمت تعداد رکوردها برای هر دامین منحصربه فرد ورودی شمارش می شوند و‬
‫همچنین تعداد رکوردهای خروجی برای همان دامین منحصر به فرد نیز شمارش می‬
‫شوند‪ .‬در نهایت باید تساوی میان تعداد رکوردها برای کد ورودی با مجموع اجزای‬
‫نشان داده شده در سمت راست شکل زیر برابر باشند‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین اول‬
‫تعداد رکوردهای کد خروجی‬
‫برای دامین دوم‬

‫ماژول فرآیند‬

‫تعداد رکوردهای کد خروجی‬
‫برای دامین سوم‬

‫تعداد‬
‫رکوردها برای‬
‫کد ورودی‬

‫تعداد رکوردهای رد شده‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪16‬‬

17

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫شبیه به برنامه نویس ی ‪ xp‬است با این تفاوت که عالوه برآنکه برای کدنویس ی‬
‫نیاز به دو نفر است‪ ،‬برای مالقات ها نیز به دو نفر نیاز می باشد‪.‬‬
‫در مالقات ها با استفاده از طوفان فکری ‪ ،‬نیازها در آورده می شوند و ایده هایی‬
‫برای حل مشکالت خلق می شوند‪.‬‬
‫زمان جلسات برگزار شده باید کوتاه باشد‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪18‬‬







Unit testing
Integration testing
Performance testing
Acceptance testing
Quality assurance testing

19

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫در این قسمت هر ماژول از برنامه به صورت مجزا تست شده و هیچ کاری با‬
‫ارتباط میان ماژول ها نداریم‪.‬‬
‫کامپایل کردن‪ :‬بررس ی می کنیم که آیا هر ماژول برنامه به درستی کامپایل می‬
‫شود یا خیر‪.‬‬
‫عملکرد‪ :‬هر ماژول برنامه باید عملیاتی را که در طراحی برای ان در نظر گرفته‬
‫شده است را به درستی انجام دهد‪.‬‬
‫تصحیح کردن‪ :‬هر ماژول برنامه باید در برابر خطاها مقاوم بوده و همچنین بسته‬
‫به نوع خطا آن را تصحیح کرده و با ارسال پیام گزارش دهد‬
‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪20‬‬

‫در این جا اجزای سیستم باهم تست می شوند‬
‫‪ ‬تعامالت‪ :‬در این قسمت بررس ی می کنیم که آیا اجزای سیستم بایکدیگر به‬
‫خوبی رابطه دارند یا خیر‪ .‬آیا تمامی ماژولها با همدیگر به خوبی تعامل دارند؟ آیا‬
‫داده های صحیحی به یکدیگر می دهند؟‬
‫‪ ‬جریان‪ :‬در این قسمت بررس ی می شود آیا ماژول ها به همان ترتیبی که در طراحی‬
‫در نظر گرفته ایم اجرا می شوند یا خیر‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪21‬‬

‫این نوع تست شبیه به ‪ stress test‬است و برخی از ماژولهای برنامه که حیاتی و‬
‫مهم می باشند را با تحت فشار قرار دادن ( حجم وسیعی از داده‪ ،‬محاسبات‬
‫پیچیده‪ )...،‬تست میکنیم تا مطمئن شویم سیستم در مواقع بحرانی به درستی کار‬
‫می کند‬
‫‪ ‬برنامه در برابر حجم وسیعی از داده های ورودی چه عکس العملی نشان می‬
‫دهد؟‬
‫‪‬‬

‫‪ Threshold‬کارایی سیستم کجاست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪22‬‬

‫‪‬‬
‫‪‬‬

‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬

‫آیا داده های مناسب و مورد نظر استخراج شده اند؟‬
‫چنانچه اگر یک ستون منبع ورود داده را به چندین ستون تقسیم کرده باشیم‪،‬‬
‫آیا این کار در مرحله ی تغییر شکل به درستی انجام شده است؟‬
‫آیا داده ها به خوبی بایکدیگر ترکیب شده اند؟‬
‫آیا داده ها به درستی در پایگاه داده ی تحلیلی ذخیره شده اند؟‬
‫آیا داده ها به درستی تمییز شده اند؟ آیا نویزها همچنان وجود دارند؟‬
‫آیا مدت زمان پاسخ گویی سیستم مطلوب هست؟ آیا دقت سیستم کافی هست؟‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪23‬‬

‫‪‬‬

‫زمان بندی‬
‫کیس های تست گیری‬

‫‪‬‬

‫‪Log‬های گرفته شده از تستها‬

‫‪‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪24‬‬

1.Build & unit test
ETL process

2. Integration or
regression test ETL
process

3. Performance test
ETL process

4. Quality assurance
ETL process
25

5. Acceptance test
ETL process

‫درس هوش تجاری‬
http://ceit.aut.ac.ir/islab

‫‪‬‬

‫‪‬‬

‫‪‬‬

‫برنامه ی تست ‪ :ETL‬در این قسمت هدف از انجام تست و زمان آن نوشته می‬
‫شود‪.‬‬
‫برنامه های ‪ :ETL‬تمامی دستورالعمل های مربوط به ماژولها و برنامه های‬
‫مورد استفاده در ‪ ETL‬باید آورده شوند‪.‬‬
‫کتابخانه ی برنامه ی ‪ :ETL‬تمامی ماژول ها در کتابخانه ای گردآوری میشوند‪.‬‬

‫درس هوش تجاری‬
‫‪http://ceit.aut.ac.ir/islab‬‬

‫‪26‬‬

27