انتزاع، یکی از اساسیترین ابزارهای انسان برای مواجهه با پیچیدگی است. انتزاع تشخیص شباهتهای بین اشیا، پدیدهها و یا مفاهیم و تمرکز بر این شباهتها و نادیده گرفتن تفاوتها و جزییات غیر ضروری است. در این ارائه، به بررسی نقش انتزاع در طراحی و نگهداری نرمافزار میپردازیم و تلاش میکنیم تا نشان دهیم که انتزاع چگونه میتواند هزینههای نگهداری را کاهش و کیفیت نرمافزار را افزایش دهد. این ارائه قصد دارد تا نشان دهد که چگونه با استفاده از انتزاع صحیح در مساله میتوان سادهتر با تغییرات همگام شد و به نیازهای جدید پاسخ داد.
9. —Manny Lehman
“E-Type program is software that
isn't ever done and changes, and
needs to change constantly. This
is because of it's specification and
requirements change constantly.”
11. Coupling
The degree of interdependence between software
modules; a measure of how closely connected two
routines or modules are; the strength of the
relationships between modules.
15. Abstraction
Abstraction, in the common natural language sense,
means to focus on the general and put aside the
specific. we abstract by emphasizing what is common
and deemphasizing details.
16. The Gang of 4 recommended that we design to interfaces,
which is another way of saying that relationships between
entities should be established at the abstract level.
19. —Manny Lehman
“E-Type program is software that
isn't ever done and changes, and
needs to change constantly. This
is because of it's specification and
requirements change constantly.”
24. Commonality Variability Analysis
a strong way to determine how a set of family members
might abstractly be considered the same, and then went
on to suggest that variability analysis could be performed
within the context of a given abstraction to determine how
they were different.
29. —James Coplien
“Grouping by commonality naturally leads to chunks
that are independent of each other because each
chunk has low commonality with the elements in
other chunks”