软件工程——软件开发阶段(概要设计、详细设计)

简介: 需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。确定系统的具体 实现方案、给出软件的模块结构、编写各个文档

需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。确定系统的具体 实现方案、给出软件的模块结构、编写各个文档

20200604102612217.png


目的是什么?


承上(需求)启下(开发)的一步。


根据需求,把代码开发阶段需要的东西,全部想好。


概要设计与详细设计从管理和技术点划分,如下图:


       20200604100617108.png                        


软件开发阶段过程


1.概要设计


2.详细设计


详细设计实际是概要设计的一个细化


软件设计基础


  • 自顶向下,逐步细化
  • 软件结构
  • 程序结构
  • 结构图
  • 模块化
  • 抽象化
  • 信息隐藏


模块的独立性


指软件系统中每个模块只涉及软件要求的具体的子功能


可以用两个定性标准度量:耦合和内聚


模块间的耦合


耦合是模块之间相互连接的紧密程度的度量。模块之间的连接越紧密,联系越多,耦 合性就越高,而其模块独立性就越弱。

        20200604101206391.png


模块内聚


指同一个模块之间,语句间联系的紧密程度。


一个模块内部各个元素之间的联系越紧密,内聚性就越高,相对于其他模块之间 的耦合性就会降低,而模块独立性就越强。

              20200604101226916.png


面向数据流的设计方法


程序流程图

五种


20200604101326183.png

 

N-S图


也叫做盒图。


   20200604101340345.png                          


问题分析图(PAD)


PAD也设置了五种基本控制结构的图示,并允许递归使用


优点:表示的程序结构易懂,清晰


         支持自顶向下的方法


20200604101347563.png

相关文章
|
算法 程序员 Go
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
|
算法 测试技术
详细设计文档格式
1、背景 (背景、原因) 2、名词解释 (对文档中出现新的或不常见的名词、概念或简略语给出定义和解释) 3、设计目标 3.1、实现的功能 (概要描述要实现的功能,列出要实现的功能点及子功能点,并对每一个功能点进行详细说明。
6815 0
|
BI 测试技术 程序员
【软件工程题库】第四章 概要设计
【软件工程题库】第四章 概要设计
3061 1
|
算法 数据库 存储
概要设计与详细设计的区别
概要设计与详细设计的区别     概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。
14850 0
|
数据可视化
52【软件设计】软件设计方法归纳总结
软件设计方法有:**结构化设计**(数据流图为依据)、**面向对象设计**(面向对象概念为依据);
1138 0
|
存储 关系型数据库 MySQL
软件设计与实现:从概念到产品
【8月更文第21天】在现代软件开发过程中,从概念到产品的转化需要经过多个阶段的设计和规划。本文将重点介绍软件设计的几个关键方面:软件设计概述、架构设计、模块设计、用户界面设计以及数据库设计,并通过一个假设的项目——在线图书管理系统为例进行说明。
1348 1
|
监控 数据可视化 安全
软件生命周期是什么?包括哪些阶段?各阶段的目标和任务是什么?
在数字化时代,软件如同空气般无处不在,其生命周期涵盖从需求分析到退役的多个阶段,如同生物的成长过程。本文详细介绍了软件生命周期各阶段的目标与任务,并探讨了瀑布模型、迭代模型和敏捷模型等常见生命周期模型。未来,随着技术和业务的不断演变,软件生命周期管理将面临更多挑战与机遇,需不断学习先进方法和技术,以满足用户需求。
8066 0
|
敏捷开发 前端开发 测试技术
软件开发工作流【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
软件开发工作流【详解】(含公司产品研发流程图、大厂研发架构图、大厂研发流程图)
12060 1
|
缓存 测试技术 安全
架构设计和概要设计
初步再来探讨下架构设计和概要设计的区别和边界问题。先谈下架构设计: 架构设计包括了功能性架构和技术架构设计两个部分的内容,功能性架构解决业务流程和功能问题,而技术架构解决非功能性需求等问题。两种架构都包括了动态和静态两个方面的内容,对于功能性架构中动态部分为业务流程驱动全局用例,用例驱动的用例实现等;对于技术架构中动态部分为架构运行机制,而静态部分为框架,分层等方面的内容。
4013 0
|
存储 前端开发 JavaScript
软件设计文档编写指南
软件设计文档编写指南