1.软件生命周期由软件定义、软件开发和运行维护三个时期组成。

2.软件定义:问题定义、可行性研究和需求分析

软件开发:总体设计、详细设计、(系统设计)编码和单元测试、综合测试(系统实现)

软件维护:软件维护

3.软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项工作的步骤。

4.软件过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型(优缺点没看)

5.软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济有效的开发出高质量的软件并维护它。

1.可行性研究三方面:技术可行性、经济可行性、操作可行性

2.数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经历的变换。

3.数据字典是关于数据的信息也就是对数据流图所包含的所有元素的定义的集合。

4.成本估计的方法:代码行技术、任务分解技术、自动估计成本技术

5.数据流图的基本图形符号:→:数据流(数据在系统内的传播路径);⚪:加工(对数据流进行某些操作或变换);方块(软件系统外部环境中的实体):数据的源点或终点;丨=:表示数据存储(暂时保存的数据)

1.需求分析阶段的任务:确定对系统的综合要求、分析系统的数据要求、导出系统的逻辑模型、修正系统的开发计划(总之就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题)

2.需求分析的步骤:问题识别;分析与综合,导出软件的逻辑模型;编写文档(软件需求规格说明书、初步用户使用手册、确认测试计划、软件开发计划)

3.应该从哪些方面验证软件需求的正确性:一致性、完整性、现实性、有效性

1.总体设计的主要任务:确定系统的具体实现方案,确定软件结构(回答“概括的说,系统应该怎样实现”这个问题)

2.耦合:一个软件内部不同模块之间互联程度的度量

内聚:一个模块内部各个元素彼此结合的紧密程度,是信息隐藏和局部化概念的自然扩展。

信息隐藏:设计和确定模块时,使每一个模块内部包含的信息对于不需要这些信息的模块是不可访问的。

局部化:把一些关系密切的元素物理的放的彼此靠近。

模块:边界元素限定的相邻程序元素的序列。

模块化:把程序划分为独立命名且可独立访问的模块

3.耦合类别:(耦合度由高到低:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合)

内聚类别:(内聚度由高到低:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚)

4.设计计算机软件的启发式规则:提高模块独立性;模块规模适中;深度、宽度、扇出和扇入都应适当;模块的作用域应该在控制域之内;力争降低模块接口的复杂度;设计单入单出的模块;模块功能可预测(六模一扇)

5.信息流的类型:交换流、事务流

详细设计阶段的关键任务是确定怎样具体实现用户所需要的软件系统,也就是说要设计出程序的“蓝图”。

1.结构程序设计的经典定义:如果一个代码块仅仅通过顺序、选择、循环三种基本控制结构进行连接,并且每个代码块只有一个出口和一个入口,则称这个程序是结构化的。

2.过程设计的工具:程序流程图、盒图、PAD图、判定表、判定树

实现(编码和测试)

1.测试步骤:模块测试(保证每个模块作为一个单元能正常运行)、子系统测试(把经过单元测试的模块放在一起形成一个子系统来测试,着重测试模块的接口)、系统测试(把经过测试的子系统装配成一个完整的系统来测试)、验收测试(把软件系统作为单一的实体进行测试,验证系统确实能够满足用户的需要)、平行运行(同时运行新开发的系统和将被他取代的旧系统,比较新旧系统的处理结果)

2.白盒测试:把程序看成装在一个透明的盒子里,测试者完全知道程序的结构和算法,按照程序内部的逻辑测试程序,检查程序中的主要执行道路是否能够按照预定要求正常工作。(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、路径覆盖)

3.基本路径测试(一种白盒测试技术):根据过程设计结果画出相应的流图→计算流图的环形复杂度→确定线性独立路径的基本集合→设计可强制执行基本路径中每条路径的测试用例

4.黑盒测试:把程序看成是一个黑盒子,完全不考虑程序的内部结构,是在程序接口进行的测试,只检查程序功能是否正常使用,是否能适当接受输入数据并产生正确的输出信息,运行过程能否保持外部信息的完整性。

5.软件可靠性:程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。

软件可用性:在给定的时间点,按照规格说明书的规定成功运行的概率。

1.软件维护:在软件已经交付运行的情况下,为了改正错误或满足新的需要而修改软件的过程。

改正性维护:诊断和改正错误的过程

适应性维护:和变化了的环境适当的配合而进行的维护

完善性维护:满足用户提出的增加新功能和修改已有功能的建议。

预防性维护:为了改进未来的可维护性或可靠性

2.软件再工程模型的六类活动:库存目录分析、文档重构、逆向工程、代码重构、数据重构、正向工程

1.面向对象方法学的五个优点:与人类习惯的思维方法一致、稳定性好、可重用性好、较易开发大型软件产品、可维护性好

2.面向对象建模需要建立的模型:对象模型(描述系统的数据结构)、动态模型(描述系统的控制结构)、功能模型(描述系统功能)

1.建立对象模型的典型工作步骤:确定类与对象、确定关联、划分主题、确定属性、识别继承关系、反复修改

2.确立动态模型的典型工作步骤:编写脚本(系统在某一执行期间内出现的一系列事件)、设想用户界面、画时间跟踪图、画状态图、审查动态模型

十一

1.面向对象设计启发规则:设计结果应该清晰易懂、使用简单的类、使用简单的协议、使用简单的服务、使设计变动减至最小、一般-特殊结构的深度应适当

2.重用:同一事物不做修改或稍加改动就多次重复使用

3.软件成分重用级别:代码重用、设计结果重用、分析结果重用

4.类构件:面向对象中的类,是比较理想的可重用构件,称之为类构件

类构件的重用方式:实例重用、继承重用、多态重用

5.多态:一个类实例的相同方法在不同情形下有着不同的表现形式。比如有动物(Animal)之类别(Class),而且由动物继承出类别鸡(Chicken)和类别狗(Dog),并对同一源自类别动物(父类)之一消息有不同的响应,如类别动物有“叫()”之动作,而类别鸡会“啼叫()”,类别狗则会“吠叫()”,则称之为多态。

6.敏捷开发:以用户的需求进化为核心,采用迭代、循环渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中一直处于可使用状态。

十二

1.面向对象方法提高可扩充性准则:封装实现策略、不要用一个方法遍历多条关联链、避免使用多分支语句、精心确定公有方法

十三

1.估计软件规模:代码行技术、功能点技术

补充:

1.封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

2.继承:让某个类型的对象获得另一个类型的对象的属性的方法。通常有两种实现方式:实现继承(直接使用基类的属性和方法而无需额外编码的能力)、接口继承(仅使用属性和方法的名称,但是子类必须提供实现的能力)

软工相关知识点(基础)相关推荐

  1. [课业] 18 | 软工 | 软件体系结构基础

    文章目录 软件体系结构的发展 软件架构发展历史 软件架构的重要性 理解软件体系结构 概念和定义 区分物理和逻辑 高层抽象 概述 部件 连接件 配置 高层抽象的好处 体系结构风格初步 主程序.子程序风格 ...

  2. 2022安全与软工顶会中区块链智能合约相关论文

    2022安全与软工顶会中区块链智能合约相关论文 前言 安全顶会 S&P USENIX Security CCS NDSS 软工顶会 TOSEM TSE ISSTA FSE ASE ICSE 前 ...

  3. 微机原理和计算机组成原理一样吗_计算机/软工408考研---组成原理+OS重难点

    0. 前言 考虑到408中计算机组成原理与操作系统联系比较紧密,所以本篇文章将组成原理和操作系统放在一起进行总结出重难点,同时将组成原理和操作系统中知识交融关联性比较大的部分进行整合. 本篇文章旨在分 ...

  4. 软工+C(9): 助教指南,持续更新...

    上一篇:提问与回复 下一篇:从命令行开始逐步培养编程能力(Java) 目录: ** 0x00 Handshake ** 0x01 点评 ** 0x02 评分 ** 0x03 知识储备 ** 0x04 ...

  5. 2021 吉大软工学硕初试经验分享

    2021 吉大软工学硕初试经验分享(知乎),内容将在此更新,同学请点击 本人毕业于长春工业大学软件工程专业,考虑到大学期间在学校的目标及规划已经有一个初步完善的状态,希望在研究生期间进行更加系统地学习 ...

  6. 软工实践原型设计——PaperRepositories

    软工实践原型设计--PaperRepositories 写在前面 本次作业链接 队友(031602237吴杰婷)博客链接 pdf文件地址 原型设计地址(加载有点慢...) 结对成员:031602237 ...

  7. [BUAA软工]提问回顾与个人总结

    提问回顾与个人总结 项目 内容 所属课程 2019春季计算机学院软件工程(任健) 所属作业 提问回顾与问题总结 课程目标 理解软件工程的作用和重要性,提升工程能力,团队协作能力 作业目标 回顾软工课程 ...

  8. 福大软工1816:项目测评

    福大软工 · 第十次作业 - 项目测评(团队) 评测 个人上手体验 查看课程表上效仿了超级课程表,界面美观 功能多,整合了课程表.查成绩.考场查询.历年卷.易班.空教室.图书馆.教务通知.大物实验.嘉 ...

  9. [北航软工]第一次团队作业

    第一次团队作业 团队简介 我们小组一共六个人,卓培锦,牛雅哲,张圆宁,韩笑冰,余凯,李天宇 卓培锦 菜鸡后端,六只程序猿的组长 是福建人啊. 一起努力做出一个还不错的项目,那应该还是蛮有趣的一件事情. ...

最新文章

  1. 图书馆图书上架_【消息】暑假好去处,明光市图书馆很多新书上架啦......
  2. Java基础篇:反射
  3. Vijos1404遭遇战[最短路建模]
  4. 火焰图 性能分析 java,使用火焰图进行Java应用性能分析
  5. 《Java 核心技术卷1 第10版》学习笔记------ 参数数量可变的方法
  6. oracle中minus
  7. 数据库服务器查询格式化显示,在数据库服务器端养成设置NLS_LANG和NLS_DATE_FORMAT环境变量的习惯...
  8. zemax微透镜阵列示例_阵列反向! Ruby中的示例方法
  9. js获取display的值_JS实现多行溢出省略号思路
  10. Java实现的大整数分解Pollard's rho算法程序
  11. python导入cv2
  12. 【rmzt:suika动漫美女可爱主题】
  13. 单片机 队列 C语言 OLED 示波器 心率波形 显示 MSP430F5529 pulsesensor ADS1292R
  14. 记我的启蒙老师谢朝晖老师
  15. PHP导入Excel文件后缀xlsx与xls的处理问题
  16. 二叉树no与n2关系数学证明
  17. java lstm pb_在Tensorflow Serving上部署基于LSTM的文本分类模型
  18. [ctfshow]web入门——文件上传(web156-web163)
  19. Zookeeper 集群模式搭建
  20. k倍区间(前缀和+组合)

热门文章

  1. 2023合肥学院计算机考研信息汇总
  2. WorkNC导光条编程加工
  3. 数学公式和符号的念法
  4. 最小二乘法直线拟合汇总
  5. 从零学易语言编程系列教程
  6. 快速简单爬取携程酒店信息简介
  7. 记录一下,西门子的自定数据类型在威纶通的触摸屏中不支持标签导入
  8. 个人微信/支付宝免签系统/收款自动监听,自动发货
  9. python简易识别联通,电信,移动手机号码
  10. 央企招聘:新华社2023年校园招聘公告