软件系统分析与设计 | 分析、设计的理解及UML使用

分析、设计的理解

  • 分析是对软件进行需求分析(明确所要做的内容),技术可行性分析(实现软件的可行性),风险评估分析(可能面临的问题),强调对软件的认识与研究。
  • 设计是设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案,强调的是软件的具体实现。

面向对象的分析与设计的优势

以人类对世界的认识为原型,将程序的执行者抽象为一个个实体(对象),简化设计复杂度,便于多人协作共同开发,同时,封装、继承、多态等特性丰富编程技巧,易于实现复杂的功能。

UML(统一建模语言)的作用

UML(Unified Modeling Language,统一建模语言) 是一组用于描述OOAD过程的图形化表达方式。

  1. UML作为草图:非正式、不完整的图,借助可视化语言的功能,可以用于探讨问题或解决方案空间的复杂部分。
  2. UML作为蓝图:相对详细的设计图,用于逆向工程中对现有代码可视化或者是前向工程中的代码生成
  3. UML作为编程语言:完成软件系统可执行规格的说明。

其具体的种类有:

  • 用例图:用户角度:功能、执行者
  • 静态图:系统静态结构
    • 类图:概念及关系
    • 对象图:某种状态或时间段内, 系统中活跃的对象极其关系
    • 包图:描述系统的分解结构
  • 行为图:系统的动态行为
    • 交互图:描述对象间的消息传递
      • 顺序图:强调对象间消息发送的时序
      • 合作图:强调对象间的动态协作关系
    • 状态图:对象的动态行为。状态-事件-状态迁移-相应动作
    • 活动图:描述系统为完成功能而执行的操作序列
  • 实现图:描述系统的组成和分布状况
    • 构件图:组成部件及其关系
    • 部署图:物理体系结构及软件单元的对应关系

软件范围(需求)控制的可行性

项目的首要约束是 scope(范围), time(工期), quality(质量)budget(预算) 四个基本元素,也称为项目管理三角模型。在实际软件项目中,即使在有明确的软件开发合同条件下,这四个约束并不是不可商量的。原因在于软件生产是易变、不可见、独特的智力生产!另一方面,软件的本质特征(complexity(复杂性)conformity(一致性)changeability(可变性)invisibility(不可视性))导致软件开发的较为困难,并且由于客户需求往往不够明确,导致开发软件范围的不可控更加严重。
但是,在软件项目中应该使用2/8 法则,细化 20% 有效需求,可满足 80% 客户需要,所以,我们应该将80%的工程量用在20%的需求上,刚开始我们只需剔除客户都不明确的需求,着手于最为重要的需求任务上,之后在不断地用户反馈和迭代中完善软件。

看板管理

团队看板如下:
软件系统分析与设计 | 分析、设计的理解及UML使用_第1张图片

UML绘图工具使用

例图选自《UML和模式应用》Page 7:图1-5
软件系统分析与设计 | 分析、设计的理解及UML使用_第2张图片

你可能感兴趣的:(软件系统分析与设计)