我是bay_Tong桐秀丽的砖头
本文是桐秀丽砖个人所学知识的总结分享,知识点不定期进行编辑更新和完善。 要了解最近的更新内容,请参阅更新日志。 期待大家的留言和指正
软件工程系统开发——系统设计【更新日志】系统开发阶段系统设计概要设计概要详细设计概要
【日志更新】
最近更新:
无编辑记录,持续更新中……系统开发阶段系统开发是软件生命周期的第二阶段,主要分为三部分内容
系统开发阶段的第一部分是系统设计,项目组需要结合前一阶段所做的工作进行软件的概要设计和详细设计。 例如,系统可以是什么结构(例如,B/S、C/S等)、系统的具体功能定义、具体算法的设计等;
【在系统设计部分所做的工作需要反映在《设计说明书》文档中】系统开发阶段的第二、三部分是具体的编码和测试。 为此,项目组在以往所有分析、设计的基础上完成软件的具体编码,尽可能采用全面的测试用例重复测试迭代,进行代码审计,并根据测试结果不断进行程序编码
【系统开发编码和测试部分的工作内容应反映在《编码文档》 《测试报告》文档中】
系统设计概述概念:软件设计包含一组原理、概念和实践,以指导高质量的系统或产品开发
软件设计是结构目标系统“如何做”的模型描述,即对实现的软件系统的体系结构、系统的数据、系统模块之间的接口以及采用的算法给出了详细的描述
设计阶段基础问题:
将软件系统分为若干独立分量依据标准不同分量内功能细节和数据结构细节如何表征软件设计技术质量的标准设计原则(基础问题的解决依据):
分期治疗:将大型复杂问题分解成许多容易解决的小问题。 架构、模块设计都是分治策略的具体表现
模块的分解并不是越小越好,模块的大小、数量和成本的关系如下。
模块独立性意味着软件系统中的每个模块仅与软件要求的特定子功能相关,并且与软件系统中的其他模块的接口很简单。 一般来说,用模块间的结合和模块的凝聚这两个标准来实现模块的独立性抽象。 忽视一个主题中与当前目标无关的方面,更充分地注意与当前目标有关方面的复用性设计。 也就是说,相同的东西可以多次重用,而不用修改或稍微修改,构建新的软件系统时,不需要从零开始,可以直接使用现有的软件部件组装(或者合理修改)成新的系统重用性设计有两层含义。
(1)尽可能使用现有组件(包括开发环境提供的,或在开发与以前类似的系统时创建的) ) ) )。
)2)如果需要创建新组件,则必须在设计时考虑到未来的可复用性。 将软件与现实更加紧密地结合起来,使一些现实物理世界的思想能够很容易地应用于软件,实现更抽象层次的编程,保证软件的灵活性。 在设计中引入灵活性的方法主要有:
)降低偶联,提高聚集性(容易提高交换能力);
(2)建立抽象)创建具有多态性操作的接口和父类);
(3)不写死代码)消除代码中的常量);
(4)抛出异常)由操作呼叫方处理异常);
)5)使用可复用代码编写。划分:从工程管理的角度出发,可以将软件设计分为概要设计阶段和详细设计阶段
概要设计概要定义:概要设计是设计师根据用户交互流程和用户需求形成交互框架和视觉框架的过程,其结果是交互控件的配置、配置这是沟通用户研究与设计的关键阶段,将用户研究与设计无缝结合,将用户目标和需求转化为具体的界面设计解决方案
主要任务:概要设计的主要任务是将需求分析得到的系统扩展用例图转换为软件结构和数据结构。 概要设计建立了目标系统的逻辑模型
软件结构设计的具体任务是将一个复杂系统按功能进行模块划分,建立模块的层次结构和调用关系,确定模块之间的接口和人机接口等【架构、模块划分、调用
数据结构设计包括数据特征的描述、数据结构特性的确定以及数据库的设计【数据库设计等】
【设计阶段的工作与分析阶段的工作密切相关,与需求分析一样,不同方法论分析阶段进行的主要内容有差异】
之后的更新……
详细设计概要定义:详细设计是软件工程中软件开发的一步,是概要设计的细分,是详细设计各模块实现算法所需的局部结构。 在详细设计阶段,主要通过需求分析的结果,设计出满足用户需求的软件系统产品
主要任务:详细设计的主要任务是设计各模块的实现算法、所需的本地数据结构
实现目标:模块功能的算法必须逻辑正确,算法描述必须通俗易懂
表示工具:高级设计显示工具包括图形和语言工具。
图形工具有业务流程图、程序流程图、PAD图、NS流程图等语言工具,正在持续更新PDL伪代码等……
我是桐秀
丽的砖头,一个摸爬滚打的计算机秀丽的砖头