《软件工程》学习笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!第一章软件工程概论1.1软件工程发展史1.软件:有三层含义(1)个体含义,指计算机中的程序及其文档。(2)整体含义,指在特定计算机系统中所有上述个体含义下的软件的总称,即计算机系统中硬件除外的所有成分。(3)学科含义,指在研究、开发、维护以及使用前述含义下的软件所涉及的理论、方法、技术所构成的学科。软件工程:是一类求解软件包的工程。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法、创建软件以达到提高质量、降低成本的目的。其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。软件工程是一门指导计算机软件开发和维护的工程学科。2.软件开发过程的演化第一个时期:40-60年代个体时期(程序时期)第二个时期:软件作坊时期(程序+文档)60-70年代第三个时期:软件工程时期(70年代-现代)一个阶段:软件工程方法时期(结构化方法等)计算机辅助软件工程技术(CASE)二个阶段:集成的计算机辅助软件工程时期(ICASE)3.软件危机定义:指在计算机软件开发和维护过程中所遇到的一系列的严重问题。具体表现在以下几方面:①软件开发成本高,成本难以控制②研制周期长,软件开发进度难以估计③正确性难保证(软件质量差)④缺乏完整、正确的文档资料⑤软件的维护困难,维护的人员与费用不断增加⑥软件的发展跟不上硬件的发展和用户的要求希赛网自考学院()0731-8873047-8001tr@csai.cn第36页希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!软件危机的原因:①客观原因:软件需求大,规模大②主观原因:软件本身特点开发过程中的原因*用户对软件需求的描述不精确(二义性、遗漏、错误)*软件开发人员对用户需求的理解与用户本来的愿望有差异1.2软件工程框架(重点内容,仔细读书中相关内容)*目标①正确性②可用性③合算性软件工程的目标概括为“生产具有正确性、可用性以及开销合宜的产品*活动①需求问题定义(Specification软件需求归约,也称规格说明)需求分析(功能归约)②设计概要设计详细设计③实现—软件产品④确认贯穿于整个开发过程(交付产品)⑤支持软件工程活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步骤”*原则①开发模型②设计方法③支持过程(工程支持)④管理过程1.3软件生命(存)周期指软件产品或软件系统,从生产、投入使用到被淘汰的全过程。把软件生命周期依次划分为若干阶段,每个阶段有相对独立的任务,逐步完成各个阶段的任务后,软件的生命周期向前推进。全三大阶段希赛网自考学院()0731-8873047-8001tr@csai.cn第36页希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!(一)软件计划阶段①问题定义“要解决的问题是什么?”②可行性研究在时间和资源的约束条件下,能否完成指定的任务.可行性研究所研究的内容如下:(1)技术可行性(2)经济可行性(3)法律可行性(4)社会可行性(二)软件开发阶段*需求分析*软件设计*编码*测试*运行(三)软件维护阶段1.4软件开发方法指软件开发过程中所遵循的方法和步骤,是规则、方法和工具的集成,既支持开发,也支持开发以后的演化过程。(1)由一系列步骤组成的设计开发过程(2)各个步骤使用的设计表示(3)各步骤中使用的工具、技术和方法第2章软件开发模型掌握模型的活动、特征、活动间的关系、不同点。软件开发模型:是软件开发全部过程、活动和任务的框架。(要求掌握:什么是?特征,图,优缺点,适用范围)2.1瀑布模型(waterfall)将软件生命周期的各项活动规定为按固定次序连接的若干阶段的工作。计划需求分析希赛网自考学院()0731-8873047-8001tr@csai.cn第36页设计希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!编码测试特征:P5①上一阶段的结果作为本阶段的输入(从上一阶段接受本阶段工作的对象,作为输入)②尽可能推迟软件编码时间③为保证软件质量,每个阶段都要实施评审工作,以便及早发现错误,改正错误优点:降低软件复杂度,促进软件开发工程化缺点:①缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题②后期错误,修正代价高2.2演化模型(evolutioary)针对不能完整定义需求的软件开发,用户可给出待开发系统的核心需求,对开发出的核心系统有效的提出反馈,最终设计和实现软件系统。图见书第6页原型:①抛弃型②演示型③样品型④增长式的演化型特征:减少了软件开发活动的盲目性,减少由于软件需求不明确而给工作带来的风险性2.3螺旋模型(spiral)把瀑布模型和演化模型结合起来,并在此基础上加入风险分析得到的模型。图见书第7页2.4喷泉模型(fountain)图见书第8页特征:迭代和无间隙希赛网自考学院()0731-8873047-8001tr@csai.cn第36页希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!迭代:软件开发各个阶段多次重复。2.5增量模型(Increaseted)先开发出整个系统中一个功能(子集),再逐步开发出后续功能,直至整个系统的完成。重点掌握:软件工程框架软件生命(存)周期(概念)第3章需求分析关键性阶段:对于要开发的目标系统在功能上、性能上进行规格说明。对于目标系统理解、分析、建立系统模型,将需求精确化、完全化、形成一个软件需求规格说明书。基本任务:准确地定义未来系统的目标,回答“系统必须做什么?”任务的承担者:系统分析员需求分析分两个阶段:①需求获取阶段:系统分析员通过学习,并且与用户交互,熟悉要开发系统的领域知识,并且获得用户对要开发系统的要求活动:需求获取结果:需求定义②需求归约阶段:在获得用户初步需求后进行一致性分析检查,通过与用户协商、解决需求中存在的二义性和不一致性问题,并以一种规范化的形式准确表达用户需求,形成软件需求规格说明书活动:需求获取需求定义需求分析软件需求规格说明(建立系统模型)需求验证软件需求规格说明3.1需求获取1.概述*需求:对系统特征及为了完成用户要求,系统必须做什么的一个描述。*目的:清楚理解所要解决的问题,完整地获取用户需求。*步骤:①获取当前系统的物理模型②抽象出当前系统的逻辑模型③建立目标系统的逻辑模型④补充(用户界面、系统启动和结束、出错处理、新的输入输出)*困难:希赛网自考学院()0731-8873047-8001tr@csai.cn第36页希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!①对于问题空间的理解②人与人之间的通信③需求的易变性④表示方法结构化自然语言+图(表)2.需求获取的内容功能性需求非功能性需求:性能3.应遵循的原则*划分:“整体/部分”关系降低问题空间的复杂性*抽象:“一般/特殊”*投影:“多角度分析”4.需求获取采用的技术和方法*系统分析员的素质:①概括能力、分析能力、社交活动能力。②具有一定的开发计算机软、硬件系统的经验。③能理解用户提出的要求。④善于在用户和软件开发机构之间进行良好的通信,协调。*采取的手段:主要活动:通过学习,请教领域专家,向用户提问,了解要解决的问题,理解用户的需要①访谈与会议②观察用户工作流程③系统分析员与用户成立联合小组基于数据的系统模型面向对象的系统模型3.2结构化分析(StructureAnalysis)方法1.概述*结构化方法:(1)SA(2)SD(D-Design)(3)SD(P-Programe)*结构化分析方法希赛网自考学院()0731-8873047-8001tr@csai.cn第36页希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!基于数据流的分析方法根据数据流分析的观点,系统模型的功能是数据变换,将软件系统抽象为一系列的逻辑加工单元,各单元之间通过数据流发生关联,逻辑加工单元接受输入数据流,并把它变换成输出数据流。结构化分析的结果是:数据流图*数据流图SA方法最普遍采用的手段(建立系统模型)数据流图:一种描述数据变换的图形工具2.模型表示:数据流图,数据字典,加工小说明(1)数据流图:四个基本成分加工(动词,用圆圈表示):对数据进行处理、接收输入数据,进行处理后产生输出数据。数据流(名词用箭头表示):表示数据及其流向通常由一组数据项组成数据存储(文件两条平行的线段):表示信息的静态存储。数据源和数据潭(短形表示):(2)数据字典:以准确的、无二义性的方式定义数据流和文件数据流条目数据项条目文件条目表示符号:=等价于(定义为)+与(顺序结构){}重复(循环结构)[|]或(选择结构)()任选m..n界域(范围)(3)小说明:描述加工步骤自然语言结构化自然语言判定表:旅游时间订票量折扣量旺季淡季条件类别条件组合操作操作执行希赛网自考学院()0731-8873047-8001tr@csai.cn第36页希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!判定树3.实施步骤原则:自顶向下,逐步求精手段:分解和抽象①确定系统边界,画出系统模型数据潭2数据潭1数据源1数据源2***系统②自顶向下,画出各层数据流图顶层0层:1、2、3……父0层321子1层3.23.11.21.2③定义数据字典④定义小说明希赛网自考学院()0731-8873047-8001tr@csai.cn第36页希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!⑤汇总前面各步骤的结果*注意事项:(1)平衡规则①使用正确符号,符号规范②数据字典完整③正确符号④最底层的加工必须写小说明(叶节点)⑤父图、子图要平衡(2)控制复杂性规则①②③输入数据足够。5.实例研究任何系统必须有有效性检查。3.3需求验证重要性1、确保软件开发成功2、提高质量、降低费用①正确性(SRS)②无二义性③完整性④可验证性⑤一致性⑥可理解性⑦可修改性⑧可被跟踪性⑨可跟踪性⑩设计无关性□注释3.4需求分析文档1.SRS希赛网自考学院()0731-8873047-8001tr@csai.cn第36页希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!SRS重要性(作用):①技术合同②开发的基础③测试验收的依据2.初步测试计划3.用户系统描述(用户手册)第4章总体设计(概念设计、初步设计)4.1概述1.软件设计阶段的任务(1)任务:确定系统“怎么做“从SRS出发,形成软件的具体设计方案。(2)可采用的方法:结构化设计方法(SD)――数据流面向对象设计方法(OOD)面向数据结构的设计方法(3)结构化设计总体设计详细设计2.总体设计的主要任务确定软件系统的整体模块结构文档:模块结构图(MSD)-(ModuleStuctureDesign)(1)将系统划分成模块(2)确定每个模块的功能(3)确定模块间的调用关系(4)确定模块间的接口3.总体设计的表示形式层次图HIPO图结构图4.2结构化设计方法与SA衔接使用以DFD为基础得到软件的模块结构希赛网自考学院()0731-8873047-8001tr@csai.cn第36页希赛网自考学院,计算机专业自学考试资源站点,为考生提供全程辅导服务!DFDMSD映射1.数据流图(DFD)分类(1)变换型数据流图定义:具有较明显的输入、变换(加工)和输出界面的数据流图加工物理输出逻辑输入逻辑输出变换中心物理输入格式检查计算汇费打印合格汇款单数据核准后的汇款单汇款单(2)事务型数据流图。数据沿着输入

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功