软件工程复习笔记总结

合集下载

大二软件工程知识点总结

大二软件工程知识点总结

大二软件工程知识点总结本文将对大二软件工程中的重点知识点进行总结和归纳,帮助读者全面理解和复习相关内容。

以下是大二软件工程的知识点概述:一、软件生命周期软件生命周期是指从软件开发的开始到结束的整个过程。

包括需求分析、设计、编码、测试、部署和维护等阶段。

每个阶段都有相应的文档和工具支持。

1.需求分析需求分析是软件开发中最重要的一步,它确定了软件系统的需求和功能。

需求分析的过程包括问题定义、需求获取、需求分析与建模等。

2.设计设计是根据需求分析阶段确定的需求来设计软件系统的整体结构和各个模块之间的关系。

常用的设计方法有结构化设计和面向对象设计。

3.编码在编码阶段,程序员会按照设计文档进行编码,将逻辑结构转化为计算机可执行的程序代码。

编码过程需要选择合适的编程语言和开发工具。

4.测试测试是确保软件系统按照需求和设计要求正常运行的重要环节。

测试包括单元测试、集成测试、系统测试和验收测试等。

常用的测试方法有黑盒测试和白盒测试。

5.部署与维护在完成开发和测试后,软件需要部署到目标环境中并进行维护。

部署包括安装、配置和运行等步骤。

维护包括Bug修复、功能增强和性能优化等。

二、软件开发方法论软件开发方法论是指用于管理和组织软件开发过程的一套准则和规范。

常见的软件开发方法论有瀑布模型、迭代模型和敏捷开发等。

1.瀑布模型瀑布模型是软件开发的经典模型,它按照线性顺序依次完成需求分析、设计、编码、测试和部署等阶段。

缺点是无法适应需求变更和快速迭代的需求。

2.迭代模型迭代模型是在瀑布模型的基础上引入迭代和循环的概念,将开发过程划分为多个迭代周期。

每个迭代周期都包含需求分析、设计、编码、测试和部署等阶段。

3.敏捷开发敏捷开发是一种以人为核心、迭代、适应变化的开发方法。

它强调团队合作、快速响应客户需求和频繁交付可用软件。

敏捷开发方法有Scrum、XP和Kanban等。

三、软件工程方法与工具软件工程方法和工具是辅助软件开发的工具和技术。

软件工程导论复习重点总结很全第六版

软件工程导论复习重点总结很全第六版

第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。

软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。

软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。

1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。

应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。

应当开发和使用更好旳软件工具。

总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。

1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。

采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。

(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。

软件工程复习笔记整理

软件工程复习笔记整理

软件工程复习笔记整理1.软件工程三要素:方法、工具(case、VSS)、过程2.软件危机:①定义:软件开发和维护过程中遇到的一系列严重问题,包括两个方面:如何开发软件以满足不断增长、日趋复杂的需求;如何维护数量不断膨胀的软件产品。

②产生原因:与软件本身特点有关;软件开发与维护方法不正确3.软件=程序+数据+文档4.软件工程:① 软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。

它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。

② 特点:强调规范化、文档化5.软件生命周期:软件生命周期即软件定义、运行、维护,最终到废弃的整个过程。

软件定义:问题定义、可行性研究、需求分析运行阶段:总体设计、详细设计、编码及测试、综合测试维护阶段:持续满足用户需求6.软件过程:为了获得高质量软件所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

① 瀑布模型:适用范围:需求明确、一般不会更改的软件开发特点:阶段间具有顺序性、依赖性;推迟实现(物理上);质量保证(严格的文档要求以及文档评审)②快速原型模型:适用范围:需求不明确的软件开发特点:快速建立原型;线性顺序开发③增量模型:适用范围:特点:分批逐步向客户提交产品;技术要求高;本身自相矛盾。

④螺旋模型:适用范围:内部开发的大规模软件项目特点:风险驱动7.可行性研究(一个简单的需求调研过程),包括技术可行性、经济可行性和操作可行性。

8.需求分析:需求分类:大致分为功能性需求和非功能性需求;其中非功能性需求包括:性能需求、可靠性需求、出错处理、接口需求、约束、逆向需求以及将来可能提出的需求。

9.数据流图和ER图:参考作业储蓄系统10.数据字典:①定义:包括四个方面,数据流、数据流分量、数据存储、处理。

②用途:分析阶段的工具11.概要设计的任务:确定模块以及模块之间的关系。

12.内聚与耦合:进行结构化设计的有力工具① 耦合:对一个软件结构不同模块间互联程度的度量,其强弱程度取决于模块间接口的复杂程度,是影响软件复杂度的一个重要因素。

软件工程重点总结(5篇)

软件工程重点总结(5篇)

软件工程重点总结(5篇)第一篇:软件工程重点总结软件的定义:软件是计算机系统中与硬件相互依存的另一部分,软件包括程序、数据及其相关文档的完整集合。

在结构化程序设计时代,程序的最小单位是向对象程序设计时代,程序的最小单位是类,在类中封装了相关的数据及指令代码。

软件的特性:形态特性、智能特性、开发特特性、维护特性、废弃特性、应用特性。

软件的分类:系统软件、应用软件、支撑软软件危机的表现:软件开发周期长、成本高、软件危机发生的原因:(1)缺乏软件开发的工作的计划很难制定。

(2)软件人员与用户的交流存在障碍。

(3)软件开发过程不规范,缺少方法论和规范的指导,开发人员各自为战,缺少整体的规划和配合,不重视文字资料工作,软件难以维护。

(4)随着软件规模的增大,其复杂性往往会呈指数级升高。

(5)缺少有效的软件测评手段,提高用户的软件质量差,在运行中暴露出大量的问题,轻者影响系统的正常使用,重者发生事故,甚至造成生命财产的重大损失。

首次提出“软件工程”的概念的时间是1968年。

按工程化的原则和方法组织软件开发工作是软件工程的定义:软件工程是指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理、技术和方法进行软件的开发和维护,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护它。

软件工程的目标是运用先进的软件开发技术衡量软件的质量的六个特性:功能性、可靠软件生存期的三个时期:软件定义、软件开定义时期的主要任务是解决“做什么”的问地满足用户的需要。

开发过程中的典型文档包括:软件需求规格计说明书、用户手册。

各个阶段所要完成的基本任务:问题定义与可行性研究、需求分析、软件设计、程序编码和单元测试、集成测试和系统测试、软件运行和维护。

典型的软件生存期模型包括瀑布模型、原型模型、增量模型、螺旋模型等(喷泉模型)。

瀑布模型的特点:1)阶段间具有顺序性和依赖性。

软件工程知识点总结

软件工程知识点总结

软件工程知识点总结软件工程知识点总结1.软件工程概述1.1 软件工程定义1.2 软件工程的重要性1.3 软件生命周期2.需求分析与规格说明2.1 需求分析过程2.2 需求获取方法2.3 需求规格说明的要素2.4 需求跟踪与变更管理3.软件设计3.1 软件设计原则3.2 结构化设计方法3.3 面向对象设计方法3.4 数据库设计3.5 用户界面设计4.软件开发4.1 编码规范4.2 编程语言选择4.3 软件构建工具4.4 软件测试4.5 版本控制5.软件项目管理5.1 项目计划与进度管理 5.2 软件开发过程模型 5.3 团队协作与沟通5.4 风险管理6.质量保证与软件维护6.1 质量保证方法6.2 软件维护类型6.3 软件维护活动6.4 软件退役与替换附件:________本文档涉及的附件(请附上相关文档、图表等)法律名词及注释:________1.软件工程:________指将系统化的、规范化的、可量化的方法应用于软件的开发、运行和维护的工程学科。

2.需求分析:________确定用户对软件系统需要的功能、性能和约束等方面的要求,并以此为基础进行系统的分析和设计。

3.软件设计:________根据需求分析的结果,制定软件系统的总体结构和各组成部分的详细设计方案。

4.软件开发:________根据软件设计的方案,进行编码和调试,最终可执行的软件系统。

5.软件项目管理:________对整个软件项目进行计划、协调、控制和有效地管理,确保项目顺利完成。

6.质量保证:________通过不同的方法和技术,提高软件产品的质量,确保其满足用户的需求和要求。

7.软件维护:________对已投入使用的软件进行修复性、适应性、完善性和预防性等各方面的修改和改进。

软件工程基础知识点总结(2023版)

软件工程基础知识点总结(2023版)

软件工程基础知识点总结软件工程基础知识点总结
1.软件工程概述
1.1 软件工程定义
1.2 软件工程的历史与发展
1.3 软件工程的特点和目标
1.4 软件工程的生命周期
2.软件需求工程
2.1 软件需求定义和分类
2.2 需求获取与分析
2.3 需求规格说明
2.4 需求验证和确认
3.软件设计
3.1 软件设计原则和概念
3.2 结构化设计方法
3.3 面向对象设计
3.4 软件设计工具和标记语言
4.软件开发
4.1 编码规范与规范检查
4.2 编程技术与方法
4.3 集成开发环境(IDE)和调试工具
4.4 软件测试和调试
5.软件项目管理
5.1 软件项目规划和组织
5.2 项目进度和资源管理
5.3 项目风险管理
5.4 质量管理与配置管理
6.软件工程度量与评估
6.1 软件度量概述
6.2 软件度量指标与度量方法
6.3 软件质量评估与改进
7.软件维护与演化
7.1 软件维护概述
7.2 维护过程与维护方法
7.3 软件重构与演化
8.软件工程的伦理和专业责任
8.1 软件工程的伦理问题
8.2 软件工程的专业责任
附件:
本文档涉及的法律名词及注释:
1.版权:一种法律保护措施,确保作品的原创性和独立性。

2.知识产权:指由人们的智能活动所创造的权利,包括专利权、著作权等。

3.商标:用以区别商品或服务来源的记号,被注册后获得权益
保护。

4.隐私保护:保护个人信息和隐私不被非法或未经授权的使用、泄漏、外传等。

软件工程(同等学历复习笔记)

软件工程(同等学历复习笔记)

第一章:软件工程概述1.软件特点软件是计算机系统中的逻辑成分,具有无形性。

其主要内容包括:程序、配臵文件、系统文档、用户文档等。

2.软件分类(1)按功能划分:系统软件、支撑软件、应用软件。

(2)按工作方式划分:实时处理软件、分时处理软件、交互式软件、批处理软件。

(3)按规模划分:微型软件、小型软件、中型软件、大型软件。

(4)按服务对象划分:通用软件、定制软件。

3.软件发展阶段(1)程序设计时代(20世纪50年代)。

(2)程序系统时代(20世纪60年代)。

(3)软件工程时代(20世纪70年代起)。

4.软件危机(1)危机现象:开发成本与进度估计不准确,产品与用户要求不一致,产品质量可靠性差,文档不完整不一致,产品可维护性差,生产率低。

(2)危机原因:软件的不可见性,系统规模庞大,生产工程化程度低,对用户需求关心不够,对维护不够重视,开发工具自动化程度低。

5.软件工程软件工程是一门关于软件开发与维护的工程学科,它涉及软件生产的各个方面,能够为经济、高效地开发高质量的软件产品提供最有效的支持。

(1)工程方法:结构化方法、JSD方法、面向对象方法。

(2)软件工具:具有自动化特征的软件开发集成支撑环境。

(3)工程过程:在软件工具支持下的一系列工程活动,基本活动是软件定义、软件开发、软件验证、软件维护。

(4)工程管理:项目规划,项目资源调配,软件产品控制。

(5)工程原则:分阶段生命周期计划,阶段评审制度,严格的产品控制,采用先进的技术,成果能清楚地审查,开发队伍精练,不断改进工程实践。

(6)工程目标:开发成本较低,软件功能能满足用户需求,软件性能较好,软件可靠性高,软件易于使用、维护与移植,能按时完成开发任务并及时交付使用。

(7)工程文化:包括工程价值、工程思想和工程行为三个方面的内容。

第二章:软件工程过程模型1.软件生命周期如同任何事物都有一个发生、发展、成熟直至衰亡的全过程一样,软件系统或软件产品也有一个定义、开发、运行维护直至被淘汰这样的全过程,我们把软件将要经历的这个全过程称为软件的生命周期。

软件工程师复习重点梳理总结心得

软件工程师复习重点梳理总结心得

软件工程师复习重点梳理总结心得软件工程是一门综合性强的学科,要掌握其中的关键知识点和技能,需要进行系统性的学习和复习。

在我过去的学习和准备中,我总结了以下几个重点梳理,希望能够对同行们的复习提供一定的帮助。

一、需求工程需求工程是软件开发过程中至关重要的一环,它涉及到对用户需求的获取、分析和定义。

软件工程师不仅要具备技术能力,还需要能够与用户进行有效的沟通,深入了解用户的需求,并将其转化为可执行的计划和设计。

在需求工程的复习中,我重点关注以下几个方面:1. 需求获取方法:既可以通过直接与用户交流,也可以通过观察和调研等方式获取需求信息。

需要了解各种需求获取方法的优缺点,并掌握其具体应用场景。

2. 需求分析与描述:需求分析是将用户需求转化为软件规格说明书的过程。

在复习中,应重点学习如何分析需求,识别其重要性和优先级,并准确地将其描述出来。

3. 需求验证与确认:需求验证是确保软件系统满足用户需求的过程。

在复习中,要掌握需求验证的方法和技巧,如原型验证、测试用例设计等。

二、系统设计和开发系统设计和开发是软件工程师的核心技能之一,它涉及到软件架构、模块设计、编码规范以及与其他团队成员的协作等方面。

在复习中,我着重关注以下几个重要点:1. 软件架构设计:学习并掌握常见的软件架构设计模式,如MVC、MVVM等,以及它们的适用场景和优缺点。

2. 模块设计与接口:模块设计是将软件系统划分为独立的、可重用的模块的过程。

在复习中,需要熟悉常见的模块设计原则和方法,并了解如何设计良好的模块接口。

3. 编码规范与质量保证:编码规范是保证团队成员编写一致性和高质量代码的基础。

在复习中,需要熟悉常见的编码规范,并了解如何通过代码审查、单元测试等方式保证代码的质量。

三、软件测试与质量保证软件测试是保证软件质量的重要手段之一,它涉及到功能测试、性能测试、安全测试等方面。

在复习中,我关注以下几个关键点:1. 测试策略与计划:在复习中,需要了解不同的测试策略和方法,并学习如何制定测试计划,包括测试用例设计、测试环境的搭建等方面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程复习笔记总结软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。

v 软件工程学定义:把软件当作一种工业产品,采用工程学的原理来管理和组织软件的开发和维护,称为软件工程。

v 软件是指程序、数据和文档三者共同构成的配置。

v 包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件。

文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。

v 软件的描述性定义:软件由计算机程序,数据结构和文档组成。

v 软件质量定义为“与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体” 具体来说:1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。

v 将软件质量属性划分为六个特性(功能性、可靠性、易用性、效率、维护性和可移植性),这六个属性是面向用户的观点面向管理的观点,且是定性描述的。

v 软件质量度量体系:内部度量可用于开发阶段的非执行软件产品,外部度量只能在生存周期过程中的测试阶段和任何运行阶段使用。

v 软件工程项目的基本目标:(1)低成本;(2)满足功能要求;(3)高性能;(4)易移植;(5)易维护。

v 软件工程方法学就是要从技术和管理上提供如何去设计和维护软件。

v 软件开发方法:面向数据流(约旦)方法、面向数据结构方法、面向对象方法。

v 结构程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。

它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。

v 用来辅助软件开发、运行、维护、管理、支持等过程中活动的软件称为软件工具(CASE)。

v 软件生存周期定义:软件产品从形成概念开始,经过开发、使用和维护,直到最后不再使用的整个过程。

各阶段的任务彼此间尽可能的相对独立,同一阶段内各项任务的性质尽可能的相同。

软件的开发就是“按软件顺时间发展的过程分阶段进行”的。

v 软件生存周期模型:瀑布模型(阶段间具有顺序型和依赖性,清楚地区分逻辑设计与物理设计、尽可能推迟程序的物理实现,是文档驱动模型,遵循结构化设计);原型模型(软件产品的开发是线性顺序进行的,本质是快速,用途是获知用户的真正需求,一旦需求确定,原型将被抛弃)。

其核心都是将软件开发划分为:分析、设计、编码、测试和维护。

v 软件生存周期划分为以下几个阶段:可行性研究与计划、需求分析、总体设计、详细设计、实现、组装测试、确认测试、使用和维护。

v 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤v 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型v 软件工程过程是软件生存周期中各个可能的过程,这些过程可进一步划分成为了提供或获得软件产品或服务,或是为了完成软件工程项目需要完成的有关软件工程活动,每一项活动又可分解为一些软件工程任务。

标准定义了21个过程分属三类:基本过程(include获取、供应、开发、运作、维护过程)、支持过程和组织过程。

v 软件工程三要素:方法、工具和过程。

v 软件工程管理目的:为了按照进度及预算完成软件计划,实现预期的经济和社会效益。

内容:成本估算、进度安排、人员组织、质量保证、配置管理等等。

怎么强调软件工程管理的极其重要性都不会过分 Unit2 可行性研究任务和目的:用最小的代价在尽可能短的时间内确定问题是否能够在一定规模之内解决。

(确定这一问题是否存在值得去做的解)过程和步骤:实质:进行一次大大压缩简化了的系统分析和设计过程,也就是在较高层次上以抽象方式进行的系统分析和设计过程。

技术和工具:DFD+DD 主要内容(1)澄清问题定义规模、约束和限制(2)导出新系统的逻辑模型(3)导出若干个供选择的物理解法(物理模型),并分别研究它们的可能行:数据流图符号Example:数据流图的基本目的是利用它作为交流信息的工具,另一个主要目的是作为分析和设计的工具。

数据字典是关于数据信息的集合,也就是对数据流图中包含的所有元素的定义的集合,它是通过对数据元素和数据结构的定义,来描述数据流和数据存储的逻辑内容的。

数据流和数据字典共同构成系统的逻辑模型。

数据字典的内容:数据流、数据元素、数据存储、处理数据字典最重要的用途是作为分析阶段的工具。

v Unit3v 需求分析:目的:精确地定义系统必须做什么,也就是对目标系统提出完整、准确、清晰、具体的要求。

为目标系统提出精确的逻辑模型。

任务:确定对系统的综合要求,包括功能需求、性能需求、可靠性和可用性需求、运行要求、将来可能提出的要求。

过程:处理逻辑的分解:自顶向下逐步分解直到每个处理逻辑已是不可再分的“功能单元”为止。

书写文档:软件需求规格说明工具:状态图、IPO图、层次方框图、Warnier图v 结构化分析设计技术是70年代中期由E、Yourdon等人提出来的一种面向数据流的方法;要求系统的开发工作在结构化和模块化的基础上进行,它系统的运用了描述模型的概念,按照软件内部数据传递和变换的关系,自顶向下逐层分解,直到找出满足要求的可实现的软件。

在这个方法里,“抽象”,“分解”,“模块化”,“结构化”是它的主要手段;面向数据传递、变换所形成的数据流(Dataflow)和数据流程图(DFD)是它的主要依据。

这个方法的关键工作是:画分层的DFD和确定数据定义与加工策略。

v Yourdon方法(对应的瀑布模型)的缺陷: 其实Yourdon方法是建立在三个假设之上的:假设1:所有的需求都是可以预先定义的;假设2:需求在较长一段时间内是不变的(相对稳定的);假设3:运用所提供的工具可以做到项目参与者之间清晰、准确、有效的沟通。

这三个假设往往是很难成立的:“逻辑模型”的精确描述依赖于“自顶向下的求精过程”,而“自顶向下的求精过程”的顺利进行又依赖于精确的“逻辑模型”,这二个问题互相缠绕依赖而构成方法学上的“死锁”。

v 原型法(原型模型):原型就是模型的意思(原型=模型),它指的是模拟某种产品的原始模型。

运用原型的策略:抛弃策略&附加策略对原型的逐步求精过程是一个迭代过程相对于Yourdon方法来说原型法是一个非线性的系统开发方法。

不再强调高质量的阶段性文档。

v 螺旋模型:沿螺线自内向外每旋转一圈便开发出一个更为完善的软件版本v Yourdon方法适合于“预先指定的系统”;v 原型法适合于“用户驱动的系统”。

v 通常用“范式”定义消除数据冗余程度。

第一范式数据冗余程度最大,第五范式数据冗余程度最小。

v 状态转换图:状态是可以被观察到的系统行为模式,一个状态代表系统的一种行为模式,它规定了系统对事件的响应方式。

一张状态图有一个初态和0至多个终态。

事件:在某个特定时刻引起系统做动作和(或)状态转换的控制信息。

v 验证软件需求的正确性:一致性、完整性、现实性、有效性 Unit4 总体设计:目的:确定系统的具体物理实现方案(系统结构设计),确定组成每一个程序的模块,以及模块间的关系(软件结构设计)。

任务:软件结构设计(过程设计是详细设计阶段的任务)过程:设想供选择的方案选取合理方案(每份方案有系统流程图、组成系统的物理元素清单、成本/效益分析、实现这个系统的进度计划4份资料)等9步(P92)在软件开发早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。

总体设计阶段书写的文档:系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果。

总体设计过程中,推荐最佳方案后进入“软件结构”设计:设计出组成这个系统的所有程序、文件和数据库,以及它们之间的联系。

软件结构:由模块组成的层次系统。

模块:数据说明、可执行语句等程序。

C /S(Client/Server)结构是软件系统体系结构“结构化设计”概括地说就是:用一组标准的工具和准则来确定系统应该由哪些模块、用什么方式联结在一起,才能构成一个最好的软件结构。

模块化就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

模块: 具有四种属性的一组程序语句称为一个模块,这四种属性分别是:输入和输出、逻辑功能、运行程序、内部数据。

(前两个是模块外部属性,后两个是内部属性,总体设计完成外部属性设计、详细设计完成内部属性设计)软件结构图中,模块用一矩形表示。

模块间调用:用→连接开发具有独立功能而且和其它模块之间没有过多相互作用的模块,可以做到模块独立。

影响模块独立的因素:耦合(不同模块间互联程度)内聚(同一模块内各元素紧密程度)力争高内聚、低耦合。

5种耦合形式:数据耦合、控制耦合、特征耦合、公共耦合、内容耦合(从左到右耦合程度递增)最弱的耦合是非直接耦合7种内聚形式:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚(从左到右程度依次递减)模块的扇出与扇入:模块的扇出是指一个模块拥有的直接下级模块的个数。

模块的扇入是指一个模块的直接上级模块的个数。

模块的扇出系数应控制在7以内,尽可能的加大模块的扇入系数。

作用域应该是控制域的子集;模块的控制域和作用域:模块的控制域(控制范围):是指这个模块本身以及所有直接或间接从属于它的模块的集合。

模块的作用域(判断作用范围):是指受该模块内一个判断影响的所有模块的集合。

(也就是该模块内存在着判断调用语句,而所有受到该判断逻辑影响的模块,就是该模块的作用域。

)作用域应该是控制域的子集;理想的是作用域都是直接下属模块。

数据流类型数据在DFD中流径特征变换流:进入系统中的数据所流经的路径几乎是一样的。

事务流:进入系统中的数据所流经的路径不完全是一样的。

精化DFD事务分析变换分析DF类型?分析DFD中数据流的全局特征事务中心往往包含多个处理逻辑。

建立第一张SC分解和优化确定变换中心及I/O “事务”是指一组输入数据。

v Unit5v详细设计:目的:完成模块的过程设计 (为SC中每个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出详细清晰的描述。

)模块的逻辑设计(模块的过程描述)主要内容:1)为每个模块确定采用的算法2)确定每个模块使用的内部数据结构3)确定模块的接口细节4)制定模块的测试计划完成模块的“内部属性”设计,即给出系统中各个模块的“运行程序”和“内部数据”;由此可见详细设计的结果基本上决定了最终软件的质量。

详细设计的目标更重要的是便于维护。

工具:1、程序流程图(流程图)2、N-S图(盒图)3、PAD图(问题分析图)4、伪代码和PDL语言v 逻辑设计应遵循的理念:1、从效率第一到清晰第一2、结构化的控制结构:结构化程序设计=仅使用单入口单出口的三种基本控制结构3、逐步细化的实现方法[例] 在一组数中找出其中的最大数分别用程序流程图、N-S图和PAD图描述用“结构化”保证程序的清晰易读,用“逐步细化”实现程序的正确可靠,它们导致了一条自然的结论:模块的逻辑设计必须用结构化程序设计的原理来指导。

相关文档
最新文档