【前言】
   走过了前面的计划阶段和需求分析阶段之后,我们来到了设计阶段的学习,设计阶段的学习是至关重要的,本阶段是软件工程的核心,成品的软件的原型基本是在设计阶段塑造的,这个阶段要分两步来完成,首先我们进行概要设计,然后再进行详细设计。我觉得呢,和现在那些盖高楼的应该是一个原理,先搭好整个钢筋框架,然后再开始填砖瓦。

【概要设计阶段】

软件概要设计的基本任务在软件需求分析阶段,已经搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中,所以软件设计是一个把软件需求转换为软件表示的过程。

(一)还是老样子,先来张导图理理思路。熟悉一下流程。

(二)来看看设计的基础,:

1.自顶向下,逐步细化;
2.软件结构--将软件结构分解,细化问题寻找方案。 
3.程序结构--树状,网状。
4.结构图--模块的高内聚低耦合
5.模块化--能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。 
6.抽象化--软件系统进行模块设计时,可以有不同的抽象层次。
7.信息屏蔽--如果不想让坏事传播开来,就应该把坏事隐藏起来,“家丑不可外扬”就是这个道理。为了尽量避免某个模块的行为去干扰同一系统中的其它模块,在设计模块时就要注意信息隐藏。应该让模块仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。

(三)概要设计的基本任务

设计软件系统结构(简称软件结构)为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库(文件),对于程序,则首先进行结构设计,具体为:
(1)采用某种设计方法,将一个复杂的系统按功能划分成模块。
(2)确定每个模块的功能。
(3)确定模块之间的调用关系。
(4)确定模块之间的接口,即模块之间传递的信息。
(5)评价模块结构的质量。

(四)编写概要设计的文档主要有:
(1)概要设计说明书。
(2)数据库设计说明书,主要给出所使用的DBMS简介、数据库的概念模型、逻辑设计、结果。
(3)用户手册,对需求分析阶段编写的用户手册进行补充。
(4)修订测试计划,对测试策略、方法、步骤提出明确要求。

--------------------------------------------------------------------------------------------------------------------------------

【详细设计阶段】

详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,也称“过程设计”,详细设计的目标不仅是逻辑上正确地实现每个模块的功能,并使设计出的处理过程清晰易读。大概就是,在编程序之前,对算法的逻辑关系进行分析,然后设计出全部必要的过程细节,并给予清晰地表达。

嗯哼~~ 再来一张图,熟悉一下详细设计的任务。

(一)详细设计的基本任务:

(1)为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
(2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。
(3)对数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。
(4)其他设计:根据软件系统的类型,还可能要进行以下设计: ①代码设计。为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。②输入/输出格式设计。
③人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。
(5)编写详细设计说明书。
(6)评审。对处理过程的算法和数据库的物理结构都要评审。

(二)详细描述处理过程常用三种工具:

图形、表格和语言。
(1)程序流程图 程序流程图又称为程序框图,它是使用最广泛的一种描述程序逻辑结构的工具。
(2)PAD图 PAD图指问题分析图(Problem Analysis Diagram),是日本日立公司于1979年提出的一种算法描述工具,它是一种由左往右展开的二维树型结构。
(3)过程设计语言
  过程设计语言(Problem Design Language,简称PDL),也称程序描述语言(Problem Descripition Language),又称为伪码。它是一种用于描述算法设计和处理细节的语言。
  用PDL表示的程序结构一般有以下几种:
①顺序结构 ②选择结构 ③重复结构 ④出口结构

(三)设计的后处理:

1.写处理说明
2.提供接口说明
3.确定全局数据结构和局部数据结构
4.指出所有的设计约束和限制
5.进行评审

【总结】

软件设计阶段中还有一个重要的地方一定要弄清楚,模块部分。由于篇幅原因,关于模块的总结呢,欲知后事如何,且听下回分解。

感谢您的阅读,未完待续~~

【软件工程】--设计阶段相关推荐

  1. 【软件工程期末复习题】看了这个,期末就够了!!!

    B站关注帅小柏 选择题 判断题 简答题 其他大题 成本效益分析 程序流程图 盒图 PAD图 Jackson图 流图 数据字典 判定树判定表 选择题 1.(       )是软件生存期中的一系列相关软件 ...

  2. 【软件工程】 软件设计阶段

    [前言] 在经历过计划阶段和需求分析的阶段接下来就到了软件设计的阶段,他是软件工程中非常重要的阶段,它主要是分两步来完成,一个是概要设计,一个是详细设计! 一.概要设计阶段 1.解析 概要设计主要是完 ...

  3. 软件工程之软件设计阶段

    软件设计阶段也是软件工程里的一个中重要问题,我把它分为三部分,软件设计阶段.软件编码阶段和软件测试阶段. 一.软件设计阶段 根据用信息域表示的软件需求,以及功能和性能需求分析,软件设计阶段的目标有数据 ...

  4. 软件工程大作业——设计阶段

    文章目录 前言 一.系统设计 二.对象设计 三.动态模型设计 前言 下面用面向对象方法设计"书籍分享系统" 一.系统设计 系统主要分为三个子系统:书籍检索子系统,书籍信息管理子系统 ...

  5. 【软件工程】VB版机房文档总结

    前言: 软工视频+软工文档+UML视频+UML图的学习过程图! 这部分的知识很厚,只是知道了个大概!最开始 慢悠悠的像个老爷爷走进度,后来遇到点什么事,妈呀,管不了那么多了,赶紧弄完在说,拖了多久了都 ...

  6. 【二级java】软件工程基础

    1.软件工程三要素 : 方法 工具 过程 2.软件工程中根本上来说是为了研究软件开发技术 3.软件工程的定义 : 应用于计算机软件的定义.开发维护的一整套方法.工具.文档.实践标准和工序 4.软件危机 ...

  7. 软件工程结构化建模的方法和工具_2020年6月——北京大学《软件工程》笔记

    1软件工程概述 一.软件的定义 计算机系统种的程序及其文档. 程序:计算机任务的处理对象和处理规则的描述. 文档:为了便于理解程序所需要的阐明性资料. ●软件是无形的.不可见的逻辑实体 ●软件是设计开 ...

  8. 个性化选修——软件工程相关笔记

    软件:程序.相关数据和说明文档 软件工程 针对软件这一具有特殊性质的产品的工程化的方法,它涵盖了软件生存周期的所有阶段,并提供了一整套工程化的方法来指导软件人员的工作. 软件发展的历史 第一阶段:程序 ...

  9. 软件工程系列教材:软件架构设计实践教程

    第1章 认识软件架构 1.1 软件架构与软件工程 1.1.1 软件产业的工业化与现代化 1.1.2 软件系统的复杂性 1.1.3 克服"软件危机"的进程 1.1.4 现代软件产业发 ...

最新文章

  1. keepalived+nginx安装
  2. java 表单请求_java模拟表单请求
  3. Postman(使用指南)
  4. php符号教程,PHP教程:网站开发编程中的特殊符号处理_php
  5. ZZULIOJ 1106: 回文数(函数专题)
  6. 光华科技光刻胶_光刻胶概念走强,6天5板!21只光刻胶概念出炉!(名单)
  7. Docker基础(3)——基础网络模型
  8. 漫画:优秀程序员的必备特质有哪些?
  9. Android IntentService的使用与源码解析
  10. 安卓手机利用DroidCam当电脑摄像头使用方法
  11. spline: 计算机曲线简史(转载)
  12. 新浪离职员工写给新浪各位高层的信
  13. c语言谷歌坐标转百度坐标,百度经纬度和google经纬度转换测试
  14. 爬虫中proxies小分享
  15. 百胜也要做外卖?市场会重新回到三足鼎立吗
  16. (~ ̄▽ ̄)~罗马数字图表
  17. ESP32-CAM视频传输至公网服务器并转发视频数据流
  18. 电子学会2020年9月青少年软件编程(图形化)等级考试试卷(一级)答案解析
  19. review设备管理
  20. 编程的第二个十年:关于Real™编程器的全部

热门文章

  1. pp模块常用表 sap_SAP PP模块常用T-CODE
  2. 求第 N 个 斐波那契数的多种方法
  3. java基础最全(包括jdk,ecilpse各个软件的安装下载步骤以及下载地址)
  4. StringBuilder.AppendFormat(String, Object, Object) 方法
  5. 苹果livp格式如何转换为jpg,livp格式转换器怎么使用
  6. 今日凌晨周杰伦生日首发《等你下课》,感动哭了!
  7. 解析B2C电子商务网站系统架构
  8. 品悟C 抛弃C程序设计中的谬误与恶习 pdf
  9. Mint UI—loadmore—Pull down下拉刷新将下拉刷新的箭头标志更换成其他图片(图文)
  10. 4.3.用python解決經典問題:生日悖論, birthday paradox