系统分析与设计 第二次课程作业

"Second Homework of System Analysis and Design...."

Posted by Palette on March 28, 2019

Second PM Homework…..

系统分析与设计 – Homework 2

简答题

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

  1. 分析(analysis):
    • 强调的是对问题与需求的调查研究,而不是解决方案。
    • 分析主要是通过对需求和问题的研究,进一步对项目设计的方面和功能实现进行添加和删除,初步地分析出项目面向的人群和运营模式。

  2. 设计(design):
    • 更强调的是满足需求的概念层面的解决方案,而不是其实现。
    • 设计更多地强调我们在进行项目开发时,应该对项目包含的各个部分,各个功能实现的基本架构,以及思考功能的主次性,整体实现的复杂程度等等,设计更接近于整体的思考与构建。

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

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

  2. 面向对象的分析与设计的优势有:

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

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

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

  2. 应用UML的方式:

    • UML作为草图

      非正式的、不完整的图,借助可视化语言的功能,用于探讨问题或者解决方案空间的复杂部分

    • UML作为蓝图

      相对详细的设计图,用于:逆向工程,即以UML图的方式对现有代码进行可视化,使其易于理解

    • 代码生成

      UML作为编程语言,可以完成软件系统可执行规格说明。

  3. 考试要考的图有:

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

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

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

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

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

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

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

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

项目管理实践

五、看板使用练习(结合Git Project)

img

六、UML绘图工具练习

  • 请在教材中选择一个类图,给出参考书页码和图号:

    P182 图16-2

  • 使用UMLet进行类图绘制:

    img