【软件工程导论】知识点汇总 | 适用于考试复习 | 轻松通过考试

软件工程导论知识点总结 教材 《软件工程导论(第6版)》张海藩 牟永敏 编著;清华大学出版社 课程目标 第一讲 软件的定义 软件不是程序,而是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。 程序:是能够完成预定功能和性能的可执行的指令序列。 数据:是使程序能够适当处理信息的数据结构。 文档:是开发、使用和维护程序所需要的图文资料。 =软件的特点 逻辑产品,具有抽象性;其生产主要是开发研制;不存在磨损、消耗和老化等问题;是脑力劳动,开发效率低;成本昂贵,要进行质量控制;对硬件和环境的依赖性,提出可以执行性问题 阅读详情

软件工程导论

软件工程的概念

建立并使用完善的工程化原则, 以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法.

软件工程三要素

  1. 软件工程方法
  2. 软件工具
  3. 软件工程过程

常见软件开发模型

  1. 瀑布模型
  2. 快速原型模型
  3. 增量模型
  4. 螺旋模型
  5. 喷泉模型

软件危机

20世纪60年代, 计算机研发, 运行, 维护和管理过程中, 出现一系列严重问题的现象.

软件和程序的差别

软件=程序+文档=数据结构+算法+文档 。

程序和软件的区别是,软件是为了完成特定的功能,解决特定的问题而用计算机语言编写的命令序列集合,可以理解为应用程序的集合。而应用程序是软件的一个组成部分,它是软件的必要元素。

可行性分析任务

  1. 技术可行性分析
  2. 经济可行性分析
  3. 社会可行性分析

需求分析的3个层次

  1. 业务需求
  2. 用户需求
  3. 功能需求

E-R图

数据流图

软件设计原则

  1. 模块化
  2. 抽象
  3. 逐步求精
  4. 模块的独立性
  5. 信息隐蔽

模块和模块化

模块是构成软件系统的基本构件, 主要由数据说明, 执行语句等程序对象构成

模块化是将复杂的软件划分为功能相对独立且易于处理的模块的过程

信息隐蔽

信息隐蔽是指模块所包含的 “过程及数据” 信息, 对于其它模块需要隐蔽

耦合和内聚

衡量模块独立性的标准:耦合和内聚

保持模块独立性要达到的标准:高内聚低耦合

常见的耦合种类以及强弱

  1. 非直接耦合
  2. 数据耦合
  3. 控制耦合
  4. 特征耦合
  5. 公共环境耦合
  6. 内容耦合

耦合性逐渐增强

详细设计任务

  1. 模块的算法设计
  2. 模块的内部数据结构设计
  3. 模块接口设计
  4. 其它相关设计
  5. 模块测试用例设计
  6. 编写详细设计文档
  7. 详细设计评审及实现方案

PAD图、流程图

注释分类

  1. 序言性注释
  2. 中间注解(功能性注释)

软件测试的目的

尽可能多的找到软件中的错误,而不是证明软件的正确性

验收测试的概念

在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。

基本路径测试

定义:基本路径测试法又称独立路径测试,是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计出相应的测试用例的方法。

  1. 根据程序设计结果导出程序流程图的控制流图
    img

  2. 计算环路复杂度
    img

    流图中的区域数等于环形复杂度
    流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。

    流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。

  3. 导出基本路径集,确定程序的独立路径
    基本测试路径:

    • 1-2-6
    • 1-2-3-6
    • 1-2-3-4-2
    • 1-2-3-5-2
  4. 设计相应的测试用例

基本路径arrobjectValuereturn
1-2-6[ ]1-1
1-2-3-6[1,2,3]21
1-2-3-4-2[1,2,3,4,5]21
1-2-3-5-2[1,2,3,4,5]43

等价类划分

等价划分是一种黑盒测试技术,把程序的输入域划分成若干个数据类,据此导出测试用例。

划分等价类

  1. 有效等价类: 合理, 有意义输入数据构成集合
  2. 无效等价类: 不合理, 无意义输入数据构成集合

等价类划分原则:

  1. 输入条件规定范围, 定义一个有效等价类和两个无效等价类
  2. 输入条件是布尔值, 一个有效等价类和一个无效等价类
  3. 规定输入数据是一组值, 程序对每个输入值分别进行处理. 每个输入值确立一有效等价类, 针对这组值确立一个无效等价类
  4. 规定输入数据必须遵守规则, 定义一个数据有效等价类 (符合规则) 和 若干个无效等价类(从不同角度违反规则).
  5. 已划分等价类中各元素在程序中处理方式不同, 将等价类进一步划分更小等价类

确立测试用例原则

  1. 为每一等价类规定一唯一编号
  2. 设计一新测试用例, 尽可能多覆盖尚未被覆盖的有效等价类重复, 直到所有有效等价类被覆盖

img

img

img

维护的分类

  1. 完善性维护 50%
  2. 适应性维护 25%
  3. 纠错性维护 21%
  4. 预防性维护 4%

维护副作用

  1. 编码副作用: 修改编码可能引入新错误
  2. 数据副作用: 修改数据结构, 容易导致设计与数据不相容
  3. 文档副作用: 对数据流, 软件结构, 模块逻辑等修改时, 文档也要进行相应修改, 否则导致文档与程序功能不匹配等错误

面向对象的基本特征

封装, 继承, 多态

基本概念:对象、类、封装、继承

用例图、类图

类图:

img

img

用例图:

画小人

则导致文档与程序功能不匹配等错误

面向对象的基本特征

封装, 继承, 多态

基本概念:对象、类、封装、继承

用例图、类图

类图:

[外链图片转存中…(img-Pf5TYrCy-1644338133699)]

[外链图片转存中…(img-mgHos2tW-1644338133700)]

用例图:

画小人

img
图片来源网络

软件工程导论知识点 可行性研究、需求分析2个阶段;软件定义阶段:包括制定计划和需求分析。①制定计划:确定总目标;可行性研究;探讨解决方案;制定开发计划。②需求分析:对待开发软件提出的需求进行分析并给出详细的定义。方法:1)结构化需求分析方法;2)面向对象的分析方法。任务:导出目标系统的逻辑模型,解决“做什么”的问题。步骤:需求分析一般分为需求获取、需求分析、编写需求规格说明书和需求评审四个步骤进行。2) 阅读详情

相关推荐

《软件工程导论》复习知识点总结

                                           软件工程导论 第一章  软件工程学概述 1.     软件工程的7条基本原理: 用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能清楚的审查;开发小组的人应该少而精;承认不断改进软件工程实践的必要性。 2.     软件工程方法学包括: 方法,工具和过程...

DavidChen的博客 3万+

软件工程导论复习知识点

这是我在准备软件工程基础考试时根据考点整理的一份知识点汇总。

风过孤屿,山海自成诗行。 1万+

吉林大学数据库期末考试试卷讲解

给出几套期末真题及解析,给出复习建议。

一杯水果茶!足矣~ 3143

《软件工程导论》期末复习总结

《软件工程导论》期末复习总结

qq_53271424的博客 4293

ThinkPad T14 Gen 2与T14P系列对比

表格您的需求推荐机型日常办公、出差、文档处理、视频会议✅(够用、轻便、便宜)视频剪辑、3D建模、编程编译、AI训练、高色准设计✅(性能强、屏幕好、扩展佳)想要未来 5 年不换机✅T14p预算低于 5000 元✅T14 Gen 2(或考虑 T14 Gen 3/4)T14p 2025 款 ≠ 小改款,而是架构级升级它从“高性能笔记本”进化为“AI 移动工作站”,核心差异在于NPU + Ultra 平台 + 全面屏显 + 超长续航。如果您从事AI 开发、视频创作、工程仿真、多任务编程。

tecoes的博客 2747

别再只调PID了!手把手教你从LC谐振到检波,搞定STM32智能车电磁循迹硬件电路

本文深入解析STM32智能车电磁循迹硬件电路设计,从LC谐振选频到数字信号处理,提供完整的信号链路设计要点与实战技巧。通过优化电磁杆布局和信号放大电路,显著提升赛道位置检测精度,误差可控制在±0.5cm以内,为智能车竞赛提供可靠硬件支持。

weixin_29220405的博客 263

山东大学人工智能导论复习宝典:助你轻松应对考试

山东大学人工智能导论复习宝典:助你轻松应对考试 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在山东大学软件学院,人工智能导论课程是软件工程专业大三上学期的重要课程之一。为了帮助同学们更好地掌握课程内容,顺利通过考试,我们特别整理了这份人工智能导论简答题+名词解释整理资源。这份资源基于《人工智能导论(第五版)》教材,并结合孟老师的PPT进行了详细的自我整理,涵盖了课程...

gitblog_06676的博客 567

inferCNVpy实战指南:从安装到肿瘤细胞识别

本文提供inferCNVpy实战指南,详细介绍了从环境安装、数据准备到核心CNV推断分析的完整流程。重点讲解了如何利用该工具从单细胞转录组数据中识别肿瘤细胞,包括参考细胞选择、参数调优、结果可视化与解读,并分享了关键的避坑技巧,帮助用户高效完成肿瘤细胞识别。

weixin_29079643的博客 428

软件工程应试复习(考试折磨版)

记住:你不是一个人在战斗!👉 抱紧学霸大腿问押题👉 和室友成立「夸夸群」:背出一个知识点就互相放彩虹屁🌈👉 考完立刻奖励自己火锅奶茶!毕竟…你的脑子刚跑完一场知识马拉松🏃♀️冲鸭!考神附体buff已加载完毕✨哥们,试过了记得回来说说效果咋样吧。

永远怀着至诚之心拥抱世界 1852

使用微信小程序开发制作一个简单的在线问答应用

以上就是一个简单的在线问答小程序的开发过程。其中包括前端界面的布局和逻辑,后端接口的设计和实现,以及部署和测试的步骤。通过以上步骤,你可以自己尝试开发一个类似的在线问答应用。

2401_85258012的博客 799

innovus:streamOut gds中pg text带有冒号(:)解决办法

streamOut后查看layout,发现部分PG text后面加了冒号,比如VDD: / VSS:。当然,这个问题还有另一种解决办法,就是通过脚本给terminal打text再streamOut。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1192

软件工程期末试卷答案及考试重点资料汇总:助力高效复习,轻松应对考试

软件工程期末试卷答案及考试重点资料汇总:助力高效复习,轻松应对考试 去发现同类优质开源项目:https://gitcode.com/ 项目核心功能/场景 昆明理工大学软件工程期末试卷、答案及考试重点资料,助你巩固知识点,轻松应对考试。 项目介绍 在当今教育环境中,期末考试是检验学生学习成果的重要手段。为了帮助同学们更好地准备昆明理工大学软件工程的期末考试,本项目提供了全面的期末试卷答案及考试重点资...

gitblog_06739的博客 368

第7章: MMU notifier在AMD GPU驱动中的应用

AMD GPU驱动利用MMU Interval Notifier机制实现共享虚拟内存(SVM)和异构内存管理(HMM)。通过分析AMDGPU内存架构(VRAM、GTT、Userptr)和Buffer Object设计,重点探讨了Userptr零拷贝机制如何依赖MMU notifier保持CPU/GPU内存一致性。HMM框架进一步实现统一地址空间和透明页面迁移,AMDGPU通过amdgpu_hmm.c实现两种invalidate回调(GFX和HSA模式),处理不同场景下的内存失效同步问题。

图形/计算GPU的驱动与虚拟化技术分享园地 2473

《软件工程期末复习之考试大题全》:助你轻松应对期末考试的利器

《软件工程期末复习之考试大题全》:助你轻松应对期末考试的利器 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 面对即将到来的软件工程期末考试,你是否感到焦虑和无从下手?《软件工程期末复习之考试大题全》正是为你量身定制的复习宝典。这份资料不仅全面覆盖了软件工程的核心理论和实践知识,还通过精选的案例研究和历年真题,帮助你深入理解考试要点,提升解题能力。无论你是本科生还是研究...

gitblog_06678的博客 416

hwasan实例分析踩内存之七:CamX进程chifeature2base怪异的Cause: use-after-free

摘要:本文分析了高通camx进程中的指针异常crash问题,通过构建hwasan版本确认存在内存踩踏现象。日志显示为"use-after-free"类型错误,具体为线程T175672在已释放内存区域执行写入操作。堆栈分析表明ChiFeature2Base::PipelineDestroyCb()函数访问了已被ChiFeature2Base::DestroyFeatureData()释放的pPipelineData对象。该问题源于多线程环境下内存管理不同步,导致释放后仍被引用。解决方案通过

1078

threejs中使用Reflector实现出倒影效果,并实现背景透明的效果(Reflector镜面背景透明, 倒影弱化)

在项目中遇到要实现倒影效果,threejs给我们提供了Reflector,可以轻松完成镜面效果,实现倒影。但背景不透明;并且反射出的倒影太亮了;网上没搜到解决方案, 自己修改了下源码实现了想要的效果,做个记录...

weixin_40856652的博客 5722

合肥工业大学软件工程《网络及其计算》复习笔记:助你高效复习,轻松应对期末考试

合肥工业大学软件工程《网络及其计算》复习笔记:助你高效复习,轻松应对期末考试 去发现同类优质开源项目:https://gitcode.com/ 项目的核心功能/场景 辅助合肥工业大学软件工程专业学生复习《网络及其计算》课程,提高期末考试通过率。 项目介绍 在众多学术资源中,合肥工业大学软件工程《网络及其计算》复习笔记无疑是一份极具价值的学习资料。这份笔记由合肥工业大学软件学院的学生精心整理,涵盖了...

gitblog_06726的博客 641

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

2023山东大学软件工程复习资料:助你高效备考,轻松应对考试

2023山东大学软件工程复习资料:助你高效备考,轻松应对考试 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在软件工程的学习旅程中,备考是至关重要的一环。为了帮助山东大学的同学们更好地准备2023年的软件工程课程考试,我们特别推出了这个开源复习资料仓库。本仓库汇集了丰富的复习资源,包括智库、复习题以及往年试题,旨在为同学们提供一个系统、全面的复习平台,助力大家在考试中...

gitblog_09738的博客 508

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

吉林大学软件工程课件与期末复习资料:助你轻松应对考试

吉林大学软件工程课件与期末复习资料:助你轻松应对考试 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在吉林大学软件工程课程的学习过程中,你是否曾为课件内容的繁杂和期末考试的压力而感到困扰?不用担心,本开源项目为你提供了一站式的解决方案!本仓库汇集了吉林大学软件工程课程的课件总结、老师总结以及期末复习资料,旨在帮助你更高效地掌握课程内容,轻松应对期末考试。 项目技术分析...

gitblog_09787的博客 527

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大二软件工程导论:nwpu-cram知识点总结与案例分析 [特殊字符]

西北工业大学软件学院的大二软件工程导论课程是软件工程专业的重要基础课,nwpu-cram项目为这门课程提供了全面的复习资料和知识点总结。本篇文章将为你详细解析软件工程导论的核心知识点,并通过案例分析帮助你更好地理解和掌握这门课程。 ## 软件工程导论核心知识点速查 📚 ### 1. 软件工程基本概念与定义 软件工程是应用系统的、规范的、可量化的方法来开发、运行和维护软件的学科。在nwpu-c

gitblog_00562的博客 945

系统架构设计师考试心得与经验

本人有幸以48,50,47的低分通过了2019年系统架构设计师的考试。简单分享一下自己的复习与考试的过程。

aw9165628的博客 3058

湘潭大学软件工程算法设计与分析考试复习笔记(六)

40 分的代码程序填空

夜空像是一片紫水潭,星星是些不动的大亮点,夜风是些浅蓝色的流线,云端传来喧嚣的声音。 1332

软件工程期末考试必备:UML例题资料解析

软件工程期末考试必备:UML例题资料解析 去发现同类优质开源项目:https://gitcode.com/ 软件工程期末考试经典的UML例题资料:项目的核心功能/场景 专注于UML相关例题,涵盖等价类划分、测试用例设计及用例图绘制。 项目介绍 在软件工程的学习过程中,UML(统一建模语言)扮演着至关重要的角色。它不仅是一种标准化图形建模语言,更是理解和设计软件系统的有效工具。面对期末考试,掌握UM...

gitblog_06761的博客 416

2024年湘潭大学软件体系结构考试总结

祝大家都过过过!

夜空像是一片紫水潭,星星是些不动的大亮点,夜风是些浅蓝色的流线,云端传来喧嚣的声音。 1683

(2023最新整理)软件工程期末考试复习资料:习题+答案 一把过,就看这一文档差不多了

(2023最新整理)软件工程期末考试复习资料:习题+答案 一把过,就看这一文档差不多了 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供了适用于计算机专业大学生软件工程课程期末考试的复习资料,包含习题及答案。资料内容全面,覆盖了软件工程的关键知识点,帮助您轻松应对考试。 内容概述 软件生命周期各阶段 软件生命周期一般分为软件计划、软件开发和软件运行3个时期。 软...

gitblog_06707的博客 355

2021年南京大学软件工程专硕考研初试410分(数学满分)总成绩第二上岸经验贴

南京大学软件学院2021年考研初试410分(数学满分)总成绩第二上岸经验贴 我自己考研之前以及准备阶段也看过很多经验贴,从中也汲取了一些非常有用的信息和知识,当时也想着如果自己能够顺利上岸,也要写一篇经验贴帮助下一届的学弟学妹以及给自己的考研旅程做一个总结(装个B)。同时,站在当时我的一个考研小白的角度,我当时是希望看到一些讲的比较详细,深入细节的经验贴的(人比较蠢),所以我写经验贴可能会写的比较啰嗦。文笔也一般,见谅,但是耐心看完,相信也会有所收获。 目录 自我情况以及考研基础介绍 为什么要考研? 计算

qq_41364520的博客 2万+
上一篇: 【C++】C++语法-引用
下一篇: 【数据结构】栈的基本概念以及C语言代码实现 | 顺序栈 | 链栈
MuShan-bit
博客等级 码龄5年 538粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MuShan-bit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值