软件工程——软件设计总结
一.软件设计的定义
- 定义:对需求分析阶段提出的系统要求,给出具体的软件设计方案,即如何去做。
- 软件设计的概述(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
实现数据共享 ;减少数据的冗余度 ;数据的独立性:独立于具体应用。数据实现集中控制:数据安全性、一致性和可靠性:①安全性控制;②完整性控制:③并发控制。故障恢复:备份恢复机制。
软件工程——软件设计总结相关推荐
- 软件工程 软件设计 步骤_好的软件设计特点 软件工程
软件工程 软件设计 步骤 For good quality software to be produced, the software design must also be of good qual ...
- 软件工程--软件设计
1.软件设计的目标和任务:根据用信息域表示的软件的需求以及功能和性能需求进行数据设计,系统结构设计,程序设计. 2.软件设计的过程:1.规定规范2.软件系统结构的总体设计3.处理方式设计4.数据结构设 ...
- 软件工程——软件设计方法(概要设计)
软件设计方法主要分为两个方面:1.概要设计 2.详细设计 概要设计: 一.软件设计的目标和任务 1.定义 将文字转化为结构图,根据用信息域表示的软件需求,以及功能和性能需求进行数据设计,系统结构设计 ...
- 《大话软件工程—需求分析与软件设计》,给出了分析与设计过程中需要的理论、方法、工具和标准
□ 做好一款软件从哪里开始呢?→ 客户需求的调研: □ 一款软件的价值高低由哪个环节决定呢?→ 软件的分析与设计: □ 软件顺利完成开发靠什么?→ 高效的项目管理: □ 软件开发的主要角色?→ 客户. ...
- 软件工程学习笔记——第六章 软件设计方法
目录 第一章 概述 第二章 过程和活动 第三章 软件过程模型 第四章 问题定义和可行性研究方法 第五章 需求分析方法-1 第五章 需求分析方法-2 第六章 软件设计方法 第七章 软件实施与测试方法 第 ...
- 【软件工程】软工初印象——软件设计之灵魂
最近在看软工视频,跟软工视频比起来,敲代码太容易了..跟我的题目一样,我对软工的第一印象就是它是软件设计的灵魂,发挥着指导思想的作用. 视频感觉很抽象,名词都搞不懂,但是还是跟着做笔记 ...
- 《软件工程》-面向过程的软件设计方法
[前言] 软件设计的目标和任务 软件设计基础 模块独立性 结构化设计方法 数据设计和文件设计.过程设计 [内容] 1.软件设计的目标和任务 根据用信息域表示的软件需求,以及功能和性能需求,进行 数据设 ...
- 【软件工程】软件设计概述
软件设计是一个过程,通过这个过程,创建一个软件工件的规范,目的是实现目标,使用一组原始组件并受到约束.[1]软件设计可以指"所有涉及概念化.框架化.实现.调试的活动,最终修改复杂系统&quo ...
- 软件工程(三):软件设计
三.软件设计 目录 三.软件设计 一.软件工程开发方法与软件设计 (一)功能分解法--传统开发方法,面向过程 (二)结构化方法--传统开发方法,面向过程 (三)面向对象方法 (四)面向对象的几个基本概 ...
最新文章
- Pyinstaller 打包 torch 后执行失败 OSError: could not get source code
- 后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录
- 使用绘图API自定义组件
- 微信小程序前端支付代码
- 讲师征集| .NET Conf China 2021正式启动!
- 安装后jdk1.8 配置环境变量以后 版本显示还是1.7
- java math.cos_Java Math类静态double cos(double d)示例
- CSU 1259 bfs找最短路
- 程序员专属精品简历合集—面试必备
- python-字符串转义符号
- chrome net::ERR_CERT_AUTHORITY_INVALID 问题
- 针对Properties中实时性要求不高的配置参数,用Java缓存起来
- pytorch gather_GCN的简单实现(pytorch)
- javar -jar 和 java -cp :命令行运行java代码
- Programming WCF Services中文翻译(3)-契约
- 计算机时间与网络时间无法同步,电脑时间与网络时间不同步解决办法
- 台式计算机接口示意图,台式机硬盘接口_台式机硬盘接口图解
- 地坛——我的最爱 (2006-11-12 09:33:18)
- 加号和字符串拼接符号
- 欧洲专线运输方式有哪些?有哪些优势?