软件工程复习_第1页
软件工程复习_第2页
软件工程复习_第3页
软件工程复习_第4页
软件工程复习_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Chapter 11. What is Software Engineering?(什么是软件工程?)1)软件工程师利用他们的计算机和计算方面的知识,以帮助解决问题。2)软件工程师使用技术、工具、程序、和范例来增强他们的软件产品的质量。他们的 目的是使用有效的富有成果的途径来产生有效的问题解决方案。3)一名软件工程师集中于把计算机作为一个解决问题的工具,而不是调查硬件的设计 或证明有关算法如何工作理论。2. What is good software?(什么是好的软件?)1)The quality of the product2)The Quality of the Process3)Qual

2、ity in the context of the business Environment 3. What are 9 activities in software development? (软件开发的9个活动)1) 需求分析和定义2) 系统设计3) 程序设计4) 程序实现5) 单元测试6) 集成测试7) 系统测试8) 系统交付9) 维护4. How has software engineering changed? (What are seven key factors that altered /changed software engineering practice?)(改变/更改

3、软件工程的七个关键因素是什么?)1)对商品而推向市场时间上的危急性2)计算方面经济上转移:较低硬件费用和较高的开发和维护费用3)能有有桌面计算的利用4)广泛的局域和广域网络互联5)面向对象技术的可用性和实用6)运用窗口、图标、菜单和指针的图形用户接口(GUI) 7)软件开发的分布模型的不可能性预测性5. What is the Wassermans discipline of software engineering?(软件工程的Wasserman原则)1)抽象2)分析设计方法和概念3)用户界面原型4)软件体系结构5)软件过程6)复用7)度量8)工具和集成环境Chapter 2(1) Conc

4、epts (What is): (概念)1) waterfall model(瀑布模型):瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。2) incremental model(增量模型):增量模型是一种非整体开发模型。在各个阶段并不交付一个可运行的完

5、整产品,而是交付满足客户需求的一个子集的可运行产品。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品3) iterative model(迭代模型):迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。(2)Benefits (advantages) and drawbacks (disadvantages) of waterfall model?(瀑布模型优缺点)advantages:1) 为项目提供了按阶段划分的检查点2)

6、 当前一阶段完成后,您只需要去关注后续阶段3) 可在迭代模型中应用瀑布模型增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。4) 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导disadvantages: 1) 各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。2) 由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从 而增加了开发风险。3) 通过过多的强制完成日期和里程碑来跟踪各个项目阶段4) 瀑布模型的突出缺点是不适应用户需求的变化

7、(3) Benefits (advantages) of phased development(阶段化开发模型)/incremental and iterative(增量迭代模型) model?增量模型1) 由于能够在较短的时间内向用户提交一些有用的工作产品,因此能够解决用户的一些急用功能2) 由于每次只提交用户部分功能,用户有较充分的时间学习和适应新的产品。3) 对系统的可维护性是一个极大的提高,因为整个系统是由一个个构件集成在一起的,当需求变更时只变更部分部件,而不必影响整个系统。迭代模型1) 降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。

8、2) 降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。3) 加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。4) 由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。Chapter 41、作业(1)Describe the process of determining requirements.(描述需求过程)首先我们通过问问题、论证相似系统,甚至开发目标系统的全部或部分原型同顾客共同工作以引出需求。接着,我们捕捉在一份文档

9、或数据库中的需求。需求首先被写下来以便于我们和顾客对系统应做什么达成一致。需求常被以一种更加数学化的表示方法重写,以便设计员能更好地将系统需求转换为好的系统设计。一个查核步骤保证需求是完全的、正确的、一致的。一个确认步骤,确保我们已经描述了顾客在最产品中看到的东西。(2)It is usually helpful to separate the requirements into three categories. What are these three categories? Explain why it is helpful.(将需求分为三类是有好处的。这三类是什么?解释为什么它是有帮助

10、的。)1)绝对要满足的需求 2)很可取但不是必需的需求 3)可能但可以削减的需求。Why: 按类需求分析助于各方来理解什么是真还需要的。这种按类需求分析在软件开发项目受时间或资源限制时也是有用的;如果被定义的影响花费太多或耗时太长而不能开发的话,那么更可删去第3类需求,并分析第2类需求看能否削减或延期。(3)What is a requirements definition document? What is a requirements specification document ?(什么是需求定义文档?什么是需求规范文档?)需求定义文档:是以顾客能理解的术语写下的,需求定义完全地得出了顾

11、客期望系统要做的每件事。代表了顾客和开发者对顾客需要成想要的东西的理解,且通常由顾客和开发者联合书写。需求规范文档:需求规格重新以适合开发系统设计的技术术语来重新表达需求定义,也是需求定义文档的技术副本,是由需求分析员写的。有时单独一个文档服务于两个目标,顾客、需求分析员和设计员的共同影响。但通常两型文档都需要,并且在将需求定义重新解释为规格时,特别要小心信息丢失或变化。(4)What is a functional requirement ? Give an example to explain.(什么是功能性需求?举一个例子来解释。)一条功能性需求描述了系统和环境的相互作用。例如,为确是功

12、能的需求,我们决定什么状态是可接受的,系统将处于的状态。而且,功能的需求描述了系统对给定激励应如何举动。举例,对一个打印一周一次付薪支票的系统,功能的需求必须回答定于付薪支票何时发布的问题,要打印一张付薪支票,必需的输入是什么?什么条件下支付数量可改变?什么促使了一名雇员从薪水册列表中删除?(5) What is a nonfunctional requirement ? Give an example to explain. (什么是一个解功能性需求?举一个例子来解释。)一条解功能的需求或约束描述了施加于系统上的一条限制,限制了我们构建问题解决方案的选择。例如,我们可能被告知系统必须在一台A

13、ardvark计算机上开发或者读取初始数据后不超过4小时时间里付薪支票必须被分发到雇员手中。类似地,我们被告知对系统的查询必须在3秒内得到回答。这些限制通常限制了我们对语言平台或实现技术或工具的选择,然而,直到需求已被指定后的设计阶段才做出这样的选择。2、For the problem of XXXXX , Please draw its data flow diagram.(绘制分层数据流图)某银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,

14、并印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请对以上问题画出分层数据流图。Chapter 51、作业 (不包含面向数据流的设计方法既软件结构图);(1)、For each type of coupling, give an example of two components coupled in that way.  1)当一个组件要修改另一个组件的内部数据或是一个组件要进入另一个组件的分支时,内容耦合就发生了2)公共数据的改变就意味着所有对它进行访问的组件都将受到影响。这就是所谓的公共耦合

15、3)控制耦合是指一个组件对另一个组件传递的参数是用于控制第二个组件的。4)当数据结构本身作为信息在两个组件件传递的时候就发生了标记耦合5)如果仅仅是数据被传递的话,就是数据耦合(2)、For each type of cohesion, write a description of a component exhibiting that kind of cohesion.1)最低程度的内聚是偶然内聚,即组件中的某些部分是完全无关的。这种情况下,不相关的功能、过程或是数据被放在同一个组件中。2)逻辑内聚的程度稍微高点儿,但也是不希望看到的,即几个逻辑上相关的功能或是数据被置于同一组件中。3)一个

16、组件被用于初始化一个系统或一组变量。这样的一个组件要按顺序完成几个功能,但是功能又仅和时间安排有关系,这就是时间内聚。4)通常,功能都是以一个确定的顺序执行的。当一个组件中的几个功能被分组的时候,就是为了保证能按这个顺序执行,这就是过程内聚。5)如果一些特定的功能都是对相同数据集合进行操作或是产生相同的数据集合的话,我们可以把它们关联起来,组件的这种组织方式就是通讯内聚。6)如果组件中一个部分的输出正好是另一个部分的输入的话,就称为顺序内聚。7)而最理想的还应该是功能内聚,在组件中,每一个处理元素都是为了完成一个单一的功能,并且所有必需的元素都包含在这一个组件中。(1) Concepts (W

17、hat is): (概念)1)coupling:耦合衡量不同模块彼此间互相依赖(连接)的紧密程度  2)cohesion:内聚衡量一个模块内部各个元素彼此结合的紧密程度(2) The following is the pseudocode of a program. Please draw its program flow diagram.Start画出伪代码的程序流程图(类似题型)START FIF p THENpWHILE q DOFTgEND DOFqELSE程序流程图BLOCKTng nfEND BLOCKEND IFStopSTOPChapter 6一、作业1.(

18、1) What are major characteristics of object orientation?(面向对象的主要特点是什么?)1) 一致性2) 抽象3) 分类4) 封装5) 继承6) 多态性7) 连续性(2) What is the key difference between more traditional procedural development and the OO development?(传统的程序开发和面向对象的开发之间的关键区别?)这个跨过程的一致性是较多的传统的开发过程和面向对象的开发过程的关键不同点(3) What is a use case?(用例)个

19、用例描述了一个系统通过建立对话操作或展示一个用户,外部系统或其他实体在所开发的系统中的函数性2 Draw a use case diagram for the ATM problem.(画ATM问题的用例图)浏览取款放款ATM用例图客户管理员4 Classify each of the following relationships as either an inheritance relationship(继承关系), an aggregation relationship(聚合关系), or a general association(一般关联). (1) Person Student;

20、an inheritance relationship (2) Library Library patron;. an aggregation relationship (3) Car Driver.a general association5. (1) Draw a use case diagram for the simple library problem.P174 (2) Draw a class diagram for the simple library problem. Suppose the classes in this problem are the library, bo

21、ok, copies of books, and patron.LibraryBooktitlePatronNameCopy (3) Suppose we have the following scenario for the simple library problem. A patron goes to the library and checks out a book. Two months later, he brings the overdue library book back to the library. Please draw a sequence diagram and a

22、 collaboration diagram for the scenario.时序图:读者 还书系统 罚款系统 借书系统 超时还书还书系统超时书已归还 罚款该书可借阅数+1协作图: 读者罚款归还借书系统还书还书系统罚款系统超时6(1) The following is a part of the Royal Service Station requirement:The Royal Service Station provides three types of services to its customers: refueling, vehicle maintenance, and par

23、king. Use the noun-in-text-description to identify the classes from the above requirement statement.答:Classes:service station,services,customer,refueling, vehicle maintenance, and parking. (2) Please draw a class diagram for (1).ServicesCustomerservice stationRefuelingVMParking7 (1) The following is

24、 a part of the Royal Service Station requirement: The station manager uses the system to control inventory. The system will warn of low inventory and automatically order new parts and fuel.Use the noun-in-text-description to identify the classes from the above requirement statement.答:system,manager,

25、inventory,fuel,parts (2) Please draw a class diagram for (1).InventoryManagerSystemPartsFuel (3) Please draw the state diagrams for the fuel and parts classes.(参照p338)二、Class diagram, state diagram; noun-in-text-description method;Use case diagram;类图(作业题),状态图;文本描述方法中的名词;用例图(ATM【作业】、皇家服务站p325、图书馆p174

26、、自动售货机); 自动售货机系统用例图 自动售货机系统含扩展和使用关系的用例图三、Concepts and examples 1)aggregation(聚集/聚合):when one class is part of another class. For example, the ordered item is part of the order.【聚集是整体与部分之间的关系。例如计算机和主板,计算机是一个整体,主板是其中的一部分,主板、显卡、显示器等部件组成了计算机。聚合中类之间可以独立出来,比如一块主板可以状态A计算机上,也可以装在B计算机上。也就是说这块主板离开A计算机之后仍然是有意义

27、的。聚集使用空心菱形+实线表示】2)composition(组合):组合关系中的整体与部分具有同样的生存期. 即组合是一种特殊形式的聚集。【组合中的类也是整体与部分的关系,与聚合不同的而是,其中的类不能对立出来。例如一个人由头、手、腿和躯干等组成,如果这个头离开了这个人,那么这个头就没有任何意义了。组合使用实心菱形和实线表示】3)association(关联):Two classes are associated when they occur together, and when the relationship must be preserved for some period of ti

28、me. (ps:聚集和组合是关联的特殊情况)For example, each order is associated with a salesperson. Until the order is complete, it is important to link the order with the salesperson.【关联是指两个类之间存在某种特定的对应关系,例如客户和订单,一个订单只能属于某个客户,一个客户可能会有多张订单。根据方向,分为单向和双向。根据对应的数量分为一对一、一对多、多对多等。关联关系用实线+箭头表示】4)generalization(泛化【继承】):【泛化比较好理解,就是两个类之间具有继承关系。例如人和学生,学生继承了人,除过具有人的一般的属性和方法之外,他还要有学习的方法。泛化用空心三角形+实线表示】 Chapter 8 (1) What are the main software testing objectives(软件测试目标)?测试是以发现错误为核心(2)Explain the following terms: 1)Unit test(单元测试):是指对软件中的最小可测试单元进行检查和验证。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。2)integration tes

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论