As the code can be generated at any time, there should be no
need to version source code separately.We don??™t version object ?¬?les either during
C compilation. However, we may still save the code if the other development
tasks so require, for example, if the build process can??™t execute code generators.
. Modeling and generators cover some tasks that earlier belonged to testing.
We do more tasks related to testing at the design stage. This is simply because a
proper modeling language knows the given domain and ideally does not allow
making designs that are illegal or would lead to poor performance. Supporting
testing right at the modeling stage is important because it is far cheaper to
prevent errors early during design.
. Debugging is done largely at the model level. If the speci?¬?ed functionality is
not working as expected, the trace from execution can be provided in the model
instead of debugging on the lower level of generated code.
. Models can be used for communication. Models expressed in domain
concepts are used more for communication as we can trust the models; they are
not separate from the actual implementation. Having domain concepts directly
in the language makes models easier to read, understand, remember, and verify
than modeling the domain using programming concepts. Compare, for
example, the difference in Chapter 1 between the class diagram and sequence
diagrams, and the mobile phone DSM model.
Pages:
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169