软件工程导论重点内容.docx
- 文档编号:12780055
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:47
- 大小:457.52KB
软件工程导论重点内容.docx
《软件工程导论重点内容.docx》由会员分享,可在线阅读,更多相关《软件工程导论重点内容.docx(47页珍藏版)》请在冰点文库上搜索。
软件工程导论重点内容
第一章软件工程概述
重点掌握的容:
软件和软件工程的基本概念
一.什么是软件?
1.满足功能要求和性能的指令或计算机程序集合;
2.处理信息的数据结构;
3.描述程序功能以及程序如操作和使用所要求的文档;
软件的特点:
软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
软件是通过人们的智力活动,把知识与技术转换成信息的一种产品,是在研制、开发中被创造出来的
在软件运行和使用的期间,没有硬件那样的机械磨损、老化问题
软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性
软件的开发至今尚未完全摆脱手工的开发式
软件的开发费用越来越高,成本相当昂贵。
二.软件危机以及产生软件危机的原因?
1.软件开发生产率提高的速度,远远跟不上计算机迅速普及的趋势。
软件产品“供不应求”。
2.软件成本在计算机系统总成本中所占的比例逐年上升。
3.软件开发人员和用户之间的信息交流往往很不充分,用户对“已完成的”的软件系统不满足的现象经常发生。
4.软件产品的质量不容易保证。
5.软件产品常常是不可维护的。
6.软件产品的重用性差,同样的软件多次重复开发。
7.软件通常没有适当的文档资料。
产生软件危机的原因可归结为两个重要的面:
软件生产本身存在的复杂性;
软件开发所使用的法和技术。
三、软件危机
1、软件危机定义:
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列重问题。
2、软件危机的两个主要问题:
如开发软件,以满足对软件日益增长的需求;
如维护数量不断膨胀的已有软件。
3、软件危机的典型表现:
(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
软件工程
1、软件工程定义:
软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术法结合起来,以经济地、高效的开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程准则可以概括为7条基本原则:
用分阶段的生命期计划格管理;
坚持进行阶段评审
实行格的产品控制
采用现代程序设计技术
应能清楚地审查结果
合理安排软件开发小组的人员
承认不断改进软件工程实践的必要性
3、软件工程法学,三要素:
法、工具和过程
4、软件生命期(概念、三时期,八阶段)
软件生命期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成。
软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
软件开发时期分为4阶段:
总体设计、详细设计、编码和单元测试、综合测试
五、软件开发模型:
软件开发模型是跨越整个软件生存期的系统开发、运作、维护实施的全部工作和任务的结构框架。
1)瀑布模型
瀑布模型即生存期模型,由B.M.Boehm提出,是软件工程的基础模型。
其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作。
采用结构化的分析与设计法,将逻辑实现与物理实现分开。
特点阶段的顺序性和依赖性(规化)推迟实现的观点(系统化)质量保证(阶段评审)存在问题不适合需求模糊的系统(需求的迷糊性和不确定性)适用于操作系统、编译系统、数据库管理系统等系统软件的开发
快速原型模型:
所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。
快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌
3)增量模型:
是瀑布模型的顺序特征与快速原型法德迭代特征相结合的产物。
这种模型把软件看成一系列相互联系的增量,在看法过程的各次迭代中,每次完成其中的一个增量。
4)喷泉模型
5)微软过程
六、思考:
你认为“软件就是程序”这一个观点正确吗?
如果不正确,请批驳之。
1.请从以下几个面结合自己的经验实例加以论述。
软件就是程序的观点是不正确的,因为软件等于程序加文档加数据。
(1)文档是软件的一个非常重要的组成部分,在软件的开发过程中起着非常重要的作用。
(2)在软件开发的每一个阶段都应有相应的文档。
它是开发人员与用户以及开发人员与项目管理人员之间交流的媒介(3)文档是软件在不同阶段的表现形式。
(4)程序与文档必须一致,文档才有价值。
(5)文档质量直接决定软件质量的高低。
(6)文档也是软件测试和维护的依据。
在没有文档或文档不全的情况下对大型软件进行测试与维护是不可思议的事情。
(7)文档是软件可重用的依据。
2、有人说:
软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。
对否?
请解释你的回答。
答:
对,第二章可行性研究
重点掌握的容:
可行性研究的系统流程图一般容:
可行性研究的任务和步骤,成本效益分析
一、可行使研究:
1、可行性研究的任务:
是用最小的代价在尽可能短的时间确定问题是否能够解决。
一般来说,应从经济可行性、技术可行性、运行可行性、法律可行性和开发案等面研究可行性
可行性研究的目的:
在明确了所要研究问题定义之后,分析员应该在明确目标系统所有限制和约束的前提下,去确定该问题是否值得去解决。
(或就是用最小代价在尽可能短的时间确定问题是否能够解决。
)
2、可行性研究过程:
1)复查系统规模和目标
2)研究目前正在使用的系统
3)导出新系统的高层逻辑模型
4)进一步定义问题
5)导出和评价供选择的解法
6)推荐行动针
7)草拟开发计划
8)书写文档提交审查
3、系统流程图的定义和作用:
可行性研究对现有系统做概括的物理模型描述,如用图形工具表示则更加直观简洁。
系统流程图是描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等)。
系统流程图表达的是部件的信息流程,而不是对信息进行加工处理的控制过程。
在可行性研究过程中,利用系统流程图来描述所建议系统的物理模型。
4、数据流程图的定义和作用:
数据流程图有两个特征:
抽象性和概括性。
抽象性指的是数据流程图把具体的组织机构、工作场所、物质流都去掉,只剩下信息和数据存储、流动、使用以及加工情况。
概括性则是指数据流程图把系统对各种业务的处理过程联系起来考虑,形成一个总体
5、数据流程图的组成元素
数据流图可以用来抽象地表示系统或软件。
它从信息传递和加工的角度,以图形的式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的法表示容不断增加的数据流和功能细节。
因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。
6、数据流程图的组成:
外部实体(外部实体是指系统之外的人或单位,它们和本系统有信息传递关系)数据流,处理、数据存储。
如绘制数据流程图
(1)识别系统的输入和输出,画出顶层图
(2)画系统部的数据流、加工与文件,画出一级细化图
(3)加工的进一步分解,画出二级细化图
(4)其它注意事项
7、数据流程图的注意点
1)每个处理都必须有流入的数据流和流出的数据流,如果没有,是错误的。
(数据守恒)
2)每个数据存储应该有流入的数据流和流出的数据流,如果缺了一种,是Warning的;缺两种就错了。
3)、数据流只能在处理与处理、数据存储或者外部实体之间流动。
、数据存储到数据存储、外部实提到外部实体、外部实提到数据存储之间的数据流都是错误的。
4)、一个处理可以细分成多个子处理,分成若干个层次(均匀分解)
5)、良好命名
系统流程图与数据流程图有什么区别?
答:
1)系统流程图描述系统物理模型的工具,数据流程图描述系统逻辑模型的工具。
2)系统流程图从系统功能的角度抽象的描述系统的各个部分及其相互之间信息流动的情况。
3)数据流程图从数据传送和加工的角度抽象的描述信息在系统中的流动和数据处理的工作状况。
三、数据流图:
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
1、组成符号:
4中基本图形符号正形、圆角矩形、开口矩形
2、数据流图的基本要点是描绘“做什么”,而不是考虑“怎么做”。
3、一套分层的的数据流图由顶层、底层、和中间层组成。
4、画分层数据流图基本原则与注意事项:
a.自外向,自顶向下,逐层细化,完善求精。
b.保持父图与子图的平衡。
也就是说,父图中某加工的输入数据流中的数据必须与它的子图的输入数据流在数量和名字上相同。
c.保持数据守恒。
也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。
d.加工细节隐藏。
根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工部的细节。
e.简化加工间关系。
在数据流图中,加工
间的数据流越少,各加工就越相对独立,所以应尽量减少加工间输入输出数据流的数目。
f.均匀分解。
应该使一个数据流中的各个加工分解层次大致相同。
g.适当地为数据流、加工、文件、源/宿命名,名字应反映该成分的实际意义,避免空洞的名字。
h.忽略枝节。
应集中精力于主要的数据流,
而暂不考虑一些例外情况、出错处理等枝节性问题。
i.表现的是数据流而不是控制流。
j.每个加工必须既有输入数据流,又有输
出数据流.在整套数据流图中,每个文件必须既有读文件的数据流又有写文件的数据流,但在某一子图中可能只有读没有写或者只有写没有读。
小结:
一个软件系统,其数据流图往往有多层。
如果父图有N个加工(Process),则父图允有0~N子图,但是每子图只能对应一父图。
在一DFD图中,任意两个加工之间可以有0条或多条名字互不相同的数据流;在画数据流图时,应该注意父图和子图的平衡,即父图中某加工的输入输出数据流必须与其输入输出流在数量和名字上相同。
DFD信息流大致可分为两类:
交换流和事务流。
9、数据字典
1).数据字典是在数据流程图的基础上,对数据流程图中的各个元素进行详细的定义与描述,起到对数据流程图进行补充说明的作用。
2).数据字典的容包括:
数据流、数据流分量(即数据元素)、数据存贮、处理逻辑和外部实体。
3).数据字典的作用是什么?
对用户来讲,数据字典为他们提供了数据的明确定义;对系统分析员来讲,数据字典帮助他们比较容易修改已建立的系统逻辑模型。
数据字典的实现:
P49
10、成本效益分析:
成本/效益分析的目的是要从经济角度分析开发一个特定的新系统是否可行,从而帮助使用部门负责人正确地做出是否投资与这项开发工程的决定。
几种度量效益的法:
货币的时间价值、投资回收期、纯收入
第三章需求分析一、重点掌握的容那:
需求分析的法和面向数据流的分析法
二、一般掌握的容:
需求分析的任务和原则
三知识点:
1、为什么要做需求分析
可行性分析研究阶段已经粗略的描述了用户的需求,甚至还提出了一些可行的案,但是,多细节被忽略了,在最终目标系统中是不能忽略、遗漏任一个微小细节的,所以,可行性研究不能代替需求分析。
2、需求分析的法:
需求分析法由对软件的数据域和功能域的系统分析过程及其表示法组成,它定义了表示系统逻辑视图和物理视图的式,大多数的需求分析法是由数据驱动的,也就是说,这些法提供了一种表示数据域的机制,分析员根据这种表示,确定软件功能及其特性,最终建立一个待开发软件的抽象模型,即目标系统的逻辑模型。
3、需求分析的任务:
它的基本任务是准确地回答“系统必须做什么?
”这个问题。
需求分析所要做的工作是深入描述软件的共能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
需求分析的任务不是确定系统如完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
其实现步骤如下图所示:
一般说来需求分析阶段的任务包括下述几面:
1)确定对系统的综合需求
对系统的综合需求主要有:
系统功能需求、系统性能需求、可靠性和可用性需求、
错处理需求、接口需求、约束、逆向需求、将来可能提出的需求:
2)分析系统的数据需求
就是在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质,明确目标系统要“做什么”,可以导出系统的详细的逻辑模型。
具体做法:
首先确定目标系统与当前系统的逻辑差别;然后将变化部分看作是新的处理步骤,对功能图(一般为数据流图)及对象图进行调整;最后有外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。
通常用数据流图、数字字典和主要的处理算法描述这个逻辑模型。
3)导出系统的逻辑模型
4)修正系统开发计划
在经过需求分析阶段的工作,分析员对目标系统有了更深入更具体的认识,因此可以对系统的成本和进度做出更准确地估计,在此基础上应该对开发计划进行修正。
5)开发原型系统:
使用原型系统的主要目的是,使用户通过实践获得关于未来的系统将怎样为他们工作的更直接更具体的概念,从而可以更准确地提出他们的要求。
4、需求分析的步骤:
1)调查研究2)分析与综合3)书写文档4)需求分析评审
5、需求分析的原则:
1)、必须能够表达和理解问题的数据域和功能域
2)、按自顶向下、逐层分解问题
3)、要给出系统的逻辑视图和物理视图
6、软件需求的验证:
需求分析阶段的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求。
为了提高软件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,必须格验证这些需求的正确性。
一般说来,应该从下述4个面进行验证:
(1)一致性所有需求必须是一致的,任一条需求不能和其他需求互相矛盾。
(2)完整性需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。
(3)现实性指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。
对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。
(4)有效性必须证明需正确有效的,确实能解决用户面对的问题。
7、状态转换图(!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
):
指明了作为外部事件结果的系统行为。
为此,状态转换图描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的式。
状态转换图是行为建模的基础。
思考:
利用DFD图进行需求分析:
在结构化分析法中,用以表达系统数据的运动情况的工具有(A)。
供选择的答案:
A.数据流图B.数据词典C.结构化英语D.判定表与判定树
在结构化分析法中用状态―迁移图表达系统或对象的行为。
在状态―迁移图中,由一个状态和一个事件所决定的下一状态可能会有(A)个。
供选择的答案:
A.1B.2C.多个D.不确定五、总体设计(概要设计)
重点掌握的容:
概要设计的过程和法
一般掌握的容:
概要设计的文档和评审
考核知识点:
一、总体设计:
1、总体设计的目的:
总体设计的基本目的就是回答“概括地说,系统应该如实现?
”这个问题,因此,总体设计又称为概要设计或初步设计。
1、面向结构设计(SD)2、面向对象设计(OOD)
2、总体设计的任务:
1)系统分析员审查软件计划、软件需求分析提供的文档、提出最佳推荐案,用系统流程图,组成物理元素清单,成本效益分析,系统的进度计划,供专家顶峰,审定后进入设计
2)去顶模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。
确定模块之间的联系,确定数据结构、文件结构、数据库模式,确定测试法与策略。
3)编写概要设计说明书,用户手册,测试计划,选用相关的软件工具来描述软件结构,结构图是经常使用的软件描述工具。
选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等
3、总体设计过程通常由两个主要阶段组成:
系统设计阶段,确定系统的具体实现案;结构设计阶段,确定软件结构。
4、典型的总体设计过程包括下述9个步骤:
1)、设想功选择的案
2)、选取合理的案
3)、推荐最佳案
4)、功能分解
5)、设计软件
6)、设计数据库
7)制定测试计划
8)、书写文档:
系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果;
9)、审查和复审
二、设计原理分析(模块化,在模块化程序设计中,按功能划分模块的原则是,模块化和软件成本关系):
模块具有输入和输出(参数传递)、功能、部数据结构(局部变量)和程序代码四个特性
1、模块化:
就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求.
2、模块化的根据:
把复杂的问题分解成多容易解决的小问题,原来的问题也就容易解决了.
模块化和软件成本关系:
根据总成本曲线,每个程序都相应地有一个最适当的模块数目M,,使得系统的开发成本最小.
3、模块设计的准则:
(1)改进软件结构,提高模块独立性:
在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的聚,降低藕合。
(2)模块大小要适中:
大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。
(3)软件结构图的深度、宽度、扇入和扇出要适当。
一般模块的调用个数不要超过5个。
(4)尽量降低模块接口的复杂程度;
(5)设计单入口、单出口的模块。
(6)模块的作用域应在控制域之。
4、抽象的概念:
抽出事务的本质特性而暂时不考虑它们的细节.
5、信息隐蔽:
模块中所包括的信息不允其它不需这些信息的模块调用
信息局部化:
是把一些关系密切的软件元素物理地放得彼此靠近
6、什么是模块独立性?
答:
模块独立性概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准。
7、模块独立性:
是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中的其它的模块接口是简单的。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
8、为什么模块的独立性很重要?
答:
1)有效的模块化的软件比较容易开发出来
2)独立的模块比较容易测试和维护。
总之,模块独立是好设计的关键,而设计又是决定软件质量的关键环节。
9、衡量模块独立的两个标准是什么?
它们各表示什么含义?
答:
衡量模块的独立性的标准是两个定性的度量标准:
耦合性和聚性。
(1)耦合性。
也称块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
模块间耦合高低取决于模块间接口的复杂性、调用的式及传递的信息。
(2)聚性。
又称块联系。
指模块的功能强度的度量,即一个模块部各个元素彼此结合的紧密程度的度量。
若一个模块各元素(语句之间、程序段之间)联系得越紧密,则它的聚性就越高。
耦合性与聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
模块的高聚、低耦合的原则称为模块独立原则,也称为模块设计的原则。
10、启发规则:
1)改进软件结构提高模块独立性
2)模块规模应该适中
3)深度、宽度、扇出、、和扇入都应适当
深度表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。
宽度是软件结构同一个层次上的模块总数的最大值;一般来说,宽度越大系统越复杂。
对宽度影响最大的因素是模块的扇出。
一个模块的扇入是指直接调用该模块的上级模块的个数。
一个模块的扇出是指该模块直接调用的下级模块的个数。
设计原则:
低扇出、高扇入。
4)模块的作用域应该在控制域
5)力争降低模块接口的复杂程度
6)设计单入口和单出口的模块
7)模块功能应该可以预测
三、概要设计的法:
1、面向数据流的设计法把信息流映射成软件结构,信息流的类型决定了映射的法。
面向数据流的设计要解决的任务,就是上述需求分析的基础上,将DFD图映射为软件系统的结构。
2、数据流图的类型:
交换型结构和事务型结构
交换型结构:
由3部分组成,传入路径,变换中心,输出路径
系统的传入流经过变换中心的处理,变换为系统的传出流。
事务型结构:
有至少一条接受路径,一个事务中心与若干条动作路径组成。
当外部信息沿着接受路径进入系统后,经过事务中心获得某个特定值,就能据此启动某一条动作路径的操作。
四、结构化设计
1、结构化设计法:
是一种面向数据流的设计法,中心任务就是把用DFD图表示的系统分析模型转换为软件结构的设计模型,确定软件的体系结构域接口。
2、结构化法的步骤:
1)复审DFD图,必要时刻再次进行修改或细化:
2)鉴别DFD图所表示的软件系统的结构特征,确定它所代表的软件结构是属于变换型还是事务型。
3)按照SD法规定的一组规则,吧DFD图转换为初始的SC图。
变换型DFD图
初始SC图
事务型DFD图
初始SC图
3、结构设计的优化规则:
1)对模块分割、合并和变动调用关系的指导规则:
以提高模块独立性为首要标准,除此之外,适当考虑模块的大小。
2)保持高扇/入低扇出原则
3)作用域/控制域规则:
作用域不要超出控制域的围;
软件系统的判定,其位置离受它控制的模块越近越好。
六、详细设计
重点掌握的容:
详细设计的任务和法
一般掌握的容:
详细设计的原则和详细设计的规格与评审
考核知识点:
一、详细设计
1、详细设计目的:
对模块的算法设计和数据结构设计(设计出的处理过程应该尽可能简明易懂)。
2、详细设计的任务:
详细设计就是在概要设计的结果的基础上,考虑“怎样实现”这个软件系统,直到对系统中个的每个模块给出足够详细的过程描述,主要任务如下:
编写软件的“详细设计说明书”.软件人员要完成的工作:
(1)为每一个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程描述.
(2)确定每一模块使用的数据结构.
(3)确定模块结构的细节,包括对系统外部的接口和用户界面,对系统部其它模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节.
(4)为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试.模块的测试用例是软件测试计划的重要组成部分,通常包括输入数据,期望输出等容。
3、详细设计的原则:
过程描述是否易于理解、复审和维护,进而过程描述能够自然装换成代码,并保证详细设计与代码完全一致。
4、详细设计的描述工具应具备什么功能?
答:
无论哪类描述工具不仅要具有描述设计过程,如控制流程、处理功能、数据组织及其它面的细节的能力,而且在编码阶段能够直接将它翻译为用程序设计语言书写的源程序。
二、结构化程序设计
4、结构程序设计:
如果一个程序的代码块仅仅通过顺序、选择和循环这3种进本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
5.结构化程序设计的基本原则:
在详细设计中所有模块都使用单入口、单出口的顺序、选择、循环三种基本控制结构.
四、过程设计
1、描述程序处理过程的工具称为过程设计工具,它们可以分为图形、表格和语言3类。
2、详细设计的法:
程序流程图、N-S图、PAD图
程序流程图:
程序流程图又称之为程序框图,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 重点 内容
![提示](https://static.bingdoc.com/images/bang_tan.gif)