当前位置:文档之家› 软件工程编码讲义

软件工程编码讲义

软件工程编码讲义
软件工程编码讲义

第讲程序设计语言和编码()

1.编码的概念

编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。

1、选择程序设计语言

程序设计语言是人和计算机通信的最基本的工具,它的特点必然会影响人的思维和解题方式,会影响人和计算机通信的方式和质量,也会影响其他人阅读和理解程序的难易程度。因此,编码之前的一项重要工作就是选择一种适当的程序设计语言。

2、选择程序设计语言的主要实用标准:

(1)系统用户的要求。

(2)可以使用的编译程序。

(3)可以得到的软件工具。

(4)工程规模。

(5)程序员的知识。

(6)软件可移植性要求。

(7)软件的应用领域。

2.编码风格

程序实际上也是一种供人阅读的文章,有一个文章的风格问题。应该使程序具有良好的风格。

1、源程序文档化

(1)标示符命名

所谓标识符是指常量、变量、语句标号以及用户自定义函数的名称。标示符一般规定只能由字母、数字、下划线组成,并且只能由字母、下划线开头。并且这些名字应能反映它所代表的实际东西,应有一定实际意义。例如,表示总量的用Total,表示平均值的用Average,表示和的量用Sum等。

(2)合理的注释

在代码中使用注释的目的是提升代码的可读性,以让那些非原始代码开发者能更好地理解它们。注释决不是可有可无的。注释分为序言性注释和功能性注释。

序言性注释:通常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序本身具有引导作用。

功能性注释:功能性注释嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,或是执行了下面的语句会怎么样,而不要解释下面怎么做。(3)程序的视觉组织

恰当地利用缩进程序化设计的规范化的一种形式,是格式问题。

恰当地利用空格,可以突出运算的优先性,避免发生运算的错误。

2、数据说明

在设计阶段已经确定了数据结构的组织及其复杂性。在编写程序时,则需要注意数据说明的风格。为了使程序中数据说明更易于理解和维护,必须注意以下几点:

数据说明的次序应该标准化。有次序易查阅,能加速测试、调试和维护的过程。

3、语句结构

构造语句时应该遵循的原则是,每个语句都应该简单而直接,不能为了提高效率而使程序变得过分复杂;也不要刻意追求技巧性,使程序编写得过于紧凑。

4、输入/输出方法

在设计和编写程序时应该考虑下述有关输入输出风格的规则:

(1)对所有的输入数据都要进行检验,识别错误的输入,以保证每个数据的有效性;

(2)检查输入项的各种重要组合的合法性,必要时报告输入状态信息;

(3)使得输入的步骤和操作尽可能简单,并保持简单的输入格式;

(4)输入数据时,应允许使用自由格式输入;

(5)应允许缺省值;

(6)输入一批数据时,最好使用输入结束标志,而不要由用户指定输入数据数目;

(7)在交互式输入输入时,要在屏幕上使用提示符明确提示交互输入的请求,指明可使用选择项的种类和取值范围。同时,在数据输入的过程

中和输入结束时,也要在屏幕上给出状态信息;

(8)当程序设计语言对输入/输出格式有严格要求时,应保持输入格式与输入语句的要求的一致性;

(9)给所有的输出加注解,并设计输出报表格式。

3.程序效率

程序的效率是指程序的执行速度及程序所需占用的内存的存储空间。程序编码是最后提高运行速度和节省存储的机会,因此在此阶段不能不考虑程序的效率。程序效率的几条准则:

(1)效率是一个性能要求,应当在需求分析阶段给出。软件效率以需求为准,不应以人力所及为准。

(2)好的设计可以提高效率。

(3)程序的效率与程序的简单性相关,不要牺牲程序的清晰性和可读性来不必要地提高效率。

1、效率问题

程序运行时间

存储器效率

输入输出的效率

2、程序运行时间

源程序的效率直接由详细设计阶段确定的算法的效率决定,但是,写程序的风格也能对程序的执行速度和存储器要求产生影响。在把详细设计结果翻译成程序时,总可以应用下述规则:

(4)写程序之前先简化算术的和逻辑的表达式;

(5)仔细研究嵌套的循环,以确定是否有语句可以从内层往外移;

(6)尽量避免使用多维数组;

(7)尽量避免使用指针和复杂的表;

(8)使用执行时间短的算术运算;

(9)不要混合使用不同的数据类型;

(10)尽量使用整数运算和布尔表达式。

在效率是决定性因素的应用领域,尽量使用有良好优化特性的编译程序,以自动生成高效目标代码。

3、存储器效率

在大中型计算机系统中,存储限制不再是主要问题。在这种环境下,对内存采取基于操作系统的分页功能的虚拟存储管理。存储效率与操作系统的分页功能直接有关。

采用结构化程序设计,将程序功能合理分块,使每个模块或一组密切相关模块的程序体积大小与每页的容量相匹配,可减少页面调度,减少内外存交换,提高存储效率。

在微型计算机系统中,存储器的容量对软件设计和编码的制约很大。因此要选择可生成较短目标代码且存储压缩性能优良的编译程序,有时需采用汇编程序。

提高存储器效率的关键是程序的简单性。

4、输入输出的效率

输入/输出可分为两种类型:面向人(操作员)的输入/输出和面向设备的输入/输出。如果操作员能够十分方便、简单地录入输入数据,或者能够十分直观、一目了然地了解输出信息,则可以说面向人的输入/输出是高效的。关于提高设备输入/输出效率的指导原则:

(1)输入/输出的请求应当最小化;

(2)对于所有的输入/输出操作,安排适当的缓冲区,以减少频繁的信息交换。

(3)对辅助存储,选择尽可能简单的,可接受的存取方法;

(4)对辅助存储的输入/输出,应当成块传送;

(5)对终端或打印机的输入/输出,应考虑设备特性,尽可能改善输入/输出的质量和速度;

(6)任何不易理解的,对改善输入/输出效果关系不大的措施都是不可取的;

(7)任何不易理解的所谓“超高效”的输入/输出是毫无价值的

4.程序复杂度度量

把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要的工作量。比较设计的性能作为模块规模的精确限度。评价程序的质量方法有:

(1) McCabe方法

(2) Halstead方法

1、McCabe方法

根据程序控制流的复杂程度定量度量程序的复杂程度,其结果称为程序的环型复杂度,一般使用流图或程序图。

(1)图标

○:结点,代表语句(一个,多个,空)。

→:边,代表控制流。

区域:由边和结点围城的面积

(2)计算

a)流图中的区域数等于环型复杂度。

b)流图环型复杂度 V(G) = E - N + 2;其中:E -- 边数,N -- 结点数。

c)流图环型复杂度 V(G)=P + 1;其中:P -- 判定结点数。

(3)举例

(4) 说明

a) 环型复杂度取决于程序控制流的复杂程度。

b) 环型复杂度是可加的。

c) 环型复杂度高的程序是最容易出问题的程序.

d) 模块以V(G)<10适宜。

(5) 应用

2、 Halstead 方法 根据程序中运算符和操作数的总数来度量程序复杂性。Halstead 方法预测程序长度:

H = n 1log 2n 1 + n 2log 2n 2

其中: H -- 程序长度

n 1 --运算符出现的次数

n 2 --操作数出现的次数

Halstead方法实际程序长度:

N = N1 + N2

其中: N -- 程序长度

N1 --运算符实际出现的次数

N2 --操作数实际出现的次数

Halstead方法预测程序中包含错误的个数:

B = Nlog2(n1+n2)/3000 Halstead方法程序员工作量长度:

E = Hlog

2(n

1

+n

2

)[(n

1

*N

1

)/(n

2

*N

2

)]

Halstead方法程序量:

V = Nlog2(n1+n2)

软件工程 编码

实验三 实验项目编码日期2015-11-09 专业班级计科12(3) 组号10 同组者杨爱红、李香、陈晓彤、张家秀学生学号1208210137 姓名项雪丽机号6-5 成绩 一、实验目的 掌握结构化编程,对程序源代码进行工程文档化处理 二、主要仪器设备 微型计算机系统,MS Visio 2003软件,IDE软件 三、实验原理与方法 根据提供的非结构化伪码或源代码,编写出结构化的程序。 结构化程序设计的原则(使用顺序、选择、重复基本控制结构表示程序逻辑,控制结构的单入口与出口等)为指导,使用约束型流程图、NS或PAD图进行结构化的设计;采用自顶向下和逐步细化的原则,导出程序的结构化编码。 四、实验内容与步骤 1、主要内容 根据给定的非结构化案例和实验大纲的要求,建立模块结构化模型(主模块、子模块),并编写每个模块的结构化文档化代码。 案例:复制命令 接口:<程序名> [参数1] [参数2] 功能:是将命令行参数中的参数1标识的文件,复制到参数2标识的文件中,如命令行中只有一个文件名则把该文件写到标准输出文件(显示器)中。 【源码】 #include main(int argc,char *argv[]) { FILE *fp1, *fp2; char ch; int Sel; Sel = argc; if(Sel==1) goto Sel_No ; if((fp1=fopen(argv[1],"rt"))==NULL) goto Sel_Sr ; if(Sel==2) fp2=stdout; else if((fp2=fopen(argv[2],"wt+"))==NULL) goto Sel_Dt ; while((ch=fgetc(fp1))!=EOF) fputc(ch,fp2); fclose(fp1); fclose(fp2); goto Sel_End Sel_No: { printf("have not enter file name strike any key exit"); getch();

软件工程复习资料

软件概念:与计算机系统操作有关的程序、数据以及相关文档的完整集合 软件特点:逻辑实体、智力产品,制造即拷贝2无磨损和老化,不遵循“浴盆曲 线”,但存在退化问题3尚未摆脱手工方式,软件移植的需要,复杂(问题复杂性/ 程序结构复杂性),软件开发的性质如成本、进度、质量等难以估计控制,维护困难,可复用性软件分类:按功能:系统软件/支撑软件/应用软件2按工作方式:实时处理/分时/交互/批处理3按服务对象:项目 / 产品(定制 / 通用)4按失效影响:关键/ 非关键5规模:微型、小型、中型、大型、甚大型、极大型 软件危机的表现:软件开发成本和进度失控,维护代价高2用户不满意3软件 质量不可靠4软件不可维护 5无文档资料6 计算机系统中软件成本比重加大7软件开发生产率提高不能满足要求软件危机的原因软件的规模和复杂性2人类智力的局限性3协同工作的困难性4缺乏方法学和工具5用户描述不精确、二义、遗漏,双方理解有偏差缓解软件危机的途径组织管理、协同配合的工程2软件工程的理论模型、技术方法3软件工具 软件工程的三要素1过程:管理部分2方法:技术手段3工具:自动或半自 动地支持软件的开发和管理三要素的关系:相互关联与支持 软件生命周期:可行性研究-需求分析-概要设计-详细设计-实现-集成测试-确认 测试-使用与维护-退役 软件开发和测试活动之间的关系软件 开发和软件测试都是软件生命周期中的重要组成部分,软件测试是保证软件开发产物 质量的重要手段。测试是贯穿于整个开发流程了,而不是在编码完成才开始。 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。最终得到软件产品优点是使用时间最长、应用面比较广泛的开发模型2是其他一些开发模型的基础3当前一阶段完成后,只需要去关注后续阶段缺点不能适应用户需求的变化2到最后阶段才能得到可运行的软件版本适用场合:对于规模较小,软件需求较为稳定的项目,采用模型能够显著提高软件开发的质量和效率 演化模型(原型模型)演化模型是一种全局的软件(或产品) 生存周期模型。属于 迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……优点:1支持需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误缺点1需要为系统的每个新版本交付文档,不划算2新需求的不断增加,使系统结构退化,变更成本上升3不支持风险分析 螺旋模型1将瀑布模型与原型模型进行有机结合2增加风险分析步骤优点1支持 需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误4支持风险分析,可降低或者尽早消除软件开发风险5适合于需求动态变化、开发风险较大的系统缺点建设周期长适用场合在需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。特别适合于大型复杂的系统 喷泉模型:软件复用与生命周期中多项开发活动集成,主要支持面向对象的开发 方法优点1软件系统可维护性较好2各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡3整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代4模型具有增量开发特性,即能做到“分析一点、设计一点、实现一点,测试一点”,使相关功能随之加入到演化的系统中5模型由对象驱动,对象是各阶段活动的主体,也是项目管理的基本内容6该模型很自然地支持软部件的重用缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 OO 为什么好oo 解决问题的思路是从现实世界中的客观对象入手,运用人类的 自然思维方式来构造软件系统,而传统的结构化方法从功能入手和信息工程化方法从信息入手。在面向对象方法中,把一切都看成是对象。OO 方法用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系面向对象方法的特点(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域中的事物为中心来思考问题、认识问题,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的状态特征;用对象的操作表示事物的动态特征(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节(封装)(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例(分类)(5)复杂的对象可以用简单的对象作为其构成部分(聚集:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚集)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档,有利于复用(继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承)(7) 类具有封闭性,把内部的属性和服务隐藏起来,只有公共的服务对外是可见的(类的封闭性)(8) 对象之间通过消息进行通讯,以实现对象之间的动态联系(消息)(9) 通过关联表达类之间的静态关系(关联) 自顶向下,逐步求精:从顶层开始逐层向下分解,直至系统的所有模块都小 到易于掌握为止 抽象从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。 过程抽象:将完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例: 比较字符串: int Compare (CString, CString)。数据抽象:将诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例:Eg: 1, 2, 3,—>Integer ;软件工程书;人工智能书—>书类 封装把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部 细节。只是向外部提供接口,降低了对象间的耦合度使对象能够集中完整地描述并对应一个具体事物。意义:体现了独立性,使对象外部不能随意存取对象的内部数据,使其所含的信息对那些不需要这些信息的模块不可访问。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的信息隐藏起来。 模块化将一个软件划分为一组具有相对独立功能的部件,每个部件称为一个模 块;当把所有的模块组装在一起时,便可获得满足用户需求的软件系统。为什么要进行模块化:模块化体现了“分而治之”的问题分析和解决方法。模块化的目的①进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。②尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低模块设计原则1信息隐藏2高内聚度(强)3低耦合度(松)什么是信息隐藏(1)模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问(2)模块之间仅仅交换那些为完成系统功能所必须交换的信息信息隐藏的优点(1)支持模块的并行开发(设计和编码)(2)模块的独立性更好(3)便于系统功能的扩充(4)便于测试和维护,减少修改影响向外传播的范围模块化、信息隐藏,局部化是什么关系局部化与信息隐藏是一对密切相关的概念。局部化就是指将一些使用上密切相关的元素尽可能放在一起。对一个模块来说,局部化是期望模块所使用的数据尽可能是在模块内部定义的。因此,局部化意味着减少模块之间的联系,有助于实现模块之间的信息隐藏。在软件测试和维护期间经常需要修改一些模块的内容。信息隐藏和局部化降低了模块之间的联系,使得在修改一个模块时对其他模块的影响降到最低。“隐藏”的意思是,有效的模块化通过定义一组相互独立的模块来

编码风格 软件工程

编码风格 1.标识符: 在VBScript中声明一个变量可以使用Dim语句,如: Dim MM_editConnection 数据库连接名; Dim MM_editTable 数据库中所连接的表格名; Dim MM_editRedirectUrl 跳转到的页面名; 在本程序设计中,为了便于理解和记忆,采用有实际意义的符号名,且符号名易于区分,每一符号名只有单一的含义。 2.程序及注释: ‘***该程序由张群艳制作,实现了ESMS系统安全检查管理模块中检查结果输入的功能<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <% ' *** Edit Operations: declare variables声明变量 Dim MM_editAction Dim MM_abortEdit Dim MM_editQuery Dim MM_editCmd Dim MM_editConnection Dim MM_editTable Dim MM_editRedirectUrl Dim MM_editColumn Dim MM_recordId Dim MM_fieldsStr Dim MM_columnsStr Dim MM_fields Dim MM_columns Dim MM_typeArray Dim MM_formVal Dim MM_delim Dim MM_altVal Dim MM_emptyVal Dim MM_i ‘***连接数据库: MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME")) If (Request.QueryString <> "") Then MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString) End If ' boolean to abort record edit

软件工程讲义

课程概述 一、软件工程学科介绍 二、学习目标 三、部分参考资料 四、课程特点和学习的注意事项 五、教材简介 六、课程考核方式 一、软件工程学科介绍 软件程学科发展历史 三个阶段:概念提出、学科雏形、学科确立 第一阶段:概念提出 1968 年NATO 会议(北大西洋公约组织的计算机科学家的国际会议)提出“软件工程”概念。 当时对“软件工程”代表性定义:为了经济地获得在真实机器上可靠工作的软件而制定和使用的合理工程原则和方法。 1972 年IEEE 学会的计算机分会IEEE 一CS 第一次出版了“软件工程学报” 第二阶段:学科雏形 上世纪70 年代末,美国将软件工程教程列入研究生教育计划。 1980 年代末和1990 年代初,软件工程教育得到卡内基一梅隆大学软件工程研究所(CMU / SEI )的支持。 1991 年,“软件工程”被ACM (美国计算机协会)和IEEE / CS 列为计算学科的九个知识领域之一。 1993 年,IEEE 一CS 和ACM 为了把软件工程建设成为一个专业,建立了IEEE 一CS / ACM 联合指导委员会。 第三阶段:学科确立 2004 年8 月,IEEE 一CS 和ACM 给出: 软件工程知识体(SWEBOK , Software Engineering Body of Knowledge ) 软件工程教育知识体(SEEK ) 最终版,标志着软件工程学科在世界范围正式确立。 软件工程、计算机科学、计算机工程、信息系统、信息技术并列成为计算学科下的独立学科。 软件工程知识体(SWEBOK ) :全面描述了软件工程实践所需的知识。 SWEBOK (软件工程知识体》10 个领域 ●软件需求 ●软件设计 ●软件构造 ●软件测试 ●软件维护 ●软件配置管理 ●软件工程管理 ●软件工程过程

软件工程专业专业代码0835

软件工程专业专业代码0835 (Software Engineering) 培养目标:本专业培养德、智、体、美全面发展,掌握自然科学和人文社科基础知识、计算机科学基础理论、软件工程专业及应用知识,具有软件开发能力,以及软件开发实践和项目组织的初步经验,具备良好的科学素养和工程素养、自我获取知识的能力、优良的职业素质和创新意识,能够服务于我国经济建设,适应技术进步和社会需求变化,从事各种应用领域的软件分析、设计、开发、管理、研究和服务等工作的应用型软件工程人才。 培养要求:本专业学生主要学习软件基础理论知识和软件工程专业知识。经过良好的软件工程训练和实践,掌握软件应用和工具,具备运用先进的工程化方法、技术和工具从事某一应用领域软件分析、设计、开发、维护等工作的能力,具有初步的工程实践能力、较强的团队协作能力、初步的创新意识和良好运用外语的能力。 毕业生应获得以下几方面的知识和能力: 1. 系统地掌握理工科基础知识,具有较扎实的数学、物理等自然科学的基础理论,以及社会科学、管理科学的相关知识,具有较好的人文科学素养; 2. 具备初步的外语应用能力,能够阅读专业文献、信息交流及使用相应外文软件系统及编写基本程序文档; 3. 掌握扎实的软件基础理论知识和较宽广的软件工程专业知识,具有一定的项目工作经验,能够综合应用工程学方法分析、设计、开发、维护软件的能力; 4. 了解软件工程学科的前沿技术、软件行业的发展动态及软件行业需求,具备独立学习新理论和新技术的能力,以适应软件技术的快速变化; 5. 具有较强的工作适应能力,具备良好的团队精神、协调沟通能力及组织管理能力; 6. 在基础研发、工程设计和实践等方面具有一定的创新意识; 7. 通晓和遵守法律与职业道德,了解国家对软件和IT行业的政策、法律和法规,熟悉国际和国家关于软件工程领域的技术标准和规范。 主干学科:软件工程。 核心知识领域:计算基础、数学和工程基础、职业实践、软件建模与分析、软件系统设计、验证与确认、软件过程、软件质量、软件管理。 核心课程:离散数学(60+0学时)、数据结构(52+8学时)、操作系统(50+10学时)、算法设计与分析(50+10学时)、数据库原理及应用(44+16学时)、编译原理(52+8学时)、软件工程导论(30+0学时)、高级语言程序设计(52+38学时)、软件质量保证与测试(31+14学时)、软件项目管理(30+0学时)、软件体系结构(30+0学时)、计算机组成原理(52+8学时)、计算机网络(46+14学时)、面向对象程序设计(29+16学时)、软件系统分析与设计(30+0学时)等。 主要实践性教学环节:课程实验、课程设计、专业实习与实训、企业实习与实训、毕业设计(论文)等。 主要专业实验:程序设计实验、计算机网络实验、操作系统实验、数据库设计实验、软件建模实验、数据结构与算法设计实验、编译原理实验。 修业年限:四年。 授予学位:工学学士。

软件工程实践实验指导书XXXX

《软件工程实践》实验指导书 学院:数学与计算机学院 专业:计算机专业 年级: 指导教师:汪璟玢 系主任(或教研室主任):

本课程实验教学目的和基本要求: 知识方面:通过本课程设计,让学生进一步了解软件项目管理、需求分析、系统设计和软件测试的基本原理和方法,在软件开发的各个阶段熟悉并掌握一种表达工具,实现一个小规模的系统开发。 能力方面:在本课程设计过程中,注重培养学生分析问题和独立解决问题的能力。 素质方面:通过本课程设计,着重培养学生具备以下两方面的良好素质:一是针对实际系统中存在的问题,能够善于运用所学基本理论知识分析问题;二是规范地表达分析和设计方案。 本课程设计要求学生3-6人一组完成一个系统,并按照软件工程的规范形成相关文档资料。 参考资料: 1.《软件工程实践者的研究方法》(第六版)(美)Roger S.Pressman著, 郑人杰马素霞白晓颖译,机械工业出版社 2.《软件工程实践者的研究方法》(第五版)(美)Roger S.Pressman著, 梅宏译,机械工业出版社 3.《软件工程》(第六版)(英)Ian Sommerville著,程一剑陈霞译,机 械工业出版社 4.《软件工程》郑人杰主编, 清华大学出版社 5.《软件工程—理论、方法与实践》孙家广主编,刘强编著,高等教育出版 社

实验一:项目选择与用例图表达 目的:结合具体的项目,要求学生结合用例图和用例文本的方法将系统功 能表达清楚。 内容:项目选择、参与者确定、用例识别、用例间的关系表达,用例文本的表达 要求:能够发现任务与用例的关系、用例间的关系并准确表达、用规范的 用例文本描述用例。 开发环境和工具要求掌握:Windows200 Advanced Server、Rational Rose2003、MS visio2003 实验二:系统需求分析报告—类图 目的:通过本次实验掌握对具体项目进行类的识别和分析,并完成系统类图。 内容:识别类、确定类的属性和操作、分析类间的关系完成类图 要求:调查工作要深入,对系统的业务流程要充分了解;结合系统的功能 进行类的分析。 开发环境和工具要求掌握:Windows200 Advanced Server、MS visio2003、Rational Rose2003 实验三:系统需求分析报告—数据流图 目的:结合具体项目,训练学生的抽象分析及分层描述问题的能力,联系 数据和功能,分层次表达系统的功能。 内容:任务分解;识别外部实体、加工、数据存储和数据流;分层次表达的方法。 要求:调查工作要深入,对系统的业务流程要充分了解;结合系统的功能 分解进行数据流图的绘制。 开发环境和工具要求掌握:Windows200 Advanced Server、MS visio2003

软件工程试题库

“软件开发与管理”试题库 第一章:软件开发与管理概述 一、填空题 1.软件是由、、三部分组成。 2.软件作为人工生产的产品,主要是由人进行“开发”而来,与硬件比较起来没有明显的制造过程。 3.软件开发过程复杂,但一般包括、、、 等主要阶段。 4.软件的是软件的生命。 5.在软件团队开发中由于人数的增加、成员间的交互与合作,所以除了技术问题外,还存在问题。 6.软件开发方法学包括和两种开发方法。 7.软件项目进度计划主要包括、、和。 二、思考与简答题 1.举例说明程序、软件、系统的区别和联系。 2.软件有什么特点?软件开发有什么特点? 3.说说程序、软件、系统的设计与应用的不同。 4.软件开发过程主要有哪几个典型任务活动,请说说它们各自的内容。 5.软件开发过程模型是什么含义?一般有哪几种开发过程模型? 6.软件开发方法有哪两类?它们各自的优缺点是什么? 7.请说说管理在软件开发中的重要作用。软件项目管理有哪些内容。 8.软件质量是如何管理的? 第二章:需求分析 一、填空题 1.软件的需求是用户对该软件在、等方面的期望与要求。 即软件的需求、需求和其它需求。

2.需求分析的任务是需求分析师通过与用户的交流、、,得到用户对系统完整、准确、清晰、具体的要求。 3.需求分析过程中建立的模型有:、和。 而传统结构化的需求分析模型包括:图、图、 图。 4.传统的需求分析模型中,的建立是今后数据库设计的基础,而的建立是今后软件功能结构设计的基础。 5.软件的需求最终要通过表达出来。 二、思考与简答题 1.需求分析的任务和作用是什么? 2.需求分析的步骤有哪些? 3.什么是数据模型?实体、属性、联系之间的关系是什么? 4.什么是功能模型?处理的描述包括哪些内容? 5.什么是动态模型?它与功能模型的区别是什么?系统的状态是如何转换的? 6.软件需求规格说明书你认为重点包括哪些方面? 第三章:软件设计 一、填空题 1.软件的需求分析解决了软件应该“做什么”的问题,而软件设计则解决软件应该的问题。 2.软件设计能指导软件的编码实现,没有设计的编码其结果很难预料与保证,所以说软件设计是软件开发的关键,直接影响软件的。 3.软件需求分析、软件设计、软件编码之间既有区别又有联系,它们是软件在不同层次的。从,从 是软件开发两个重要的过程进阶。 4.软件设计内容包括、、等方面。 5.传统结构化软件设计,是从E-R图出发设计,从数据流图出发设计。 6.详细设计是对软件模块的设计,它更接近于编码,所以详细设计又称为过程设计或算法设计。

软件工程讲义名词解释

1.软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2.软件危机的典型表现:1)对软件开发成本和进度的估计常常很不正确; 2)用户对“已完成”的软件系统不满意的现象经常发生; 3)软件产品的质量往往靠不住; 4)软件常常是不可维护的 5)软件通常没有适当的文档资料 6)软件成本在计算机系统总成本中所占的比例逐年上升 7)软件开发生产率提高的速度,跟不上计算机应用的普及深入趋势 3.产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关; 1)是计算机系统中的逻辑部件而不是物理部件 2)显著特点:规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升 4.解决软件危机:既要有技术实施(方法与工具),又要有必要的组织管理措施。 5.软件工程:是指导计算机软件开发和维护的一门工程学科;采用工程的概念、原理技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效的维护它 6.软件工程方法学包含3个要素:方法、工具和过程。 7.传统方法学也称为生命周期方法学式结构化范型 8.软件生命周期:由软件定义、软件开发和运行维护3个时期组成, 1)软件定义时期通常进一步划分为3个阶段:问题定义、可行性研究和需求分析; 2)开发时期由4个阶段组成:总体设计、详细设计、编码和单元测试,综合测试(前两个称为系统设计,后两个阶段称为系统实现); 3)维护时期不用划分时期,花费时间最多。 第2章1、可行性研究的目的:用最小的代价在尽可能短的时间内确定问题是否能够解决 2、可行性研究的任务回答能不能做,可不可以做。【最短时间内找出方法】 3.至少从下述3个方面研究每种解法的可行性: 1)技术可行性:使用现有的技术能实现这个系统吗? 2)经济可行性:这个系统的经济效益能超过它的开发成本吗? 3)操作可行性:系统的操作方式在这个用户组织内行得通吗? 4.数据字典:关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 5.数据流图和数据字典共同构成系统的逻辑模型。 6.数据字典由下列4类元素的定义组成:数据流、数据流分量、数据存储处。 第3章1需求分析基本任务是准确地回答“系统必须做什么?”这个问题(即注明系统功能) 第5章: 1、总体设计(又叫概要设计)由两个主要阶段组成系统设计阶段,确定系统的具体实现方案;结构设 计阶段确定软件结构。 2、模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成 起来构成一个整体,可以完成指定的功能满足用户的需求。 3、局部化:指把一些关系密切的软件元素、物理地放得彼此靠近。 4、模块的独立程度可由两个定性标准度量:内聚(衡量一个模块内各个元素,彼此结合的紧密程度),耦合(衡量不同模块彼此间互相依赖链接的紧密程度) 5、模块包含的语句数不可超过30 6、模块接口复杂是软件发生错误的一个主要原因 7、结构化设计方法(5D方法)是基于数据流的设计方法

软件工程实验指导书71436

软件工程实验指导书 南昌航空大学信工学院 2010年01月

目录 实验1 用PowerDesigner建模工具绘制数据流图 (4) 1 实验环境 (4) 2 实验目的 (4) 3 实验内容 (4) 4 实验要求 (4) 5 实验步骤 (4) 实验2 用PowerDesigner建模工具设计数据库 (6) 1 实验环境 (6) 3 实验内容 (7) 4 实验要求 (7) 5 实验步骤 (7) 实验3 用Microsoft Visio工具设计用户界面 (12) 1 实验环境 (12) 2 实验目的 (12) 3 实验内容 (12) 4 实验要求 (12) 5 实验步骤 (12) 实验4 用Rational Rose绘制用例图 (16) 1 实验环境 (16) 2 实验目的 (16) 3 实验内容 (16) 4 实验要求 (16) 5 实验步骤 (17) 实验5 用Rational Rose工具绘制类图 (20)

1 实验环境 (20) 2 实验目的 (20) 3 实验内容 (20) 4 实验要求 (20) 5 实验步骤 (20)

实验1 用PowerDesigner建模工具绘制数据流图1 实验环境 Windows 2000、Sybase公司的Power Designer应用软件 2 实验目的 1)了解Power Designer工具软件的组成及功能 2)掌握Power Designer中的Process Analyst(PA)模块的建模方法及 其工具的使用方法 3 实验内容 1)设计数据流图(DFD) 2)利用外部实体、过程处理、数据流及数据存储绘制数据流图。 4 实验要求 建立一个PAM(Process Analyst Model)的应用实例。 为方便旅客,某航空公司拟开发一个机票预定系统。旅行社把预定机票的旅客信息(姓名、性别、工作单位,身份证号码、旅行时间、施行目的地等)输入该系统,系统为旅客安排航班,印出取票通知和帐单,旅客在飞机起飞前一天凭取票通知单和帐单交款取票,系统校对无误即印出机票给旅客。 绘制该机票预定系统的数据流图。注意:功能分解的细化程度视具体情况而定。该实验中分解到第三层止。 5 实验步骤 数据流图是系统处理模型的主要组成部分。其中心问题是把功能逐层分解为多个子功能。 1)建立根处理模型 S1:在Windows桌面上双击Process Analyst程序图标,打开Process Analyst应用程序。

软件工程完整规范版

软件工程文档模板 目录 1. 范围............................................................................................................................................... 2. 总体要求....................................................................................................................................... 2.1总体功能要求 ......................................................................................................................... 2.2软件开发平台要求 ................................................................................................................. 2.3软件项目的开发实施过程管理要求...................................................................................... 2.3.1 软件项目实施过程总体要求.......................................................................................... 2.3.2 软件项目实施变更要求.................................................................................................. 2.3.3 软件项目实施里程碑控制.............................................................................................. 3. 软件开发....................................................................................................................................... 3.1软件的需求分析 ..................................................................................................................... 3.1.1 需求分析.......................................................................................................................... 3.1.2 需求分析报告的编制者.................................................................................................. 3.1.3 需求报告评审.................................................................................................................. 3.1.4 需求报告格式.................................................................................................................. 3.2软件的概要设计 ..................................................................................................................... 3.2.1 概要设计........................................................................................ 错误!未定义书签。 3.2.2 编写概要设计的要求...................................................................................................... 3.2.3 概要设计报告的编写者.................................................................................................. 3.2.4 概要设计和需求分析、详细设计之间的关系和区别 (4) 3.2.5 概要设计的评审.............................................................................................................. 3.2.6 概要设计格式.................................................................................................................. 3.3软件的详细设计 ..................................................................................................................... 3.3.1 详细设计.......................................................................................................................... 3.3.2 特例.................................................................................................................................. 3.3.3 详细设计的要求.............................................................................................................. 3.3.4 数据库设计...................................................................................................................... 3.3.5 详细设计的评审.............................................................................................................. 3.3.6 详细设计格式.................................................................................................................. 3.4软件的编码 ............................................................................................................................. 3.4.1 软件编码.......................................................................................................................... 3.4.2 软件编码的要求.............................................................................................................. 3.4.3 编码的评审.................................................................................... 错误!未定义书签。 3.4.4 编程规范及要求.............................................................................................................. 3.5软件的测试 ............................................................................................................................. 3.5.1 软件测试.......................................................................................................................... 3.5.2 测试计划.......................................................................................................................... 3.6软件的交付准备 .....................................................................................................................

软件工程复习资料完整版

、选择题: 、用例图中,用来表示用例的符号为() 、协作图中包含的元素包括() 、在类图中,哪种关系表达整体与部分的关系() 。 ?泛化 ?实现 ?依赖 ?聚合 F 列各种图形符号中,用来表示组成关系的符号为 ()。 、()工具在软件的详细设计中不能使用。 、从严格意义上讲,下列个选项中属于顺序图的元素是() 。 ?对象 ?参与者 ?消息 ?激活 、下列图形中,()属于的动态视图。 ?协作图 ?状态图 ?活动图 ?顺序图 、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是() ?数据库设计 ?数据通信 ?数据关系描述 ?数据定义 、详细设计与概要设计衔接的图形工具是 ()。 ?图 ?程序图 ?图 ?图 、中,大多数建模者把节点分为() A ?设备 ?构件 ?处理器 ?显示器 、()是一种特殊形式的状态机,用于对计算流程和工作流程建模。 ?时间图 ?流程图 ?活动图 ?状态图 、()描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。 ?状态图 ?序列图 ?协作图 ?活动图 下列特点属于描述用例的特点的是() 。 相对独立:不需要与其他用例交互,即功能是完备的 用例的执行结果是可观测有意义的 ?用例由参与者发起(不能自启动,或者由其他用例启动) ? 一个用例是一个单元(需求单元、分析单元、设计单元、开发单元、测试单元、部署单元 ) 、在图书管理系统中,读者与书籍之间的“借阅”关系的多重性是() 、我希望能够支持跨行业务; 我插入卡片输入密码后可以让我选择是取钱还是存钱; 为了方 便,可以设置一些默认的存取金额按钮; 我可以修改密码,可以挂失; 我希望可以缴纳电话 费、水费、电费等;为安全起见,应该有警示小心骗子的提示条,有摄像头;如果输入三次 密码错误,卡片应当可以自动吞没;下列那些是有效的用例() {Constrain} 对象 ?链 激活 ?消息 “软件危机”是指()。 计算机病毒的出现 ? ?流程图 利用计算机进行经济犯罪活动 软件开发和维护中出现的一系列问题 人们过分迷恋计算机系统 、快速原型是利用原型辅助软件开发的一种新思想, 它是在研究()的方法和技术中产生的。 需求阶段 设计阶段 测试阶段 ?软件开发的各个阶段 Use Case

软件工程课程设计报告

软件工程课程设计报告样式 山东建筑大学计算机科学与技术学院 课程设计说明书 题目:学校教材订购系统的分析和设计 课程:软件工程 院(部):计算机科学与技术学院 专业:软件测试 班级:软测143 学生姓名:冯岩 学号:20141113088 指导教师:王宜贵 完成日期:

目录 课程设计任务书 (36) 1. 系统概述 (39) 1.1业务流程描述 (39) 1.2 业务流程图..................................................................................... 错误!未定义书签。2.系统需求分析.......................................................................................... 错误!未定义书签。 2.1 系统用例模型.................................................................................. 错误!未定义书签。 2.2 系统类图模型............................................................................ 错误!未定义书签。 2.3 系统顺序图模型........................................................................ 错误!未定义书签。 3. 系统设计.................................................................................................. 错误!未定义书签。 3.1 系统结构设计................................................................................. 错误!未定义书签。 3.2 数据库概念模型设计..................................................................... 错误!未定义书签。 3.3 数据库物理模型设计..................................................................... 错误!未定义书签。 4. 系统详细设计.......................................................................................... 错误!未定义书签。 4.1学校教材订购系统界面设计.......................................................... 错误!未定义书签。 4.2 销售系统处理............................................................................... 错误!未定义书签。 4.3 输入设计....................................................................................... 错误!未定义书签。 4.4 采购系统处理............................................................................... 错误!未定义书签。 4.5 设计............................................................................................... 错误!未定义书签。 4.6 输出设计....................................................................................... 错误!未定义书签。总结 .. (43) 参考文献 (45) 课程设计指导教师评语 (46)

相关主题
文本预览
相关文档 最新文档