【备份】系统与分析作业2
因为博客网站服务器经常抽风,所以重新将作业备份并提交。以下截图证明作业完成时间。
源地址:
简答题
用简短的语言给出对分析、设计的理解。
分析(analysis):
强调的是对问题与需求的调查研究,而不是解决方案。
例如,我们要开发一个Android新闻客户端,我们要进行如下的分析:一个新闻客户端应该包括哪些用户感兴趣或者必要的模块:新闻的详情、新闻的推荐、用户的推荐分享与评论等。这些是否符合用户的需求?这些方面的考虑都属于分析。
设计(design):
更强调的是满足需求的概念层面的解决方案,而不是其实现。
例如,上面说到的Android新闻客户端,完成的时候需要那些框架、需要哪些结构性的设计,比如使用什么样的列表组件、使用什么框架进行网络访问与新闻获取。
用一句话描述面向对象的分析与设计的优势。
面向对象分析强调的是在问题领域内发现和描述对象(或概念)。面向对象设计强调的是定义软件对象以及它们如何协作实现要求。面向对象的分析与设计的优势有:
- 从认识论的角度面向对象方法改变了开发软件的方式;
- 面向对象语言使得从客观世界到计算机的语言鸿沟变窄;
- 使分析与设计之间的鸿沟变窄;
- 有助于软件的维护和复用;
- 有助于提高软件的质量和生产率。
简述 UML(统一建模语言)的作用。考试考哪些图?
统一建模语言UML是用于描述、构造和文档化系统制品的可视化语言,UML能够将分析与设计的结果可视化。它就是让开发人员与客户用图形的方式进行交流。UML语言已经成为一个标准的语言。
应用UML的方式:
- UML作为草图
- 非正式的、不完整的图,借助可视化语言的功能,用于探讨问题或者解决方案空间的复杂部分
- UML作为蓝图
- 相对详细的设计图,用于:
- ****,即以UML图的方式对现有代码进行可视化,使其易于理解
- 代码生成
- UML作为编程语言
- 用UML完成软件系统可执行规格说明。
考试要考的图有:
用例图、静态图(类图、对象图、包图)、行为图(交互图、状态图、活动图)、实现图(构件图、部署图)。
从软件本质的角度,解释软件范围(需求)控制的可行性
软件的本质:
复杂性、一致性、可变性、不可见性。
-
软件的复杂性:计算机存在很多种状态,使得软件的构思、描述以及测试都非常困难。同时软件系统状态比计算机状态多若干个数量级,这些元素以非线性递增的方式交互,因此整个软件复杂度要比非线性增长多得多。
-
一致性:开发的软件必须遵循各种接口,软件开发的目标是兼容性,许多复杂性来自于其他接口的一致性。对软件的任何再设计,都无法简化这些复杂特性。
-
可变性: 软件实体经常会遭受到持续的变更压力。软件产品扎根于文化的母体中,如各种应用、用户、自然及社会规律、计算机硬件等。后者持续不断的变化着,这些变化无情地强迫着软件也随之变化。
-
不可见性:软件的客观存在不具有空间的形体特征。所以如果我们使用图形来描述软件结构时,这些图形可能代表控制流程、数据流、依赖关系、时间序列和名字空间的相互关系等。即使我们在结构的建立上强制将关联分,软件仍然保持着无法可视化的固有特性。
因此,软件范围管理是非常重要的,我们可以使用二八法则进行软件的范围控制。
范围控制,即监控项目的范围状态,管理范围变更。目的是在出现范围变更需求后,管理相关的计划、资源安排以及项目成果,使得项目各部分可以很好地配合在一起。 对于软件,因为其可变性,变更是不可避免的,为防止范围蔓延,在每个项目上,都必须强制实施软件的范围控制。范围控制的方式是通过变更控制系统和配置管理系统,当出现范围变更需求时,通常要执行一个严格的变更控制流程。
项目管理实践
看板使用练习(提交看板执行结果贴图,建议使用 Git project)
-
使用截图工具(png格式输出),展现你团队的任务 Kanban
-
每个人的任务是明确的。必须一周后可以看到具体结果
-
每个人的任务是1-2项
-
至少包含一个团队活!
UML绘图工具练习(提交贴图,必须使用 UMLet)
- 请在 参考书2 或 教材 中选择一个类图(给出参考书页码图号)
- P182 图16-2
- P182 图16-2