软件工程讲义

软件工程讲义
软件工程讲义

课程概述

一、软件工程学科介绍

二、学习目标

三、部分参考资料

四、课程特点和学习的注意事项

五、教材简介

六、课程考核方式

一、软件工程学科介绍

软件程学科发展历史

三个阶段:概念提出、学科雏形、学科确立

第一阶段:概念提出

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 个领域

软件需求

软件设计

软件构造

软件测试

软件维护

软件配置管理

软件工程管理

软件工程过程

软件工程工具和方法

软件质量

SWEBOK详细结构(1)

软件工程与其他学科的关系1 、软件工程是计算学科9 个领域之一.

算法和数据结构

计算机系统结构

人工智能和机器人学

数据库和信息检索

人一机交互

操作系统

程序设计语言

软件方法学和软件工程

数字和符号计算

计算学科中12个重复出现的基本概念

绑定.

概念和形式模型

效率

抽象层次

按时间排序

安全性

大问题的复杂性

一致性和完备性

演化

按空间排序

重用

折衷与决策

2 、8 个相关学科知识域

计算机工程

计算机科学

数学

管理学

项目管理

质量管理

系统工程学

软件人类工程学

其中:计算机科学、数学是基础工程学科、管理学科也非常重要软件程是一门什么样的学科?

它是指导计算机软件开发与维护的一门工程学科。

工程:将科学及数学原理运用于实际用途的应用手段,如:设计、制造、机器操纵、构架等。

典型的传统工程:建筑工程、机械工程、电力工程等。

概括的说,软件工程即用工程、科学和数学的原则和方法研制、维护计算机软件的有关技术及方法,其优点是以较小的代价开发高质量的软件并有效地维护它。

二、学习目标(1)

掌握软件工程的基础知识和理论,对软件工程学有一个全貌的了解;

熟悉软件项目开发和维护的一般过程;

熟练掌握软件需求分析、设计、编码和测试等阶段的主要思想和技术方法;

二、学习目标(2)

通过学习,特别是通过课程设计,真正运用和深刻体会软件工程的思想方法,转变对软件开发的认识:从个人的单纯编程活动转移到进行系统分析与设计方面上来转变思维定式:程序员―系统工程师(系统分析员)

三、部分参考资料

《软件工程理论与实践》许家冶等编著,高等教育出版社,2005 年

《软件工程》(第二版),齐治昌等,高等教育出版社,2004 年

《面向对象的系统分析》,杨芙清等编著,清华大学出版社,2001 年

《UML 用户指南》G Booch 等著,邵维忠等译,机械工业出版社2002 年

四、课程特点和学习的注肯事项

1 、知易行难

要将理论知识与实践运用结合,进行对照,以加深理解和掌握。

2 、内容纷杂

软件工程涉及计算机科学、数学、工程科学和管理科学等多个领域。其中:

计算机科学和数学用于构造模型与算法;

工程科学用于制定规范、设计范型、评估成本及确定权衡

管理科学用于计划、资源、质量和成本的管理。

五、教材总目录

第 1 章软件工程学概述

第 2 章可行性研究

第 3 章需求分析

第 4 章形式化说明技术

第 5 章总体设计

第 6 章详细设计

第7 章实现

第8 章维护

第9 章面向对象方法学引论

第10 章面向对象分析

第11 章面向对象设计

第12 章面向对象实现

第13 章软件项目管理

附录AC + +类库管理系统分析与设计

附录 B 汉字行编辑程序设计

课程内容学时安排

章节课程内容学时

l 软件工程学概述 4

2 可行性研究 4

3 需求分析 4

5 总体设计 6

6 详细设计 4

7 实现8

章节课程内容学时

8 软件维护 2

9 面向对象方法学引论 4

10 面向对象分析 2

11 面向对象设计 2

12 面向对象实现2

13 软件项目管理 6

14 总结2

六、课程考核方式

分数组成:

平时成绩(10 % ) :以理论课课堂表现为主。

作业(30 % ) :书面作业

期末考试(60 % ) :

第 1 章软件工程学概述学习重点

1、软件危机、软件工程产生的原因

2、软件工程过程和软件生命周期

3、软件生命周期模型

掌握几个基本概念

软件危机

软件工程

软件过程

软件生命周期

软件生命周期模型

软件危机与软件工程学

软件工程学的产生要从“软件危机”说起

1968 年,第一届NAT0 (北大西洋公约组织的计算机科学家的国际会议)会议,“ 软件工程” 的慨念作为一种有效解决“ 软件危机” 的途径被正式提出。

什么是软件危机?

软件危机有什么典型表现?

为什么会产生软件危机?

怎么解决软件危机?

§1 软件危机

§ 1 . 1 . 1 软件危机介绍

什么是软件危机?

软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。

软件危机主要包括的问题(两方面):

①如何开发软件

②如何维护软件

软件危机有什么典型表现?(1)

开发费用和进度难以估算和控制,大大超过预期的资金和规定日期;

软件需求分析不够充分,用户不满意“已经完成”的软件系统。

软件质量难于保证;

软件维护困难;

难以改正程序中的错误;

难以根据用户的需要在原有程序中增加一些新的功能。

软件危机有什么典型表现?

通常没有保留适当的文档资料。

文档的作用:

软件开发管理人员:用于管理和评价软件开发工程的进展状况

软件开发人员:用于开发人员对各个阶段的工作都进行周密思考、全盘权衡、从而减少返工。并且可在开发早期发现错误和不一致性,便于及时加以纠正软件维护人员:软件维护的依据

开发成本逐年上升,软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

几个软件危机的著名案例

①1966年,IBM 360 机的操作系统。花费5000 人一年的工作量,写了近 1 万

行代码。错误百出,每次的新版本就是从前一版本中找 1 000个程序错误而修正的结果。

②1963 年,美国用于控制火星探测器的计算机软件中的一个“ , ”号被误写为“.”,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失。

③美国丹佛新国际机场自动化行李系统软件。投资 1. 93 亿美元,计划1993 年万圣节启用。但开发人员一直为系统错误困扰,屡次推后启用时间,直到1994 年

6 月,机场计划者承认无法预测何时能启用。

④1996 年,欧洲阿里亚纳5 型运载火箭坠毁,造成5 亿美元损失。原因是控制软件中的一个错误。

§1 . 1 . 2 产生软件危机的原因

主要两个原因:

1 、与软件本身的特点有关

2 、与软件开发与维护的方法不正确有关。

一、软件本身的特点(1)

软件与硬件、一般程序存在很多不同之处。

1 、软件与硬件不同

抽象性。软件生产没有明显的制造过程,难以衡量开发进展,也难以控制软件质量。问题的隐蔽性。没有硬件的磨损、老化问题,但存在开发早期在分析、设计阶段的错误,修改难度较大。

失效率蜘线

改正一个问题需付出的代价

2 、软件与一般程序不同(1)

①软件远比一般程序规模庞大,复杂性高

软件所反映的实际问题的复杂性

程序逻辑结构的复杂性。

例1 : Windows95 , 1000 万行代码;

Windows2000 ,5000 万行代码

例2 : Exchange 2000 和windows 2000 开发人员

软件的规模

软件产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”。

2 、软件与一般程序不同(2 )

②大型软件开发既有技术问题,还有社会问题。

社会因素:组织机构、体制、管理方式、观念、人的心理素等。开发团队成员分工合作

技术与管理的矛盾

软件开发人员对软件应用的领域知识的了解

二、软件开发维护方法中存在的问题(1)

①对用户需求的获取不正确

用户的原因

分析人员的原因

对分析人员的要求:沟通能力、归纳总结能力、经验

越是早期产生的错误,付出的代价越大。

图:不同时期引入同一变动的代价

二、软件开发维护方法中存在的问题( 2 )

②软件开发就是编写程序。

一个完整的软件产品由一整套完整的配置组成,程序只是其中的一个组成部分。

软件开发过程包括多个阶段,每个阶段的产品都是最终的完整的软件产品的一部分。

③软件开发只要依靠个别编程高手就能完成。

④轻视软件维护

软件维护约占软件费用55 一75 % ,包括修改软件运行的错误;对软件进行改进和功能扩充。

软件维护在软件费用的比例

三、其他产生软件危机的原因

①软件开发尚未完全摆脱手工艺的开发方式。

②软件成本相当昂贵,主要依靠大量复杂的、高强度的脑力劳动

③软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。

软件的“ 可移植性” 就是指的软件对硬件的依赖程度。好的可移植性依赖少。

§1 . 1 . 3 消除软件危机的途径

1 、彻底消除“软件就是程序”的错误观念。

2 、充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目,不是个人独立的劳动。

3 、推广和使用在实践中总结出来的软件开发的成功技术和方法。

4 、开发和使用更好的软件工具

总结:“软件工程”的方法理论是摆脱软件危机的一个主要出路。

计算机和软件科学家为解决软件危机问题,尝试将在其它领域中行之有效的工程学知识运用到软件开发工作中来,经过不断实践和总结,最后得出一个结论;按工程化的原则和方法组织软件开发工作是有效的,是摆脱软件危机的一个主要出路。

思考题( 1 )

1 )只要是编程高手,即使是不懂软件工程,也能编出很好的软件。

软件是服务于大众,却是由个性化的开发人员完成的。如果个性化太强,程序就无法阅读,其他人员也就无法维护。

例:国内80 年代涌现出来的众多汉字操作系统均是由编程高手完成的。

思考题( 2 )

2 )只要拥有一套讲述如何开发软件的书籍,并了解了书中的标准与示例,就可以解决软件开发中遇到的任何问题。

软件是用来解决现实问题的,现实问题的特殊性对规范提出了挑战(要进行适应)。

软件技术是发展的,没有祖传秘方。

就像拥有食谱并不能成为名厨一样,软件开发需要实践。

思考题( 3 )

3 )只要拥有最好的开发工具、最好的计算机,一定能做出优秀的软件。

硬件环境只是必要条件,人才是充分条件,软件是人在一定的约束条件下创造出来的。因人因事而异。

思考题(4)

4 )软件开发时,如果进度慢,落后于计划,可以增加更多的程序员来解决。

增加人力可以减少开发时间吗?

新手!任务的重新划分!沟通更加复杂!

必须依靠科学地计划来解决这样的问题。

思考题(5)

5 )争议:如果软件运行较慢,是换一台更快的计算机,还是设计一种更快的算法?软件的性能问题;

应用级别→算法的合理性;

系统级别→操作系统、数据库系统、系统软件等;

硬件级别→机器性能

§1 . 2 软件工程

§1 . 2 . 1 软件工程介绍

一、“软件工程”的典型定义

1 )1968 年,第一届NATO 会议

为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。

2 ) IEEE/CS(电气电子工程师协会/计算机科学分会)

①1993 年,将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。

②对①中提到的各种方法的研究

3 )其他学者的定义

Boehm :运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。

Fritz Bauer: 建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法

所有定义都强调在软件开发过程中,应用工程化原则的重要性

几个关于软件工程本质特性和基本原理的问题

问题一:软件工程适用范围?

问题二:软件工程如何控制系统开发的复杂性的?

问题三:以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?

问题四:假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发那个层次的软件?

问题五:协同工作有什么重要性?:怎样理解“在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品”这句话?

问题六:某软件开发,由于时间和资金都非常紧迫,在需求分析人员非常认真、仔细地做完需求分析之后,说:我们可以保证我们的需求分析正确性,不用花时间检查了,设计人员可以直接拿着这份分析报告,马上开始设计。如果你是项目负责人,你会如何决定?为什么?

问题七:在需求分析完成并获得了用户的肯定,也通过了评审,进入软件设计阶段之后,用户的想法有了改变,提出了一个新的要求,此时如果你是项目负责人,应该怎样做?

二、软件工程本质特性(2)

1 )软件工程关注于大型程序的构造。

2 )软件工程的中心课题是控制复杂性

主要考虑:如何分解和集成

为什么要分解:G .Miller, “7士 2 ” 原则

3 )软件经常变化

4 )开发软件的效率非常重要

5 )和谐地合作是开发软件的关键

6 )软件必须有效地支持它的用户

7 )在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品

扩展定义:软件=知识+程序+数据+文档

§1 . 2 . 2 软件工程的基本原理

B.W.Boehm, 1983 年提出:

1 )用分阶段的生命周期计划严格管理

2 )坚持进行阶段评审

3 )实行严格的产品控制基线

基线(baseline )控制

4 )采用现代程序设计技术

5 )结果应能清楚地审查

6 )开发小组的人员应该少而精

7 )承认不断改进软件工程实践的必要性

§1 . 2 . 3 软件工程方法学

软件工程包括“管理”和“技术”两方面内容:

管理——对人、财、物的合理使用和配置;

技术——指软件开发中采用的方法、工具和过程。

什么是软件工程方法学?

通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。

一、软件工程方法学三要素:工具、方法和过程

要素一:软件工程过程

规定了完成各项任务的工作步骤。

要素二:软件工程方法

完成软件开发的各项任务的技术方法,为软件开发提供了“如何做”的技术。

如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。

要素三:软件工程工具

计算机辅助软件工程CASE ( computer Aided sottware Engineering ) ,为软件工程方法提供自动或半自动的软件支撑环境。

二、软件工程方法学思想

两种:

1、传统方法学(生命周期方法学或结构化范型)

2、面向对象方法

1.传统方法学(生命周期方法学或结构化范型)

采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务;

把软件生命周期划分为若干个阶段,按顺序完成每个阶段的任务;

每个阶段开始和结束都有严格的标准,对任何两个相邻的阶段而言,前一个阶段的结束标准就是后一阶段的开始标准;

每一个阶段结束之前都必须进行正式严格的技术审查和管理复审

传统方法学的优点:

分解任务,分工合作,降低整个软件开发工程的困难;

采用科学的管理技术和良好的技术方法对每个阶段成果都进行严格的审查。保证了软件的质量。

传统方法学的缺点:

把数据和操作人为地分离成两个独立的部分,增加了软件开发与维护的难度。

2 、面向对象方法学(OO,Object- oriented )

模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界

软件工程习题及详细答案

个人收集整理勿做商业用途 软件工程习题及答案 一、选择题: 1. 为了提高测试的效率,应该。 A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 2. 与设计测试数据无关的文档是。 A、需求说明书 B、设计说明书 C、源程序 D、工程开发设计 3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 4. 概要设计的结果是提供一份。 A、模块说明书 B、框图 C、程序 D、数据结构 5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。 A、模块说明书 B、软件规格说明书 C、工程开发计划 D、合同文档 6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。 A、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程实验报告

软件工程实验报告 姓名:冯巧 学号 实验题目:实验室设备管理系统 1、系统简介: 每天对实验室设备使用情况进行统计,对于已彻底损坏的作报废处理,同时详细记录有关信息。对于有严重问题(故障)的要即时修理,并记录修理日期、设备名、修理厂家、修理费用、责任人等。对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。新设备购入后立即对新设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容。 2、技术要求及限定条件: 采用C#语言设计桌面应用程序,同时与数据库MySql进行交互。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案实施相对容易,成本低,工期短。 一:可行性分析 1、技术可行性分析 计算机硬件设备,数据库,实验室设备管理软件与实验室设备管理系统的操作人员组成,能够实现实验室设备管理的信息化,提高工作效率,实现现代化的实验室设备管理。系统需要满足实验室设备管理(包括对实验设备的报废、维修和新设备的购买)、实验室设备信息查询(包括按类别进行查询和按时间进行查询)、实验室设备信息统计报表(包括对已报废设备的统计、申请新设备购买的统计和现有设备的统计)。这些功能框图如下图所示: 2、经济可行性分析 依据用户的现实需求、技术现状、经济条件、工期以及其他局限性因素等等因素,考虑到工期的长短、技术的成熟可靠、操作方便等因素,本方案具备经济可行性。

3、系统可选择的开发方案 ①方案A用C#开发系统的特点是:开发工具与数据库集成一体,可视化,开发速度较快,但数据库能够管理的数据规模相对较小。系统对硬件的要求低,不需要网络支持,在单机环境下也能运行,在局域网环境下也能使用。方案的实施相对容易,成本低,工期短。 ②方案B:以小型数据库管理系统为后台数据库,该前台操作与数据库分离,也能够实现多层应用系统。系统对硬件的要求居中,特别适合在网络环境下使用,操作方便。但系统得实现最复杂,成本最高,工期也较长。 二:软件需求分析 1.软件系统需求基本描述: 实验室设备管理系统是现代企业资源管理中的一个重要内容,也是资源开发利用的基础性工作。实验室设备在信息化之前,在用户系统管理、设备维修管理、设备的增删改查管理等方面存在诸多不利于管理的地方,不适应现代的企业管理形势和资源的开发利用。 2.软件系统数据流图(由加工、数据流、文件、源点和终点四种元素组成): 1)顶层数据流图 2)二层流程图 3)总数据流图

软件工程实验项目和考核

一、实验题目 (3-5人一组,选出组长,以下共12个项目,每个小组根据自己情况选用其中一个项目做为实验练习题目。) 题目1:教务管理系统软件的设计与实现 教务管理系统是对学校教务和教学活动进行综合管理的系统。 一、整体要求 1、系统要求提供管理人员工作平台和一般用户平台 2、系统要求有严格的权限管理 3、系统要求有可扩充性 二、系统功能描述 1、通用功能 对于一般用户,都应提供如下功能: (1)电子课表:系统根据学校总排课的情况和该教师的任课情况自动生成课表,备查。 (2)通知和公告阅览 2、学校日常业务管理 (1)学生学籍管理 ①新生管理(学生档案管理、编系、编班、编学号) ②学生成绩管理 ③学籍管理(学籍变动处理如转系、转学、休学、复学、留降级、退学等) ④学生奖惩管理 ⑤统计:可按层次(本、专科)、年级、专业进行统计学生数,成绩(有平均分),以及其他的统计 ⑥查询:在校生政治情况、学习情况、个人档案情况、奖励处分情况 (2)教务管理 ①课表生成(确定课表类型、任课教师、每门课周课时、上课地点) ②教学管理(期中、期末例行教学检查情况记录、调课情况、教学进度、课程教学大纲、工作计划、教学总结等) ③考试管理(考试类型、考试科目、考试时间、考场安排、考场记录、成绩录入、统计查询、补考名单等) ④实习管理(实习基地、实习班级、实习总结等)

3、聊天室 4、论坛 题目2:电力收费综合管理系统软件的设计与实现 要求用微型计算机对电力收费系统进行综合管理。 1.电力的相关知识: a.电价问题:不同用途的电有不同的价格,为了分析简单,可以粗略地分为照明用电,工业用电,商业用电等。不同时间段电有不同的价格,可以粗略地分为8点—21点、21点—次日8点两个时段。 b.电力设备的问题:这里考虑比较简单的,假设每个用电单位都有电表,但每个单位的电表可以有多个,也可以有一个(比如,一个单位可以分为照明电表,工业电表;一个普通家庭用户有照明电表;等等)。电表有功耗,所以计算电价的时候应该考虑到这一点。 2.系统应具备的基本功能 a.电力部门用户的权限管理:比如可以简单的分为三个等级; 超级用户(管理员)级:最高级,可以使用本系统全功能,可以任意增、删、改数据,完成系统初始化设置。 用户级用户(管理员):中级,可以完成数据录入、开票、统计、发送报表至总公司、并打印摧款单。注意:本月缴费单只能打印一次,当月缴费单打印后,“当月抄表数”、“实缴金额”等敏感性数据将自动加锁,如需再次修改,只能在“超级用户”的监视下完成。 用户级来宾:低级,可完成数据查询、打印查询清单功能。 b.基本信息的初始化:如用电性质,电价标准,电表类型,电表功耗等。 c.申请用电(开户)和销户的功能:在有些地区,用电是要在电力部门开户的。系统要记录用户的一些基本信息(可以简单分为2类:单位用电/普通用户,共同的信息包括:编号,用电性质,用电用途,所在台区,电表编号,上月抄入电费,本月抄入电费等等)。 d.用户电表数据的录入:一般有2种方式,一是通过抄表员手工抄的电表数据由输入人员录入;还有一个是通过抄表机将数据导入。将抄表机中的数据导入系统之中。可以简化地将抄表机看作一个小的数据库,数据库中只有一个表,导入程序相当于在不同的数据库表中传递数据。 e.电费计算功能:从数据库中读取相关数据,计算出用户当月电费。 f.发票打印功能:用户缴纳电费以后,打印出收费发票。

软件工程习题及答案

软件工程习题及答案

软件工程习题及答案 一、选择题: 1. 为了提高测试的效率,应该。 A、随机地选取测试数据 B、取一切可能的输入数据作为测试数据 C、在完成编码后制定软件的测试计划 D、选择发现错误可能性大的数据作为测试数据 2. 与设计测试数据无关的文档是。 A、需求说明书 B、设计说明书 C、源程序 D、项目开发设计 3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 4. 概要设计的结果是提供一份。 A、模块说明书 B、框图 C、程序 D、数据结构 5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。 A、模块说明书 B、软件规格说明书 C、项目开发计划 D、合同文档 6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。 A、1/6 B、1/5 C、1/4 D、1/3 7. 变换型和事务型是程序结构的标准形式。从某处获得数据,再对这些数据作处理,然后将结果送出是属于。 A、变换型 B、事务型 8. PAD(Problem Analysis Diagram)图是一种工具。 A、系统描述 B、详细设计 C、测试 D、编程辅助 9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。 A、总貌 B、细节 C、抽象 D、软件的作者 10. 数据流图中,当数据流向或流自文件时,。 A、数据流要命名,文件不必命名 B、数据流不必命名,有文件名就足够了 C、数据流和文件均要命名,因为流出和流进数据流是不同的 D、数据流和文件均不要命名,通过加工可自然反映出

软件工程实验报告最终版

合肥师范学院实验报告册 2012 / 2013 学年第一学期 系别计算机科学与技术系 实验课程软件工程 专业计算机科学与技术 班级2010级计算机应用 姓名马军福董国运李思贤 学号1010411024 1010411008 1010411076 指导教师范庆春

实验一:结构化方法建模的基本应用 1.实验目的 (1)了解Visio工具软件的功能特色、安装、工作环境和基本操作等基本知识; (2)掌握应用Visio工具的基本使用方法和基本绘图操作; (3)熟悉结构化分析建模的基本应用。 2.实验内容 (1)使用Visio 建立期刊管理系统的实体-关系图; (2)使用Visio 建立期刊管理系统的数据流图。 3. 实验要求 使用Visio 建立期刊管理系统的实体-关系图、数据流图。数据流图要绘 制三层。 4.实验结果和体会 (1)需求陈述 在图书管理系统中,管理员要为每个读者建立借阅账户,,账户内存储读者的个人信息和借阅记录信息。持有借阅卡的读者可以通过管理员借阅、归还期刊,读者可通过互联网或图书馆内查询终端查询期刊信息和个人借阅情况,以及续借期刊。 借阅期刊时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息。然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息。最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。归还期刊时,输入读者借阅卡号和期刊号,系统显示读者和期刊的基本信息供管理员人工审核。如果有超期借阅或丢失情况,先转入过期罚款或期刊淘汰处理。然后提交还书请求,系统接受后删除借阅纪录,并登记修改可借阅期刊的数量。 期刊管理系统包括:1.读者信息管理a:借阅请求b归还请求c:查询请求d:修改自身信息2.期刊管理a:修改书目、出版日期、编辑b:增加书目数据、删除书目数据。3.期刊借阅a:增加所借读者信息b:删除所借读者信息4.期刊查询a:已借出图书列表b:未借出图书列表5.期刊的征订6.期刊内容登记题目、作者姓名、作者单位7.期刊内容查询

软件工程实验报告(总)

信息工程学院 软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft V isio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

软件工程实验报告

软 件 工 程 实 验 报 告 班级:计算机科学与技术1102班 学号:1108030209 姓名:蒙雨茹

实验一:使用Microsoft Visio 1.1实验目的: (1)熟悉Visio的工作环境及组成。 (2)掌握Visio软件绘制图表的基本操作。 (3)掌握基本流程图的设计方法。 1.2实验内容: 绘制基本流程图 1.3实验步骤: (1)打开一个模板,,在主菜单中依次选择【文件】->【新建】->【选 择绘图类型】,出现“选择绘图类型”窗口,在【类别】下,单击 【流程图】,在【模板】下,单击【基本流程图】。 (2)添加形状,将【形状】窗口中模具上的自己需要的形状拖到绘图页 面中合适的位置。并添加文本、连接不同形状,使流程图完整的显 现出来。 1.4实验结果:

实验二:数据流图 2.1 实验目的 (1)熟悉Visio的工作环境及组成。 ⑵掌握Visio软件绘制图表的基本操作。 ⑶掌握数据流图的设计方法。 2.2 实验内容 习题3-3,3-4,3-5 2.3 实验步骤 (1)打开模板 ①在主菜单中,依次选择【文件】——【新建】——【选择绘图类型】,出现“选择绘图类型”窗口。 ②在左侧【类别】下,单击【软件】。 ③在右侧【模板】下,单击【数据流模型图】。 (2)绘制顶层图 ①在顶层进程页面中添加、移动图形元素并调整其大小。将所需要元素用鼠标拖动到模板里,添加所需的元素符号。 接口:输入源点或输出终点,其中注明源点或终点的名称。 进程:即处理,输入数据在此进行变换产生输出数据,其中注明进程的名称。数据存储:用于代表系统中存储的信息,其中注明信息的名称。 数据流:被加工的数据及其流向。流线上注明数据名称,箭头代表数据流动方向。 ②向图形元素中添加文本,并修改数据流图中的文字和格式。 连接图形元素。 ③使用“数据流”连接线将“接口”、“进程”和“数据存储”等形状互相连接起来。 逻辑连接:将数据流起点、终点拖拽到进程或接口中央位置,进程或接口被红色框包围时松开鼠标,这时可看到数据流符号相应端点为红色方框。拖动进程或接口,可看到流据流的端点随着进程或接口的移动而移动。

安徽工业大学软件工程实验报告

《软件工程》实验报告 姓名:江文杰 学号:139074333 班级:网133 指导老师:周兵

一.实验目的 1.能按照软件工程的思想,采用面向过程的方法开发出一个小型软件系统。 2.在软件系统开发过程中,能综合利用一门编程语言和软件工程等多门课程的知识。 3.培养良好的软件开发习惯,了解软件企业文化。 4.掌握结构化数据流分析技术。 5.掌握结构化程序设计的基本概念与技术,并且养成良好的编码风格。 6.掌握单元测试的一般步骤及技术。 7.掌握集成测试的一般步骤和技术。 二.实验内容 1.软件需求分析 ①、功能需求分析 ·输入一个年份(1-3000),然后显示12个月的月历 ·能解决闰年和平年问题 ·能输出显示结果 ②、运行需求分析 ·操作系统:Windows9x, Windows2000, Windows XP及更高版本 ③、数据流图

软件结构图: 2.软件设计与编码 #include #include #include #include #define firstdayof1 1 /* 定义第一年的第一天,星期日=7 */ #define gap " " /* set gap between numbers of dates */ #define dent " " /* set right margin. */ struct info { int month; int firstdayofmonth; int daysofmonth; int leap; }monthinfo;

软件工程实验三

班级学号:132054234 姓名:吴易璋成绩: 实验三小组项目详细设计 (一)系统需求实例: 企业销售管理的描述如下: (1) 接受顾客的订单,检验订单。若库存有货,则进行供货处理,即修改库存,给仓库开备货单,并且将订单留底;若库存量不足,则将缺货订单登入缺货记录。 (2) 根据缺货记录进行缺货处理,将缺货通知单发给采购部分,以便采购。 (3) 根据采购部门发来的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单进行供货处理。 (4) 根据留底的订单进行销售统计,打印统计表给经理。 (二)实验目的: (1)根据所选定题目进行系统详细设计工作; (2)根据“检验订单”、“处理供货”、“处理缺货”、“处理进货”的伪码画出它们的盒图、PAD图 (3)熟练使用画图工具“visio”绘制图形。 (三)实验步骤: (1)“检验订单”伪码 PROCEDURE 检验订单 输入订单; IF 订单有效 THEN 进入“供货处理”; ELSE 重新输入订单; ENDIF RETURN END (2)“处理供货”伪码 PROCEDURE 处理供货 读入订单中货物数量; 读入库存记录; IF 货物数量<库存记录 THEN 修改库存记录; IF 库存记录≤库存临界值 THEN 生成缺货订单记录; ENDIF 生成备货单; ELSE 生成缺货订单记录; ENDIF RETURN END (3)“处理缺货”伪码 PROCEDURE 处理缺货 读入缺货订单记录; 根据缺货订单生成缺货通知单;

RETURN END (4)“处理进货”伪码 PROCEDURE 处理进货 输入进货单; 根据进货单修改库存; IF 缺货订单记录货物数量<库存记录 THEN 处理缺货订单可以供货; 修改缺货订单记录; ENDIF RETURN END (绘制的图形放在此处) (1)PAD图 盒图

软件工程实验指导书(2016年修订)

数学与信息学院(软件学院) 《软件工程实验》指导书 编写:梁早清朱凯严尚维林毅申 完成人信息 学号姓名主要角色和任务比重 朱凯2016年修订 分组至少3人至多4人。 备注:此文档仅作为《软件工程》实验指导用,其他课程的文档模板请根据其他老师提供的模板撰写。

软件工程实验课实验说明 本实验指导书是数学与信息学院、软件学院《软件工程实验》课程的指导书,目的在于让同学们通过这些实验,体会软件开发的过程(从需求分析到设计和测试计划)。老师们试图通过一个较为简单的易实现的软件系统,让同学们分阶段完成需求分析、体系结构设计、部件级设计等设计和功能测试的工作,并完成相应的文档。同学们之间根据规范相互评审每一阶段的文档,过后老师再统一评讲。以此让同学们加深对结构化分析与设计、功能测试的方法的理解。(特别指出:因课时所限,软件工程中面向对象的设计与分析方法不在本实验课上讨论,学院另外开设有《面向对象的设计与分析》课程。) 题目如下: 一、软件系统需求的文本描述 《课程成绩管理系统》提供一个方便我校任课老师管理学生成绩的小型软件系统。该系统为教师提供方便的成绩管理功能,也为学生提供查询成绩的功能。系统描述如下:学生的成绩包含以下4个部分:课堂点名成绩、课堂考试成绩、课后作业成绩和期末考试成绩。各成绩评判标准和在总成绩中所占比例如下: 1.课堂点名3次,每次点名没有到的不得分(即记0分),到了的100分。第一次点 占总成绩的1%,第二次和第三次各占总成绩的2%,课堂点名占总成绩的5%; 2.课堂考试3次,每次满分100分,具体成绩由老师给出。其中,第一次和第二次占 总成绩的7%,第三次占总成绩的6%,共20%; 3.课后作业3次,每次满分100分,具体成绩由老师给出。其中,第一次和第二次占 总成绩的8%,第三次占总成绩的9%,共25%; 4.期末考试试卷满分100分,占总成绩的50%。 教师能通过成绩管理软件来管理学生的成绩,包含添加、删除、修改、查看、统计学生的成绩。各个功能具体描述如下: 1.添加学生成绩:填写学号,点击添加,然后在添加界面上录入对应学生的第一次点 名、第二次点名、第三次点名、第一次课堂考试、第二次课堂考试、第三次课堂考 试、第一次课后作业、第二次课后作业、第三次课后作业,期末考试卷面成绩。点

软件工程实验内容

实验指导(Experiments) 实验题目:在以下范围内任选一道题目或自定一个题目。

题目医院病房监护系统 在医院的病房里,将病症监视器安置在每个病床,对病人进行监护。监视器将病人的病症信号(组合)实时地传送到中央监护系统进行分析处理。在中心值班室里,值班护士使用中央监护系统对病员的情况进行监控,监护系统实时地将病人的病症信号与标准的病诊信号进行比较分析,当病症出现异常时,系统会立即自动报警,并打印病情报告和更新病历。系统根 据医生的要求随时打印病人的病情报告,系统还定期自动更新病历。

实验内容 实验一软件需求分析 1.实验目的: 1) 根据所选定题目进行需求分析工作; 2) 通过实例掌握结构化数据流分析技术; 3) 进行业务需求分析、用户需求、功能需求、非功能需求分析; 2.实验要求: 要求做到使用结构化数据流分析技术分析课题需求,写出详细的数据流图和数据字典,数据流图的基本处理的个数不得少与2 个。 3.实验内容: 用结构化数据流分析技术进行软件系统需求分析,得出系统得数据流图和数据字典。 4.实验步骤: 1) 通过相关途径进行需求分析。 2) 综合利用Internet 网和相关书籍整理并完善需求分析。 3) 画出系统数据流图。 4) 得出系统数据字典。 5.实验学时:3学时。 6.实验结果:上交实验报告。 实验二软件设计 1.实验目的: 1) 建立初始结构图; 2) 对初始结构构图进行改进、优化; 2.实验要求: 用面向数据流的软件设计技术,对上一实验的数据流图和数据字典,进行总体设计;要求做到对上一实验的软件需求进行软件结构设计。 3.实验内容: 主要解决实现该系统需求的程序模块设计问题。(包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。) 4.实验步骤: 1.首先确定系统总体设计方案。 2.完成系统的模块结构图及模块的功能说明 3.完成系统的接口设计 4.完成系统的数据结构设计 5.实验学时:2 学时。 6.实验结果:上交实验报告。

软件工程实验报告(总)

信息工程学院软件工程实验报告 专业: 班级: 学号: 姓名: 指导老师:

实验一:软件开发的过程计划 实验课时:2课时 一、实验目的 项目计划的目的是为项目的研发和管理工作制定合理的行动纲领,以便所有相关人员按照计划有条不紊地开展工作。 ⑴估计项目的总体规模、工作量和成本。 ⑵制定项目计划,重点放在产品生命周期中的主要关键任务。 ⑶制定项目时间表和预算。 二、实验环境 1.硬件环境 P4以上的个人计算机环境,要求内存不少于512MB,硬盘不小于20G.。 2.软件环境 操作系统:Windows XP 数据库:Sql Server 2000以上或Access 2003以上 3.通用工具软件 通用绘图工具:MicroSoft Visio 2003以上 文本编辑工具:MicroSoft Word 2003以上 4.CASE工具 UML建模工具:Rational Rose 2000 三、实验要求、实验内容 1、实验要求: 在进行实验之前,必须掌握软件开发过程的一些基础知识,准备参考资料和阅读相关的过程模型的文档。 2、实验内容 熟悉RUP(Rational Unified Process)软件开发统一过程的思想,RUP(Rational Unified Process)是由Rational公司(现已是IBM公司的一部分)提出的过程模型,它软件工程史上最完整、最成熟、最优秀的过程模型之一。 学习软件开发的组织和管理,将项目开发各阶段的任务明确,掌握各阶段的里程碑,并熟悉相应的工具。

四、思考题 1、项目开发首先要做的事是什么? 答:进行需求分析和定义,了解客户或用户的需求,然后再进行后续。 2、你认为该软件应具备的最重要的特性是什么。 答:安全性、实用性、灵活性。 3、你认为怎样分工是最合理的? 答:该项目已经采取项目经理制,但是在具体开发过程中,情况也许会比预计的复杂,因此,在了解了各组员的工作风格的情况下,根据性格类型进行工作分配,比如:外向而且善于交流的,可以给他安排和客户交流沟通,让客户随时了解我们 的工作情况,并且反应客户的需求改变;为了让项目更好的组织和管理,可以采取 主程序员负责制;这样,在项目经理的带领下,内部安排主程序员和副程序员,工 作员有问题的话,内部自己解决,只要按时汇报工作就可以了。 五、实验内容: 项目背景 项目名称:银行计算机储蓄系统 随着社会经济的发展,XX银行的业务不断增长,传统的依靠手工的存取款业务办理方式已经不能满足不断增长的业务需求。其一,业务需求的增加需要消耗大量人力物力资源;其二,业务复杂化导致人工处理方式出错率增加,从而引起储户不满。一方面可以减轻银行业务员的工作量,另一方面可以减少工作的出错率,从而提高工作效率。现在计算机网络的告诉发现使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们越益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。为解决此问题,拟为其开发计算机储蓄系统。 项目进度: 项目在项目经理的制度下,在整个开发过程中,树立“里程碑”,而且严格按照计划进行,各阶段任务必须完成,现把任务进度历程绘制如下:

软件工程实验指导书71436

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

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

实验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应用程序。 S2:建立一个处理过程P1。单击工具栏中的Process工具,在模型工作区内单击会出现一个处理过程的符号,它是建立的第一个处理过程。单击鼠标右键释放Process工具,再双击新建立的处理过程符号,出现特性对话框,对

软件工程 实验报告

院系:计算机科学学院专业:计算机科学与技术年级: 2013级 课程名称:软件工程 组员:司少武(1135) 兰少雄(1136) 张宇(1133) 纳洪泽(1132) 指导教师:刘卫平 2015年 12月 26 日

聊天室 1 前言 即时消息系统的研究现状 即时消息系统[1](Instant Messenger,IM)是一种在后 PC 时代兴起的,以Internet 网络为基础的,允许交互双方即时地传送文字、语音、视频等信息,能够跟踪网络用户在线状态的网络应用软件。即时消息系统产生有着深刻的社会原因:人们都有渴望社交,获得社会尊重、实现自我的需求,这正是即时消息软件风行的原动力,而物质文明的日益发达所带来副作用,又使得人们习惯与周围的人保持距离,以致人们更愿意对陌生人敞开心扉,在网络中可以跨越年龄、身份、行业、地域的限制,达到人与人、人与信息之间的零距离交流。从这点上讲,即时消息系统的出现改变了人们的沟通方式和交友文化,大大拓展了个人生活交流的空间。 本工程的主要内容 随着互联网逐步普及,人们的生活和工作也越来越离不开信息网络的支持,而聊天室是人们最常见,最直接的网上交流的方式。本聊天系统以聊天交流为主,为广大用户提供一个借助网络进行人际交往的平台,也是网络与现实最贴近的实用型网站。本文所介绍的网络聊天系统是基于开放的JAVA应用程序开发设计的,其主要特性是能动态、实时的完成信息的传递,且具有高效的交互性,更有效的处理客户请求,且具有脱离数据库技术方法,易于维护和更新的特点。 2 需求分析 本系统所要实现的主要功能是当用户聊天时,将当前用户名、聊天对象、聊天内容、聊天语气和是否私聊进行封装,然后与服务器建立Socket连接,再用对象输出流包装Socket的输出流将聊天信息对象发送给服务器端当用户发送聊天信息时,服务端将会收到客户端用Socket传输过来的聊天信息对象,然后将其强制转换为Chat对象,并将本次用户的聊天信息对象添加到聊天对象集Message中,以供所有聊天用户访问。 接收用户的聊天信息是由多线程技术实现的,因为客户端必须时时关注更新服务器上是否有最新消息,在本程序中设定的是3秒刷新服务器一次,如果间隔时间太短将会增加客户端与服务器端的通信负担,而间隔时间长就会让人感觉没有时效性,所以经过权衡后认为3秒最佳,因为每个用户都不可能在3秒内连续发送信息。 当每次用户接收到聊天信息后将会开始分析聊天信息然后将适合自己的信息人性化地显示在聊天信息界面上。

软件工程案例分析学生管理

第三章系统分析和系统设计 3.1 学生成绩管理系统的功能分析 该学生成绩管理系统是用https://www.360docs.net/doc/1316883883.html,网页编程+ Microsoft SQL Server2000数据库,在系统中分为大的三个方面:一是系统管理员页面、二是教师登录页面、三是学生登录页面。 1.系统管理员进入学生成绩管理系统的主要功能是:实现管理员用户的添加,修改和删除,以及对教师添加、教师修改、教师删除、教师查询、学生的添加、学生的修改、学生的查询、修改等基本功能,并且参与开设课程、选择课程的管理,安排教师的任课和学生的选课工作,管理员为每门课程设置一个学分,每门课程可以是必修或则选修,如果学生及格,学生将获得该课程的学分。 2.教师进入学生成绩管理系统的主要功能是:各科教师登录系统后可以查询和修改个人信息、修改自己的账号密码,查询自己的授课课程,实现对选修了自己课程的学生的成绩进行查询、录入和修改,各科老师可以对自己学生选修课程结束后给予分数,同时可以对自己所带课程的成绩优秀人数,及格人数和不及格人数的分布信息进行查询。 3.学生进行学生成绩管理系统的主要功能是:每个学生登录系统后可以查询和修改个人信息、修改自己的账号密码,以及自己所选课程任课老师的个人信息,同时在课程结束后可以查询在校期间各个时间段选修课程的成绩与学分,以及对单科成绩和总分的排名查询。 3.2 系统模块结构图

图3-1系统功能结构模块图 3.3 系统业务流程图 首先是进入登录界面,如图3.4所示,本页面显示系统名称,密码校验等信息,本系统的用户分为三类:管理员,教师,学生。使用者可以在组合框中选择所要登录的用户的类型,并输入相应的用户名和密码,单击“确定”就会将输入提交给系统以验证用户、密码及身份。如果用户类型及密码正确,就会进入与用户相对应的界面。 3.3.1 系统总业务流程图

13级软件工程实验指导书最新版

《软件工程》 课程实验指导书 华北水利水电大学 信息工程学院计算机科学与技术专业 2016年5月

《软件工程》课程实验指导书 一、实验选题与要求 自由选择题目,但每个班级的选题按照学号尾数为0、5选第1题,尾数为1、6选第2题,尾数为2、7选第3题,尾数为3、8选第4题,尾数为4、9选第5题。 1、单科学生成绩管理系统 任务:对在校某班学生一门课程的平时成绩与考试成绩进行统一管理。每个学生记录包括学号、姓名、每次习题(按16次计)、测验(按3次计)、考试成绩和总评成绩等信息,以学号为序存放。 要求:(1)一个文件按以班为单位存储学生记录。 (2)将允许的操作分为四种,以A、B、C、D为标志(若设置菜单操作更佳): A:插入一个新的学生记录; B:登记某次成绩(可以是每次习题、测验、考试成绩); C:修改某次成绩(可以是每次习题、测验、考试成绩); D:删除一个学生记录。 (3)计算学生的最终成绩,各项成绩权重为:习题10%、测验20%、考试70%。 (4)按学号排序打印全班成绩表,表格内容包括习题、测验、考试、总评成绩,前三项为百分制,总评成绩为加权计算结果值。 设置教师和学生两种登录系统身份,每个用户应有自己的口令; 教师身份可以完成上述基本要求的功能,学生可以通过输入学号查询个人成绩。 2、飞机航班订票系统 任务:通过此系统可以实现如下功能: (1)录入:录入航班信息(数据可以存储在一个数据文件中) (2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; (3)订票:(订票情况可以存在一个数据文件中) 可以订票,如果该航班已经无票,可以提供相关可选择航班; (4)退票:可退票,退票后修改相关数据文件; 订票的客户信息有姓名,证件号,订票数量及航班,订单要有编号。 (5)修改航班信息:当航班信息改变可以修改航班数据文件。 3、宾馆管理信息系统 任务:入住或预订客房时,用户要对客户管理模块或预订管理模块进行核对审查,并进行登记;客户换房时,要对换房信息进行查询和更新;客户退房时,要进行结算,并对更新客房信息。 主要功能模块: (1)登录模块:对用户身份进行验证,只有合法用户才能进入系统;

软件工程习题及参考答案

软件工程习题及部分参考答案 判断题 软件也会磨损和老化。(X) 完善性维护是提高或完善软件的性能。(√) 数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。 (X) 软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(X) 软件模块之间的耦合性越弱越好。(√) 如果通过软件测试没有发现错误,则说明软件是正确的。(X) 快速原型模型可以有效地适应用户需求的动态变化。(√) 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(√) 集成测试主要由用户来完成。(X) 确认测试计划应该在可行性研究阶段制定(X) 白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(X) 软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(√) 软件工程采用的生存周期方法就是从时间角度对软件的开发和维护这个复杂问题进行分解,将软件生存的时期分为若干阶段。(√) 系统流程图表达的是部件的信息流程,还表示对信息进行加工处理的控制过程。(╳) 模块越多,开发成本越小。(╳) 软件测试的目的就是证明软件没有错。(╳) PAD图在设置了五种基本的控制结构后,还允许递归使用。(√) 在进行了可行性分析后,需求分析就只需要解决目标系统的设计方案。(×) SA法是面向数据流,建立在数据封闭原则上的需求分析方法。(√) HIPO 法既是需求分析方法,又是软件设计方法。(√) 在面向对象的需求分析方法中,建立动态模型是最主要的任务。(×) 加工小说明是对系统流程图中的加工进行说明。(×) 判定表的优点是容易转换为计算机实现,缺点是不能够描述组合条件。(×) 需求分析的主要方法有SD 法、OOA 法及HIPO 法等。(×) 分层的DFD 图可以用于可行性分析阶段,描述系统的物理结构。(×) 信息建模方法是从数据的角度来建立信息模型的,最常用的描述信息模型的方法是E-R 图。(√) 用于需求分析的软件工具,应该能够保证需求的正确性,即验证需求的一致性、完整性、现实性和有效性。(√) PDL经常表现为一种"混杂"的形式,他不允许自然语言如英语的词汇与某种结构化程序设计语言(如Pascal,C,Ada等)的语法结构交织在一起.(X) 设计阶段的输出是编码阶段的输入.(√) 通过软件测试,可以发现软件中所有潜伏的错误.(X) 非结构化维护用于软件的配置中只有源代码维护.(√) 系统规格说明是系统分析和定义阶段生成的一种文档.(√) 数据流图的分解速度应保持较高.通常一个加工每次可分解为10~20个子加工.(X)

(上课)软件工程实验一

实验指导书课程名称软件工程导论 学院信息工程学院 班级 学号 姓名 2018年 2 月 24 日

系统简介:某单位准备开发一个购买办公用品与设备的总务办公管理系统。办公用品的购买申请由各科室提出,由负责总务工作的办公室统一收集。其中,购买申请的金额低于500元(含500元)可以由总务办公室直接审批,而高于500元的购买申请由机构主管领导审批,批准的购买申请形成采购清单由采购员负责购买,同时应记录每次实际购买清单,进行入账。在提出购买申请时要包括下述数据:申请单位、物品名称、物品数量、预计价格、物品用途等。每次购买完成后应记录以下数据:物品名称、物品数量、价格、总金额、购买日期、经办人等。 案例二:火车票预订系统 系统简介:某高校后勤集团为了学生寒暑假返乡,办理代学生预订返乡火车票事务,订票必须提前三天办理,后勤订票处提前三天向火车站办理购票事务。订票处使用一台微机处理订票后购票事务,学生订票一次称为一个事务,由订票员将其输入在微机中,系统核实订单后,将订票信息记录放在订票库中。系统每天打印预订三天的购票单,并更新订票库。 请对以上系统进行业务流程分析后,绘制出该系统的系统流程图。 实验原理: 系统流程图就是描绘物理系统的传统工具。就是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等等)。表达的就是信息在系统各部件之间流动的情况,而不就是对信息进行加工处理的控制过程。 系统业务流程图的符号:

基本符号 系统符号实验过程与结果: 一、操作步骤: 1.运行Microsoft Office Visio 2010

2.选择流程图中的基本流程图模板 3.用鼠标选拉图标进行绘图 二、实验结果:

软件工程实验报告

软件工程实验报告 Prepared on 22 November 2020

实验报告实验名称实验一:可行性分析试验报告评分 实验日期 2008 年 4 月 1 5 日指导教师张铁楠 姓名董晓光专业班级信息与计算科学0501 学号 21 一、实验名称 可行性分析试验报告 二、实验目的 根据软件工程国家文档规范和课题,撰写可行性分析报告文档。达到熟悉可行性分析方法和可行性文档规约的目的。 三、实验环境 1、硬件环境:显示器一台(分辨率为800*600),硬盘为80G,内存为512M,CPU为Pentium 2.66G。 2、软件环境:WORD2000。 四、试验步骤与内容 1. 引言 编写目的:本学生课程管理系统模块是为了实现各大高校对学生选课而设计的,通过试用本系统,可以更加有效的管理学生选课信息,其中包括课程基本信 息,课程信息并且具有查询课程信息,查询教师信息,选课、退选等功 能 项目背景:本系统属于高校学生信息管理系统中的学生选课管理模块,由管理系统总体设计人员提出,由本组成员联合开发,实现的是管理系统中关于学生 选课管理的子功能。 参考资料:参见《软件工程》、《管理信息系统》两书。 2.可行性研究的前提 要求:(1)功能:本系统主要针对各大高校选课这一块,学生通过登录,可以查 看各周课程基本信息、查看教师基本信息,并且通过必修和选 修分开,如果一天哪几节有必修课,而其它时间你可以进行选

修课选择,可以通过选课,学生选择自己需要的课程,并可以 退选,最后学生还可以打印课程表。 (2)性能:查询效率尽可能做到精准,信息维护功能做到简单易 用,不需过多对人员的培训。 (3)输入:对于查询功能,应做到可以单条件和组合条件输入;对 于维护功能,要有输入、修改学生信息和课程。 (4)输出:能按要求在显示器上显示所需内容并能打印成有条理的 表格。 (5)安全与保密:对于不同权限用户,设置不同权限,对重要数据 可以考虑加密存储。考虑到数据保存,条件允许的情况下 可以让系统定时自动保存,省去手工保存的繁杂程序。 (6)本模块由系统主界面调入,实现学生选课管理子功能。 (7)完成期限:1个月 (8)基本处理流程:(见最后一页) 条件、假定和限制: 开发时间:4月。 经费来源:个人筹集 最迟完成时间:2008年6月1日 决定可行性的主要因素: 资金到位 开发人员无较大变动 3.对现有系统的分析 现有系统为完全人工记录,设备落后,工作重复量大、枯燥,错误率高,查询复杂、花费时间长。 4.所建议技术可行性分析 本系统将大大改善数据处理速度,并且更加方便的对数据进行管理,同时可以减少人力资源的浪费以及工资支出。 采用建议系统可能带来的影响 只需添置低档计算机,如果条件允许可添加打印机以便查询能方便打印成 资料作为参考。 4.2.2对现有软件的影响

相关文档
最新文档