2021-05-26

软件设计

软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。
软件设计是把需求转化为软件系统的最重要的环节。软件设计的优劣在根本上决定了软件系统的质量。

在这里插入图片描述

软件设计的目标

软件设计的根本目标是在资源环境的限制下,获取能够满足软件需求的、明确的、可行的、高质量的软件解决方案。然而用户的需求再不断变化,软件运行的软硬件环境也在变化。这些变化对软件设计技术提出了更高的要求。

1、软件应该易于维护和升级,因此设计应该是模块化的
2、设计结果的可移植性
3、设计结构应该能快速响应需求变化

软件设计任务

软件设计 的具体任务包括软件的 体系结构设计、模块设计、数据结构与算法设计、数据库设计、用户界面设计。

·结构设计:定义软件系统各主要部件之间的关系。
·模块设计:将软件按照功能或其他原则划分为若干个具有一定独立性和大小的模块,每个模块具有某方面的功能。
·数据库设计:在限定的应用环境(如:操作系统),根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过 程。
·数据结构与算法设计:为了在要求的资源限制范围内选择最优的数据结构与高效率算法将问题解决好,保证软件性能。
·用户界面设计:用户界面也可以称之为用户接口或人机接口,是人机交互重要部分。用户界面设计是为了满足软件专业化标准化的需求而产生的对软件的使用界面进行美化。

软件设计过程

软件设计是从软件需求规格说明出发,形成软件的具体设计方案的过程,也就是说在需求分析阶段明确软件是“做什么”的基础上,解决软件“怎么做”的问题。
系统设计的主要任务是进行总体设计、详细设计和数据库设计。
系统设计工作应该自顶向下地进行。首先设计总体结构,然后再逐层深入,直至进行每一个模块的设计、数据库设计。
总体设计(软件架构)

有一种方法,能够让设计人员将一个系统进行自顶向下的设计分解,并形成合理的抽象描述。「4+1视图」就是这样一种复杂系统的架构设计方法。
「4+1视图」的形式,从5个不同视角来描述软件体系结构,包括场景视图
逻辑视图开发视图过程视图物理视图,每个视图只关系系统的一个侧面,5个视图结合起来,才能反映系统的全部内容。

场景视图

与用例图有关
负责从用户角度,识别业务需求,描述业务场景,是架构设计的起点和终点。
在这里插入图片描述

场景描述
老板角度:了解客户增减数量;了解客户增减变化趋势;商务行程管理。
员工角度:保存和随时查阅客户资料;通过邮件、IM、IP电话与客户保持及时沟通;商务行程管理。
场景抽象
客户管理:增、删、改、查,客户资料;
行程管理:商务形成安排(客户拜访、合同谈判);
订单管理:已签订单的管理;
逻辑视图

逻辑视图(Logical View)从对象角度,构建对象模型,用以确立逻辑分层、模块划分、模块功能、模块间依赖关系等。其中,模块功能,既包括可见的业务功能,也包括不可见的系统功能(日志、权限、事务等)。

层架构模式里的组件被分成几个平行的层次,每一层都代表了应用的一个功能(展示逻辑或者业务逻辑)。尽管分层架构没有规定自身要分成几层几种,大多数的结构都分成四个层次:展示层,业务层,持久层,和数据库层。分层架构中的每一层都着特定的角色和职能。

表现层(presentation):用户界面,负责视觉和用户互动
业务层(business):实现业务逻辑
持久层(persistence):提供数据,SQL 语句就放在这一层
数据库层(database) :保存数据

在这里插入图片描述

分层架构图

模块划分及工能描述:客户模块、行程模块、订单模块、报表模块
模块依赖关系:
在这里插入图片描述

开发视图

开发架构关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK 和现场框架、类库,以及开发的系统将运行于其上的系统软件或中间件

开发环境
开发语言:Java、JavaScript、HTML、CSS
数据库类型:MySQL 5.7
应用服务器类型:Apache+JBOSS
其他软件:Ant、JUnit 等

技术框架
开源框架:Struts+Spring+Hibernate框架结构

其他:目录结构、分层策略、第三方依赖。

过程视图(运行视图)

运行架构:运行架构关注进程、线程、对象等运行时概念,以及相关的并发,同步,通信等问题。运行架构关注运行期间各个单元的交互。

逻辑视图、开发视图和物理视图,描述的都是系统的静态信息,到现在为止我们还缺少对系统动态行为的描述,而运行视图就是用来描述系统中的动态信息加粗样式的。运行视图最常见的设计工具就是UML的序列图

运行视图的设计,最常见的是逻辑架构元素之间的交互关系,比如消息交互、服务调用或API调用。如下图所示。
在这里插入图片描述

物理视图
物理视图(PhysicalView)主要描述**硬件配置**。负责从部署角度,描述软硬件的映射关系,以及系统在分布/部署上的设计。旨在解决系统安装、系统部署、网络分布等问题。物理架构主要关注系统非功能性的需求,如可用性、可靠性(容错性),性能(吞吐量)和可伸缩性。

在这里插入图片描述

详细设计(模块实现逻辑)
在总体设计基础上,第二步进行的是详细设计,主要有处理过程设计以确定每个模块内部的详细执行过程,包括局部数据组织、控制流、每一步的具体加工要求等,一般来说,处理过程模块详细设计的难度已不太大,关键是用一种合适的方式来描述每个模块的执行过程,常用的有流程图。
通过表格方式描述:

在这里插入图片描述

数据库设计(数据管理相关)

数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。

数据库设计的设计内容包括:

1、需求分析:分析用户的需求,包括数据、功能和性能需求;
2、概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
3、逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
4、数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
5、数据库的实施:包括编程、测试和试运行;
6、数据库运行与维护:系统的运行与数据库的日常维护。

主要讨论其中的第2个阶段,即概念结构,在进行数据库系统分析时可参考的基本步骤

收集信息:创建数据库之前,必须充分理解数据库需要完成的任务和功能,了解数据库需要存储哪些数据、实现哪些功能
标识实体(确定表):原则是实体一般是名词,一个实体只能描述一件事,不能重复出现含义相同的实体
标识每个实体属性(确定列):确定每个实体需要存储哪些信息
标识各个实体之间的联系(确定表之间的关系)

E-R 图(Entity-Relationship):也称为实体-关系图 ,用于和项目团队的其他成员及客户沟通,讨论数据库设计是否满足客户的业务和数据处理需求,主要由一些含有特殊含义的图形符号构成
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2021-03-26 20:54:33,596 - Model - INFO - Epoch 1 (1/200): 2021-03-26 20:57:40,380 - Model - INFO - Train Instance Accuracy: 0.571037 2021-03-26 20:58:16,623 - Model - INFO - Test Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Best Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Save model... 2021-03-26 20:58:16,623 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 20:58:16,698 - Model - INFO - Epoch 2 (2/200): 2021-03-26 21:01:26,685 - Model - INFO - Train Instance Accuracy: 0.727947 2021-03-26 21:02:03,642 - Model - INFO - Test Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Best Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Save model... 2021-03-26 21:02:03,643 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 21:02:03,746 - Model - INFO - Epoch 3 (3/200): 2021-03-26 21:05:15,349 - Model - INFO - Train Instance Accuracy: 0.781606 2021-03-26 21:05:51,538 - Model - INFO - Test Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,538 - Model - INFO - Best Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,539 - Model - INFO - Save model... 2021-03-26 21:05:51,539 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 我有类似于这样的一段txt文件,请你帮我写一段代码来可视化这些训练结果
02-06

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值