《需求分析与系统设计》阅读笔记三

时间:2022-01-19 07:30:18

     在迭代与增量软件开发中,使用技术细节不断的对分析模式进行“细化”。体系结构设计是从系统的模块方面对系统进行描述,包括确定系统的客户机构件和服务器构件的解决方案策略。

 

     体系结构设计具有物理和逻辑两个方面。物理体系结构解决客户机和服务器问题,以及“粘结”客户机和服务器所需要的任何中间件问题。客户机/服务器(C/S)体系结构进行扩展来表示任意的分布式系统,分布需求来自的因素有:在制定机器上做专门处理的需求、从不同的地理位置访问系统的需求、经济上的考虑、适应性需求。

 

     软件开发者知道创建小系统的困难是不能与大型解决方案的困难相比的,没有清晰的体系结构设计和严格的过程,大型软件项目注定要失败。我们不得不创建大型系统,而大型系统是复杂的是认知心理学原则并不能改变的事实。

 

     实现模式是以结点、构件、包和子系统等概念为中心的。除了实现模型,UML通过给类图增加设计约束支持体系结构建模。包是高度相关的类的集合,这些类本身是内聚的,但相对其他聚合来说又是松散耦合的。构件一般被理解为系统的二进制可执行部分,也可以是系统中的不可直接运行的部分(如源代码文件、数据文件、DLL或数据库中的存储过程)。部署图显示结点及它们之间的联系,结点可以通过关联相联系,可以给这些关联命名来指明所使用的网络协议。或者以某种其他方式表示连接的特色。

 

     程序设计是整个系统设计的固有部分,程序设计有时专注于一个应用程序,程序的运行逻辑是位于客户机进程和服务器进程之间分离的部分。客户机进程包括了程序中的绝大数动态对象协作。类内聚是一个类内部自确定的程度,类耦合是类之间连接的程度。体系结构设计会对详细设计产生影响,因为体系结构设计确定目标硬件/软件平台,详细设计必须与此平台保持一致。详细设计是分析的直接联系,其目标是将分析模型转换成详细的设计文档,程序员能够根据详细设计文档实现系统。

 

     协作描述相互协作的元素(角色)的结构,每个元素执行特定的功能,这些元素共同完成某项期望的功能。协作既可以表示分析模式,也可以表示设计模式。协作定义连接器,角色通过连接器交换信息,但他并没有标识每条消息。协作内消息流的详细说明书是交互模型的任务,协作可以被用于生成顺序图和通信图的手段。

 

     现代图形用户界面(GUI)的屏幕不仅色彩丰富,而且生动。GUI设计是一项综合性很强的工作,需要从视觉艺术到软件编程的多种技能。GUI客户端可分为桌面平台的可编程客户端和Web平台的浏览其客户端。可编程客户端是胖客户端,程序驻留和执行与客户端,并访问客户端机器的存储资源;浏览器客户端是基于web的图形用户界面,他需要从服务器获取数据和程序,这种客户端是瘦客户端(Web客户端)。GUI设计的中心问题是用户控制式。

 

     窗口设计、窗口输入以及编辑空间的设计是桌面可编程应用系统的GUI设计的两个主要方面。Java里的Swing就是用于创建应用程序或小程序。主窗口有一个边界,及框架。框架包含窗口的标题栏、菜单栏、工具栏、状态栏以及窗体上可浏览和修改的内容区。辅窗口忽略一些不重要的IS应用,对主窗体起到补充的作用。

 

     “Web应用程序是允许用户通过Web浏览器执行业务逻辑的web系统”,业务逻辑可以驻留在服务器或客户端。大多数Web应用系统的核心使用技术是web服务器,它给浏览器提供网页。网页内容设计是这个领域的一个主题,以至于产生一个新的“热门”专业——网站内容设计师。

 

     桌面应用系统和Web应用系统在GUI导航建模方面涉及的问题类似,区别于细节。GUI窗口的图形描述——使用原型或GUI布局工具——不能告知窗口如何为用户导航。我们仍然需要设计窗口导航。有时将结构的构造、应用程序背后逻辑的展现和导航选择成为故事情节。UX配置文件只提供了几种构造型作为基本UX建模元素。只要知道类级的UX元素,就有可能开始为元素间的事件建立UX流程模型。