一、何为软件工程
软件工程指计算机软件开发和维护的一门工程学科,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护他。
软件工程的方法:经典软件工程方法、生命周期法、结构化范型和面向对象法。
二、软件生命周期
- 1、问题定义
- 2、可行性分析
- 3、需求分析
- 4、开发阶段
- 5、维护
三、软件过程
1、基本过程类包括获取、供应、开发、运作、维护和管理过程。
2、支持类过程包括:文档、配置管理、质量保证、验证、确认、联合评审、审计和问题解决过程。
3、组织类过程包括:基础实施、改进和培训过程。
四、软件需求分析任务和步骤
1、问题识别
(1)功能需求
(2)性能需求
(3)环境需求
(4)用户界面需求
2、分析与综合,导出软件的逻辑模型
3、编写文档
五、软件工程模型
1、瀑布模型
2、V模型
3、增量模型
4、演化模型
5、喷泉模型
六、结构化分析、设计的要点
(1)模块化
(2)由顶向下,逐步求精
(3)上层模块分解为下层模块
由三种不同的结构形式:顺序、选择和循环结构。
七、软件测试的目标和测试方法
目标:
- 1、发现程序中尚未发现的错误。
- 2、发现尚未发现的错误的测试。
方法:
黑盒测试和白盒测试(语句、判定、条件、判定/条件、条件组合覆盖)
八、程序设计语言的依据
1、系统用户的要求
2、可以使用的编译程序
3、可以得到的软件工具
4、系统规模
5、程序员知识
6、软件可移植性要求
7、软件的应用领域
8、成本
九、软件维护的类型
1、纠错性维护
2、适应性维护
3、完善性维护
十、提高软件质量的主要措施
1、复审
2、复查
3、管理复审
4、测试
十一、面向对象如何实现模块独立性,其耦合和内聚的含义是什么
因为对象是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。因此,对象内部各种元素彼此结合得很紧密。内聚性相当强,由于完成对象所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少。因此,对象之间的耦合通常比较松。总之,面向对象使用对象、类、继承和消息的方法,既使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信来实现模块的独立性。
十二、面向对象和面向过程
面向过程:分析解决问题步骤,将工程分解为功能,通过函数实现;
面向对象:将问题事务分解成对象,来描述事务在解决额外难题的步骤中的行为。
十三、对象,类,消息,方法
(1)对象:人们要进行研究的任何事物。
(2)类:具有相同或相似性质的对象的抽象。
(3)消息:对象之间进行通信的结构。
(4)方法:类中操作的实现过程。
十四、面向对象分析设计的三个模型
1、对象模型:描述系统的静态结构,包括类和对象、属性和操作以及他们之间的关系。
2、动态模型:着重于系统的控制逻辑,考察在任何时候对象及其关系的改变,描述这些涉及时许和改变的状态。
3、功能模型:着重于系统内部数据的传送和处理。
十五、UML包括那些图
使用案例图、类图、对象图、构件图、部署图、活动图、协作图、状态图、序列图。
在这些图中使用案例图、类图、序列图是最有用的。
十六、软件系统的三个测试阶段
开发阶段:在开发过程中对系统进行测试以发现bug和缺陷。
发布测试:在系统发布给用户之前,单独的测试团队测试系统的完整版本。
用户测试:其中系统的用户或潜在用户在自己的环境中测试系统。