我目前正在为一个用C语言编写电子系统固件的项目工作,并被要求提供关于嵌入式设备软件开发/发展的文档。在以面向对象的范式开发软件之后,我知道使用UML来记录软件,例如用对象编写类图,但是这并不适用于记录我的嵌入式系统的开发。那么,我应该生产什么来记录我的固件的开发呢?
发布于 2012-11-18 15:50:19
即使对于没有按照OO范式设计的系统,您仍然可以使用UML符号来记录系统,可能会用一些数据流图进行扩展(因为我无法立即在UML中找到相应的图表)。值得研究的图表,即使对于非OO系统也是如此:
在对非面向对象系统进行建模时,您可能必须对您所建模的“类”有一定的灵活性。
例如,如果您有这样的头文件stack.h
struct stack;
struct stack* stack_create(void);
void stack_destroy(struct stack*);
void stack_push(struct stack*, void*);
void stack_pop(struct stack*);
void* stack_top(struct stack*);有了相应的实现,没有什么可以阻止您在模型中将其表示为“类”堆栈。
发布于 2012-11-18 15:11:09
您可以进行面向对象的设计并在C中实现它,即使C不直接支持面向对象的概念。
例如,见Rumbaugh等人,“面向对象的建模和设计”,第16章,,1991年,ISBN 0-13-629841-9。
发布于 2012-11-18 15:45:07
您只对概念模块进行相同的设计(就像您在OO设计中应该做的那样),而不是显式的类。在C中,这些模块往往是函数、结构,或者是函数、结构或者两者兼而有之。
https://softwareengineering.stackexchange.com/questions/176283
复制相似问题