软件的本质与软件工程科学(二)

软件的本质与软件工程科学

  • 简答题
    • 用简短的语言给出对分析、设计的理解。
    • 用一句话描述面向对象的分析与设计的优势。
    • 简述 UML(统一建模语言)的作用。考试考哪些图li>
    • 从软件本质的角度,解释软件范围(需求)控制的可行性
  • 项目管理实践
    • 看板使用练习软件危机的本质原因是计算机的发展。软件具有复杂性、一致性、不可变性、可视性的本质特点,落后的软件生产方式无法满足计算机的迅速发展。
    • UML绘图工具练习

简答题

用简短的语言给出对分析、设计的理解。

分析 就是对软件产品的需求、可行性进行分析。确定要做什么功能,需要什么成本,承担什么风险,能否成功,有怎样的收益,值不值得这么做。

设计 是在软件产品完成分析阶段并决定继续开发之后,将更加实际地、系统地、细致地考虑和规划实现层面的细节,比如确定要用什么样的系统架构,什么样的管理体系,接口怎么设计,模块怎么分工等。

用一句话描述面向对象的分析与设计的优势。

让分析与设计更简单、容易理解,提高软件成品质量,减小维护成本。

简述 UML(统一建模语言)的作用。考试考哪些图h2>
  • UML作用主要是协助软件需求分析和软件设计,用简洁的语言描述类属性、类方法以及类与类之间的关系,简化分析与设计过程且逻辑清晰。
  • 用例图:用户角度:功能、执行者
  • 静态图:系统静态结构
    • 类图:概念及关系
    • 对象图:某种状态或时间段内,系统中活跃的对象及其关系
    • 包图:描述系统的分解结构
  • 行为图:系统的动态行为
    • 交互图:描述对象间的消息传递
      • 顺序图:强调对象间消息发送的时序
      • 合作图:强调对象间的动态写作关系
    • 状态图:对象的动态行为。状态 – 事件 – 状态迁移 – 响应动作
    • 活动图:描述系统为完成某功能而执行的操作序列
  • 实现图:描述系统的组成和分布状况
    • 构件图:组成部件及其关系
    • 部署图:物理体系结构及与软件单元的对应关系

从软件本质的角度,解释软件范围(需求)控制的可行性

软件的本质决定了软件开发的难度,Brook总结软件本质特性为:复杂性(complexity)、一致性(conformity)、可变性(changeability)、不可视性(invisibility)。

在实际软件项目中,即使在有明确的软件开发合同条件下,这四个约束并不是不可商量的。原因在于软件生产是易变、不可见、独特的智力生产!因为我们并不能如生产肥皂、衣服一样先给一个样品参考标准,甚至在项目开完成也无法写出完善的软件需求规格说明书。已 word 为例,设计师并不完全知道客户真需要什么,会在哪些场景中使用它,除了等待客户反馈,迭代升级,别无其他的方法。

从提升客户满意度的角度,了解并控制这四个元素就是 软件项目成功的关键。

  • 工期,软件项目刚性约束。多数情况下,软件的按时投产意味着收益或成本降低
  • 预算,软件项目重要约束。它与工期一样,最容易观察与度量,所以没有特别情况也不宜超预算
  • 质量,软件质量通常是有底线的。一些指标如可靠性、性能等,比较难以商量;另一些指标如易用性似乎相对灵活,但用户满意度对此特别敏感
  • 范围,在多数情况下,客户与开发者能就项目的 20% 内容给出严格的需求约定,80% 的内容都是相对模糊的。因此,围绕客户目标,发现并满足客户感兴趣的内容是最关键的。以 Office 产品为例,早期的版本的功能没有现在版本的 1% ,但这并不会妨碍它的成功。在当年并没人预见到 Office 会有如此多功能,使用者也不会因罗列诸多功能的产品感兴趣,感兴趣的往往是当时背景下最能创造价值的几个特性。

Scope = Time × Resources,在项目管理中称为 STR 模型。

由于软件本身的复杂性、不可见性、不一致性、可变性,软件范围多数情况下对于客户和开发者都是模糊的,这形成软件产品与其他产品不同的开发过程。因此,范围管理是软件项目管理的重中之重!

项目管理实践

看板使用练习软件危机的本质原因是计算机的发展。软件具有复杂性、一致性、不可变性、可视性的本质特点,落后的软件生产方式无法满足计算机的迅速发展。

软件的本质与软件工程科学(二)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年3月9日
下一篇 2019年3月9日

相关推荐