【备份】系统与分析作业2

因为博客网站服务器经常抽风,所以重新将作业备份并提交。以下截图证明作业完成时间。

源地址:

http://www.chensh236.net/2019/03/12/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1%E4%BD%9C%E4%B8%9A2/

【备份】系统与分析作业2

简答题

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

分析(analysis):

​ 强调的是对问题与需求的调查研究,而不是解决方案。

​ 例如,我们要开发一个Android新闻客户端,我们要进行如下的分析:一个新闻客户端应该包括哪些用户感兴趣或者必要的模块:新闻的详情、新闻的推荐、用户的推荐分享与评论等。这些是否符合用户的需求?这些方面的考虑都属于分析。

设计(design):

​ 更强调的是满足需求的概念层面的解决方案,而不是其实现。

​ 例如,上面说到的Android新闻客户端,完成的时候需要那些框架、需要哪些结构性的设计,比如使用什么样的列表组件、使用什么框架进行网络访问与新闻获取。

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

面向对象分析强调的是在问题领域内发现和描述对象(或概念)。面向对象设计强调的是定义软件对象以及它们如何协作实现要求。面向对象的分析与设计的优势有:

  • 从认识论的角度面向对象方法改变了开发软件的方式;
  • 面向对象语言使得从客观世界到计算机的语言鸿沟变窄;
  • 使分析与设计之间的鸿沟变窄;
  • 有助于软件的维护和复用;
  • 有助于提高软件的质量和生产率。

简述 UML(统一建模语言)的作用。考试考哪些图?

统一建模语言UML是用于描述、构造和文档化系统制品的可视化语言,UML能够将分析与设计的结果可视化。它就是让开发人员与客户用图形的方式进行交流。UML语言已经成为一个标准的语言。

应用UML的方式:

  • UML作为草图
    • 非正式的、不完整的图,借助可视化语言的功能,用于探讨问题或者解决方案空间的复杂部分
  • UML作为蓝图
    • 相对详细的设计图,用于:
    • ****,即以UML图的方式对现有代码进行可视化,使其易于理解
    • 代码生成
  • UML作为编程语言
    • 用UML完成软件系统可执行规格说明。

考试要考的图有:

用例图、静态图(类图、对象图、包图)、行为图(交互图、状态图、活动图)、实现图(构件图、部署图)。

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

软件的本质:

​ 复杂性、一致性、可变性、不可见性。

  • 软件的复杂性:计算机存在很多种状态,使得软件的构思、描述以及测试都非常困难。同时软件系统状态比计算机状态多若干个数量级,这些元素以非线性递增的方式交互,因此整个软件复杂度要比非线性增长多得多。

  • 一致性:开发的软件必须遵循各种接口,软件开发的目标是兼容性,许多复杂性来自于其他接口的一致性。对软件的任何再设计,都无法简化这些复杂特性。

  • 可变性: 软件实体经常会遭受到持续的变更压力。软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等。后者持续不断的变化着,这些变化无情地强迫着软件也随之变化。

  • 不可见性:软件的客观存在不具有空间的形体特征。所以如果我们使用图形来描述软件结构时,这些图形可能代表控制流程、数据流、依赖关系、时间序列和名字空间的相互关系等。即使我们在结构的建立上强制将关联分,软件仍然保持着无法可视化的固有特性。

因此,软件范围管理是非常重要的,我们可以使用二八法则进行软件的范围控制。

范围控制,即监控项目的范围状态,管理范围变更。目的是在出现范围变更需求后,管理相关的计划、资源安排以及项目成果,使得项目各部分可以很好地配合在一起。 对于软件,因为其可变性,变更是不可避免的,为防止范围蔓延,在每个项目上,都必须强制实施软件的范围控制。范围控制的方式是通过变更控制系统和配置管理系统,当出现范围变更需求时,通常要执行一个严格的变更控制流程。

项目管理实践

看板使用练习(提交看板执行结果贴图,建议使用 Git project)

  • 使用截图工具(png格式输出),展现你团队的任务 Kanban

  • 每个人的任务是明确的。必须一周后可以看到具体结果

  • 每个人的任务是1-2项

  • 至少包含一个团队活!
    【备份】系统与分析作业2

UML绘图工具练习(提交贴图,必须使用 UMLet)

  • 请在 参考书2 或 教材 中选择一个类图(给出参考书页码图号)
    • P182 图16-2
      【备份】系统与分析作业2