软件工程期末复习【速成】

本文档概括了软件工程的复习重点,涵盖软件定义、软件危机、开发方法、生命周期模型,以及需求分析、面向对象设计和软件测试的各个环节。详细讲解了瀑布模型、增量模型、螺旋模型和原型模型的优缺点。还介绍了数据流图、E-R图、软件体系结构中的仓库模型和分布式模型,特别是B/S架构的工作原理。同时,解析了UML中的用例图、状态图等九类图的重要概念和作用。最后,讨论了模块独立性、软件复用、软件测试阶段以及CMM五个等级的基本概念。
摘要由CSDN通过智能技术生成

软件工程复习纲要

第一章

1、软件的定义

软件是程序以及开发、使用和维护程序所需的所有文档
是指能够完成预定功能和性能的可执行的程序,包括使程序正常执行所需要的数据和有关描述程序操作和使用的文档。

2、软件危机的概念及表现

概念:软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象
主要表现在两个方面:
(1)软件产品质量低劣,甚至开发过程就夭折,
(2)软件生产率低,不能满足需要。

3、软件开发方法

面向过程:结构化方法(sa,sd,sp)
结构化方法:是一种面向数据流的开发方法,其基本原则是功能的分解与抽象,其指导思想是自顶向下,逐步求精。
Sa:结构化分析法: 是结构化开发方法的核心
Sd:结构化设计法
Sp:结构化程序设计法
面向对象(OOA、OOD、OOP)
其基本思想是对问题领域进行自然分割,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接的表现问题。
OOA:面向对象的分析,强调的是对一个系统中的对象特征和行为的定义。
OOD:面向对象的设计,与OOA密切配合顺序实现对现实世界的进一步建模。
OOP:面向对象的程序设计,是面向对象的技术中发展最快的,使用面向对象的程序设计语言进行编码。

4、软件的生命周期及每个阶段的工作(可以画图可以文字描述)

问题定义 :软件开发方与需求方共同讨论,确定软件的开发目标及其可行性。
可行性研究 :项目是否值得开发.
需求分析 :在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析.
总体设计:设计软件结构,确定程序有哪些模块组成。
详细设计:针对每个模块,确定算法和数据结构。
编码 :将软件设计的结果转换成计算机可运行的程序代码。
测试: 在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正.
运行与维护: 在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。
在这里插入图片描述

5、常见的软件开发模型有哪些(瀑布、增量、螺旋、原型)?各自大致的开发过程是怎样的?有什么优缺点。

①瀑布模型
1、按照软件生命周期的各个阶段,依次向下,逐步求精的方式完成软件项目;

当然,我可以帮你复习数据结构的一些基本知识点。数据结构是计算机科学中非常重要的一门课程,它研究的是如何组织和存储数据,以及如何高效地操作和处理数据。以下是一些数据结构的基本知识点: 1. 数组:数组是一种线性数据结构,它由相同类型的元素组成,并按照一定的顺序存储在连续的内存空间中。数组的特点是可以通过下标快速访问元素。 2. 链表:链表也是一种线性数据结构,它由节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。链表的特点是插入和删除操作比较高效,但访问元素需要遍历。 3. 栈:栈是一种后进先出(LIFO)的数据结构,只允许在栈顶进行插入和删除操作。栈可以用来实现函数调用、表达式求值等。 4. 队列:队列是一种先进先出(FIFO)的数据结构,只允许在队尾插入元素,在队头删除元素。队列可以用来实现任务调度、消息传递等。 5. 树:树是一种非线性数据结构,它由节点和边组成。每个节点可以有多个子节点,但只有一个父节点。树的应用非常广泛,例如二叉树、二叉搜索树、堆等。 6. 图:图是一种非线性数据结构,它由节点和边组成。节点表示实体,边表示节点之间的关系。图可以用来表示网络、社交关系等。 这些只是数据结构中的一部分知识点,还有很多其他的内容。如果你有具体的问题或者需要深入了解某个知识点,请告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值