halo~我是bay_Tong桐小白
本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言、指点

【更新日志】

最近更新:

  • 暂无编辑记录,持续更新中……

系统开发阶段

系统开发是软件生命周期的第二阶段,主要分为三个部分的内容

  • 系统开发阶段的第一部分为系统设计,需要项目团队结合前一阶段所做工作对软件进行概要设计与详细设计,如系统采用何种结构(如B/S、C/S等)、系统的具体功能定义、具体算法的设计等;
    【系统设计部分所进行的工作需要体现在《设计说明书》文档中】
  • 系统开发阶段的第二、三部分即为具体的编码和测试,这就要求项目团队在之前所有的分析、设计基础上完成软件具体的编码,并使用尽可能全面的测试用例反复进行测试迭代,进行代码审计,根据测试结果再行不断完善程序编码,在多次反复迭代后最终达到可交付可发布的状态
    【系统开发的编码和测试部分的工作内容需体现在《编码文档》《测试报告》文档中】

在这里插入图片描述

系统设计概述

概念: 软件设计包括一套原理、概念和实践,以指导高质量的系统或产品开发

软件设计是构造的目标系统“怎么做”的模型描述,即对将要实现的软件系统的体系结构、系统的数据、系统模块间的接口,以及所采用的算法给出详尽的描述

设计阶段基础问题:

  • 将软件系统划分成若干独立成分的依据准则
  • 各不同成分内功能细节和数据结构细节如何表示
  • 软件设计技术质量的衡量标准

设计原则(基础问题的解决依据):

  • 分而治之:将大型复杂的问题分解为许多容易解决的小问题。体系结构、模块化设计都是分而治之策略的具体表现
    模块的分解并非越小越好,模块大小、数目与成本的关系如下:
    在这里插入图片描述
  • 模块独立性:指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它模块的接口很简单。一般以模块间的耦合与模块的内聚两个准则来度量模块独立性
  • 抽象:忽视一个主题中与当前目标无关的方面,以便更充分地注意与当前目标有关的方面
  • 复用性设计:指同一事物不做修改或稍加修改就可以多次重复使用,构造新的软件系统时不必从零做起,可以直接使用已有的软构件即可组装(或加以合理修改)成新的系统。复用性设计有两方面的含义:
    (1)尽量使用已有的构件(包括开发环境提供的及以往开发类似系统时创建的)
    (2)如果确实需要创建新的构件,则在设计时应该考虑将来的可重复使用性
  • 灵活性设计:把软件和现实更紧密联系起来,使得一些现实物理世界中的思想可以很容易地运用到软件中去,实现更高抽象层次的编程以保证软件的灵活性。在设计中引入灵活性的方法主要有:
    (1)降低耦合并提高内聚(易于提高替换能力);
    (2)建立抽象(创建有多态操作的接口和父类);
    (3)不要将代码写死(消除代码中的常数);
    (4)抛出异常(由操作的调用者处理异常);
    (5)使用并创建可复用的代码。

划分: 从工程管理的角度,可以将软件设计分为概要设计阶段和详细设计阶段

概要设计概述

定义: 概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程,其结果往往以反映交互控件布置、界面元素分组以及界面整体板式的页面框架图的形式来呈现。这是一个在用户研究和设计之间架起桥梁,使用户研究和设计无缝结合,将对用户目标与需求转换成具体界面设计解决方案的重要阶段

主要任务: 概要设计的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。概要设计建立的是目标系统的逻辑模型

软件结构设计的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等【体系结构、模块划分、界面设计等】

数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计【数据库设计等】

【设计阶段的工作与分析阶段的工作密切相关,同需求分析一样,不同方法学的分析阶段进行的主要内容有所差别】
在这里插入图片描述
详细后续更新……

详细设计概述

定义: 详细设计,是软件工程中软件开发的一个步骤,就是对概要设计的一个细化,就是详细设计每个模块实现算法,所需的局部结构。在详细设计阶段,主要是通过需求分析的结果,设计出满足用户需求的软件系统产品

主要任务: 详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构

目标: 实现模块功能的算法要逻辑上正确、算法描述要简明易懂

表示工具: 详细设计的表示工具有图形工具和语言工具:

  • 图形工具有业务流图、程序流程图、PAD图、NS流程图等
  • 语言工具有PDL伪码等

持续更新中……
我是桐小白,一个摸爬滚打的计算机小白

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐