学习软件工程,必须要知道的基本问题
软件工程是指使用工程化方法和技术来设计、开发、测试和维护软件的过程。软件工程包括软件生命周期模型、需求分析、设计、实现、测试和维护等阶段。
事务流和变换流:事务流是指沿传入路径进入系统,由外部形式变换位内部形式后到达事务中心,事务中心根据数据项计值结果从若干动作路径中选定一条执行的过程。变换流是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理后再沿输出通路变换成外部形式离开软件系统。
耦合性:耦合性是指模块之间的相互依赖关系。耦合性可以分为内容耦合、公共耦合、外部耦合、控制耦合、特征耦合、数据耦合、非直接耦合等七种。耦合性从强到弱的顺序是:内容耦合、公共耦合、外部耦合、控制耦合、特征耦合、数据耦合、非直接耦合。
软件生命周期模型:是软件开发全部过程、活动和任务的结构框架。常见的软件生命周期模型有瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型等。
软件维护:是指软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件维护可以分为改正性维护、适应性维护、完善性维护和预防性维护四类。
需求分析:是软件开发的基础阶段,其主要任务是确定对系统的综合要求、分析系统的数据要求、导出系统的逻辑模型、修正系统开发计划。需求分析的目的是为了开发出真正满足用户需求的软件产品。
设计:设计是软件开发的重要阶段。详细设计的目的是确定应该怎样具体的实现所要求的系统,总体设计的目的是回答“概括的说,系统应该如何实现”这个问题。系统设计的主要内容包括功能结构设计、代码设计、数据库设计、物理配置方案设计、输入输出设计等。
数据流图:是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图中有四种基本符号:源点、终点、变换和数据存储。
软件测试:是软件开发的最后一个阶段。白盒测试是一种测试技术,它按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。等价划分和边界值分析是两种典型的测试技术。
面向对象方法论:是软件开发的一种方法论。它建立了三大模型:对象模型、功能模型、动态模型。
文档:在软件开发中的作用包括提高软件开发过程的能见度、提高开发效率、作为开发人员阶段工作成果和结束标志、记录开发过程的有关信息便于使用与维护、提供软件运行、维护和培训有关资料、便于用户了解软件功能、性能。
CMM:CMM(Capability Maturity Model)是软件过程能力成熟度模型。它将软件过程能力分为五个等级:初始级、可重复级、已定义级、已管理级、优化级。