Software architecture Functional decomposition



functional decomposition design method intending produce non-implementation, architectural description of computer program. rather conjecturing objects , adding methods them (oop), each object intending capture service of program, software architect first establishes series of functions , types accomplishes main processing problem of computer program, decomposes each reveal common functions , types, , derives modules activity.


for example, design of editor emacs can thought in terms of functions:






e



state of emacs editor , running operating system



{\displaystyle e\,\equiv {\text{state of emacs editor , running operating system}}}








e




e

 with component/part of state changed



{\displaystyle e \,\equiv e{\text{ component/part of state changed}}}






f
:
(
e
,
l
i
s
p


e
x
p
r
e
s
s
i
o
n
)


e




{\displaystyle f:(e,lisp\,\,expression)\rightarrow e }


and possible function decomposition of f:






f
r
o
m
e
x
p
r
:
l
i
s
p


e
x
p
r
e
s
s
i
o
n



{



o
b
j
e
c
t
,



if success





e
r
r
o
r
,



if failure









{\displaystyle fromexpr:lisp\,\,expression\rightarrow {\begin{cases}object,&{\text{if success}}\\error,&{\text{if failure}}\end{cases}}}






e
v
a
l
u
a
t
e
:
(
o
b
j
e
c
t
,
e
)


e




{\displaystyle evaluate:(object,e)\rightarrow e }






p
r
i
n
t
:
(
e
r
r
o
r
,
e
)


e




{\displaystyle print:(error,e)\rightarrow e }


this leads 1 plausible module, service, or object, of interpreter (containing function fromexpr). function decomposition arguably yields insights re-usability, such if during course of analysis, 2 functions produce same type, common function/cross-cutting concern resides in both. contrast, in oop, common practice conjecture modules prior considering such decomposition. arguably results in costly refactoring later. fd mitigates risk extent. further, arguably, separates fd other design methods- provides concise high-level medium of architectural discourse end-to-end, revealing flaws in upstream requirements , beneficially exposing more design decisions in advance. , lastly, fd known prioritize development. arguably, if fd correct, re-usable , cost-determined parts of program identified far earlier in development cycle.







Comments

Popular posts from this blog

Ancient Laconophilia Laconophilia

Ballysillan and Upper Crumlin Road Crumlin Road

Benefits Al-Anon/Alateen