首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >非面向对象范式的软件设计

非面向对象范式的软件设计
EN

Software Engineering用户
提问于 2012-11-18 14:45:15
回答 3查看 3.2K关注 0票数 4

我目前正在为一个用C语言编写电子系统固件的项目工作,并被要求提供关于嵌入式设备软件开发/发展的文档。在以面向对象的范式开发软件之后,我知道使用UML来记录软件,例如用对象编写类图,但是这并不适用于记录我的嵌入式系统的开发。那么,我应该生产什么来记录我的固件的开发呢?

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2012-11-18 15:50:19

即使对于没有按照OO范式设计的系统,您仍然可以使用UML符号来记录系统,可能会用一些数据流图进行扩展(因为我无法立即在UML中找到相应的图表)。值得研究的图表,即使对于非OO系统也是如此:

  • 状态(过渡)图
  • 用例图
  • 序列图

在对非面向对象系统进行建模时,您可能必须对您所建模的“类”有一定的灵活性。

例如,如果您有这样的头文件stack.h

代码语言:javascript
运行
复制
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*);

有了相应的实现,没有什么可以阻止您在模型中将其表示为“类”堆栈。

票数 6
EN

Software Engineering用户

发布于 2012-11-18 15:11:09

您可以进行面向对象的设计并在C中实现它,即使C不直接支持面向对象的概念。

例如,见Rumbaugh等人,“面向对象的建模和设计”,第16章,,1991年,ISBN 0-13-629841-9。

票数 6
EN

Software Engineering用户

发布于 2012-11-18 15:45:07

您只对概念模块进行相同的设计(就像您在OO设计中应该做的那样),而不是显式的类。在C中,这些模块往往是函数、结构,或者是函数、结构或者两者兼而有之。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/176283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档