系统的分析与设计
对系统分析的理解
系统分析领域与需求分析或运营研究密切相关。这是一项明确的正式调查,目的是帮助决策者确定更好的行动路线,做出比原本可能做出的更好的决定。
- 研究过程或业务的过程,以确定其目标和目的,并创建系统和过程,以有效的方式实现它们。
- 一种解决问题的技术,它把一个系统分解成它的各个组成部分,目的是研究这些组成部分如何工作和相互作用,以达到它们的目的。
对系统设计的理解
系统设计是定义体系结构、模块、接口和数据以满足指定需求的过程。系统设计可以看作是系统理论在产品开发中的应用。它们与系统分析、系统体系结构和系统工程的学科有一些不可避免的重叠。
面向对象的分析与设计
面向对象的方法
面向对象方法的解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式来构造软件系统,这与传统的结构化方法从功能入手和信息工程化方法从信息入手是不一样的。在面向对象方法中,把一切都看成是对象。面向对象的方法中的基本原则是:抽象、封装、委托、分类、泛化、信息通道、关系机制以及复杂性控制。
面向对象的分析
面向对象的分析(Object Oriented Analysis, OOA),就是运用面向对象方法进行系统分析。其基本任务即运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域及系统责任所需的对象,定义对象的属性、操作以及它们之间的关系。其目标是建立一个符合问题域、满足用户需求的OOA模型。
OOA是分析,是软件生命周期的一个阶段,具有一般分析方法共同具有的内容、目标及策略;强调运用面向对象方法进行分析,用面向对象的概念和表示法表达分析结果。
面向对象的设计
面向对象的分析(Object Oriented Design, OOD),主要解决与实现有关的问题,基于OOA模型,针对具体的软、硬件条件(如机器、网络、OS、GUI、DBMS等)产生一个可实现的OOD模型。
从OOA到OOD不是转换,是调整和增补。使OOA作为OOD模型的问题域部分;增补其它四个部分,成为完整的OOD模型。
面向对象分析设计的优势
与传统方法相比,面向对象方法把易变的数据结构和部分功能封装在对象内并加以隐藏:一是保证了对象行为的可靠性;二是对它们的修改并不会影响其他的对象,有利于维护,对需求变化有较强的适应性。封装性和继承性有利于复用对象。把对象的属性和操作捆绑在一起,提高了对象的内聚性,减少了与其他对象的耦合。这为复用对象提供了可能性和方便性。在继承结构中,特殊类对一般类的继承,本身就是对一般类的属性和操作的复用。
UML 统一建模语言
统一建模语言(Unified Mpdeling Language)是软件工程领域中一种通用的、开发的、建模语言,旨在提供一种可视化系统设计的标准方法。UML 2 有很多种格式,被大体分成了两类:一类能够表示结构化信息,称为结构图;另外一类被记录了不同方面的交互,称为行为图。
结构图
结构图强调必须在被建模的系统中呈现的内容。由于结构图表示结构,所以在记录软件系统的软件体系结构时广泛使用结构图。例如,组件图描述了如何将软件系统分割为多个组件,并显示了这些组件之间的依赖关系。
行为图
行为图强调在被建模的系统中必须发生什么。由于行为图描述了系统的行为,所以它们被广泛地用于描述软件系统的功能。例如,活动图描述了系统中组件的业务和操作步骤活动。
交互图
交互图是行为图的子集,它强调被建模的系统中事物之间的控制和数据流。例如,序列图显示了对象之间如何就消息序列进行通信。
软件的范围控制的可行性
软件的本质
软件是人告诉计算机如何处理问题的方法,具有除上述特点以外的其他几个特点:(1)软件渗透了大量的脑力劳动,人的逻辑思维、智能活动和技术水平是软件产品的关键;(2)软件不会像硬件一样老化磨损,但存在缺陷维护和技术更新;(3)软件的开发和运行必须依赖于特定的计算机系统环境,对于硬件有依赖性,为了减少依赖,开发中提出了软件的可移植性;(4)软件具有可复用性,软件开发出来很容易被复制,从而形成多个副本。
软件的范围控制
项目范围的变更必然会造成项目进度计划、人员安排、成本等各方面的变化,处理不当则会增加项目风险,甚至造成项目陷入混乱的状态。范围控制就是指监控项目的范围状态,管理范围变更。范围控制的目的是在出现范围变更需求后,管理相关的计划、资源安排以及项目成果,使得项目各部分可以很好地配合在一起,避免变更带来的负面影响。
范围控制通过变更控制系统和配置管理系统来完成。当出现范围变更需求时,通常要执行一个严格的变更控制流程。变更实现涉及到配置项的修改,要遵守配置管理规范。在项目初期就建立起完整的变更控制和配置管理的流程可以使项目在有序的变化中不断前进。
可行性
根据软件的本质,软件的范围控制是可行的。需求变更对每一位产品人来说都会经常遇到,产生变更的原因很多,有外在的、有内在的,但不论是因为什么产生的变更,遇到了就要正确的、合理的分析、评估,给项目以正确的指导。如果项目前期进行了大量的调研、跟踪、分析、评审,并请客户尽早参与,许多变更是可以避免的。如果技术框架设计的可扩展、程序设计的可扩容的话,当发生变更时也可以把变更对项目产生的影响控制到最小。
项目管理实践
为了系统化管理任务,参考Git Project 官方指南,我们在我们的 organization 中建立了 Git project 看板——M$ Plan kanban:
我们的teamwork已经如火如荼地展开啦!
UMl 初体验
为了摆脱Eclipse的依赖,我下载了standalone的UMLet,然后用教材pp.110 figure 9.9的类图做了个简单的小测试,如图所示。为了我会尝试更难得UML图,应对课程日益增长的技能需求。