系统分析HW2
学号:16340226
姓名:王迎旭
方向:16级软件工程嵌入式
日期:2019 - 03 - 15
一、简答题:
1.1 用简短的语言给出对分析、设计的理解。
答:
- 分析就是对用户给出的软件功能等方面的需求进行系统的研究,识别出主号问题,确定待开发软件的功能、性能、接口、数据、界面等具体的细节要求。
- 设计就是基于需求分析中得到的需求,构造出目标系统的逻辑模型,最终得到一个可供编码过程参考的设计模型文档。
分析与设计整体来说就是对客户提出的需求进行系统的研究,并在研究过程中对其进行精简和整理,分析过后得到可行的有价值的需求版本,然后再对其进行具体的功能与界面的设计,从而提出软件制品的可行方案。
1.2 用一句话描述面向对象的分析与设计的优势。
答:
面向对象的分析与设计能够通过分析现实世界中存在的问题,并构建相对应的问题模型,保持了他们的结构、关系和行为模式,具有易理解和易维护的特性。
1.3 简述 UML(统一建模语言)的作用。考试考哪些图?
解答:
1) UML(Unified Modeling Language)用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品。 它可以将面向对象分析(OOA)和面向对象设计(OOD)使用统一定义的符号表示出来,并将对象自身的属性、对象与对象之间的关联关系可视化,提升项目结构的可读性。
2) 考试要考的图形总共可分为 4 类:
- 用例图:用户角度:功能、执行者
- 静态图:系统静态结构
- 类图:概念及关系
- 对象图:某种状态或时间段内,系统中活跃的对象及其关系
- 包图:描述系统的分解结构
- 行为图:系统的动态行为
- 交互图:描述对象间的消息传递
- 顺序图:强调对象间消息发送的时序
- 合作图:强调对象间的动态协作关系
- 状态图:对象的动态行为。状态-事件-状态迁移-响应动作
- 活动图:描述系统为完成某功能而执行的操作序列
- 交互图:描述对象间的消息传递
- 实现图:描述系统的组成和分布状况
- 构件图:组成部件及其关系
- 部署图:物理体系结构及与软件单元的对应关系
1.4 从软件本质的角度,解释软件范围(需求)控制的可行性
软件具有复杂性、一致性、可变性、不可视性。软件开发本身具有可变性,而任何微小的需求变化都可能对软件的设计开发造成很大的影响,会影响软甲开发的难度,提高复杂性,如果不对软件的需求做出控制,会无意义地增加开发难度,对软件制品的质量产生负面效果,所以控制软件需求是必须的。
在需求分析与设计的过程中,我们可以围绕软件开发的复杂性,对现有的需求进行评估,同时围绕软件开发的成本进行调控,并对其可变和不可视的环境变化,也就是意外改动进行一致性的冗余设计,由此可以使得软件生产的预算、工期、意外变化等在一定程度都在我们的掌控之中
二、项目管理实践
2.1 看板使用练习(提交看板执行结果贴图,建议使用 Git project)
看板(kanban)是敏捷开发的重要手段,主要用于项目的进度管理。所有需要完成的任务,都做成卡片,贴在一块白板上面,这就是看板。
按照不同的阶段,看板分成若干列。
- Todo (待开发)
- Doing (开发中)
- Done (已完成)
可以根据实际情况,分出更多的列。
- Todo (待安排)
- Plan (计划)
- Develop (开发)
- Test (测试)
- Deploy (部署)
- Done (已完成)
github project
中的看板中,同样可以把 Issue 从一列拖到另一列,表示从一个阶段进入另一个阶段。
2.2 UML绘图工具练习(提交贴图,必须使用 UMLet)
绘图选择: p71
的 MonoPlay
应用玩家类
图示: