一.软件设计的定义
- 定义:对需求分析阶段提出的系统要求,给出具体的软件设计方案,即如何去做。
- 软件设计的概述(1)目标:根据SRS提出的目标,设计出软件的体系结构,接口,数据结构和处理流程并撰写SDS。(2)软件的设计模型
数据设计 ——> 体系结构设计 ——> 接口设计 ——> 过程流程
数据设计:指内部的数据结构,数据存储(数据库或文件)
体系结构设计:物理架构,逻辑架构
接口设计:内部模块之间的接口,外部与人机,其他系统的接口
过程流程:处理流程和算法,并发控制
3.软件设计的两个阶段
总体设计
详细设计
体系结构具有多样性
(1)模块化
高层模块 ——> 复杂问题 ——> 较小问题
(2)模块化的重要特征:
抽象化:抽出事物的本质特征不考虑细节
信息隐藏:模块所包含的信息不允许其他不需要这些信息的模块访问,独立的模块间仅交流为完成系统功能必须交换的信息。
信息隐藏的作用:提高模块的独立性,便于修改维护
4.设计描述与建模
(1)类图:表示系统中类及类 和类之间的关系,用于对系统的静态结构进行描述。
(2)一个系统中通常有若干个类图:一个类图不一定包含系统中的所有类,一个类也可以出现在多个类图中。
UML中属性的语法:[可见性][属性名][:类型][=初值]
- 类之间的关系
- 关联:两个类对象之间存在某种语义上的关联
- 聚集:聚合,表示类与类之间是整体与部分的关系
- 泛化:继承
- 依赖和细化
- 状态图
是一个类对象可能经历的所有历程的模型图
- 包图
UML为复杂系统建模所提供的模型元素组与管的机制。
包 定义 个名字空 包用于定义一个名字空 间或容器(Container) ,通过包可以把类、用例、组 件等语义联系紧密元素聚集在一起,从而实现从不同 抽象层次、不同角度对系统或子系统进行建模描述, 将对包中的元素作为一个整体对待,并且控制它们的 可视性和存取。
包的表示(1)
包的表示(2)
不同包中的元素可以同名,但是同一包中的模 型元素不能同名。
包的模型元素前可以有可视性标志,其表示方法与 类中的属性和操作的可视性表示 类中的属性和操作的可视性表示一样。
F +,对于输入该包的任何包的模型元素都可见 F
-,对于外包不可见 F
#,只对其子包可见
包的联系:
依赖,输入依赖
输入和输出,泛化
- 构件图
构件图用来描述代码构件的物理结构及各个构件之间的物理关系。
构件的作用:
构件是定义了良好接口的物理实现单元,它是系统中可替换的部分。每个构件体现了系统设计中特定类的实现。良好定义的构件不直接依赖于其他构件而依赖于构件所支持的接口。
- 部署图
部署视图描述位于节点实例上的运行构件实例的安排。
- 体系结构设计
体系结构:一个系统的高层次的组织结构,表现为系统的组件、组件之间的相互关系、组件与环境之间的相互关系以及设计和进化的原理。
体系结构模式:根据软件设计开发经验总结出来,且命名的,针对某类型软件具有通用性和推广价值的设计方案某一类型软件具有通用性和推广价值的设计方案。
UML架构:“4+1”视图
包括4种架构:
逻辑:软件逻辑单元(函数、类)的组成及其关系。
MVC架构
进程:系统运行时进程(线程)的构成及其控制。与系统性能有关。
开发:软件物理单元(动态库、文件、可执行程序、程序包)的成组及其关系。与软件开发管理及程序员有关。
物理:系统的网络拓扑结构系统的网络拓扑结构、硬件构成以及软件的部署方案。与系统工程师规划部署方案有 关。该架构又称为系统架构(System Arch.)
- 人机交互设计
1.交互设计是关于创建新的用户体验的问题,目的 在于增强和扩充人们的工作、通信及交互方式, 使他们能够更加有效地进行日常工作和学习。
2.设计流程
交互设计: 生成产品原型 线框图——>视觉设计: 生成产品模型 效果图——>
SS/HTML: 生成产品DEMO
- 界面设计原则
合理组织内容
简化表单,突出重点
清晰的浏览线
考虑用户场景 ,保证主流程顺畅
选择合适的标签对齐方式
提供必要的帮助
智能默认
帮助用户探索和尝试
允许用户犯错误
使界面符合用户的使用习惯
减少用户在使用软件时出现错误...
- 界面开发
典型事件:窗口创建、打开、关闭、销毁,以及其他界面 元素触发的事件。
- 业务逻辑层设计
- 领域模型:领域模型是对真实世界中概念类的表示,而不是软 件对象的表示。它不是用来描述软件类、软件架构领 域 有责件象 层或 职责软件对象的一组图。
- 领域模型用一套类图来表示,这些类没有操作。
领域模型可以显示:领域对象或者概念类;概念类之间的关联;概念类的属性。
- 数据存储设计
1.设计范围: l
业务数据在内存中的管理组织;业务数据在外存中的存储结构。
- 内存数据管理与组织:
自定义数据结构; l
开发语言内建的数据结构:
- 外存数据管理组织
存储方案:文件 VS. 数据库
文件优缺点 :l
安装部署不需要其他软件支持; l
易于作为网络数据交换格式; l
不利于数据的并发访问与共享
数据库 l
实现数据共享 ;减少数据的冗余度 ;数据的独立性:独立于具体应用。数据实现集中控制:数据安全性、一致性和可靠性:①安全性控制;②完整性控制:③并发控制。故障恢复:备份恢复机制。