【软考程序员学习笔记】——软件工程

这篇具有很好参考价值的文章主要介绍了【软考程序员学习笔记】——软件工程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【软考程序员学习笔记】——软件工程,软考程序员学习笔记,学习,笔记,计算机,软件工程

 

【软考程序员学习笔记】——软件工程,软考程序员学习笔记,学习,笔记,计算机,软件工程

目录

🍊一、软件存周期

🍊二、软件生存周期模型

🍊三、软件开发方法

🍊四、需求分析

🍊五、内聚和耦合

🍉模块内的独立性--内聚性

🍉模块间的独立性--耦合性

🍊六、软件测试

🍉黑盒测试

🍉白盒测试

🍊七、V模型

🍊八、软件维护

🍊九、软件质量模型


一、软件存周期

问题定义:要解决的问题是什么。

可行性分析:研究问题的范围,是否值得去解,是否有可行的解决办法。

需求分析:确定软件系统必须做什么,确定功能、性能、数据和界面要求确定逻辑模型。

总体设计:概括地说,如何解决这个问题?制定推荐系统的详细计划并设计软件的结构。

详细设计:怎样具体实现这个系统?对模块完成的功能进行具体描述。

编码和单元测试:写成某种特定程序设计语言表示的源程序清单及测试每一个模块。

综合测试:通过各类型的测试是软件达到预定的要求。

维护:通过各种必要的维护活动使系统持久满足用户的需要。

二、软件生存周期模型

瀑布模型:软件生存周期各个活动规定为依线性顺序连接起来的若干阶段的模型。适合需求明确的模型,但缺乏灵活性,客户需完整表示需求

演化模型:适合对需求缺乏准确认识的情况,根据用户使用过程中提出的意见和建议对原型不断重复改进

缺点是要对用户要求加以控制

增量模型:每一个线性序列产生软件的可发布的“增量”,但需对变更进行规划,否则会造成后来增量的不稳定,部分增量可能需重新开放

螺旋模型:结合瀑布模型和演化模型的特点,并加入了风险分析,适合用户需求的动态变化,适合庞大、复杂并且具有高风险的系统

喷泉模型:用户需求为基础,适合面向对象开发,开发过程具有迭代性和无间隙性,开发要重复多次,且开发活动不存在明显边界

三、软件开发方法

结构化方法:自顶而下、逐层分解。原则是分解与抽象,开发周期长,不适用于大规模、复杂的项目以及变化的需求

原型化方法:适合用户需求不清晰、业务理论不确定、且需求经常变化的情况。适合小规模的项目

面向对象开发方法:包括面向对象分析、设计与实现,适合比较复杂的项目模型

四、需求分析

需求的任务:系统综合要求、系统数据要求、系统逻辑模型、项目开发计划。

需求的过程:问题识别、分析与综合、编制需求分析文档、需求分析与评审。

需求的分类:功能需求、非功能需求、设计约束。

应用的工具:数据流图(DFD)、数据字典(DD)、判定表、判定树。

五、内聚和耦合

模块内的独立性--内聚性

功能内聚:完成一个单一功能,各个部分协同工作,缺一不可,是最佳的内聚类型。

顺序内聚:处理元素相关,而且必须顺序执行

通信内聚:所有处理元素集中在一个数据结构的上操作

过程内聚:处理元素相关,而且必须按特定的次序执行

瞬时内聚(时间内聚):所包含的任务必须在同一时间间隔内执行

逻辑内聚:完成逻辑上相关的一组任务

偶然内聚(巧合内聚):完成一组没有关系或松散关系的任务

模块间的独立性--耦合性

非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数来交换输入、输出信息的。

标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。其实传递的是这个数据结构的地址;

控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。

外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。

公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合。

(1)一个模块直接访问另一个模块的内部数据;

(2)一个模块不通过正常入口转到另一模块内部;

(3)两个模块有一部分程序代码重叠(只可能出现在汇编语言中);

(4)一个模块有多个入口。

六、软件测试

黑盒测试

等价类划分、边界值分析、错误推断和因果图

白盒测试

(1)语句覆盖。被测程序的每个语句至少执行一次。是一种很弱的覆盖标准。

(2)判定覆盖。也称为分支覆盖,判定表达式至少获得一次“真”、“假”值。判定覆盖比语句覆盖强。

(3)条件覆盖。每个逻辑条件的各种可能的值都满足一次。

(4)路径覆盖。覆盖所有可能的路径。

(5)判定/条件覆盖。每个条件所以可能的值(真/假)至少出现一次。

(6)条件组合覆盖。每个条件的各种可能值的组合都至少出现一次。

白盒测试也称为结构测试,测试的是程序内部结构和逻辑过程,所以用在功能模块的单元测试中,多个模块可以同时进行。集成测试是把功能模块组合起来进行测试,测试的是各个模块集成起来后有没有达到预期的功能。确认测试是指进一步检查软件的接口、功能和性能是否与用户要求一样。系统测试是指软件与网络、外部设备等其他因素结合部署工作的情况。

七、V模型

【软考程序员学习笔记】——软件工程,软考程序员学习笔记,学习,笔记,计算机,软件工程

 V模型大体可以划分为以下几个不同的阶段步骤:需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试

软件测试过程的V模型指出,左边从上到下依次是软件开发过程的各个阶段,以用户需求为基础,进行需求分析一系统设计一详细设计一编码,而右边从下到上分别对应单元测试-集成测试一系统测试一验收测试。即使单元测试发现的问题归根到底也是不符合用户需求的问题。同样,所有测试发现的问题都可以追溯到用户需求。

验收测试计划应在需求分析阶段来做,系统测试计划和系统测试设计应在系统设计阶段完成,集成测试和单元测试的计划和测试方案设计应在详细设计阶段完成。编码完成后,就要按有关计划逐步实施这些测试。

八、软件维护

正确性维护:是指改正在系统开发阶段己发生而系统测试阶段尚未发现的错误;
(17%~21%)

适应性维护:是指使应用软件适应新技术变化和管理需求变化而进行的修改;(18%~25%)

完善性维护:是指为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征:(50%~60%)

预防性维护:是指为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,主动增加预防性的功能,以使应用系统适应各类变化而不被淘汰。(4%)

九、软件质量模型

功能性(适合性、准确性、互操作性、保密安全性、功能性的依从性)

可靠性(成熟性、容错性、易恢复性、可靠性的依从性)

易用性(易理解性、易学性、易操作性、吸引性、易用性的依从性)

效率性(时间特性、资源利用性、效率依从性)

软件维护性(易分析性、易改变性、稳定性、易测试性、维护性的依从性)

软件可移植性(适应性、易安装性、共存性、易替换性、可移植性的依从性)文章来源地址https://www.toymoban.com/news/detail-522623.html


到了这里,关于【软考程序员学习笔记】——软件工程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 华人团队创造AI软件工程师Devin,可一键完成编程!人类程序员:真要失业了

    演示站点:   https://ai.uaai.cn 创作模块 官方论坛:   www.jingyuai.com 京娱AI 近期,全球首位AI程序员Devin的出场,不禁让我想到了一个有趣的问题:AI程序员会不会抢程序员的饭碗呢?先别着急下结论!虽然AI技术在编程领域越来越广泛,但它真的能完全替代我们程序员吗?

    2024年04月15日
    浏览(69)
  • 每年是谁撑起了“双十一”网页不崩溃?是程序员还是软件测试工程师们?

     2021天猫双11全球狂欢季,前半小时的成交额破3723亿,有你的一份吗? 这个“ 剁手 ”的狂欢夜,也是 软件测试工程师 的不眠夜。 在日期变化的那一秒“ 点击付款 “已经成为一种仪式。仪式感的背后是服务器会同步收到巨量请求,为了避免短时间全网性的猛烈冲击,软件

    2023年04月12日
    浏览(69)
  • 程序员的“灵魂笔记本“:五款高效笔记软件推荐

    大家好,我是 jonssonyan。作为一名程序员,我们经常需要记录和整理大量的代码、知识和项目信息,以便在日后能够高效地进行查阅和复用。而好用的笔记软件则成为了我们的\\\"灵魂笔记本\\\",帮助我们提高工作效率。在这篇文章中,我将为大家推荐四款高效的程序员笔记软件,

    2023年04月15日
    浏览(67)
  • 软考笔记——9.软件工程

    软件工程的基本原理: 用分阶段的生命周期计划严格管理、坚持进行阶段评审、实现严格的产品控制、采用现代程序设计技术、结果应能清除的审查、开发小组的人员应少而精、承认不断改进软件工程事件的必要性。 软件工程的基本要素: 方法、工具、过程 软件生存周期:

    2024年02月12日
    浏览(36)
  • 读程序员的README笔记10_软件交付(上)

    3.1.1.1. 打包一个构件称为发布 3.1.3.1. 部署的软件还不能被用户访问 3.1.3.1.1. 只是被安装了而已 3.1.3.2. 一旦部署,软件就会通过将用户转移到新的软件上而进行展开 3.1.4.1. 交付过程是更大的产品开发周期中的一部分 6.10.2.1. 每季度或每年发布一次

    2024年02月04日
    浏览(157)
  • 读程序员的README笔记11_软件交付(下)

    1.3.5.1. 通过持续交付,人力被完全从部署环节中移除 1.3.5.2. 打包、测试、发布、部署,甚至展开环节都是自动化的 1.3.6.1. Puppet、Salt、Ansible和Terraform等现成的解决方案可以与现有的工具集成,并且它们是专门为了自动化部署而设计的 1.4.4.1. 只需再次指向旧的版本 1.5.1.1. 

    2024年02月04日
    浏览(59)
  • 程序员有必要参加软考吗?

      作为程序员,如果一直从事着前线的编程工作,是否会对身体造成负担,难以持续到35岁呢?毕竟在项目赶期时,工作强度很高,而技术也在不断变化,因此很多程序员在30岁前就开始转型。我曾见过很多焦虑自己职业生涯未来发展的新人,他们认为自己不能一直从事编程工

    2024年02月14日
    浏览(46)
  • 软考高级架构师笔记-8软件工程

    前文回顾:

    2024年02月11日
    浏览(40)
  • 软考初级程序员上午单选题(10)

    36、测试用例由测试输入数据和与之对应的预期输出结果组成。人们常用白盒法和黑盒法设计测试用例,其中白盒法主要是为了检查______等。 A.是否有错误的功能或遗漏的功能 B.性能是否能够接受 C.是否有数据结构或外部数据库访问错误 D.程序内部结构是否有效 37、关于

    2024年02月05日
    浏览(42)
  • 软考初级程序员上午单选题(14)

    36、下列有关目录结构的叙述中,正确的是______。 A.一个磁盘有且仅有一个根目录 B.一个磁盘可以有多个根目录 C.一个磁盘不允许有3级以上的子目录 D.一个磁盘必须有根目录和子目录 37、软件开发过程中为确保软件质量所采取的措施中,不包括______。 A.开发前应选定或

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包