结构化概要设计与面向对象概要设计的区别联系

u010622986 2013-05-08 09:19:52
请大神们详细作答一下 谢谢了
...全文
1261 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
结构化分析设计,关注的是数据的处理和流向问题,建立数据流向串联的功能模块的关联。 面向对象分析设计,关注系统中各个角色的特性和行为,建立角色之间行为的关联。
my3214 2013-10-07
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
需求分析和程序设计的过程都是需要的。但是基础理论完全相反。结构化设计,基本上是自顶向下地功能分解,现在看来属于“拼凑”型。而面向对象设计,既不是自顶向下也不是自底向上的,而是“从中间向两边”的,也就是先实现一个成功的原型,然后进行扩展。例如实现了3种ATM机与3种银行卡的流程设计,然后再扩展出50种ATM真实的机分别对它们各自的父类(是这三种ATM机原型中的一种)的细微扩展,因此仅仅需要少量的代码,就能通过父类对象与3种银行卡交互(而不是50种具体的ATM机直接跟200种具体的银行卡交互)。 结构化设计者,无法理解为什么“子类可以继承父类,同时也可以对消(重写)父类方法”的原理,无法接受多态。 在面向对象系统的动态模型设计中,一样需要处处考虑扩展。如果你只是“基于对象”(而不是面向对象)第去使用什么“用例图、活动图、时序图、功能计算”之类的东西,那么跟结构化也就没有什么区别了! 这个年头由于OOPL已经普及了二十年,许多人其实都是打着面向对象的幌子而仅仅会结构化地去进行设计。例如有些人水平低到只会“分解一下最终界面,你做这几个画面、她做那几个画面”,去搞简单的开发。而不会通过开发工具、平台、自动生成其等等来逐步扩展自己的产品。
那么如何去分析对象和设计对象(类)。
Andy__Huang 2013-09-01
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
“不断分解、不断细化”,我们在结构化设计者那里经常听到这样的话。其实还有一句话“等下一个项目就推倒重建”,这就是结构化设计者的写照。 因此学究容易成为这种方法的俘虏,因为不需要变通、不需要高强度的灵活性,不需要先承认“软件架构设计是经常重构的”,不需要预先承认“用户需求是千变万化的,用户总是在得到试用版本之后才知道该如何重新告诉程序员需求变更“。不承认变动,那么就是学究,适合做老师去忽悠涉世未深的学生。 而软件工程的实践者(而不是死记硬背的学生)则需要非常高的灵活性。
我认为这是考验系统分析员最好的一面,如果需求分析得深刻,那么可以应所有可能发生的事情,分析不到位可能真的要面临着重新设计表结构
  • 打赏
  • 举报
回复
引用 2 楼 ganpengjin1 的回复:
结构化概要设计->功能的划分 与面向对象概要设计->模块的划分
晕死。“功能”和“模块”这两个词儿被这样分割开使用
  • 打赏
  • 举报
回复
“不断分解、不断细化”,我们在结构化设计者那里经常听到这样的话。其实还有一句话“等下一个项目就推倒重建”,这就是结构化设计者的写照。 因此学究容易成为这种方法的俘虏,因为不需要变通、不需要高强度的灵活性,不需要先承认“软件架构设计是经常重构的”,不需要预先承认“用户需求是千变万化的,用户总是在得到试用版本之后才知道该如何重新告诉程序员需求变更“。不承认变动,那么就是学究,适合做老师去忽悠涉世未深的学生。 而软件工程的实践者(而不是死记硬背的学生)则需要非常高的灵活性。
  • 打赏
  • 举报
回复
需求分析和程序设计的过程都是需要的。但是基础理论完全相反。结构化设计,基本上是自顶向下地功能分解,现在看来属于“拼凑”型。而面向对象设计,既不是自顶向下也不是自底向上的,而是“从中间向两边”的,也就是先实现一个成功的原型,然后进行扩展。例如实现了3种ATM机与3种银行卡的流程设计,然后再扩展出50种ATM真实的机分别对它们各自的父类(是这三种ATM机原型中的一种)的细微扩展,因此仅仅需要少量的代码,就能通过父类对象与3种银行卡交互(而不是50种具体的ATM机直接跟200种具体的银行卡交互)。 结构化设计者,无法理解为什么“子类可以继承父类,同时也可以对消(重写)父类方法”的原理,无法接受多态。 在面向对象系统的动态模型设计中,一样需要处处考虑扩展。如果你只是“基于对象”(而不是面向对象)第去使用什么“用例图、活动图、时序图、功能计算”之类的东西,那么跟结构化也就没有什么区别了! 这个年头由于OOPL已经普及了二十年,许多人其实都是打着面向对象的幌子而仅仅会结构化地去进行设计。例如有些人水平低到只会“分解一下最终界面,你做这几个画面、她做那几个画面”,去搞简单的开发。而不会通过开发工具、平台、自动生成其等等来逐步扩展自己的产品。
csdnTimePeriod 2013-08-26
  • 打赏
  • 举报
回复
结构化设计,从功能结构图可以看出来,不断细化,再逐个实现。使用C编程就是应用结构化思想实现软件系统。 面向对象设计,子系统从用户和系统功能考虑,功能需求通过用例图+用例描述展示,设计的时候需要设计对象图,然后编码实现。使用java,.net编程,都是在应用面向对象的思想,需要考虑对象间的通讯。
T9Team 2013-05-28
  • 打赏
  • 举报
回复
主要在软件复用上有问题。
漫步者、 2013-05-23
  • 打赏
  • 举报
回复
结构化概要设计->功能的划分 与面向对象概要设计->模块的划分
谜斯特段 2013-05-14
  • 打赏
  • 举报
回复
结构化概要设计一般都是以功能为主进行设计,大框的模块如何划分,模块中有什么功能,述功能的输入输出,执行步骤什么的。或是哪个功能调用哪个功能等等。可能会辅助一些流程图什么的。 面向对象的通常是对use case进行分析,提取出动态模型和静态模型,静态模型包括包图,类图等,动态模型包括时序图,状态图,活动图等。 一言难以蔽之。

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧