软件工程

软件工程
软件工程

为了更有效的开发与维护软件,软件工作者在20世纪60年代后期开始认为研究消除软件危机的途径,从而组

建形成了一门新兴的工程学科——计算机软件工程学。

2. 软件危机的介绍:

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

3. 软件危机主要有以下典型表现:

1对软件开发成本和进度的估计常常很不准确。

2用户对“已完成的”软件系统不满意的现象经常发生。

3软件产品的质量往往靠不住。

4软件常常是不可维护的。

5软件通常没有适当的文档资料。

6软件成本在计算机系统总成本中所占的比例逐年上升。

7软件开发生产率提高的速度跟不上应用迅速普及深入的趋势。

4. 产生软件危机的原因:

在软件开发和维护的过程中存在这么多严重的问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的

方法不正确有关。

5. 什么是软件工程:

总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技

术两方面研究如何更好的开发和维护计算机软件的一门新兴学

科。

6. 什么是软件工程:

软件工程是1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2)

研究1)中提到的途径。

7. 软件工程的7条基本原理:

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

2)坚持进行阶段评审。

3)实行严格的产品控制。

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

5)结果应能清楚的审查。

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

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

软件工程方法包含3个要素:方法、工具和过程。其中,方法是完成软件开发的各项任务技术方法,回答“怎样做”的问

题;工具是为运用方法而提供的自动的或半自动的软件工程支

撑环境;过程是为了获得高质量的软件所需要完成的一系列任

务的框架,它规定了完成各项目任务的工作步骤。

9. 传统方法学:

传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术来完成软件开发的各项任务,并使用适当的软件工

具或软件工程环境来支持结构化技术的运用。

10. 面向对象方法学的4个要点:

1)把对象作为融合了数据及在数据上的操作行为的统一的软件。

2)把所用对象都划分成类。每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的

定义。

3)按照父类与子类(基类和派生类)的关系,把若干个相关类组成一个层次结构的系统(类等级)。

4)对象彼此间仅能通过发送消息相互联系。

11. 什么是生命周期:

概括的说,软件生命周期由软件定义、软件开发和运行维护3个时期;软件定义时期的任务是:确定软件开发工程必须

完成的总目标;确定工程的可行性;导出实现工程目标应该采

用的策略及系统必须完成的功能;估计完成该项需要的资源和

成本,并且制定工程进度表。开发时期具体设计分为4个阶

段:总体设计,详细设计,编码和单元测试,综合测试。维护

时期的主要任务是使软件持久地满足用户的需要。

12. 生命周期每个阶段的基本任务:

1)问题的定义:

问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”通过对客户的访问调查,系统分析员扼要地

写出关于问题性质、工程目标和工程规模的书面报告,

经过讨论和必要的修改之后这份报告应该得到客户的确

认。

2)可行性研究:

这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”为了回答问题,系

统分析员需要进行一次大大压缩和简化了的系统分析和

设计过程,也就是在较抽象的高层次上进行的分析和设

计过程。

3)需求分析:

这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,

主要是确定目标系统必须具备哪些功能,在需求分析阶

段确定的系统逻辑模型是以后设计和实现目标系统的基

础,因此必须准确完整地体现用户要求。

4)总体设计:

这个阶段必须回答的问题是:“概括地说,应该怎样实现目标系统?”总体设计又称概要设计,设计多种方

案,制定出实现最佳方案的详细计划。

5)详细设计:

总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计阶段的任务就是把解法具体化,也

就是回答下面这个关键问题:“应该怎样具体的实现这个

系统呢?”。

6)编码和单元测试:

这个阶段的关键人物是写出正确的容易理解。容易维护的程序模块。

7)综合测试:

这个阶段的关键人物是通过各种类型的测试使软件达到预定的要求。

8)软件维护:

维护阶段的关键任务是,通过各种必要的维护活动使

系统持久地满足用户的要求,分为4类维护:改正性维

护,也就是诊断和改正正在使用过程中发现的软件错

误;适应性维护,即修改软件以适应环境的变化;完善

性维护,即根据用户的要求改进或扩充软件使它更完

善;预防性维护,即修改软件,为将来的维护活动预先

做准备。

13. 软件过程:

软件过程是为了获得高质量软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤。过程定义了运用方

法的顺序。应该交付的文档资料、为保证软件质量和协调变化

所需要采取的管理措施,以及标致软件开发各个阶段任务完成

的里程碑。

14. 可行性研究的目的:

可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

15. 可行性分析:

至少应该从这3个方面研究每种解法的可行性。

1)技术可行性;2)经济可行性;3)操作可行性;

16. 可行性研究的过程:

1)复查系统规模和目标;

2)研究目前正在使用的系统;

3)导出新系统的高层逻辑模型;

4)进一步定义问题;

5)导出和评价供选择的解法;

6)推荐行动方针;

7)草拟开发计划;

8)书写文档提交审查;

17. 系统流程图:

系统流程图是概括地描述物理系统的传统工具。

18. 数据流图:

数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具

体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑

过程。数据流图是系统逻辑功能的图形表示,即使不是专业的

计算机技术人员也容易理解它,因此是分析员与用户之间几号

的通信工具。此外,设计数据流图时只需要考虑系统必须完成

的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,

所以它也是今后进行软件设计的很好的出发点。

19. 数据字典:

数据字典是关于数据的信息,也就是对数据流图中包含的所有元素的定义的集合。

20. 数据字典的内容:

一般来说,数据字典应该由以下4类元素的定义组成。

1)数据流;2)数据流分量;3)数据存储;4)处理。

21. 货币的时间价值:

设利率为I,如果存入P元,则N 年后得到的钱数为

F=P(1+I)n

22. 需求分析:

需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。

23. 需求分析的任务:

需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完

整、准确、清晰、具体的要求。

24. 分析建模:

所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的失眠描述。通常,模型由一组图形符

号和组织这些符号的规则组成。结构化分析实质上是一种创建

模型的活动。需求分析过程应该建立3种模型,它们分别是数

据模型,功能模型和行为模型。

25. 实体-联系图:

1)数据对象:数据对象是软件必须理解的复合信息的抽象。

2)属性:属性定义了数据对象的性质。

3)联系:客观世界中的事物彼此间往往是有联系的。

4)实体-联系图的符号:通常使用实体-联系图来建立数据模型。

26. 第一范式:

每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。

27. 第二范式:

满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。

28. 第三范式:

符合第二范式的条件,每个非关键字属性都仅由关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性

的进一步描述(即一个非关键字属性值不依赖于另一个非关键

字属性值)。

29. 从哪些方面验证软件需求的正确性:

1)一致性2)完整性3)现实性4)有效性。

30. 形式化说明技术:

按照形式化的程度,可以把软件工程使用的方法划分成非

形式化、半形式化和形式化3类。

31. 形式化方法:

所谓形式化方法,是描述系统性质的基于数学的技术,也就是说,如果一种方法有坚实的数学基础,那么它就是形式

化。

32. 总体设计的目的:

总体设计的基本目的就是回答“概括地说,系统该如何实现?”这个问题,因此,总体设计又称为概要设计或初步设

计。

33. 设计过程:

总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。

34. 模块化:

模块是由边界元素限定的相邻元素的顺序,而且有一个总体标识符代表它。模块化就是把程序划分成独立命名且可独立

访问的模块,每个模块完成一个子功能,把这些模块集成起来

构成一个整体,可以完成指定的功能满足用户的需求。

35. 抽象:

人类在认识复杂现象的过程中使用的最强有力的思维工具就是抽象。

36. 详细设计:

详细设计阶段的任务还不是具体的编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际代码。

37. 程序流程图:

程序流程图又称为程序框图,它是历史最悠久。使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方

法。

38. 实现:

通常把编码和测试统称为实现。

39. 编码:

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

40. 启发规则:

1)改进软件结构提高模块独立性

2)模块规模应该适中;

3)深度表示软件结构中控制的层数,它往往能粗略地标志一

个系统的大小和复杂程度。

是软件结构内同一个层次上的模块总数的最大值。

是一个模块直接控制(调用)的模块数目。

一个模块的扇入表明有多少个上级模块直接调用它。

)模块的作用域应该在控制域之内

)力争降低借口的复杂程度。

)设计单入口单出口的模块

)模块功能应该可以预测。

41. 软件测试的目标:

1)测试是为了发现程序中的错误而执行程序的过程。

2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。

3)成功的测试是发现了至今为止尚未发现的错误测试。

42. 模块测试:

测试步骤:

1)模块测试:在设计得好的软件系统中,每个模块完成

一个清晰定义的子功能,而且这个子功能和同级其他模块的功

能之间没有相互依赖关系。

试是把经过单元测试的模块放在一起形成一个子系统来测试。

:系统测试是把经过测试的子系统装配成一个完整的系统来测试。

:验收测试把软件作为单一实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据(系统将来要

处理的信息)进行测试。

5)平行运行:

1.可以在准生产环境中运行新系统而又不冒风险

2.用户能有一段熟悉新系统的时间。

3.可以验证用户指南和使用手册之类的文档。

4.能够以准生产模式对新系统进行全负荷测

试,可以用测试结果验证性能指标。

43. 白盒测试技术:

它的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。

一。逻辑覆盖:有选择地执行程序中某些最有代表性的通路是对穷尽测试的唯一可行的替代办法。

1.语句覆盖:为了暴露程序中的错误,至少每个语句应该

执行一次。

2.判定覆盖:判定覆盖又叫分支覆盖,它的含义是,不仅

每个语句必须至少执行一次,而且每个判定的每种可能的结果

都应该至少执行一次,也就是每个判定的每个分支都至少执行

一次。

3.条件覆盖:条件覆盖的含义是,不仅每个语句至少执行

一次,而且使判定表达式中的每个条件都去到各种可能的结

果。

4.判定/条件覆盖:既然判定覆盖不一定包含条件覆盖,条

件覆盖也不一定包含判定覆盖,自然会提出一种能同时满足这

两种覆盖标准的逻辑覆盖。

5.条件组合覆盖:条件组合覆盖是更强的逻辑覆盖标准,

它要求选取足够多的测试数据,使得每个判定表达式中条件的

各种可能组合都至少出现一次。

44. 黑盒测试技术:

它是把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程。

45. 软件可靠性:

软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功的运行的概率。

46. 软件维护的定义:

所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

47. 面向对象方法学的要点:

面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认

识世界解决问题的方法与过程,也就是使描述问题的问题空间

与实现解法的解空间在结构上尽可能一致。

48. 对象与传统的区别:

对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体。必须发消息请求对

象主动地执行它的某些操作。处理它的私有数据,而不能从外

界直接对它2的私有数据进行操作。

49. 面向对象的方法学可以用以下方程:

OO=objects+classes+inheritance+communication with messages

50. 概念:

1.类:就是对具有相同数据和相同操作的一组相似对象的定义。

2.实例:就是由某个特定的类所描述的一个具体对象。

3.消息:就是要求每个对象执行在定义它的那个类中所定

义的每个操作的规格说明。

4.方法:就是对象所能执行的操作,也就是类中所定义的服务。

5.属性:就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。

6.封装:就是信息隐藏,通过封装对外界隐藏了对象的实现细节。

7.继承:是指能够直接获得已有的性质和特征,而不必重复第一他们。

8.多态性:是指子类对象可以像父类对象那样使用。同样

的消息既可以发送给父类对像也可以发送给子类对象。

9.重载:有两种重载,函数重载是指在同一作用域内的若

干个参数特征不同的函数可以使用相同的函数名字;运算重载

是指同一个运算符可以施加于不同类型的操作数上面。

51. 面向对象建模:

用面向对象方法开发软件,通常需要建立3种形式的模型,它

们分别是描述系统数据结构的对象模型,描述系统控制结构的

动态模型和描述系统功能的功能模型。

软件工程常用术语四

database数据库? (1) 根据为一个或多个应用程序提供服务的方案存储的相关数据(带有冗余控制)的集合。(2) 存储在系统中的所有数据文件。(3) 存储在一起并由数据库管理系统管理的数据集。 database management system (DBMS)数据库管理系统? 通过为有效访问、完整性、恢复、并行控制、隐私和安全性提供集中控制、数据独立和复杂物理结构等服务来管理数据的计算机程序。 datatype数据类型? 缺乏标识并且操作不带有副作用的一组值的描述符。数据类型包括初始预定义类型和用户可定义类型。预定义类型包括数字、字符串和时间。用户可定义类型可包括各种枚举。 DBA? 数据库管理员 DBCS? 双字节字符集 DBMS? 数据库管理系统 DCE? 分布式计算环境 DCOM? 分布式对象模型 (Microsoft) deadlock死锁? 两个独立控制线程彼此阻塞,相互等待对方采取操作,这种状态称为死锁。死锁常常是由于添加了避免竞争状态的同步机制而引起的。 decision rule决策规则?

指一组人员同意就某一议题给出集体决策的规则或技术,例如多数票决、一致通过、自发协议等。 defect缺陷? 缺陷是已交付产品中的异常情况或瑕疵。缺陷可以是在生命周期的初期发现的遗漏和缺点,也可以是已准备测试或运行的较成熟软件中存在的故障征兆。缺陷可以是您要跟踪并解决的任何种类的问题。另请参见变更请求。 defect checklist缺陷检查表? 某类指定的工件中常见缺陷的列表。 defect density缺陷密度? 每一个单位数量(每页代码或每千行代码)的被评审工作产品中所发现的缺陷的数量。 defect log缺陷日志? 见"问题日志"。 defining model定义模型? 储存库所基于的模型。任意数量的存储库都可以具有相同的定义模型。 delegation委托? 作为对于一个消息的响应,一个对象可以向另一对象发出消息的能力。委托可用作继承的备选方案。对比:(继承 inheritance)。 deliverable可交付工件? 过程中生成的、要交付给客户或其他涉众的具有值、材料或其他信息的输出。 de-marshal串行化? 为使对象可编写为字节流而对对象进行的解构。是串行化 (flatten) 和串行化(serialize) 的同义词。 demilitarized zone (DMZ)隔离带?

软件工程师职业分析

软件工程师职业分析 首先什么是软件工程师?软件工程师主要进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估。软件工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。 软件工程师是IT行业需求量最大的职位,稳居IT行业职位需求TOP10的第一位(第二位是高级软件工程师)。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)、.NET平台技术、C#、C/S B/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、STRUTS等前沿技术。 除此之外,关于网络工程和软件测试的其他技术也要有所涉猎,以利于操控全局。软件工程师可谓是软件项目开发的掌舵者。一名优秀的软件工程师应当具有较强的逻辑思维能力,对于技术的发展有敏锐的嗅觉。虽然要求技术全面,但无须偏执于门门技术都精通,任何软件工程师都有自己的技术特长和偏向,对于自己手中的技术,可有精通-掌握-熟悉-了解之分,根据工作需要和职业发展的具体情况来划分。 从最新的数据看出目前软件行业成为目前最热的行业之一,3G工程师、嵌入式工程师、Java软件工程师、. net软件工程师的开发前景怎么样,成为我们即将毕业的大学生们最关心的问题,下面笔者就从这四个方面分析软件开发工程师的就业前景,参考来源《2013-NIIT软件行业分析》; 3G工程师就业前景分析:中国被世界公认为全球最大的3G移动市场,但是,3G相关的人才却严重失调。专业从事3G应用软件开发从业人员不足千人,据工信部预测,仅2010年,中国3G人才市场缺口就在100万以上,其中3G软件工程师缺口就在50万左右。 3G人才短缺现状,使得3G行业已经成为新的高薪行业,基于3G软件开发人员变得格外抢手。人力资源专家表示,3G软件开发是未来几年最热门和最受

人事管理系统 软件工程 课程设计 可行性研究报告

可行性研究报告 1.引言 1.1编写目的 21世纪是知识经济的时代,是人才竞争的时代,随着21世纪的到来,人类已步入信息社会,信息产业正成为全球经济的主导产业。信息自动化的作用也越来越大,特别是各行业的管理领域,智能化信息处理已是提高效率、规范管理、客观审查的最有效途径。人事管理系统在当今社会中是一个不可或缺的、必备的工具软件。然而,一个好的高质量的软件还是少之又少的。并未根本的实现智能化。亦不利于实现科学的管理、体现领导者的决策作用。因此,在本软件设计中心准备开发一个功能完善的人事管理系统。 人事管理系统是一个公司不可缺少的部分,它的内容对于公司的决策者和管理者来说都至关重要, 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 1.2背景 A. 开发的软件系统的名称:**人事管理系统 B. 本项目的任务提出者:**有限责任公司 开发者: 用户:**有限责任公司 实现该软件的计算中心:个人计算机,Sql Server ,WindowXP,Win7操作 系统; C. 该软件系统同其他系统或其他机构的基本的相互来往关系:该软件系统与操作系统、SQL Server数据库管理系统 1.3定义 人事管理: 所谓人事管理,是指以从事社会劳动的人和有关的事的相互关系为对象,通过组织,协调,控制,监督等手段,谋求人与事以示共事人之间的相互适应,实现充分发挥人的潜能,把事情做得更好这一目标所进行的管理活动。Personnel_Management人事管理系统 1.4参考资料 《软件工程》(第二版) 邓良松编著西安电子科技大学出版社 《软件工程导论》张海藩编著,清华大学出版社,2006年10月版,北京《软件工程基础》汤淮西安交通大学出版社 《软件开发技术》倪秉营电子科技大学出版社 《软件工程》张权范清华大学出版社

软件工程_系统设计与设计模式课程提纲

系统设计与设计模式课程提纲 第一章 软件工程导论 一、工程的概念: ?工程简而言之就是多人参与并有计划、有步骤地完成一项任务的活动 ?工程强调:目的 / 计划 / 步骤 二、软件发展与软件工程起源 ?软件的发展四个阶段: –1950年前后到1960年前后,程序设计阶段; –1960年前后到1970年前后,软件系统阶段; –1970年前后到1980年前后互联网络兴起,软件工程阶段; –1980年前后到现在,分布式软件工程阶段; ?1968年,北大西洋公约组织的计算机科学家召开国际会议,第一次提出软件危机的概念,产生了应对软件危机的对策---软件工程。 三、工程策略 ?任何工程都有如下的策略:分而治之 / 复用 / 折衷优化 / 检验并保证质量 ?软件工程也会充分利用这些策略 四、软件工程的目标 ?软件工程的目标是提高软件的质量与生产率,最终实现合格的软件。 质量是软件需求方最关心的问题 / 生产率是软件供应方最关心的问题。 五、软件工程的准则 生命周期计划 / 阶段评审 / 变更控制 / 改进程序设计技术 / 控制人员规模 / 定义评审 / 不断改进软件工程 六、软件工程的组成 ?人员管理 / 项目管理 / 过程管理 七、三种过程模型 ?瀑布模型 / 演化模型 / 迭代模型 ?过程模型中各个阶段的任务和描述: –可行性分析:做还是不做 –需求分析:都有什么功能 –概要设计:供有多少子功能 –详细设计:子功能怎么实现 –编码:子功能实现了吗 –测试:功能是否完备 –部署:需要多少设备和软件的支持 –维护:软件运行是否正常 第二章 软件项目管理 一、项目管理的定义 ?项目管理分三个阶段:制定项目计划 / 管理和跟踪项目 / 结束项目 ?项目管理的时间、范围、费用 ?项目的轮廓定义:目标 / 前提 / 限制 / 范围

人事管理系统-软件工程实验报告

软件工程实验报告 课题:人事管理系统学生姓名: 学号: 专业班级: 指导教师: 同组成员:

需求分析 一、实验目的 掌握软件需求的结构化分析方法。 二、实验任务与实验要求 导出系统详细的逻辑模型,这里用数据流图来表示。 三、实验内容 (1)功能分析 经过初步分析“人事管理系统”应该具备以下主要功能。 1、职员个人信息资料的增加、修改和删除; 2、职员的考勤录入和查询; 3、职员工资结算和查询; 4、人事管理人员的变化和操作授权; 由于是使用计算机管理,就带来了新的功能:用户登陆、操作人员的管理、基本数据的维护、由数据安全产生的数据备份与恢复。 (2)、关系模式 在满足函数依赖和无损连接的基础上,使数据的设计更加合理。在本系统中只有3个实体,那就是普通员工、管理员、超级管理员,他们权限的不听通过角色来区分。在整个系统中超级管理员只有一人,管理员二人。一个人只可以在普通员工、管理员、超级管理员中处于一个角色,而不可以兼任。其具体的关系模式如下: 普通员工(员工号,密码,姓名,性别,出生年月,身份证号,联系电话,就职时间) 管理员(管理员号,密码,姓名,性别,出生年月,身份证号,联系电话,就职时间) 超级管理员(超级管理员号,密码,姓名,性别,出生年月,身份证号,联系电话,就职时间) 工资(员工号,时间,基本工资,提成,奖金) 考勤(员工号,时间,迟到,早退,管理员号) 注意:“”表示主码,“”表示既是主码又是外码。 E-R图如下所示

数据字典设计: 为了方便数据库的管理和维护,本系统只设计一个数据库workers.mdb,其中包含worker(员工信息表)、manager(考勤信息表)、booklist(工资信息表) 表1-1 worker(员工信息表)各字段设计 表1-2 monit (考勤信息表)各字段设计

软件工程课后习题答案

第一章 1.1举出至少5个例子来说明“意外效应法则”在计算机软件方面的应用。 答:典型的例子包括使用“数字汽车仪表板”的软件,赋予高科技,高品质的图像的软件;如广泛的消费类电子产品的软件;个人电脑,工业仪器仪表和机器的软件。软件分化出的在电子商务方面的应用。 1.2举例说明软件对社会的影响(包括正面影响和负面影响)。 答:这是一个很好的课堂讨论问题(如果时间允许),而不是专注于老生常谈的(但很重要)隐私问题,生活质量等问题。您可能想要讨论关于”技术恐惧“方面的问题,软件也许会使它恶化但也可能减少”技术恐惧“。另一个有趣的方面是使用诺依曼的“风险”列在中做重点讨论。你也可以考虑基于软件的“现金”经济,新模式的互动娱乐,虚拟现实,电子商务等方面来思考软件对社会的影响。 1.3针对1.1节提出的5个问题,请给出你的答案,并与同学讨论。 答:软件需要如此长的开发时间: a)设施不上线 b)开发工具并不如预期般运作 c)客户提出的新要求,需要重新设计和返工 d)产品依赖于政府的规定,被意外更改。 e)严格的要求,与现有系统的兼容性需要超过预期更多的测试,设计和实现。 f)多个操作系统下运行的任务需求比预期需要更长的时间。 g)软件项目风险管理比预期需要更多的时间。 h)依赖的技术仍处于开发阶段,从而延长日程安排。 开发成本高: a)比当时预期低得令人无法接受的质量,需要进行更多的测试,设计和实施工作。 b)制定了错误的软件功能需要重新设计和实施。 c)开发错误的用户界面,而导致重新设计和实施。 d)开发了不需要的额外的软件功能而延长了开发日程安排。 在将软件交付顾客使用之前,我们无法找到所有错误: a)产品依赖于政府监管,意外而改变。 b)产品技术标准草案,会意外更改。 c)有时会在项目后期添加新的开发人员。 d)因为团队内的冲突有时会导致沟通不畅,而产生糟糕的设计。 e)破坏高效调度产生的项目管理成果和无效的规划 f)有时装备部件质量差,导致额外的测试,设计和集成工作和管理额外的客户关系。 软件开发和维护的过程仍旧难以度量: a)有时该项目的目的是不明确。 b)有大量的业务所涉及的风险。 c)如果产品内置没有装好。 d)我们需要不断检讨我们的工作。 e)进行维护检查的时间。 f)在整个软件开发过程中要彻底组织项目团队。 1.4在交付最终用户之前,或者首个版本投入使用之后,许多应用程序都会有频繁的变更。

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

软件设计模式大作业样例

设计模式大作业 课程名称:软件设计模式 设计题目:公司经费申请 院系:计算机科学与信息工程学院学生姓名: 学号: 专业班级:软件工程13-1 指导教师:高原 2016年6月

软件设计模式任务书

目录 一、系统目标 (1) 1. 设计目的 (1) 2. 需求描述 (1) 二、系统模块选择 (1) 1. 需求分析 (1) 2. 选用设计模式 (2) (1)模板方法模式 (2) (2)职责链模式 (2) (3)观察者模式 (3) 三、系统设计 (4) 1. 系统功能模块设计 (4) 四、系统实现 (5) 1.模板方法模块及其实现类 (5) 2.职责链模块及其实现类 (6) 3.观察者模块及其实现类 (9) 4.事件处理程序 (10) 五、系统设计总结 (11) 1. 实现的功能和优点 (11) 2. 不足之处 (12) 3. 完成心得 (12) 六、参考文献 (12) 参考文献 (12)

一、系统目标 1.设计目的 通过本课程设计,加深对软件设计课程的理解,熟练掌握和巩固所学的各种设计模式,培养自我动手、查阅技术文献、资料、手册以及编写技术文献的能力。通过运用设计模式来解决实际系统中遇到的问题,从而具备利用计算机编程分析解决综合性实际问题的初步能力。 2.需求描述 本系统的主要目的在与应用设计模式解决公司经费申请问题,可以了解申请经费的具体流程为申请人先填写申请单,然后交给领导审批,如果申请批准下来,领导会通知申请人审批通过,然后申请人去财务领取费用,财务部给于其拨款,如果没有批准下来,领导会通知申请人审批未通过。不同级别的领导,对于审批的额度是不一样的,比如,项目经理只能审批500元以内的申请;部门经理能审批1000元以内的申请;而总经理可以审核3000元以内的申请,否则不通过。系统中总共用到三种设计模式,分别是模板方法模式,职责链模式,观察者模式。 模板方法模式定义了一个操作中算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。申请经费的具体流程是固定的,写申请单,审核,得到通知这三个过程,只是审核过程不同。职责链模式鉴于不同级别的领导,对于审批的额度是不一样,使其各自的职责权限更加清晰明了。观察者模式是一种一对多依赖关系,一个对象状态发生改变时,其相应依赖对象得到通知并自动更新。 二、系统模块选择 1. 需求分析 根据问题的描述,可以确定系统的大致业务逻辑。如下:需要申请活动费用,按照固定工作流程进行申请,给出申请金额,由领导根据各自的职责权限进行审核,并将结果告知申请人,财务部根据结果给予拨款。将结果返回到客户端,呈现给用户。

软件工程课程设计报告——人事管理系统

软件工程课程设计 题目人事管理系统 系计算机系 专业班级软件工程(动画方向)(2)班 学生姓名贾秋洪 学号20082358069 指导教师姜青山 2010 年6 月18 日 1.课程题目 人事管理系统设计 2.概述 2.1本课题的来源 A公司是一家以寿险营销为目的的寿险公司,公司员工众多业务流量大,为了方便管理,我制作了一个人事管理系统。主要

通过员工基本信息录入、修改、查询、删除以及员工考勤等方面来对员工综合考评。以便对员工发放工资进行合理分配。这样能提高领导的人事管理水平还能提高员工的积极性。通过现代计算机技术与企业管理相结合,实现人事管理系统的科学化、信息化、现代化,并且适合一般人群使用。 企业人事管理是相对企业内部员工的管理。集人员、考勤、工资、员工培训、系统功能等于一体的大型管理系统,为公司在人事管理等方面提供极大的方便。本软件是以中小型企业为背景而设计开发的,界面美观、使用方便。本系统主要以人员管理、考勤管理、统计分析管理、工资核算等,是企业人事管理必不可缺的好帮手。 2.2本课题目的、实现功能与预期成果 2.2.1目的 目前市面上流行的人事管理系统不少。但是,对于A公司来说,不需要大型的数据库系统。只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统。 2.2.2实现功能 能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方

面的工作,基本满足人事日常业务的需要。 2.2.3预期成果 所做出的人事管理系统能让A公司管理层在操作简单的前提下并有效的提高对该公司的人事管理,并通过该系统提高员工的能力。尽量使本系统做到是一个科学化、信息化、简单使用的人事管理系统。 3.系统分析 3.1系统调研 正式开发管理信息系统之前进行调研是非常必要的,必要对现行系统进行详细的调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,新系统的开发却失败的悲剧发生。 3.2可行性分析概述 可行性分析是在A公司的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。 可行性分析一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是否可行。 可行性分析阶段的主要工作包括以下几个方面:

软件工程的几种定义

一、给出n种常用的“软件工程”、“软件质量”的定义并进行适当的解释。阅读相关的文章, 对文章进行总结,概括其主要结论并简述您自己的观点。每项至少1页A4纸。 软件工程: 几种软件工程的定义: Fritz Bauer在NATO会议上给出的定义:软件工程就是建立与使用一套合理的工程原则,从而经济地获得可靠的,可以在实际机器上高效运行的软件。 IEEE在软件工程术语汇编中的定义:软件工程就是(1)将系统化的、规范化、可量化的方法应用于软件的开发、运行与维护,即将工程化方法应用于软件。(2)在(1)中所述方法的研究。 《计算机科学技术百科全书》中的定义:软件工程就是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 百度百科:软件工程(Software Engineering,简称为SE)就是一门研究用工程化方法构建与维护有效的、实用的与高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济与社会的发展,使得人们的工作更加高效,同时提高了生活质量。 上面就是软件的几个定义,其实概括起来就就是软件加工程。就就是把工程学的思想应用于软件,但就是软件工程又不同于其她的工程,它有它特别的地方。采用工程的概念、原理、技术与方法来开发与维护软件,把经过时间考验而证明正确的管理技术与当前能够得到的最好的技术方法结合起来,这就就是软件工程。随着信息化的不断扩大,软件的范围已经越来越广了,越来越大了。所以有一个良好的软件开发方法,能有效的提高软件的开发效率。软件工程就就是研究这一方面的。如同土木工程,建筑工程一样,软件也需要系统化,规范化,可量化的进行开发。但就是软件开发又与建筑工程有不一样的地方。如果使用双倍的人力建筑工程可能可以将工程期提早一半完成,例如两个人砌一个人的砖就是不就是快了一倍。但如果说使用双倍的人数就能将软件工程的开发周期提高一倍的话,那就是不可能的。软件的开发过程中,需要团队人员不断的沟通。我觉得软件开发过程中需要的合作沟通远远比建筑工程需要的多。所以说团队的人越多,花在沟通上的时间也会越多,人均的效率反而可能会降低。 软件质量: 字典中队质量的定义就是:“某一事物的特征或属性”。作为一个事物的属性,质量指的就是可测量的特征-与已知标准可以进行比较,如长度、颜色、电气特性、课延展性等等。但就是软件在很大程度上就是一种知识实体,其特征的定义远比物理对象要困难得多。然而却就是存在程序特征的测量。这些属性包括循环复杂度,内聚性,功能点数量、代码行数、以及其她很多属性。当根据对象的可测量特征考察一个对象时,可以有两种不同的质量,设计质量与一致性质量。 软件质量就是一模糊的、捉摸不定的概念。我们常常听说:某某软件好用;某

软件工程就业前景

软件工程就业前景

我国软件出口规模达到215亿元软件从业人员达到72万人在中国十大it职场人气职位中软件工程师位列第一位,软件工程人才的就业前景十分乐观. 软件工程是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件工程师人才的培养给予了非常优惠的政策.在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人员的就业前景十分乐观.以下就是软件工程就业前景介绍;软件工程就业前景时间:2011-6-30 来源:中国药业人才网点击量:2919 编辑:末末我国软件出口规模达到215亿元,软件从业人员达到72万人,在中国十大it职场人气职位中,软件工程师位列第一位,软件工程人才的就业前景十分乐观. 软件工程是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件工程师人才的培养给予了非常优惠的政策.在中国十大IT职场人气职位中,软件工程师位列第一位,软件工程人员的就业前景十分乐观.以下就是软件工程就业前景介绍. 一、软件工程专业就业前景之可视化编程 掌握程序设计方法及可视化技术,精通一种可视

化平台及其软件开发技术.获取delphi程序员系列、java初级或vb开发能手认证. 二、软件工程专业就业前景数据库管理 能应用关系范式进行数据库设计,精通sql语言,胜任数据库服务器管理与应用工作.获取oracle数据库管理或sql server数据库应用或windows 三、 软件工程专业就业前景计算机办公应用精通办公自动化应用与管理,熟悉服务器的安装、管理和维护,基于应用服务器的相关服务和软件系统,具备对服务器的网络安全设置、邮件、网页发布、ftp、oa、bbs等系统的应用和维护能力. 就业方向:企业、政府、社区、各类学校等系统管理 三、软件工程专业就业前景之软件工程专业大学排名 1、南京大学 2、清华大学 3、复旦大学 4、武汉大学 5、浙江大学 6、上海交通大学7 、中国科学技术大学8、中山大学9、华中科技大学10、哈尔滨工业大学11、陕西师范大学12、吉林大学13、东北师范大学14、北京师范大学

软件工程课程设计报告人事管理系统

软件工程课程设计报告人事管理系统

软件工程课程设计 题目人事管理系统 系计算机系 专业班级软件工程(动画方向)(2)班 学生姓名贾秋洪 学号 2358069 指导教师姜青山 年 6 月 18 日 1.课程题目 人事管理系统设计 2.概述 2.1本课题的来源 A公司是一家以寿险营销为目的的寿险公司,公司员工众多业务流量大,为了方便管理,我制作了一个人事管理系统。主要经

过员工基本信息录入、修改、查询、删除以及员工考勤等方面来对员工综合考评。以便对员工发放工资进行合理分配。这样能提高领导的人事管理水平还能提高员工的积极性。经过现代计算机技术与企业管理相结合,实现人事管理系统的科学化、信息化、现代化,而且适合一般人群使用。 企业人事管理是相对企业内部员工的管理。集人员、考勤、工资、员工培训、系统功能等于一体的大型管理系统,为公司在人事管理等方面提供极大的方便。本软件是以中小型企业为背景而设计开发的,界面美观、使用方便。本系统主要以人员管理、考勤管理、统计分析管理、工资核算等,是企业人事管理必不可缺的好帮手。 2.2本课题目的、实现功能与预期成果 2.2.1目的 当前市面上流行的人事管理系统不少。可是,对于A公司来说,不需要大型的数据库系统。只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统。 2.2.2实现功能 能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方

面的工作,基本满足人事日常业务的需要。 2.2.3预期成果 所做出的人事管理系统能让A公司管理层在操作简单的前提下并有效的提高对该公司的人事管理,并经过该系统提高员工的能力。尽量使本系统做到是一个科学化、信息化、简单使用的人事管理系统。 3.系统分析 3.1系统调研 正式开发管理信息系统之前进行调研是非常必要的,必要对现行系统进行详细的调查,明确用户需求,保证开发的新系统的功能与用户的要求相吻合,避免耗费大量的人力、物力、财力,新系统的开发却失败的悲剧发生。 3.2可行性分析概述 可行性分析是在A公司的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。 可行性分析一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是否可行。 可行性分析阶段的主要工作包括以下几个方面:

软件工程作业(答案参考)

软件工程第一次作业 1)软件工程适用范围? 答:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。 2)软件工程如何控制系统开发的复杂性的? 答:可理解性(understandability)。系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。 3)以你的经验,举例说明一个成熟的软件通常采用什么方法来适应现实世界的变化的?答:以猎豹游览器为例,开始软件投入市场公测,软件自带收集错误报告的程式,当遇到问题软件错误,会将相关信息反馈到接受错误信息的服务器,已方便程序员及时发现问题加以修复,修复完成后提供程序更新,循环此法提供软件运行稳定性,另外还有用户反馈的相关功能,对软件的建议也会收集到服务器,按实用性需求程序员可在原有程序上开发调整更适合用户使用的程序。 4)假设某软件公司,能为同一个用户开发两个不同层次的软件:一个层次的软件功能非常强大,在满足用户所有需求的基础上,还能提供大大超过用户需求的其他更多更强的功能;另一个层次的软件仅仅能满足用户需求,但没有提供其他额外的功能。请问如果你是项目负责人,你会选择为客户开发那个层次的软件? 答:我会选择仅仅满足用户需求的软件。因为太多的功能,相对于非专业的人员,在用户体验上可能会造成困扰,太多的功能会导致难以操作。而且功能强大的软件还会给用户费用上带来不必要的投入,软件是以人为本,方便用户工作,达到提高工作效率的目的。若然日后此用户需要更多功能的时候,我们还是可以向其软件公司提供升级功能解决用户需求。

软件工程师详细介绍

软件工程师 软件工程师 从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。 职位定义 负责产品的软件研发,承担软件设计、代码编写、软件测试方案制订、代码调试和测试等。负责产品软件的客制化工作,按照客户需求定制软件用户界面,定制驱动程序,开发安装程序等。 职位分类 根据工作内容,软件工程师可有多种分类,如应用系统工程师、系统架构师分析师、系统集成和测试工程师、嵌入式软件工程师、数据库软件工程师等等。 工作内容 1、指导程序员的工作; 2、参与软件工程系统的设计、开发、测试等过程; 3、协助工程管理人保证项目的质量; 4、负责工程中主要功能的代码实现; 5、解决工程中的关键问题和技术难题; 6、协调各个程序员的工作,并能与其它软件工程师协作工作。 从业要求 1、计算机相关专业大学本科以上学历,具有扎实的计算机基础理论知识; 2、精通C/C++、Java语言,具有丰富的Unix/Linux系统下开发经验;

3、精通Perl、Python、PHP、Shell等其中一种语言; 4、有一定的算法基础,具有较强的独立解决问题能力; 5、两年以上业界工作经验,具有Web应用开发经验者优先; 6、有大容量、高性能、分布式系统的设计开发经验者优先; 7、具有很强的学习能力和对新技术的追求精神; 8、具有良好的中英文沟通能力,具有项目管理经验者优先; 9、认同客户第一、团队合作、拥抱变化、诚信、激情、敬业的企业价值观。 优秀者特质 精通Java SE和Java EE技术,包括Servlet/JSP、Applet、JDBC、EJB、Web Service等。掌握面向对象的分析和设计技术,包括设计模式。能够整合企业管理理念、业务流程、基础数据、人力物力、计算机硬件和软件等众多企业资源,并应用ERP系统针对企业资源进行管理。 职位背景、现状和前景 当今社会不论什么职业的都需要一个不断学习的环节,软件工程师也一样。虽然软件工程师的工作不同于程序员但是一个软件工程师其前身必定是一个优秀的程序员,软件的开发工具、开发技术在不断地发展。在校学生所能学到的东西很难跟得上发展的需要但是也不能说那些东西完全没有用,只有在完全理解了相应的基本技能之后你才能很轻松地掌握新的技能,软件技术都是一个循序渐进的过程。所以学好学校所能提供的专业课程是相当重要的。IT行业的平稳增长必然会带来软件工程师需求的增长,目前随着IT产品出现的技术融合,软件行业需要的也是复合型人才,软件工程师需要掌握更多的编程语言。 “做软件的人必须要随时充电,不然的话肯定会被淘汰。”智联招聘顾问郝健表示。 软件工程师理想的状态是走向软件架构师、项目经理、研发经理等职位。“薪酬水平肯定是

人事管理系统软件工程实验报告

软件工程实验报告课题:人事管理系统学生姓名: 学号: 专业班级: 指导教师: 同组成员:

需求分析 一、实验目的 掌握软件需求的结构化分析方法。 二、实验任务与实验要求 导出系统详细的逻辑模型,这里用数据流图来表示。 三、实验内容 (1)功能分析 经过初步分析“人事管理系统”应该具备以下主要功能。 1、职员个人信息资料的增加、修改和删除; 2、职员的考勤录入和查询; 3、职员工资结算和查询; 4、人事管理人员的变化和操作授权; 由于是使用计算机管理,就带来了新的功能:用户登陆、操作人员的管理、基本数据的维护、由数据安全产生的数据备份与恢复。 (2)、关系模式 在满足函数依赖和无损连接的基础上,使数据的设计更加合理。在本系统中只有3个实体,那就是普通员工、管理员、超级管理员,他们权限的不听通过角色来区分。在整个系统中超级管理员只有一人,管理员二人。一个人只可以在普通员工、管理员、超级管理员中处于一个角色,而不可以兼任。其具体的关系模式如下: 普通员工(员工号,密码,姓名,性别,出生年月,身份证号,联系电话,就职时间) 管理员(管理员号,密码,姓名,性别,出生年月,身份证号,联系电话,就职时间) 超级管理员(超级管理员号,密码,姓名,性别,出生年月,身份证号,联系电话,就职时间) 工资(员工号,时间,基本工资,提成,奖金) 考勤(员工号,时间,迟到,早退,管理员号) 注意:“”表示主码,“”表示既是主码又是外码。

E-R图如下所示

数据字典设计: 为了方便数据库的管理和维护,本系统只设计一个数据库workers.mdb,其中包含worker(员工信息表)、manager(考勤信息表)、booklist(工资信息表) 表1-1 worker(员工信息表)各字段设计

软件工程设计模式基础

软件工程与设计模式 1、UML方面 标准建模语言UML。用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图。 2. 软件开发的 3、j2ee常用的设计模式?说明工厂模式。 总共23种,分为三大类:创建型,结构型,行为型 我只记得其中常用的6、7种,分别是: 创建型(工厂、工厂方法、抽象工厂、单例) 结构型(包装、适配器,组合,代理) 行为(观察者,模版,策略) 然后再针对你熟悉的模式谈谈你的理解即可。 Java中的23种设计模式: Factory(工厂模式), Builder(建造模式), Factory Method(工厂方法模式), Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式),

Adapter(适配器模式), Bridge(桥梁模式), Composite(合成模 式), Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式),Command(命令模式), Interpreter(解释器模式), Visitor(访问者模式), Iterator(迭代子模式), Mediator(调停者模式), Memento(备忘录模式), Observer(观察者模式),State(状态模式),Strategy(策略模式),Template Method(模板方法模式), Chain Of Responsibleity(责任链模式)工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可 以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的 抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的 操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当 得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是 哪一个子类的实例。 4、开发中都用到了那些设计模式?用在什么场合? 每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。主要用到了MVC的设计模式。用来开发JSP/Servlet 或者J2EE的相关应用。简单工厂模式等。

(完整)软件工程学习心得体会

(完整)软件工程学习心得体会 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)软件工程学习心得体会)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)软件工程学习心得体会的全部内容。

软件工程学习心得体会 学习了这门课程,还有老师们的多元化教课,不但让我从理论上掌握软件工程,还有从不 同的实例,让理论和实践得到了很好的结合。整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为 了一个综合的一个能够解决问题的思想集合. 要学习软件工程,学会如何系统的思考,以及养成良好的编码习惯,想学好软件工程,就 必须知道软件工程的目标、过程和原则:软件工程目标:生产具有正确性、可用性以及开销 合宜的产品。正确性指软件产品达到预期功能的程度. 可用性指软件基本结构、实现及文档为用户可用的程度.开销合宜是指软件开发、运行的 整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决 的问题,它们形成了对过程、过程模型及工程方法选取的约束. 软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件 工程过程主要包括开发过程、运作过程、维护过程.它们覆盖了需求、设计、实现、确认以及 维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统 结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可 用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行 的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求.维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培 训过程等. 软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须 遵循的原则。 pad图:它是用结构化程序设计思想表现程序逻辑结构的图形工具.pad也设置了五种基本 控制结构的图示,并允许递归使用。hipo图:hipo图是由一组ipo图加一张hc图组成。它是 美国ibm公司在软件设计中使用的主要表达工具.hc图既是层次图,用于表示软件的分层结构。hc图中的每一个模块,均可用一张ipo图来描述。ipo 图由输入、处理和输出三个框组成,需 要时还可以增加一个数据文件框,这种图形的优点,是能够直观地显示输入处理输出三者之间 的联系。还有测试方法:按照测试过程是否在实际应用环境中来分,有静态分析与动态测试。 测试方法有分析方法(包括静态分析法与白盒法)与非分析方法(称黑盒法).静态分析技术:不 执行被测软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程分析、符号 执行来找出软件错误。动态测试技术:当把程序作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。还学习了其他很 多工具、语言、方法等,虽然不是都学得很透彻,但我相信在今后的学习中一定会慢慢的完善的。 软件工程对于初学者来说,知识基础较薄弱,对一些应用操作、概念、工具方法等理解起来较 为困难,要能从整体概念上较好地理解和把握、学好软件工程,不是仅仅把几本专业书籍细致 地看几遍,然后上机练习几次就可以成功,学习过程中要注意多看多练要注意结合实际,更要

软件体系结构试题库 软件工程 试题和答案

一、判断题 1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。答案:√ 2、可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构件的查找。 答案:√ 3、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。 答案:√ 5、构件可以由其他复合构建和原子构件通过连接而成。() 答案:√ 6、体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色() 答案:√ 7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。其中,构件、连接件和配置是最基本的元素() 答案:√ 8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务() 答案:X 9、构件、连接件以及配置是体系结构的核心模型最基本的元素() 答案:√ 10、HMB风格不支持系统系统自顶向下的层次化分解,因为它的构件比较简单。答案:×

11、正交软件体系结构由组织层和线索的构件构成。 答案:√ 13、线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成整个系统中相对独立的一部分功能。() 答案:√ 14、层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。 答案:× 16、在软件设计中占据着主导地位的软件体系结构描述方法是图形表达工具。 答案:√ 18、体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之后,软件设计之前进行。 答案:√ 19、基于软构件的系统描述语言是较好的一种以构件为单位的软件系统描述语言。答案:√ 21、基于构件的动态系统结构模型分为三层,风别是应用层、中间层、和体系结构层。 答案:√ 23、基于构件的动态系统结构模型分为应用层,中间层和体系结构层。 答案:√ 29、一般的说,一个模式有一下4个基本成分,1.模式名称,2.问题,3.解决方案,4.效果,这句话是对的() 答案:√

相关文档
最新文档