<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="3.7.3">Jekyll</generator><link href="https://bbycjhj.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://bbycjhj.github.io/" rel="alternate" type="text/html" hreflang="en" /><updated>2018-07-01T16:13:02+08:00</updated><id>https://bbycjhj.github.io/</id><title type="html">bbycjhj’s blog</title><subtitle>bbycjhj's Blog
</subtitle><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><entry><title type="html">系统分析与设计homework9</title><link href="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/06/30/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework9.html" rel="alternate" type="text/html" title="系统分析与设计homework9" /><published>2018-06-30T08:00:00+08:00</published><updated>2018-06-30T08:00:00+08:00</updated><id>https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/06/30/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework9</id><content type="html" xml:base="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/06/30/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework9.html">&lt;ul&gt;
  &lt;li&gt;使用 ECB 实现 make reservation 用例的详细设计（包含用例简介，顺序图，类图）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;make researvation 用例：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-6-30-系统分析与设计homework9/用例.png&quot; alt=&quot;用例&quot; /&gt;&lt;/p&gt;

&lt;p&gt;make researvation 用例如图所示，包括选择酒店，选择房间，确认订单。&lt;/p&gt;

&lt;p&gt;顺序图：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-6-30-系统分析与设计homework9/SSD.png&quot; alt=&quot;SSD&quot; /&gt;&lt;/p&gt;

&lt;p&gt;类图：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-6-30-系统分析与设计homework9/类图.png&quot; alt=&quot;类图&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;将逻辑设计类图映射到实际项目框架的包图。用树形结构表述实现的包和类&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-6-30-系统分析与设计homework9/文件结构.png&quot; alt=&quot;文件结构&quot; /&gt;&lt;/p&gt;</content><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><category term="作业" /><category term="系统分析与设计" /><summary type="html">使用 ECB 实现 make reservation 用例的详细设计（包含用例简介，顺序图，类图） make researvation 用例： make researvation 用例如图所示，包括选择酒店，选择房间，确认订单。 顺序图： 类图： 将逻辑设计类图映射到实际项目框架的包图。用树形结构表述实现的包和类</summary></entry><entry><title type="html">系统分析与设计 final report</title><link href="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/06/30/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1-finial-report.html" rel="alternate" type="text/html" title="系统分析与设计 final report" /><published>2018-06-30T08:00:00+08:00</published><updated>2018-06-30T08:00:00+08:00</updated><id>https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/06/30/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1%20finial%20report</id><content type="html" xml:base="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/06/30/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1-finial-report.html">&lt;p&gt;##自我总结&lt;/p&gt;

&lt;p&gt;通过一个学期的课程学习，以及在大作业开发中的参与，我对软件开发的过程有了一定的了解，熟悉了迭代式开发的方法。在开发过程中，我能够更加清晰的理解面对对象的设计与分析方法，熟悉软件设计中的领域模型、逻辑架构。感谢我的组员在大作业开发过程中的共同努力，并感谢组员对我的帮助。&lt;/p&gt;

&lt;h2 id=&quot;psp-21-统计表&quot;&gt;PSP 2.1 统计表&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Personal Software Process Stages&lt;/th&gt;
      &lt;th&gt;Time&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;计划&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;开发&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;91&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;- 需求分析&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;- 文档设计&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;- 具体编码&lt;/td&gt;
      &lt;td&gt;60&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;- 测试&lt;/td&gt;
      &lt;td&gt;20&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;报告&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;&lt;strong&gt;6&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;- 测试报告&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;- 总结&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;git-统计报告&quot;&gt;Git 统计报告&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-6-30-系统分析与设计 finial report/个人贡献.png&quot; alt=&quot;个人贡献&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-6-30-系统分析与设计 finial report/提交记录.png&quot; alt=&quot;提交记录&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;自认为最得意或有价值或有苦劳的工作清单&quot;&gt;自认为最得意/或有价值/或有苦劳的工作清单&lt;/h2&gt;

&lt;p&gt;完成了前端报名页面的设计以及表单有效性的校验；&lt;/p&gt;

&lt;p&gt;完成了讨论区的主界面和详情界面及交互逻辑&lt;/p&gt;

&lt;h2 id=&quot;个人技术类博客&quot;&gt;个人技术类博客&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/04/15/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93.html&quot;&gt;微信小程序学习总结&lt;/a&gt;&lt;/p&gt;</content><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><category term="作业" /><category term="系统分析与设计" /><summary type="html">##自我总结 通过一个学期的课程学习，以及在大作业开发中的参与，我对软件开发的过程有了一定的了解，熟悉了迭代式开发的方法。在开发过程中，我能够更加清晰的理解面对对象的设计与分析方法，熟悉软件设计中的领域模型、逻辑架构。感谢我的组员在大作业开发过程中的共同努力，并感谢组员对我的帮助。 PSP 2.1 统计表 Personal Software Process Stages Time 计划 3 开发 91 - 需求分析 6 - 文档设计 4 - 具体编码 60 - 测试 20 报告 6 - 测试报告 3 - 总结 3 Git 统计报告 自认为最得意/或有价值/或有苦劳的工作清单 完成了前端报名页面的设计以及表单有效性的校验； 完成了讨论区的主界面和详情界面及交互逻辑 个人技术类博客 微信小程序学习总结</summary></entry><entry><title type="html">系统分析与设计homework8</title><link href="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/06/02/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework8.html" rel="alternate" type="text/html" title="系统分析与设计homework8" /><published>2018-06-02T08:00:00+08:00</published><updated>2018-06-02T08:00:00+08:00</updated><id>https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/06/02/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework8</id><content type="html" xml:base="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/06/02/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework8.html">&lt;h2 id=&quot;描述软件架构与框架之间的区别与联系&quot;&gt;描述软件架构与框架之间的区别与联系&lt;/h2&gt;

&lt;p&gt;软件架构：&lt;/p&gt;

&lt;p&gt;软件架构是一组重要决策，其中涉及软件系统的组织，对结构元素及其组成系统所藉接口的选择，这些元素特定于其相互协作的行为，这些结构和行为元素到规模更大的子系统的组成，以及指导该组织结构（这些元素及其接口、协作和组成）的架构风格。&lt;/p&gt;

&lt;p&gt;软件框架：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;框架是一组相关的类和接口相互协作，为逻辑子系统的核心和不变部分提供服务。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;其包含具体和抽象类，这些类定义了需要遵循的接口、需要参与的对象交互以及其他的不变式。&lt;/li&gt;
  &lt;li&gt;通常（但不是必须）要求框架的使用者去定义已有框架类的子类来利用、定制或扩展框架服务。&lt;/li&gt;
  &lt;li&gt;框架包括既有抽象方法又有具体方法的抽象类。&lt;/li&gt;
  &lt;li&gt;依赖于 好莱坞原则 ， 即“不要给我们打电话，我们会打给你”。意思是，用户定义的类（例如新的子类）将从预定义的框架类接收消息。这通常是通过实现超类的抽象方法来实现的。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;软件架构是一种软件设计的策略，而软件框架则是为了实现某种软件规范而提供基础功能实现的软件产品。软件架构不是软件，它决定了软件系统结构的划分以及各子系统之间的关系，软件框架则实现了软件架构中的基础功能，软件架构的一些决策会在框架中得到体现。&lt;/p&gt;

&lt;h2 id=&quot;以你的项目为案例&quot;&gt;以你的项目为案例&lt;/h2&gt;

&lt;h3 id=&quot;绘制三层架构模型图细致到分区&quot;&gt;绘制三层架构模型图，细致到分区&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-6-2-系统分析与设计homework8/三层架构图.png&quot; alt=&quot;三层架构图&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;结合你程序的结构从程序员角度说明三层架构给开发者带来的便利&quot;&gt;结合你程序的结构，从程序员角度说明三层架构给开发者带来的便利&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;三层架构明确的划分了每个层和每个区的内容，每个层间的依赖较低，开发者可以明确的分工，并专注于自己负责的层或分区。&lt;/li&gt;
  &lt;li&gt;分层架构使的开发者可以更容易地扩展功能，添加新的子系统和模块。&lt;/li&gt;
  &lt;li&gt;清晰的模块划分也更使开发者可以更容易地进行维护。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;研究-vue-与-flux-状态管理的异同&quot;&gt;研究 VUE 与 Flux 状态管理的异同&lt;/h2&gt;

&lt;p&gt;Flux是Facebook用于构建客户端Web应用程序的一个系统架构，它将应用分为View，Action，Dispatcher以及Store。用户访问View，View发出用户的Action，Dispatcher收到Action之后要求Store进行更新，Store更新完成后发出change事件，View在接收到change事件后更新页面。
Vuex在Flux的基础上改进，对仓库的管理更加明确。Vuex中不再有Dispatcher，取而代之的是mutation。另外Vuex具有自动渲染功能，不需要更新页面。&lt;/p&gt;</content><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><category term="作业" /><category term="系统分析与设计" /><summary type="html">描述软件架构与框架之间的区别与联系 软件架构： 软件架构是一组重要决策，其中涉及软件系统的组织，对结构元素及其组成系统所藉接口的选择，这些元素特定于其相互协作的行为，这些结构和行为元素到规模更大的子系统的组成，以及指导该组织结构（这些元素及其接口、协作和组成）的架构风格。 软件框架： 框架是一组相关的类和接口相互协作，为逻辑子系统的核心和不变部分提供服务。 其包含具体和抽象类，这些类定义了需要遵循的接口、需要参与的对象交互以及其他的不变式。 通常（但不是必须）要求框架的使用者去定义已有框架类的子类来利用、定制或扩展框架服务。 框架包括既有抽象方法又有具体方法的抽象类。 依赖于 好莱坞原则 ， 即“不要给我们打电话，我们会打给你”。意思是，用户定义的类（例如新的子类）将从预定义的框架类接收消息。这通常是通过实现超类的抽象方法来实现的。 软件架构是一种软件设计的策略，而软件框架则是为了实现某种软件规范而提供基础功能实现的软件产品。软件架构不是软件，它决定了软件系统结构的划分以及各子系统之间的关系，软件框架则实现了软件架构中的基础功能，软件架构的一些决策会在框架中得到体现。 以你的项目为案例 绘制三层架构模型图，细致到分区 结合你程序的结构，从程序员角度说明三层架构给开发者带来的便利 三层架构明确的划分了每个层和每个区的内容，每个层间的依赖较低，开发者可以明确的分工，并专注于自己负责的层或分区。 分层架构使的开发者可以更容易地扩展功能，添加新的子系统和模块。 清晰的模块划分也更使开发者可以更容易地进行维护。 研究 VUE 与 Flux 状态管理的异同 Flux是Facebook用于构建客户端Web应用程序的一个系统架构，它将应用分为View，Action，Dispatcher以及Store。用户访问View，View发出用户的Action，Dispatcher收到Action之后要求Store进行更新，Store更新完成后发出change事件，View在接收到change事件后更新页面。 Vuex在Flux的基础上改进，对仓库的管理更加明确。Vuex中不再有Dispatcher，取而代之的是mutation。另外Vuex具有自动渲染功能，不需要更新页面。</summary></entry><entry><title type="html">系统分析与设计homework7 建模练习</title><link href="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/05/12/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1homework7-%E5%BB%BA%E6%A8%A1%E7%BB%83%E4%B9%A0.html" rel="alternate" type="text/html" title="系统分析与设计homework7 建模练习" /><published>2018-05-12T08:00:00+08:00</published><updated>2018-05-12T08:00:00+08:00</updated><id>https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/05/12/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1homework7%20%E5%BB%BA%E6%A8%A1%E7%BB%83%E4%B9%A0</id><content type="html" xml:base="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/05/12/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1homework7-%E5%BB%BA%E6%A8%A1%E7%BB%83%E4%B9%A0.html">&lt;h2 id=&quot;题目&quot;&gt;题目&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://github.com/Owl-Movies-Ticket-System/Dashboard/blob/gh-pages/XX1-Forest%E5%BA%94%E7%94%A8.pdf&quot;&gt;Forest 应用&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;用例图&quot;&gt;用例图&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-5-12-系统分析与设计homework7建模练习/用例图.png&quot; alt=&quot;用例图&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;种树用例的活动图&quot;&gt;种树用例的活动图&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-5-12-系统分析与设计homework7建模练习/种树活动图.png&quot; alt=&quot;活动图&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;领域模型&quot;&gt;领域模型&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-5-12-系统分析与设计homework7建模练习/领域模型.png&quot; alt=&quot;领域模型&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;树对象状态图&quot;&gt;树对象状态图&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-5-12-系统分析与设计homework7建模练习/树对象状态图.png&quot; alt=&quot;状态图&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;系统顺序图&quot;&gt;系统顺序图&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-5-12-系统分析与设计homework7建模练习/系统顺序图.png&quot; alt=&quot;系统顺序图&quot; /&gt;&lt;/p&gt;

&lt;p&gt;###协议1：设置树的种类&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;操作&lt;/strong&gt;：设置树的种类&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;交叉引用&lt;/strong&gt;：选择树&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;前置条件&lt;/strong&gt;：已创建新的种树活动&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;后置条件&lt;/strong&gt;：1.	创建了树的实例treeInstance；&lt;/p&gt;

&lt;p&gt;​		   2. treeInstance的属性treeInstance.type 被设置为type，treeInstance.isWithered设置为isWithered，treeInstance.lastTime设置为lastTime。&lt;/p&gt;</content><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><category term="作业" /><category term="系统分析与设计" /><summary type="html">题目 Forest 应用 用例图 种树用例的活动图 领域模型 树对象状态图 系统顺序图 ###协议1：设置树的种类 操作：设置树的种类 交叉引用：选择树 前置条件：已创建新的种树活动 后置条件：1. 创建了树的实例treeInstance； ​ 2. treeInstance的属性treeInstance.type 被设置为type，treeInstance.isWithered设置为isWithered，treeInstance.lastTime设置为lastTime。</summary></entry><entry><title type="html">系统分析与设计homework6</title><link href="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/05/03/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework6.html" rel="alternate" type="text/html" title="系统分析与设计homework6" /><published>2018-05-03T08:00:00+08:00</published><updated>2018-05-03T08:00:00+08:00</updated><id>https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/05/03/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework6</id><content type="html" xml:base="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/05/03/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework6.html">&lt;h2 id=&quot;1-使用-uml-state-model&quot;&gt;1. 使用 UML State Model&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;建模对象： 参考 Asg_RH 文档， 对 Reservation/Order 对象建模。&lt;/li&gt;
  &lt;li&gt;建模要求： 参考练习不能提供足够信息帮助你对订单对象建模，请参考现在 定旅馆 的旅游网站，尽可能分析围绕订单发生的各种情况，直到订单通过销售事件（柜台销售）结束订单&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-5-3-系统分析与设计homework6/1.png&quot; alt=&quot;1&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;2-研究淘宝退货流程活动图对退货业务对象状态建模&quot;&gt;2. 研究淘宝退货流程活动图，对退货业务对象状态建模&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-5-3-系统分析与设计homework6/2.png&quot; alt=&quot;2&quot; /&gt;&lt;/p&gt;</content><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><category term="作业" /><category term="系统分析与设计" /><summary type="html">1. 使用 UML State Model 建模对象： 参考 Asg_RH 文档， 对 Reservation/Order 对象建模。 建模要求： 参考练习不能提供足够信息帮助你对订单对象建模，请参考现在 定旅馆 的旅游网站，尽可能分析围绕订单发生的各种情况，直到订单通过销售事件（柜台销售）结束订单 2. 研究淘宝退货流程活动图，对退货业务对象状态建模</summary></entry><entry><title type="html">系统分析与设计homework5</title><link href="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/04/28/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework5.html" rel="alternate" type="text/html" title="系统分析与设计homework5" /><published>2018-04-28T08:00:00+08:00</published><updated>2018-04-28T08:00:00+08:00</updated><id>https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/04/28/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework5</id><content type="html" xml:base="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/04/28/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework5.html">&lt;h2 id=&quot;1-领域建模&quot;&gt;1. 领域建模&lt;/h2&gt;

&lt;h3 id=&quot;a-阅读-asg_rh-文档按用例构建领域模型&quot;&gt;a. 阅读 Asg_RH 文档，按用例构建领域模型。&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;按 Task2 要求，请使用工具 UMLet，截图格式务必是 png 并控制尺寸&lt;/li&gt;
  &lt;li&gt;说明：请不要受 PCMEF 层次结构影响。你需要识别实体（E）和 中介实体（M，也称状态实体）
    &lt;ul&gt;
      &lt;li&gt;在单页面应用（如 vue）中，E 一般与数据库构建有关， M 一般与 store 模式 有关&lt;/li&gt;
      &lt;li&gt;在 java web 应用中，E 一般与数据库构建有关， M 一般与 session 有关&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-28-系统分析与设计homework5/1-a.png&quot; alt=&quot;1-a&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;b-数据库建模e-r-模型&quot;&gt;b. 数据库建模(E-R 模型)&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;按 Task 3 要求，给出系统的 E-R 模型（数据逻辑模型）&lt;/li&gt;
  &lt;li&gt;建模工具 PowerDesigner（简称PD） 或开源工具 OpenSystemArchitect&lt;/li&gt;
  &lt;li&gt;不负责的链接 http://www.cnblogs.com/mcgrady/archive/2013/05/25/3098588.html&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-28-系统分析与设计homework5/2-a.png&quot; alt=&quot;2-a&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;导出 Mysql 物理数据库的脚本&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;&lt;code class=&quot;language-mysql&quot;&gt;-- +---------------------------------------------------------
-- | MODEL       : 2-a
-- | AUTHOR      : 
-- | GENERATED BY: Open System Architect
-- +---------------------------------------------------------
-- | WARNING     : Review before execution
-- +---------------------------------------------------------

-- +---------------------------------------------------------
-- | CREATE
-- +---------------------------------------------------------
CREATE TABLE `traveler`
(
  user_id INTEGER NOT NULL,
  full_name VARCHAR(20),
  email_address VARCHAR(50),
  PRIMARY KEY (user_id)
);

CREATE TABLE `room`
(
  room_id INTEGER NOT NULL,
  type VARCHAR(20) NOT NULL,
  availability BIT NOT NULL,
  price INTEGER,
  PRIMARY KEY (room_id)
);

CREATE TABLE `hotel`
(
  hotel_id INTEGER NOT NULL,
  hotel_name VARCHAR(20) NOT NULL,
  address VARCHAR(50) NOT NULL,
  star INTEGER,
  PRIMARY KEY (hotel_id)
);

CREATE TABLE `Location`
(
  location_id INTEGER NOT NULL,
  location_name VARCHAR(20) NOT NULL,
  city VARCHAR(20),
  region VARCHAR(20),
  town VARCHAR(20),
  isCapital BIT,
  PRIMARY KEY (location_id)
);

CREATE TABLE `Reservation`
(
  reservation_id INTEGER NOT NULL,
  check_ind_date DATE NOT NULL,
  check_out_date DATE NOT NULL,
  num_of_rooms INTEGER NOT NULL,
  num_of_adults INTEGER,
  num_of_children INTEGER,
  make_reservation_time DATE,
  isPayed BIT,
  user_id INTEGER NOT NULL,
  PRIMARY KEY (reservation_id)
);

CREATE INDEX idxReservation1 ON Reservation
(
  user_id
);
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;简单叙说 数据库逻辑模型 与 领域模型 的异同&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;数据库逻辑模型和领域模型都反应了不同实体之间的关系。数据库逻辑模型是从开发者角度来观察问题，侧重于描述数据存储。相比于领域模型，数据库逻辑模型对属性的描述更加的细致，需要确定出数据的存储类型，定义实体的键。另外，数据库逻辑模型中不需要考虑中介实体，只需考虑需要存储与数据库中的实体。&lt;/p&gt;

&lt;p&gt;领域模型是从用户的角度来对业务需求进行描述，不需要考虑技术层面上的数据存储，只需要描述各个实体之间的关系，不需要细致定义实体的属性以及键等。中介实体在数据库逻辑模型中不需要进行描述，但是需要出现在领域模型中。&lt;/p&gt;</content><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><category term="作业" /><category term="系统分析与设计" /><summary type="html">1. 领域建模 a. 阅读 Asg_RH 文档，按用例构建领域模型。 按 Task2 要求，请使用工具 UMLet，截图格式务必是 png 并控制尺寸 说明：请不要受 PCMEF 层次结构影响。你需要识别实体（E）和 中介实体（M，也称状态实体） 在单页面应用（如 vue）中，E 一般与数据库构建有关， M 一般与 store 模式 有关 在 java web 应用中，E 一般与数据库构建有关， M 一般与 session 有关 b. 数据库建模(E-R 模型) 按 Task 3 要求，给出系统的 E-R 模型（数据逻辑模型） 建模工具 PowerDesigner（简称PD） 或开源工具 OpenSystemArchitect 不负责的链接 http://www.cnblogs.com/mcgrady/archive/2013/05/25/3098588.html 导出 Mysql 物理数据库的脚本 -- +--------------------------------------------------------- -- | MODEL : 2-a -- | AUTHOR : -- | GENERATED BY: Open System Architect -- +--------------------------------------------------------- -- | WARNING : Review before execution -- +--------------------------------------------------------- -- +--------------------------------------------------------- -- | CREATE -- +--------------------------------------------------------- CREATE TABLE `traveler` ( user_id INTEGER NOT NULL, full_name VARCHAR(20), email_address VARCHAR(50), PRIMARY KEY (user_id) ); CREATE TABLE `room` ( room_id INTEGER NOT NULL, type VARCHAR(20) NOT NULL, availability BIT NOT NULL, price INTEGER, PRIMARY KEY (room_id) ); CREATE TABLE `hotel` ( hotel_id INTEGER NOT NULL, hotel_name VARCHAR(20) NOT NULL, address VARCHAR(50) NOT NULL, star INTEGER, PRIMARY KEY (hotel_id) ); CREATE TABLE `Location` ( location_id INTEGER NOT NULL, location_name VARCHAR(20) NOT NULL, city VARCHAR(20), region VARCHAR(20), town VARCHAR(20), isCapital BIT, PRIMARY KEY (location_id) ); CREATE TABLE `Reservation` ( reservation_id INTEGER NOT NULL, check_ind_date DATE NOT NULL, check_out_date DATE NOT NULL, num_of_rooms INTEGER NOT NULL, num_of_adults INTEGER, num_of_children INTEGER, make_reservation_time DATE, isPayed BIT, user_id INTEGER NOT NULL, PRIMARY KEY (reservation_id) ); CREATE INDEX idxReservation1 ON Reservation ( user_id ); 简单叙说 数据库逻辑模型 与 领域模型 的异同 数据库逻辑模型和领域模型都反应了不同实体之间的关系。数据库逻辑模型是从开发者角度来观察问题，侧重于描述数据存储。相比于领域模型，数据库逻辑模型对属性的描述更加的细致，需要确定出数据的存储类型，定义实体的键。另外，数据库逻辑模型中不需要考虑中介实体，只需考虑需要存储与数据库中的实体。 领域模型是从用户的角度来对业务需求进行描述，不需要考虑技术层面上的数据存储，只需要描述各个实体之间的关系，不需要细致定义实体的属性以及键等。中介实体在数据库逻辑模型中不需要进行描述，但是需要出现在领域模型中。</summary></entry><entry><title type="html">系统分析与设计homework4</title><link href="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/04/20/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework4.html" rel="alternate" type="text/html" title="系统分析与设计homework4" /><published>2018-04-20T08:00:00+08:00</published><updated>2018-04-20T08:00:00+08:00</updated><id>https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/04/20/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework4</id><content type="html" xml:base="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/04/20/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework4.html">&lt;h2 id=&quot;1-用例建模&quot;&gt;1. 用例建模&lt;/h2&gt;

&lt;h3 id=&quot;a-阅读-asg_rh-文档绘制用例图-按-task1-要求请使用工具-umlet截图格式务必是-png-并控制尺寸&quot;&gt;a. 阅读 Asg_RH 文档，绘制用例图。 按 Task1 要求，请使用工具 UMLet，截图格式务必是 png 并控制尺寸&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-22-系统分析与设计homework4/1-a.png&quot; alt=&quot;1-a&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;b-选择你熟悉的定旅馆在线服务系统或移动-app如绘制用例图并满足以下要求&quot;&gt;b. 选择你熟悉的定旅馆在线服务系统（或移动 APP），如绘制用例图。并满足以下要求：&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;对比 Asg_RH 用例图，请用色彩标注出创新用例或子用例&lt;/li&gt;
  &lt;li&gt;尽可能识别外部系统，并用色彩标注新的外部系统和服务&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;以携程旅行网为例：&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-22-系统分析与设计homework4/1-b.png&quot; alt=&quot;1-b&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;c-对比两个时代不同地区产品的用例图总结在项目早期发现创新的思路与方法&quot;&gt;c. 对比两个时代、不同地区产品的用例图，总结在项目早期，发现创新的思路与方法&lt;/h3&gt;

&lt;p&gt;对比携程网和“Reserve Hotel”的用例图，可以明显的看出携程网的用例图相较于”Reserve Hotel”拥有更多的用例和外部系统，这表示携程网比“Reserve Hotel”拥有的功能更加丰富，同时也拥有更多创新的方面。要在项目早期发现创新点，可以多从用户的角度看待问题，分析当前已有的类似项目有什么不足，对用户造成了什么不便，思考用户需要什么，从而发现可以进行创新的点，然后开发能够更好满足用户需求的功能。&lt;/p&gt;

&lt;h3 id=&quot;d-请使用-scrum-方法在任务b用例图基础上编制某定旅馆开发的需求-backlog&quot;&gt;d. 请使用 SCRUM 方法，在（任务b）用例图基础上，编制某定旅馆开发的需求 （backlog）&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;ID&lt;/th&gt;
      &lt;th&gt;Name&lt;/th&gt;
      &lt;th&gt;Imp&lt;/th&gt;
      &lt;th&gt;Est&lt;/th&gt;
      &lt;th&gt;How to demo&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;在地图上搜索&lt;/td&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;7&lt;/td&gt;
      &lt;td&gt;点开地图，选择酒店类型等分类标签，在地图上显示按条件筛选的候选酒店，可以按照评分、价格等标准排序&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;一般搜索&lt;/td&gt;
      &lt;td&gt;7&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;在首页，选择要搜索的酒店类型，输入地点、入住日期等信息，点击搜索后，出现满足条件的酒店列表，可以按照评分、价格等标准排序&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;预定酒店&lt;/td&gt;
      &lt;td&gt;8&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
      &lt;td&gt;选择将要入住的酒店，选定房间，填写入住时间、退房时间、房间数以及入住人数，点击预定，在订单上填写个人信息，确认订单&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;支付订单&lt;/td&gt;
      &lt;td&gt;7&lt;/td&gt;
      &lt;td&gt;7&lt;/td&gt;
      &lt;td&gt;在确认订单页面，或者订单管理页面，点击付款，弹出选择支付方式的窗口，选择一个支付方式，完成付款&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;查看订单详情&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;在订单管理页面，点击查看一个订单，进入订单的详情页面，显示预定酒店信息、房间信息、入住信息、下单时间以及价格等详细信息&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;6&lt;/td&gt;
      &lt;td&gt;取消订单&lt;/td&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;在订单管理页面，在未完成的订单旁边点击取消订单，进入取消订单页面，填写取消订单的理由等信息，提交取消订单申请，然后等待商家回复&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;7&lt;/td&gt;
      &lt;td&gt;评价&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;在订单管理页面，在已完成的订单旁点击评价，可以填写并提交自己对酒店的评价。&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;8&lt;/td&gt;
      &lt;td&gt;邮件提醒&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
      &lt;td&gt;在确认订单后，注册邮箱会收到包含订单详情和支付信息的确认邮件&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;2-业务建模&quot;&gt;2. 业务建模&lt;/h2&gt;

&lt;h3 id=&quot;a-在任务b基础上用活动图建模找酒店用例简述利用流程图发现子用例的方法&quot;&gt;a. 在（任务b）基础上，用活动图建模找酒店用例。简述利用流程图发现子用例的方法&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-22-系统分析与设计homework4/2-a.png&quot; alt=&quot;2-a&quot; /&gt;&lt;/p&gt;

&lt;p&gt;绘制流程图的过程中，每一步都分析当前活动是否是个复杂活动，能否继续拆分成更小的步骤，从而找出子用例。&lt;/p&gt;

&lt;h3 id=&quot;b-选择你身边的银行atm用活动图描绘取款业务流程&quot;&gt;b. 选择你身边的银行ATM，用活动图描绘取款业务流程&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-22-系统分析与设计homework4/2-b.png&quot; alt=&quot;2-b&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;c-查找淘宝退货业务官方文档使用多泳道图表达客户淘宝网淘宝商家服务系统商家等用户和系统协同完成退货业务的过程分析客户要完成退货业务在淘宝网上需要实现哪些系统用例&quot;&gt;c. 查找淘宝退货业务官方文档，使用多泳道图，表达客户、淘宝网、淘宝商家服务系统、商家等用户和系统协同完成退货业务的过程。分析客户要完成退货业务，在淘宝网上需要实现哪些系统用例&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-22-系统分析与设计homework4/2-c.png&quot; alt=&quot;2-c&quot; /&gt;&lt;/p&gt;

&lt;p&gt;为了完成退货业务，淘宝网上至少要完成处理请求系统、凭证审核系统以及退款系统。&lt;/p&gt;

&lt;h2 id=&quot;3-用例文本编写&quot;&gt;3. 用例文本编写&lt;/h2&gt;

&lt;h3 id=&quot;a-在大作业基础上分析三种用例文本的优点和缺点&quot;&gt;a. 在大作业基础上，分析三种用例文本的优点和缺点&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;摘要&lt;/strong&gt;：
    &lt;ul&gt;
      &lt;li&gt;优点：在描述场景时十分简洁，能够快速编写。&lt;/li&gt;
      &lt;li&gt;缺点：缺乏细节，无法描述全面完整的场景，只适合用于早期需求分析过程中。&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;非正式&lt;/strong&gt;：
    &lt;ul&gt;
      &lt;li&gt;优点：能用几个段落覆盖不同的场景，同样能够比较快的编写，比摘要更加详细具体。&lt;/li&gt;
      &lt;li&gt;缺点：尽管比摘要详细，但是仍然无法描述各种场景的所有步骤以及各种变化。&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;详述&lt;/strong&gt;：
    &lt;ul&gt;
      &lt;li&gt;优点：能详细描述所有的场景，包括步骤和各种变化，同时具有补充部分，如前置条件和成功保证。&lt;/li&gt;
      &lt;li&gt;缺点：编写费时费力，而且因为难以考虑到各种情况导致详述的编写难度增加。&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;</content><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><category term="作业" /><category term="系统分析与设计" /><summary type="html">1. 用例建模 a. 阅读 Asg_RH 文档，绘制用例图。 按 Task1 要求，请使用工具 UMLet，截图格式务必是 png 并控制尺寸 b. 选择你熟悉的定旅馆在线服务系统（或移动 APP），如绘制用例图。并满足以下要求： 对比 Asg_RH 用例图，请用色彩标注出创新用例或子用例 尽可能识别外部系统，并用色彩标注新的外部系统和服务 以携程旅行网为例： c. 对比两个时代、不同地区产品的用例图，总结在项目早期，发现创新的思路与方法 对比携程网和“Reserve Hotel”的用例图，可以明显的看出携程网的用例图相较于”Reserve Hotel”拥有更多的用例和外部系统，这表示携程网比“Reserve Hotel”拥有的功能更加丰富，同时也拥有更多创新的方面。要在项目早期发现创新点，可以多从用户的角度看待问题，分析当前已有的类似项目有什么不足，对用户造成了什么不便，思考用户需要什么，从而发现可以进行创新的点，然后开发能够更好满足用户需求的功能。 d. 请使用 SCRUM 方法，在（任务b）用例图基础上，编制某定旅馆开发的需求 （backlog） ID Name Imp Est How to demo 1 在地图上搜索 5 7 点开地图，选择酒店类型等分类标签，在地图上显示按条件筛选的候选酒店，可以按照评分、价格等标准排序 2 一般搜索 7 4 在首页，选择要搜索的酒店类型，输入地点、入住日期等信息，点击搜索后，出现满足条件的酒店列表，可以按照评分、价格等标准排序 3 预定酒店 8 6 选择将要入住的酒店，选定房间，填写入住时间、退房时间、房间数以及入住人数，点击预定，在订单上填写个人信息，确认订单 4 支付订单 7 7 在确认订单页面，或者订单管理页面，点击付款，弹出选择支付方式的窗口，选择一个支付方式，完成付款 5 查看订单详情 3 3 在订单管理页面，点击查看一个订单，进入订单的详情页面，显示预定酒店信息、房间信息、入住信息、下单时间以及价格等详细信息 6 取消订单 4 3 在订单管理页面，在未完成的订单旁边点击取消订单，进入取消订单页面，填写取消订单的理由等信息，提交取消订单申请，然后等待商家回复 7 评价 6 5 在订单管理页面，在已完成的订单旁点击评价，可以填写并提交自己对酒店的评价。 8 邮件提醒 3 3 在确认订单后，注册邮箱会收到包含订单详情和支付信息的确认邮件 2. 业务建模 a. 在（任务b）基础上，用活动图建模找酒店用例。简述利用流程图发现子用例的方法 绘制流程图的过程中，每一步都分析当前活动是否是个复杂活动，能否继续拆分成更小的步骤，从而找出子用例。 b. 选择你身边的银行ATM，用活动图描绘取款业务流程 c. 查找淘宝退货业务官方文档，使用多泳道图，表达客户、淘宝网、淘宝商家服务系统、商家等用户和系统协同完成退货业务的过程。分析客户要完成退货业务，在淘宝网上需要实现哪些系统用例 为了完成退货业务，淘宝网上至少要完成处理请求系统、凭证审核系统以及退款系统。 3. 用例文本编写 a. 在大作业基础上，分析三种用例文本的优点和缺点 摘要： 优点：在描述场景时十分简洁，能够快速编写。 缺点：缺乏细节，无法描述全面完整的场景，只适合用于早期需求分析过程中。 非正式： 优点：能用几个段落覆盖不同的场景，同样能够比较快的编写，比摘要更加详细具体。 缺点：尽管比摘要详细，但是仍然无法描述各种场景的所有步骤以及各种变化。 详述： 优点：能详细描述所有的场景，包括步骤和各种变化，同时具有补充部分，如前置条件和成功保证。 缺点：编写费时费力，而且因为难以考虑到各种情况导致详述的编写难度增加。</summary></entry><entry><title type="html">微信小程序学习总结</title><link href="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/04/15/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93.html" rel="alternate" type="text/html" title="微信小程序学习总结" /><published>2018-04-15T01:53:00+08:00</published><updated>2018-04-15T01:53:00+08:00</updated><id>https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/04/15/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93</id><content type="html" xml:base="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/04/15/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93.html">&lt;p&gt;我们的团队在经过讨论过后选择了开发微信小程序来作为大作业的项目，我主要负责前端方面的开发。因为之前并没有过小程序的开发经验，所以开发过程的第一次迭代中，我主要对小程序开发者工具以及其相关的api进行了初步学习。&lt;/p&gt;

&lt;h2 id=&quot;开发者工具&quot;&gt;开发者工具&lt;/h2&gt;

&lt;p&gt;微信小程序的开发使用的是官方提供的&lt;strong&gt;微信web开发者工具&lt;/strong&gt;，可以在&lt;a href=&quot;https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html&quot;&gt;微信公众平台&lt;/a&gt;下载最新的版本。官方网页上还提供了详细的教程，包括各类框架和组件的描述示例，以及api的说明。&lt;/p&gt;

&lt;h3 id=&quot;创建项目&quot;&gt;创建项目&lt;/h3&gt;

&lt;p&gt;打开开发者工具，用微信账号登陆后，在初始界面可以选择小程序项目和公众号项目。
&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-14-开发工具1.png&quot; alt=&quot;开发者工具&quot; /&gt;&lt;/p&gt;

&lt;p&gt;选择小程序项目便可以进入小程序项目的管理界面，点击右下角的“+”号便可以创建新的小程序项目。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-14-开发工具2.png&quot; alt=&quot;开发者工具&quot; /&gt;&lt;/p&gt;

&lt;p&gt;创建小程序项目需要注册Appid，若无Appid则需要进行&lt;a href=&quot;https://mp.weixin.qq.com/wxopen/waregister?action=step1&quot;&gt;注册&lt;/a&gt;，值得注意的是每个邮箱账号只能注册一个Appid。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-14-开发工具3.png&quot; alt=&quot;开发者工具&quot; /&gt;&lt;/p&gt;

&lt;p&gt;如果不想注册Appid，也可以在无Appid的情况下进行体验开发，但是部分功能会受到限制。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-14-开发工具4.png&quot; alt=&quot;开发者工具&quot; /&gt;&lt;/p&gt;

&lt;p&gt;如果勾选了建立普通快速启动模板，创建项目成功后开发工具会自动生成一个基础模板以供使用。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-4-14-开发工具5.png&quot; alt=&quot;开发者工具&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;小程序框架&quot;&gt;小程序框架&lt;/h3&gt;

&lt;p&gt;一个小程序包括了主体部分、逻辑层，以及视图层。主题部分通过app来描述整体程序，由app.js, app.json, app.wxss组成。每个页面则各自由js, wxml, wxss, json四个文件来进行描述。&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;文件&lt;/th&gt;
      &lt;th&gt;必填&lt;/th&gt;
      &lt;th&gt;作用&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;app.js&lt;/td&gt;
      &lt;td&gt;是&lt;/td&gt;
      &lt;td&gt;小程序逻辑&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;app.json&lt;/td&gt;
      &lt;td&gt;是&lt;/td&gt;
      &lt;td&gt;小程序公共设置&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;app.wxss&lt;/td&gt;
      &lt;td&gt;否&lt;/td&gt;
      &lt;td&gt;小程序公共样式表&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;文件类型&lt;/th&gt;
      &lt;th&gt;必填&lt;/th&gt;
      &lt;th&gt;作用&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;js&lt;/td&gt;
      &lt;td&gt;是&lt;/td&gt;
      &lt;td&gt;页面逻辑&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;wxml&lt;/td&gt;
      &lt;td&gt;是&lt;/td&gt;
      &lt;td&gt;页面结构&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;wxss&lt;/td&gt;
      &lt;td&gt;否&lt;/td&gt;
      &lt;td&gt;页面样式表&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;json&lt;/td&gt;
      &lt;td&gt;否&lt;/td&gt;
      &lt;td&gt;页面配置&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;小程序框架的逻辑层使用javascript来进行编写的，主要完成处理数据并发送给视图层的任务，同时也要接受视图层的事件反馈。&lt;/p&gt;

&lt;p&gt;小程序的视图层则是通过WXML和WXSS来进行编写，WXML用于描述页面的结构，而WXSS用于描述页面的样式。因为学过一些web开发，所以感觉WXML和HTML使用起来十分的类似，只是WXML只能使用微信本身提供的组件，同样WXSS和CSS也是差不多的使用方法，只是描述的对象不同。微信还提供了WXS来作为前端开发的脚本语言，尽管官方说它与js是不同的语言，有自己的语法，但实际上两者的使用是非常相似的。WXS增强了WXML的表达能力，据说在ios端性能比js高2到20倍，在android端则无太大的差异。&lt;/p&gt;

&lt;h3 id=&quot;组件和api&quot;&gt;组件和API&lt;/h3&gt;

&lt;p&gt;微信小程序的组件是视图层的基本组成元素，其实相当于HTML中的元素。微信提供了从基础的文本、图片等基本组件，到表单组件、媒体组件甚至地图组件等，可以通过组合这些组件完成各式页面的设计。&lt;/p&gt;

&lt;p&gt;同时，微信还提供了大量的api供使用，如获取用户信息，本地存储，支付功能等，简化了小程序代码的编写难度，并且也丰富了小程序所能提供的功能。微信公众平台上提供了所有api的文档，包含了对api的详细描述以及其使用方法。&lt;/p&gt;</content><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><category term="学习总结" /><summary type="html">我们的团队在经过讨论过后选择了开发微信小程序来作为大作业的项目，我主要负责前端方面的开发。因为之前并没有过小程序的开发经验，所以开发过程的第一次迭代中，我主要对小程序开发者工具以及其相关的api进行了初步学习。 开发者工具 微信小程序的开发使用的是官方提供的微信web开发者工具，可以在微信公众平台下载最新的版本。官方网页上还提供了详细的教程，包括各类框架和组件的描述示例，以及api的说明。 创建项目 打开开发者工具，用微信账号登陆后，在初始界面可以选择小程序项目和公众号项目。 选择小程序项目便可以进入小程序项目的管理界面，点击右下角的“+”号便可以创建新的小程序项目。 创建小程序项目需要注册Appid，若无Appid则需要进行注册，值得注意的是每个邮箱账号只能注册一个Appid。 如果不想注册Appid，也可以在无Appid的情况下进行体验开发，但是部分功能会受到限制。 如果勾选了建立普通快速启动模板，创建项目成功后开发工具会自动生成一个基础模板以供使用。 小程序框架 一个小程序包括了主体部分、逻辑层，以及视图层。主题部分通过app来描述整体程序，由app.js, app.json, app.wxss组成。每个页面则各自由js, wxml, wxss, json四个文件来进行描述。 文件 必填 作用 app.js 是 小程序逻辑 app.json 是 小程序公共设置 app.wxss 否 小程序公共样式表 文件类型 必填 作用 js 是 页面逻辑 wxml 是 页面结构 wxss 否 页面样式表 json 否 页面配置 小程序框架的逻辑层使用javascript来进行编写的，主要完成处理数据并发送给视图层的任务，同时也要接受视图层的事件反馈。 小程序的视图层则是通过WXML和WXSS来进行编写，WXML用于描述页面的结构，而WXSS用于描述页面的样式。因为学过一些web开发，所以感觉WXML和HTML使用起来十分的类似，只是WXML只能使用微信本身提供的组件，同样WXSS和CSS也是差不多的使用方法，只是描述的对象不同。微信还提供了WXS来作为前端开发的脚本语言，尽管官方说它与js是不同的语言，有自己的语法，但实际上两者的使用是非常相似的。WXS增强了WXML的表达能力，据说在ios端性能比js高2到20倍，在android端则无太大的差异。 组件和API 微信小程序的组件是视图层的基本组成元素，其实相当于HTML中的元素。微信提供了从基础的文本、图片等基本组件，到表单组件、媒体组件甚至地图组件等，可以通过组合这些组件完成各式页面的设计。 同时，微信还提供了大量的api供使用，如获取用户信息，本地存储，支付功能等，简化了小程序代码的编写难度，并且也丰富了小程序所能提供的功能。微信公众平台上提供了所有api的文档，包含了对api的详细描述以及其使用方法。</summary></entry><entry><title type="html">系统分析与设计homework2</title><link href="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/03/21/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework2.html" rel="alternate" type="text/html" title="系统分析与设计homework2" /><published>2018-03-21T20:21:00+08:00</published><updated>2018-03-21T20:21:00+08:00</updated><id>https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/03/21/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework2</id><content type="html" xml:base="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/03/21/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework2.html">&lt;h2 id=&quot;简单题&quot;&gt;简单题&lt;/h2&gt;

&lt;h3 id=&quot;1-简述瀑布模型增量模型螺旋模型含原型方法的优缺点&quot;&gt;1. 简述瀑布模型、增量模型、螺旋模型（含原型方法）的优缺点。&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;瀑布模型优点&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;降低了软件开发的复杂程度，提高软件开发过程的透明度，提高了软件开发过程的可管理性。&lt;/li&gt;
  &lt;li&gt;以项目的阶段评审和文档控制为手段有效的对整个开发过程进行指导，保证了阶段之间的正确衔接，能后及时发现并纠正开发过程中的缺陷，是产品达到预期的质量要求。&lt;/li&gt;
  &lt;li&gt;从测试的角度，瀑布模型开发过程中的一切都有完整细致的说明，在测试开始时，所有细节都已明确并有文档记录，由此，测试小组得以制定精确的测试计划，且测试对象非常明确。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;瀑布模型缺点&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;强调过程活动的线性顺序。&lt;/li&gt;
  &lt;li&gt;缺乏灵活性，无法应用于软件需求不完全或不准确的情况，而事实上大部分的客户都很难在一开始清楚地给出所有的需求。&lt;/li&gt;
  &lt;li&gt;风险控制能力较弱。&lt;/li&gt;
  &lt;li&gt;瀑布模型的软件活动是文档驱动的，当阶段之间规定的文档过多时，会极大地增加系统的工作量。&lt;/li&gt;
  &lt;li&gt;管理人员如果仅仅以文档的完成情况来评估项目的完成进度，往往会产生错误的结论。&lt;/li&gt;
  &lt;li&gt;测试仅在最后进行，一些根本性的问题可能出现在早期，但是直到产品准备发布时才可能发现。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;增量模型的优点&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;增强客户对系统的信心。&lt;/li&gt;
  &lt;li&gt;降低系统失败风险。&lt;/li&gt;
  &lt;li&gt;提高系统可靠性。&lt;/li&gt;
  &lt;li&gt;提高系统稳定性和可维护性。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;增量模型的缺点&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;增量力度难以选择。&lt;/li&gt;
  &lt;li&gt;确定蓑鲉的借本业务服务比较困难。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;螺旋模型的优点&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;螺旋模型是有风险驱动的迭代过程，强调可选方案和约束条件从而支持软件的重用，有助于将软件质量作为特殊目标融入产品开发之中。&lt;/li&gt;
  &lt;li&gt;设计上具有灵活性，可以在软件开发的各个阶段进行变更。&lt;/li&gt;
  &lt;li&gt;客户始终参与了每个阶段的开发，保证了项目不偏离正确的方向以及项目的可控性。&lt;/li&gt;
  &lt;li&gt;引入了风险管理，可以降低项目风险。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;螺旋模型的缺点&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;过多的迭代次数会增加成本。&lt;/li&gt;
  &lt;li&gt;风险分析需要相当的成本耗费，因此螺旋模型只适合运用于投资较大的规模软件项目。&lt;/li&gt;
  &lt;li&gt;失误的风险分析会导致更大的风险。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;原型模型的优点&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;有助于增进软件人员和用户对系统服务需求的理解，减少开发人员和用户之间的交流误会。&lt;/li&gt;
  &lt;li&gt;易于确定系统的性能，确认各项主要系统服务可应用性，确认系统设计的可行性，确认系统作为产品的结果。&lt;/li&gt;
  &lt;li&gt;软件原型有时可以直接成为产品，或者略加修改成为最终成品系统的一部分，利于最终系统的建成。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;原型模型的缺点&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;大型系统难以直接进行原型模拟，只能经过系统分析得到系统的整体结构。&lt;/li&gt;
  &lt;li&gt;原型方法难以构造处理大量运算、逻辑性较强的程序模块的原型。&lt;/li&gt;
  &lt;li&gt;在原有应用的业务流程、信息流程混乱的情况下，原型构造与使用有一定的困难。&lt;/li&gt;
  &lt;li&gt;原型方法存在容易忽略文档工作、建立原型带来的资源浪费、项目规划和管理困难等问题。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;2-简述-up-的三大特点其中哪些内容体现了用户驱动的开发哪些内容体现风险驱动的开发&quot;&gt;2. 简述 UP 的三大特点，其中哪些内容体现了用户驱动的开发，哪些内容体现风险驱动的开发？&lt;/h3&gt;
&lt;p&gt;UP的三大特点分别是：用例驱动、以系统架构为核心、受控的迭代式增量开发。
用例驱动体现了用户驱动的开发，受控的迭代式增量开发体现了风险驱动的开发。&lt;/p&gt;

&lt;h3 id=&quot;3-up-四个阶段的划分准则是什么关键的里程碑是什么&quot;&gt;3. UP 四个阶段的划分准则是什么？关键的里程碑是什么？&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;初始（Inception）：大体上的构想、业务案例、范围和模糊评估。阶段里程碑为生命周期（Lifecycle Objective）里程碑，包括一些重要的文档，如：项目构想（vision）、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。&lt;/li&gt;
  &lt;li&gt;细化（Elaboration）：已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。里程碑为生命周期体系结构（Lifecycle Architecture）里程碑，包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。&lt;/li&gt;
  &lt;li&gt;构造（Construction）：对遗留下来的风险较低和比较简单的元素进行迭代实现、准备部署。里程碑为初试运行能力（Initial Operational Capability）里程碑，包括可以运行的软件产品、用户手册等。&lt;/li&gt;
  &lt;li&gt;移交（Transition）：进行beta测试和部署。里程碑为产品发布（Product Release）里程碑。&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;4-it-项目管理中工期质量范围内容-三个元素中在合同固定条件下为什么说范围内容是项目团队是易于控制的&quot;&gt;4. IT 项目管理中，“工期、质量、范围/内容” 三个元素中，在合同固定条件下，为什么说“范围/内容”是项目团队是易于控制的？&lt;/h3&gt;
&lt;p&gt;因为工期是在合同中确定好的，在合同固定条件下工期是不能随意修改的，而产品的质量取决于客户的满意程度决定的，不受项目团队控制。范围/内容可以在与客户的交流后进行适度的修改，较易于控制。&lt;/p&gt;

&lt;h3 id=&quot;5-为什么说up-为企业按固定节奏生产固定周期发布软件产品提供了依据&quot;&gt;5. 为什么说，UP 为企业按固定节奏生产、固定周期发布软件产品提供了依据？&lt;/h3&gt;
&lt;p&gt;UP中的软件生命周期在时间上分为了四个阶段：初始阶段、细化阶段、构造阶段、移交阶段，每个阶段都结束于一个主要的里程碑，并在阶段结尾执行一次评估来确定该阶段的目标是否满足，企业按照每个阶段的顺序来进行开发从而可以按照固定节奏生产。另外UP中每个阶段根据评估结果满意程度可以进行多次迭代，直到满意再进入下一阶段，从而企业可以按照固定的周期发布软件产品。&lt;/p&gt;

&lt;h2 id=&quot;项目管理使用&quot;&gt;项目管理使用&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;https://bbycjhj.github.io/blog_pics/2018-3-21-kanban.JPG&quot; alt=&quot;kanban&quot; /&gt;&lt;/p&gt;</content><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><category term="作业" /><category term="系统分析与设计" /><summary type="html">简单题 1. 简述瀑布模型、增量模型、螺旋模型（含原型方法）的优缺点。 瀑布模型优点： 降低了软件开发的复杂程度，提高软件开发过程的透明度，提高了软件开发过程的可管理性。 以项目的阶段评审和文档控制为手段有效的对整个开发过程进行指导，保证了阶段之间的正确衔接，能后及时发现并纠正开发过程中的缺陷，是产品达到预期的质量要求。 从测试的角度，瀑布模型开发过程中的一切都有完整细致的说明，在测试开始时，所有细节都已明确并有文档记录，由此，测试小组得以制定精确的测试计划，且测试对象非常明确。 瀑布模型缺点： 强调过程活动的线性顺序。 缺乏灵活性，无法应用于软件需求不完全或不准确的情况，而事实上大部分的客户都很难在一开始清楚地给出所有的需求。 风险控制能力较弱。 瀑布模型的软件活动是文档驱动的，当阶段之间规定的文档过多时，会极大地增加系统的工作量。 管理人员如果仅仅以文档的完成情况来评估项目的完成进度，往往会产生错误的结论。 测试仅在最后进行，一些根本性的问题可能出现在早期，但是直到产品准备发布时才可能发现。 增量模型的优点： 增强客户对系统的信心。 降低系统失败风险。 提高系统可靠性。 提高系统稳定性和可维护性。 增量模型的缺点： 增量力度难以选择。 确定蓑鲉的借本业务服务比较困难。 螺旋模型的优点： 螺旋模型是有风险驱动的迭代过程，强调可选方案和约束条件从而支持软件的重用，有助于将软件质量作为特殊目标融入产品开发之中。 设计上具有灵活性，可以在软件开发的各个阶段进行变更。 客户始终参与了每个阶段的开发，保证了项目不偏离正确的方向以及项目的可控性。 引入了风险管理，可以降低项目风险。 螺旋模型的缺点： 过多的迭代次数会增加成本。 风险分析需要相当的成本耗费，因此螺旋模型只适合运用于投资较大的规模软件项目。 失误的风险分析会导致更大的风险。 原型模型的优点： 有助于增进软件人员和用户对系统服务需求的理解，减少开发人员和用户之间的交流误会。 易于确定系统的性能，确认各项主要系统服务可应用性，确认系统设计的可行性，确认系统作为产品的结果。 软件原型有时可以直接成为产品，或者略加修改成为最终成品系统的一部分，利于最终系统的建成。 原型模型的缺点： 大型系统难以直接进行原型模拟，只能经过系统分析得到系统的整体结构。 原型方法难以构造处理大量运算、逻辑性较强的程序模块的原型。 在原有应用的业务流程、信息流程混乱的情况下，原型构造与使用有一定的困难。 原型方法存在容易忽略文档工作、建立原型带来的资源浪费、项目规划和管理困难等问题。 2. 简述 UP 的三大特点，其中哪些内容体现了用户驱动的开发，哪些内容体现风险驱动的开发？ UP的三大特点分别是：用例驱动、以系统架构为核心、受控的迭代式增量开发。 用例驱动体现了用户驱动的开发，受控的迭代式增量开发体现了风险驱动的开发。 3. UP 四个阶段的划分准则是什么？关键的里程碑是什么？ 初始（Inception）：大体上的构想、业务案例、范围和模糊评估。阶段里程碑为生命周期（Lifecycle Objective）里程碑，包括一些重要的文档，如：项目构想（vision）、原始用例模型、原始业务风险评估、一个或者多个原型、原始业务案例等。 细化（Elaboration）：已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。里程碑为生命周期体系结构（Lifecycle Architecture）里程碑，包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。 构造（Construction）：对遗留下来的风险较低和比较简单的元素进行迭代实现、准备部署。里程碑为初试运行能力（Initial Operational Capability）里程碑，包括可以运行的软件产品、用户手册等。 移交（Transition）：进行beta测试和部署。里程碑为产品发布（Product Release）里程碑。 4. IT 项目管理中，“工期、质量、范围/内容” 三个元素中，在合同固定条件下，为什么说“范围/内容”是项目团队是易于控制的？ 因为工期是在合同中确定好的，在合同固定条件下工期是不能随意修改的，而产品的质量取决于客户的满意程度决定的，不受项目团队控制。范围/内容可以在与客户的交流后进行适度的修改，较易于控制。 5. 为什么说，UP 为企业按固定节奏生产、固定周期发布软件产品提供了依据？ UP中的软件生命周期在时间上分为了四个阶段：初始阶段、细化阶段、构造阶段、移交阶段，每个阶段都结束于一个主要的里程碑，并在阶段结尾执行一次评估来确定该阶段的目标是否满足，企业按照每个阶段的顺序来进行开发从而可以按照固定节奏生产。另外UP中每个阶段根据评估结果满意程度可以进行多次迭代，直到满意再进入下一阶段，从而企业可以按照固定的周期发布软件产品。 项目管理使用</summary></entry><entry><title type="html">系统分析与设计homework1</title><link href="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/03/14/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework1-blog.html" rel="alternate" type="text/html" title="系统分析与设计homework1" /><published>2018-03-14T04:00:00+08:00</published><updated>2018-03-14T04:00:00+08:00</updated><id>https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/03/14/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework1-blog</id><content type="html" xml:base="https://bbycjhj.github.io/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/2018/03/14/%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90%E4%B8%8E%E8%AE%BE%E8%AE%A1homework1-blog.html">&lt;h2 id=&quot;简单题&quot;&gt;简单题&lt;/h2&gt;
&lt;h3 id=&quot;1-软件工程的定义&quot;&gt;1. 软件工程的定义&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;软件工程是指对将系统化、规范化、可度量的方法应用于软件的开发、运行和维护的过程即将工程化应用于软件中的方法的研究。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;2-阅读经典名著人月神话等资料解释-software-crisiscocomo-模型&quot;&gt;2. 阅读经典名著“人月神话”等资料，解释 software crisis、COCOMO 模型&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;软件危机指由于软件生产的复杂性和高成本，使大型软件的生产出现了很大的困难，即出现软件危机。软件危机表现为软件的开发成本超出预算，软件开发进度难以控制，软件产品质量不可靠且可维护性低等问题。软件危机的根源在于软件的大量需求与软件生产力效率之间的矛盾，以及软件系统的复杂性与软件开发方法之间的矛盾。&lt;/li&gt;
  &lt;li&gt;COCOMO模型，即构造形成本模型，是一种常见的软件规模估算方法，用于估算工作量、成本以及时间表，最早由Boehm于1981年提出。构造性成本模型由三个不断深入和详细的层次组成。第一层，“基本COCOMO”，适用对软件开发进行快速、早期地对重要的方面进行粗略的成本估计，但因其缺少不同的成本驱动者的因素，所以准确性有一定的局限性。“中级COCOMO”中考虑进了这些成本驱动者。“详细COCOMO”加入了对不同软件开发阶段的考量。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;3-软件生命周期&quot;&gt;3. 软件生命周期&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;软件生命周期指软件的产生直到成熟的全部过程。从时间的角度，把整个周期划分为尽可能相对独立的若干个阶段，典型的划分有问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试、运行和维护等阶段。常见的软件生命周期模型有瀑布模型、原型模型、螺旋模型、迭代模型。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;4-按照-swebok-的-ka-划分本课程关注哪些-ka-或-知识领域&quot;&gt;4. 按照 SWEBOK 的 KA 划分，本课程关注哪些 KA 或 知识领域？&lt;/h3&gt;
&lt;p&gt;本课程主要关注：&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;软件构造（Software Construction）&lt;/li&gt;
  &lt;li&gt;软件开发过程（Software Development Process）&lt;/li&gt;
  &lt;li&gt;软件工程开发工具与方法（Software Engineering Tools and Methods）&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;5-解释-cmmi-的五个级别例如level-1---initial无序自发生产模式&quot;&gt;5. 解释 CMMI 的五个级别。例如：Level 1 - Initial：无序，自发生产模式&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;Level 1 - Initail:  软件过程是无序的，对过程几乎没有定义，为自发生产模式。&lt;/li&gt;
  &lt;li&gt;Level 2 - Managed: 已经建立了基本的项目管理过程，有必要的过程纪律，能够从以往类似的成功项目中取得经验。&lt;/li&gt;
  &lt;li&gt;Level 3 - Defined: 已将软件管理和工程两方面的过程文档化、标准化，并综合称该组织的标准软件过程。&lt;/li&gt;
  &lt;li&gt;Level 4 - Quantitatively Managed: 能够分析对软件过程和产品质量的详细度量数据，对软件过程和产品都有定量的理解和控制。管理能够在定量的范围内预测性能。&lt;/li&gt;
  &lt;li&gt;Level 5 - Optimizing: 通过过程的量化反馈和先进的新思想、新技术使过程不断改进。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;6-用自己语言简述-swebok-或-cmmi约200字&quot;&gt;6. 用自己语言简述 SWEBOK 或 CMMI（约200字）&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;SWEBOK是ACM与IEEE联合提出的软件工程领域中的软件需求、软件设计、软件建构、软件测试、软件维护与更新、软件构型管理、软件工程管理、软件开发过程、软件工程工具与方法、软件质量共十个核心知识领域。SWEBOK是软件工程成为一门合理的工程学科的里程碑，因为软件工程要成为一门被认可的学科，需要世界范围内对其核心知识结构的观点达成一致，而SWEBOK的提出促进了全球研究人员对软件工程的统一认识，也使得软件工程与其他计算机相关学科能够区分开，确立了软件工程的知识领域，使软件工程成为独立的知识体系，也为软件工程的教学提供了知识基础。&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
&lt;h2 id=&quot;解释psp各项指标及技能要求&quot;&gt;解释PSP各项指标及技能要求&lt;/h2&gt;
&lt;h3 id=&quot;1-阅读现代软件工程的-psp-personal-software-process-章节-httpwwwcnblogscomxinzarchive201111272265425html&quot;&gt;1. 阅读《现代软件工程》的 PSP: Personal Software Process 章节。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html&lt;/h3&gt;
&lt;h3 id=&quot;2-按表格-psp-21-了解一个软件工程师在接到一个任务之后要做什么需要哪些技能解释你打算如何统计每项数据-期末考核每人按开发阶段提交这个表&quot;&gt;2. 按表格 PSP 2.1， 了解一个软件工程师在接到一个任务之后要做什么，需要哪些技能，解释你打算如何统计每项数据？ （期末考核，每人按开发阶段提交这个表）&lt;/h3&gt;
&lt;p&gt;一个软件工程师在接到一个任务后首先需要进行任务计划，估计任务完成时间，然后再进行开发，依次完成分析需求、文档设计、设计复审、代码规范、具体设计和编码、代码复审、测试等工作，开发完成后需要记录开发的时间花费，完成测试报告，计算工作总量，进行事后总结，最后提出过程改进计划。
一个合格的软件工程师不光需要对具体技术的掌握，以及较好的动手能力，还需要有好的软件工程思想、软件设计思想。另外，自我管理的能力、表达和交流的能力、与人合作的能力、把任务按质按量完成的执行力、这些能力都很重要。
为了统计每项数据，在开发起始就应定好具体的开发计划，将软件开发过程分为多个阶段，每完成一个阶段的任务就做一次阶段性报告，总结该阶段工作情况，统计工作时间，这样也方便了后续的总结。&lt;/p&gt;</content><author><name>bbycjhj</name><email>bbycjhj@163.com</email></author><category term="作业" /><category term="系统分析与设计" /><summary type="html">简单题 1. 软件工程的定义 软件工程是指对将系统化、规范化、可度量的方法应用于软件的开发、运行和维护的过程即将工程化应用于软件中的方法的研究。 2. 阅读经典名著“人月神话”等资料，解释 software crisis、COCOMO 模型 软件危机指由于软件生产的复杂性和高成本，使大型软件的生产出现了很大的困难，即出现软件危机。软件危机表现为软件的开发成本超出预算，软件开发进度难以控制，软件产品质量不可靠且可维护性低等问题。软件危机的根源在于软件的大量需求与软件生产力效率之间的矛盾，以及软件系统的复杂性与软件开发方法之间的矛盾。 COCOMO模型，即构造形成本模型，是一种常见的软件规模估算方法，用于估算工作量、成本以及时间表，最早由Boehm于1981年提出。构造性成本模型由三个不断深入和详细的层次组成。第一层，“基本COCOMO”，适用对软件开发进行快速、早期地对重要的方面进行粗略的成本估计，但因其缺少不同的成本驱动者的因素，所以准确性有一定的局限性。“中级COCOMO”中考虑进了这些成本驱动者。“详细COCOMO”加入了对不同软件开发阶段的考量。 3. 软件生命周期 软件生命周期指软件的产生直到成熟的全部过程。从时间的角度，把整个周期划分为尽可能相对独立的若干个阶段，典型的划分有问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试、运行和维护等阶段。常见的软件生命周期模型有瀑布模型、原型模型、螺旋模型、迭代模型。 4. 按照 SWEBOK 的 KA 划分，本课程关注哪些 KA 或 知识领域？ 本课程主要关注： 软件构造（Software Construction） 软件开发过程（Software Development Process） 软件工程开发工具与方法（Software Engineering Tools and Methods） 5. 解释 CMMI 的五个级别。例如：Level 1 - Initial：无序，自发生产模式 Level 1 - Initail: 软件过程是无序的，对过程几乎没有定义，为自发生产模式。 Level 2 - Managed: 已经建立了基本的项目管理过程，有必要的过程纪律，能够从以往类似的成功项目中取得经验。 Level 3 - Defined: 已将软件管理和工程两方面的过程文档化、标准化，并综合称该组织的标准软件过程。 Level 4 - Quantitatively Managed: 能够分析对软件过程和产品质量的详细度量数据，对软件过程和产品都有定量的理解和控制。管理能够在定量的范围内预测性能。 Level 5 - Optimizing: 通过过程的量化反馈和先进的新思想、新技术使过程不断改进。 6. 用自己语言简述 SWEBOK 或 CMMI（约200字） SWEBOK是ACM与IEEE联合提出的软件工程领域中的软件需求、软件设计、软件建构、软件测试、软件维护与更新、软件构型管理、软件工程管理、软件开发过程、软件工程工具与方法、软件质量共十个核心知识领域。SWEBOK是软件工程成为一门合理的工程学科的里程碑，因为软件工程要成为一门被认可的学科，需要世界范围内对其核心知识结构的观点达成一致，而SWEBOK的提出促进了全球研究人员对软件工程的统一认识，也使得软件工程与其他计算机相关学科能够区分开，确立了软件工程的知识领域，使软件工程成为独立的知识体系，也为软件工程的教学提供了知识基础。 解释PSP各项指标及技能要求 1. 阅读《现代软件工程》的 PSP: Personal Software Process 章节。 http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html 2. 按表格 PSP 2.1， 了解一个软件工程师在接到一个任务之后要做什么，需要哪些技能，解释你打算如何统计每项数据？ （期末考核，每人按开发阶段提交这个表） 一个软件工程师在接到一个任务后首先需要进行任务计划，估计任务完成时间，然后再进行开发，依次完成分析需求、文档设计、设计复审、代码规范、具体设计和编码、代码复审、测试等工作，开发完成后需要记录开发的时间花费，完成测试报告，计算工作总量，进行事后总结，最后提出过程改进计划。 一个合格的软件工程师不光需要对具体技术的掌握，以及较好的动手能力，还需要有好的软件工程思想、软件设计思想。另外，自我管理的能力、表达和交流的能力、与人合作的能力、把任务按质按量完成的执行力、这些能力都很重要。 为了统计每项数据，在开发起始就应定好具体的开发计划，将软件开发过程分为多个阶段，每完成一个阶段的任务就做一次阶段性报告，总结该阶段工作情况，统计工作时间，这样也方便了后续的总结。</summary></entry></feed>