1. 系统分析概述
系统分析是一种问题求解技术,它将一个系统分解成各个组成部分,目的是研究各 个部分如何工作、交互,以实现其系统目标。
目的和任务:系统分析的主要任务是对现行系统进一步详细调查,将调查中所得到的文档资料集中,对组织内部整体管理状况和信息处理过程进行分析,为系统开发提供所需的资料,并提交系统方案说明书。
系统分析的主要步骤:
(1)认识、理解当前的现实环境,获得当前系统的“物理模型”。
(2)从当前系统的“物理模型”抽象出当前系统的“逻辑模型”。
(3)对当前系统的“逻辑模型”进行分析和优化,建立目标系统的“逻辑模型”。
(4)对目标系统的逻辑模型具体化(物理化),建立目标系统的物理模型。
系统开发的目的是将现有系统的物理模型转换为目标系统的物理模型。
2.系统设计
系统设计基本原理:
抽象(重点说明本质方面,忽略非本质方面);
模块化(可组合、分解和更换的单元);
信息隐蔽(将每个程序的成分隐蔽或封装在一个单一的设计模块中); 模块独立(每个模块完成一个相对独立的特定子功能,且与其他模块之间的联系简单)。
模块的设计要求独立性高,就必须高内聚,低耦合,内聚是指一个模块内部功能之 间的相关性,耦合是指多个模块之间的联系。
3. 内聚
内聚程度从低到高如下表:
4. 系统设计
在系统分析阶段,我们已经搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。进入设计阶段,要把软件“做 什么”的逻辑模型转换成“怎么做”的物理模型。
系统设计的主要目的是为系统制定蓝图,在各种技术和实施方法中权衡利弊,精心 设计,合理地使用各种资源,得出新系统的详细设计方案。
步骤:概要设计和详细设计。
概要设计基本任务:设计软件系统总体结构、数据结构及数据库设计、编写概要设 计文档、评审。
详细设计的基本任务:模块内详细算法设计、模块内数据结构设计、数据库的物理设计、其他设计(代码、输入/输出格式、用户界面)、编写详细设计说明书、评审。
5. 系统总体结构设计
系统结构设计原则:分解-协调原则、自顶向下原则、信息隐蔽和抽象原则、一致性原则、明确性原则、模块间高内聚低耦合、模块的扇入系数和扇出系数合理、模块规模适当。
子系统划分的原则:子系统要具有相对独立性、子系统之间数据的依赖性尽量小、子系统划分的结果应使数据冗余较小、子系统的设置应考虑今后管理发展的需要、子系统的划分应便于系统分阶段实现、子系统的划分应考虑到各类资源的充分利用。
WebApp分析与设计
WebApp是基于web的系统和应用。大多数WebApp:采用敏捷开发过程模型进行开发。
WebApp的特性:
网络密集性(服务于不同客户全体的需求)、
并发性 (大量用户同时访问)、
无法预知的负载量(用户数量)、
性能(响应时间过长导致用户流失)、
可用 性(最好724365可用)、
数据驱动(和用户的数据交互)。
WebApp.五种需求模型:
1.内容模型:
给出由WebApp提供的全部系列内容,包括文字、图形、图像、音频和视频。包含结构元素,为WebApp的内容需求提供了一个重要的视图。这些结构元素包含内容对象和所有分析类,在用户与WebApp交互时生成并操作用户可见的实体。
内容的开发可能发生在WebApp实现之前、构建之中、或者投入运行以后(全过程)
内容对象:产品的文本描述、新闻文章、照片、视频等。
数据树:由多项内容对象和数据项组成的任何内容都可以生成数据树,是内容设计的基 础,定义一种层级关系,并提供一种审核内容的方法,以便在开始设计前发现遗漏和不 一致内容。
2、交互模型:
描述了用户与WebApp采用了哪种交互方式。由一种或多种元素构成, 包括用例、顺序图、状态图、用户界面原型等。 用例是交互分析的主要工具,方便客户理解系统的功能。 顺序图是交互分析中描述用户与系统进行交互的方式。用户按照已定顺序使用系统, 完成相应的功能,如登录流程。 状态图是交互分析中对系统进行动态的描述。如状态的变化。 用户界面原型展现用户界面布局、内容、主要导航链接、实施的交互机制及用户 WebApp的整体美观度。
3、功能模型:
许多WebApp:提供大量的计算和操作功能,这些功能与内容直接相关 (既能使用又能生成内容,如统计报表)。这些功能常常以用户的交互活动为主要目标。 功能模型定义了将用于WebApp内容并描述其他处理功能的操作,这些处理功能不 依赖于内容却是最终用户所必需的。
4.导航模型:为WebApp定义所有导航策略。考虑了每一类用户如何从一个WebApp元素(如内容对象)导航到另一个元素。
配置模型:描述WebApp所在的环境和基础设施。在必需考虑复杂配置体系结构 的情况下,可以使用UML部署图。
软件需求
按需求内容分类:
业务需求:由客户提出的宏观的一个功能需求。
用户需求:设计员去调查需求中涉及到的每个用户的具体需求。
系统需求:经过整合,形成最终的系统需求,包括功能、性能、设计约束三个方面的需求。
从客户角度分类:
基本需求:需求明确规定的功能。
期望需求:除了基本需求外,客户认为理所应当包含在内的其他功能。
兴奋需求:客户未要求的其他功能需求,会浪费项目开发时间和成本。
软件需求分类:
功能需求:软件必须完成的基本动作。
性能需求:说明软件或人与软件交互的静态或动态数值需求,如系统响应速度、处理速度等。
设计约束:受其他标准硬件限制等方面的影响。
属性:可用性、安全性、可维护性、可转移/转移性。
外部接口需求:用户接口、硬件接口、软件接口、通信接口。
网友评论