🎊软件工程期末知识点
✨博客首页:才下眉头n.
🎉已完结
💖如果觉得本篇文章还不错的话,欢迎大家点赞👍+收藏❤️+评论🤞
软件工程
第一章 软件工程学概述
1.软件危机
1.概念
- 计算机软件的开发和维护过程中所遇到的一系列严重的问题。
- 采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效的维护它。
*2.软件危机的表现
1)对软件开发成本和进度的估计常常很不准确;
2)用户对完成的软件系统不满意的现象经常发生;
3)软件产品的质量往往靠不住;
4)软件常常是不可维护的;
5)软件通常没有适当的文档资料;
6)软件成本在计算机系统总成本中所占的比例逐年上升;
7)软件开发生产率提高的速度跟不上计算机应用的发展趋势。
3.解决途径
1)使用在实践中总结出来的开发软件的成功技术和方法
2)开发和使用更好的软件工具;
3)良好的组织管理措施。
2.软件工程
1.概念
指导计算机软件开发和维护的一门工程学科。是一门交叉学科
*2.基本原理
-
用分阶段的生命周期计划严格管理
-
坚持进行阶段评审
-
实行严格的产品控制
-
采用现代程序设计技术
-
结果应能清楚地审查
-
开发小组的人员应该少而精
-
承认不断改进软件工程实践的必要性
3.软件生命周期
软件定义、软件开发、运行维护
第二章 可行性分析
1.可行性研究
1.目的
用最小的代价在尽可能短的时间内确定问题是否有解,以及是否值得去解。
2.任务
1)技术可行性
对要开发项目的功能、性能和限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目能否实现。
2)经济可行性
经济可行性研究的内容是进行开发成本的估算以及进行效益的评估确定要开发的项目是否值得投资开发。
3)操作可行性
在这个应用范围内,系统的操作方式(批处理/联机处理)是否行得通。
4)社会可行性
社会可行性主要研究开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质和操作方式是否可行。
*3.步骤
复查问题定义阶段提出的系统的规模和目标
研究目前正在使用的系统
导出新系统的高层逻辑模型(数据流图、数据字典)
重新进一步定义问题
导出和评价供选择的解法(技术,操作和经济三方面)
**推荐行动方针(**是否继续,找出最好的)
草拟开发计划
书写文档提交审查
2.数据流图
一种图形化技术
1.基本构成符号
-
*:表示数据流之间的“与关系”,实际使用时*常可省略
-
+:表示数据流之间的“或关系”
-
○+:表示数据流之间的“异或关系”
2.步骤
自顶向下,逐层细化
1)先找外部实体(可以是人、物或其他软件系统),找到了外部实体,则系统与外部世界的界面就得以确定,系统的源点和终点也就确定了;
2)找出外部实体的输入和输出数据流;
3)在图的边上画出系统的外部实体;
3.例题
分析:
源点/终点:采购员(终点),仓库管理员(源点)。
处理:
处理事务(零件入库或出库后数量会变化,任何改变数据的操作都是处理)
产生订货报表
数据流:
(1)出入库事务(零件编号,事务类型,数量)
(2)定货报表(零件编号,零件名称,定货数量等)
数据存储:
(1)库存清单(零件编号,库存量,库存量临界值)
(2)定货信息(用来产生报表的数据,零件编号,零件名称,定货数量等)
2.数据词典
对数据流图中包含的所有元素的定义的集合;
1.基本内容
- 数据元素编号、名称及其含义;
- 数据类型和长度;
- 合理取值;
- 其他内容,如它与其它数据的逻辑关系等。
2.用途
1)作为分析阶段的重要工具;
2)数据元素的控制信息非常有用;
3)有助于开发数据库。
第三章 需求分析
1.需求分析是软件定义的最后一个阶段,它的基本任务是准确的回答“系统必须做什么”这个问题。
2.需求分析的结果是可行性研究报告
1.需求分析的意义
软件需求分析是软件开发获得成功的前提条件,必须了解用户需求,才能开发出符合用户要求的软件。
2.需求分析的基本任务
确定对系统的综合需求
分析系统的数据要求
导出系统的逻辑模型
修正系统开发计划
3.需求分析图形工具
1)实体-联系图(ER 图)
数据模型中包含3种相互关联的信息 ---- 数据对象(实体)、数据对象的属性,及数据对象彼此间相互连接的关系。
a. 一对一联系(1∶1) 如:一个部门有一个经理,每个经理只在一个部门任职
b. 一对多联系(1∶N) 如:某校教师与课程之间存在一对多的联系“教”
c. 多对多联系(M∶N) 如:学生与课程间的联系(“学”)是多对多的
2)状态转换图
通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)
3)层次方框图
4)Warnier图
5)IPO图
4.系统分析的过程
1、解释说明环节:对研究的对象和需要解决的问题进行系统的说明,目的在于确定目标和说明该问题的重点和范围;
2、收集资料环节:在系统分析基础上,通过资料分析各种因素之间的相互关系,寻求解决问题的可行方案;
3、建模环节:依系统的性质和要求,建立各种数学模型;。实体数学模型是确定系统包含的实体以及它们之间的关联的过程。
4、运用数学模型对比并权衡各种方案的利弊得失; 有时候还会涉及到数据处理的流程。例如,一张图片提交后可能需要进行预处理,然后有运营人员进行审核和标记,最后进行发布。过程中数据的保存形式或者状态标记可能是不一样的。
5、确定最优方案。通过分析,若不满意所选方案,则可按原步骤重新分析。一项成功的系统分析需要对各方案进行多次反复循环与比较,方可找到最优方案。
第五章 总体设计
1、总体设计又被称为概要设计或初步设计,它的基本目的就是回答“概括的说,系统应该如何实现?”这个问题。
2、总体设计由两个阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段:确定软件结构。
3、衡量模块独立的两个标准:高内聚低耦合。耦合的分类(由低到高),内聚的分类(由低到高)。
1.总体设计的过程
1)设想供选择的方案
2)选择合理的方案
3)推荐最佳方案
4)功能分解
5)设计软件结构
6)设计数据库
7)制定测试计划
8)书写文档
9)审查和复审
2.设计原理
模块化、抽象、逐步求精、信息隐藏和局部化、模块独立
3.描绘软件结构的图形工具
层次图、HIPO图、结构图
1)层次图
层次图作用:描述软件的层次结构
层次图:一个方框代表一个模块,方框间的连线表示调用关系。(不是组成关系)
2)HIPO图
HIPO 图: HIPO 图=层次图+ IPO 图
在HIPO图里,除了最顶层的方框之外,每个方框都加了编号,方便追踪该模块在软件结构中的作用。
3)结构图
结构图是进行软件结构设计的另一个有力工具。
4.面向数据流的设计方法
面向数据流的设计方法:变换流、事务流。
1.变换流
变换流特点:具有明确的传入、变换(或称主加工)和传出界面
2.事务流
当数据流图的数据流是“以事务为中心的”,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。
事务中心的任务:
- 接受输入数据(事务)
- 分析每个事务以确定它的类型。
- 根据事务类型选取一条活动通路
第六章 详细设计
详细设计是要对系统的程序,界面,数据库进行设计,并不是进行具体的代码编写。
1.结构程序设计
结构化程序设计的本质: 代码容易阅读和理解
1.概念
如果一个程序的代码块仅仅通过顺序、选择和循环这 3 种基本控制结构进行连接,而且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
2.目的
来保证程序的代码的是易读性
2.人机界面设计
掌握系统响应时间,响