高级软件工程问题总结

时间:2019-05-12 04:14:54下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《高级软件工程问题总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《高级软件工程问题总结》。

第一篇:高级软件工程问题总结

第一章:

1什么是软件危机?

软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

2.软件危机包含哪两方面的问题?

3.软件是什么?

软件=程序+数据+文档

4.软件和硬件的区别?

软件不可磨损,硬件可以磨损。

5.软件工程最关注的的是什么?

6.质量的观点包括哪些?(期中已考)

7.软件开发的方法? 系统的方法 工程的方法

8.软件工程的规范?(8个概念)

9.工程化的两个重点?

第二章:

1.软件过程是什么?

2.传统软件开发生命周期?

3.软件通用过程框架?

4.瀑布模型

5.RAD模型

6.增量模型中增量是什么? 增量是小而可用的软件 7.RUP是什么?

8.RUP包括哪几个阶段?

第三章:

1.敏捷开发的核心观点是什么? 人最重要

2.对于敏捷开发什么是最重要的?

可交付给客户的产品以及帮助客户实现最大的价值

3.敏捷联盟宣言是什么?(给实例对应哪一条)

4.xp模式中迭代又叫什么?

计划游戏,为了让开发人员进行愉悦的开发,像玩游戏一样

5.xp模式中2周一次反应了什么? 响应变化,响应变化大于遵循计划

第四章:

1.管理的五要素

计划、组织、指挥、协调、控制

2.规模估算从什么开始?

软件分解(wbs最好不超过7层)

3.规模估算方法

LOC(Length of code)估算

FP功能点(站在用户的角度)

4.功能点是什么?FP估算的优缺点? 能够单独完成的某个具体业务流程

5.ILF、EIF、EI、Eo、EQ?

6.软件开发进度的里程碑是什么?

需求规格说明,设计,编码,测试,发布,维护 7.风险是什么?

8.风险管理的四个活动?

9.什么是QC? 质量管理

10.什么是QA? 质量分析

11.QC和QA有什么区别?

QA保证QC行为与措施符合,同时汇总后报告给管理层

12.软件配置是什么?

13.软件配置管理是什么?主要是为了解决什么问题?

减少混乱

第五章:

1.需求工程的重点?

挖掘用户的真实需求,保证这些需求能真实的无歧义的表现出来

2.获取需求的四个阶段?

3.导出需求做哪些工作?工作产品是什么?

需求说明文档

4.需求启动做什么工作? 5.导出需求的手段方法?

6.mini specification 作用?初步的规格说明(Mini-specification)

根据每个项的Mini-specification生成产品或项目初步的需求说明文档

7.为何要进行分析建模?

8.SRS内容?

9.需求确认和需求校验的区别?

第六章:

1.结构化分析建模包括那些内容?

2.如何得到DFD图?

3.DFD顶层是什么?

第七章:

1.什么是抽象?

2.为何要抽象?

3.抽象后能得到什么? 抽象层次树

4.抽象层次树上的两个节点能进行比较?为何? 同一层次上可以比较

5.什么是继承、多态、泛化?

6.面向对象中如何使这些对象进行交互? 通过建立动态模型 第八章:

1.面向对象分析模型应该包括哪些内容?

需求描述 静态模型(对象模型)、动态模型(交互次序)、功能模型(数据交换)

2.静动态模型分别包括哪些内容?

3。UML的五种视图?程序员最关注的哪种视图?

用例视图、逻辑视图、实现视图、进程视图、配置视图

第九章: 1.概念设计的核心? 功能分解

2.什么是概念设计与技术设计?分别做什么工作? 概念设计:告诉顾客系统将要做什么

技术设计:告诉程序员系统做什么

3.有哪几种耦合?

内容耦合、公共耦合、控制耦合、标记耦合、数据耦合、非直接耦合 4.有哪几种内聚?

功能性内聚、顺序内聚、通讯内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚

5设计时可以通过什么途径来降低耦合? 降低接口复杂、选择合理调用方式

6.什么是扇入扇出,深度是什么?

7.什么是作用域,控制域?

第二篇:高级软件工程考试题目

第一章概述

1.你如何理解时下热门的各种“软件定义”? 答:①从软件开发者角度定义,软件=程序+文档,而程序又是由算法和数据组成,算法提供了解决问题的方法。软件开发文档是软件开发使用和维护过程中的必备资料。它能提高软件开发的效率,保证软件的质量,而且在软件的使用过程中有指导,帮助,解惑的作用,尤其在维护工作中,文档是不可或缺的资料。

②根据软件的分类来定义,软件大体可以分为系统软件和应用软件两大类。系统软件是电脑的基础软件,例如windows,ms-dos:应用软件是指具有具体功能的软件,并且是在系统软件上运行的,例如:EXE文件COM文件,windows是起基础作用的软件,一台电脑如果没有系统软件,那么应用软件是没有办法装台这台电脑上的。应用软件是指具有具体功能的软件,并且是在系统软件上运行的,例如:财务软件,办公软件,广告设计软件,各种游戏等等。

③从用户角度看,软件就是硬件的附庸,软件是单独的产品,软件是许可证,软件是服务。

2.计算机学科中的12个基本概念,在软件工程学科中都有怎样的作用和意义?针对3-4个概念举例说明?

答:计算机学科中的12个基本概念为:绑定、大问题的复杂性、概念和形式模型、一致性和完备性、效率、演化、抽象层次、空间有序、时间有序、重用、安全性、折衷和结论。

大问题的复杂性:随着问题规模的增长,复杂性呈非线性增加的效应。这是区分和选择各种方法的重要因素。以此来度量不同的数据规模、问题空间和程序规模。假如我们编写的程序只是处理全班近百人的成绩排序,选择一个最简单的排序算法就可以了。但如果我们编写的程序负责处理全省几十万考生的高考成绩排序,就必须认真选择一个排序算法,因为随着数据量的增大,一个不好的算法的执行时间可能是按指数级增长的,从而使你最终无法忍受等待该算法的输出结果。

一致性和完备性:在计算机中一致性和完备性概念的具体体现包括诸如正确性、健壮性、可靠性这类相关的概念。一致性包括用作形式说明的一组公理的一致性、观察到的事实与理论的一致性、一种语言或接口设计的内部一致性等。正确性可看作部件或系统的行为对声称的设计说明的一致性。一致性就是要始终保证数据的正确性 比如你去银行转钱你转1000但卡里只有300执行事务时查询到你金额不足就会返回拒绝执行而不是把你卡里的300转走,依然保持你卡里之前的金额300这就是一致性.恢复到事务的初始状态.完备性包括给出的一组公理使其能获得预期行为的充分性、软件和硬件系统功能的充分性、以及系统处于出错和非预期情况下保持正常行为的能力。完整性 是指主键上的值不能为空.比如关系R(学生号,学生姓名,成绩)学生号为主键那它就不能为空否则违反规则。重用:在新的情况或环境下,特定的技术、概念或系统成份可被再次使用的能力。例如,可移植性、软件库和硬件部件的重用,促进软件成份重用的技术,以及促进可重用软件模块开发的语言抽象等。软件重用的对象除源代码外,还包括规格说明、系统设计、测试用例等,软件生命周期中越前端的重用意义越重大。现有的许多努力都是面向源代码一级的重用,例如程序的模块化、封装与信息隐藏、数据抽象、继承、异常处理等机制,包括当前热门的CORBA、DCOM等利用构件组装软件系统的技术。

第二章 面向服务的软件工程

1.对于面向价值服务的心得体会

“价值”是服务化软件系统区别于传统软件的重要特征。一个服务系统的好坏取决于该系统能否

向供需双方提供期望的价值。服务是供需双方之间通过协同生产进行价值创造与风险分担的过程,各种有形或无形的价值则是服务系统的输出。在构建系统过程中应将价值作为最终目标,围绕价值进行服务系统设计和优化。在服务模型中应对价值进行准确的刻画,并将价值与各种功能要素联系起来,帮助分析期望的价值是否可被功能要素所支持并实现为了保证服务系统能够向供需双方充分提供各自所需的价值,服务工程应充分感知“服务价值”。价值知觉的定义是在服务全生命周期中去感知、描述、转换、实现期望的服务价值,并对其进行评价和优化。不同阶段的价值知觉内容不同:

服务模式创新机制

明确各个服务参与者的价值期望、各参与者之间的价值交换关系、每一项价值的度量、各项价值期望间的相互依赖。

服务建模

在服务模型中完整、正确地设计和描述所期望的服务价值、价值与服务功能要素间的映射关系、功能要素对价值的实现支持程度。

服务系统实现

通过选择和组合恰当的服务构件来实现服务系统,需说明所选择的服务构件向外提供的期望服务价值及其可实现程度。

服务系统运行

对实际运行的系统进行监控和评价,发现实际交付的价值与期望价值之间的差距,并找出差距原因,进而对服务系统进行改进。

服务价值理论

采用数学方法来刻画服务价值及其之间相互依赖关系,形成服务价值理论。它包括:(1)服务价值的分类、描述与度量;(2)服务价值依赖理论;(3)多层次服务价值模型及建模方法;(4)服务价值与服务模型的映射;(5)价值知觉的服务选取与组合;(6)面向价值的服务分析;(7)面向价值的服务优化;等等。

第三章复杂系统的软件工程

请尝试回答下这些软件工程中的挑战性问题: ①软件是测出来的还是用出来的?

②如何建立一种软件生产的激励机制和良好的产业生态环境? ③什么样的软件不会被盗版?

④如何通过软件演化来满足用户快速变化的需求? ⑤复杂网络可以怎样刻画软件系统?

答:①软件是用出来的。软件是为了解决现实中的问题,而设计出一款产品供有需求的用户使用。

②建立软件生产的激励机制可以根据软件设计人员的贡献给予相应奖励,同时在设计团队之间引入竞争机制;建立软件的产业生态环境,需要与政府合作,通过促进政策、教育和维权等方式,建立更加健康的软件产业生态环境。积极应对各种新挑战、资产管理促进技术创新、打击盗版多管齐下,营造一个良好的知识产权环境,为软件产业健康发展提供更好的保障。

③我认为为了社会公益,无偿提供服务的软件不会被盗版。

④随时捕获用户的需求,更新软件功能,并且要根据社会环境预测用户需求,研发新技术,不断设计更新软件功能;处理之外也可以将不同功能的软件进行集成组合获取更加复杂的功能,这样可以应对用户快速变化的需求,同时也减少了更新软件的周期。

⑤软件系统中的每一个软件相当于复杂网络中的一个节点,而软件之间的相连关系可以用复杂网络中的边来表示。这样软件系统可以构建成一个复杂网络,然后就可以用复杂网络中的方法来对软件系统进行分析,如基于复杂网络的软件复杂性度量研究,基于加权软件网络缺陷传播分析的面向对象软件结构质量度量,通过研究网络节点度可以发现软件的依赖程度。

第四章群体软件工程

2.在开源网站sourceforge.net上选择一个开源项目进行分析和介绍。答:以该网站上的一款软件VCL media player为例。该软件完全免费可以播放video and DVDs以及网络视频,在线直播等,比如IPV6协议下的高清在线视频;该软件是简单,快速和强大的媒体播放器。支持很多种格式媒体:文件、光盘、网络摄像头、设备和流。VLC媒体播放器是一个免费和开源媒体播放器和多媒体框架VideoLAN写的项目。VLC是一种便携式多媒体播放器,编码器,横幅支持多种音频、视频编解码器和文件格式以及dvd,vcd,和各种流媒体协议。它能够通过网络进行转码流和多媒体文件并将它们保存到各种格式。默认分配的VLC包括大量的免费的解码和编码库,避免需要寻找/校准专有插件。VLC是基于分组的多媒体播放器,可以播放视频内容的一些损坏,不完整,或未完成的视频。例如,文件还是下载通过点对点(P2P)网络。

特点:1.简单,强大的和快速的

2.支持文件,光盘(DVD、CD、VCD、蓝光),网络摄像头和溪流

3.没有编解码器包需要:mpeg4,对WMV MKV WebM 4.可以在大多数平台:Windows、Linux、Mac OS X,Unix„„ 5.完全免费的,0间谍软件、广告或用户跟踪媒体转换器和横幅

第三篇:软件工程总结

软件工程课程总结

摘要:

计算机是20世纪最重大的科学技巧成就之一,使当代社会的经济、军事、科研、教育、服务等方面在概念和技巧上发生了性的变化,对人类社会的进步已经并还将产生极为深刻的影响。目前,计算机是世界各发达国度剧烈竞争的科学技巧领域之一。

电子计算机早期功效主要是计算,后来已远远超越单纯计算的功效,还可模拟、思维、进行自适应反馈处理等等,把它叫做“电脑”更为合实际。由于电子计算机功效的飞跃性发展,应用于生产和生活的各个方面,直接和显著地提高了生产、工作和生活的效率、节奏和水平,在软科学研究和应用中它也起着关键作用,因此它已被公认是现代技巧的神经中枢,是未来信息社会的心脏和录魂。计算机学科分为四个领域,分别是计算机科学,计算机工程,软件工程和信息系统。

正文:

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。包括项目管理,分析,设计,程序的编写,测试和质量控制。它涉及到程序设计语言、数据库、软件开发工具、系统开发平台、标准、设计模式等方面。

学了《软件工程》这门课程和一些有关资料后,感觉一些东西都曾经接触过,但在实际工作中有些理论要完全遵循可能还有些障碍,软件工程只是提供了理论上的一些结论,但对项目的具体可操作性的规范的制定方面却做的很少,《软件工程》发展了几十年,光是开发模型就达到了10多种,对不同的项目采用合适的开发模式,有些项目在不同的开发阶段可能还要转换开发模式,把它们灵活的应用到实际中还是很困难的。

软件技术是信息技术产业的核心之一,软件技术的发展是与信息技术产业的发展互相促进的。当今世界,信息技术正处于新一轮重大技术突破的前夜。预计今后 20~30 年是信息科学技术的变革突破期,可能导致 21 世纪下半叶一场新的信息技术革命。近年来,从 IT 界到一些国家首脑,都高度关注以物联网为标志的新一轮信息技术的发展态势,认为这是继 20 世纪 80 年代 PC 机、90 年代互联网、移动通信网之后,将引发 IT 业突破性发展的第三次 IT 产业化浪潮。每一次重大的技术变革都会引起企业间、产业间甚至国家间竞争格局的重大变化,也促进了软件技术与软件产业的重大变革与发展。

近年来,信息技术、软件技术、软件系统与软件产业的发展备受关注,已有不少论述、分析与判断。近10 年内网络技术经历宽带化、移动化和三网融合将走向基于 Ipv6 的下一代互联网,2010 年 1 月,国家 863 计划信息技术领域办公室和国家 863 计划信息技术领域专家组,在上海举办“信息-物理融合系统 CPS发展战略论坛”,提出“信息-物理融合系统 CPS 是一个综合计算、网络和物理环境的多维复杂系统,是信息和物理世界的深度的融合交互,可实现大型工程系统的实时感知、动态控制和信息服务,使系统更加可靠、高效与实时协同,使得人类物理现实和虚拟逻辑逐步融合,具有重要而广泛的应用前景。业界关于软件工程的代表性观点创立与使用健全的工程原则,以便经济地获得可靠且高效率的软件。应用系统化,遵从原则,可被计量的方法来发展、操作及维护软件;也就是把工程应用到软件上。与开发、管理及更新软件产品有关的理论、方法及工具。一种知识或学科,目标是生产品质良好、准时交货、符合预算,满足用户所需的软件。实际应用科学知识在设计、建构电脑程序,与相伴而来所产生的文件,以及后续的操作和维护上。

6使用与系统化生产和维护软件产品有关之技术与管理的知识,使软件开发与修改可在有限的时间与费用下进行。

7建造由工程师团队所开发之大型软件系统有关的知识学科。对软件分析、设计、实施及维护的一种系统化方法。系统化地应用工具和技术于开发以计算机为主的应用。

10软件工程是关于设计和开发优质软件。

《软件工程》是一门综合性和实践性很强的核心课程,它属于是一门交叉学科,包含有:软件开发技术(软件开发方法学、软件开发过程、软件工具和软件工程环境)、软件工程管理(软件管理学、软件经济学、软件心理学)。主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件测试、项目计划与管理。

本课程是面向准备从事软件开发的毕业生而开设的一门专业课程。针对计算机教学中软件工程这一薄弱环结,结合目前软件开发商对人才的要求,对计算机专业的毕业生进行软件工程强化培训,目的是使毕业生能够了解和掌握软件工程的基本理论和方法,并在实际软件开发中运用这些方法。

我理解,软件工程是按照工程学的管理方式,有组织、有计划的,在一定的质量基础、时间限度和成本范围内,实现功能明确的软件系统。而且,软件工程在企业范围内运行,一定需要企业资源的支持,要与企业的经营、决策、管理体系联系在一起,才能够被踏踏实实的落实下来。

软件工程项目是一个需要一步一步的计算,分析思考而来的,需要不断思考,研究不断进步,软件业作为一个服务业,要想得到发展,首先必须形成一个对软件服务有迫切需要的市场。其次,这个市场中的消费者必须具备足够的购买力。软件的消费群体简单一点,可以分为个体消费和企业消费。中国的企业群体,数量庞大,但是质量不高。上规模的企业极少。国内目前能够形成比较大规模的独立市场的,肯定是小规模的软件系统。

随着信息化时代的到来其地位越来越受到人们的重视,软件工程从一个学科,或是某一个研究方向来说,人员仅仅是过程,方法的执行者,所以人员素质往往被忽略,软件工程是一门实践性很强的学科,所以在实际的软件研究过程中,人员的素质占有很重要的地位。要有出色的软件问世,研发人员的素质至关重要!

作为软件工程的学习者应该不断创新,不断尝试、实践,不断研究和学习,中国的软件工程技术依旧滞后于国外一些软件工程技术,作为新一代的学习者应该担当起振兴起中国软件事业,使中国科技得到高速发展!

现在已经是信息化时代,信息化潮流不断涌现,想要掌握主动权就是掌握信息化的发展方向,这就需要我们不断学习,时间,研究,学习国外的先进技术,转变自己的技术,然后融合,创新。

软件技术不是一成不变的,是随着社会的进步的不断进步,不需要不断的创新,不断的改善的,需要我们不断的学习,不断的研究,不断进步。

第四篇:软件工程总结

1.Software is a product and can be manufactured using the same technologies used for other engineering artifacts Answer: b 2.WebApps are a mixture of print publishing and software development, making their development outside the realm of software engineering practice.Answer: b 3.Software engineering umbrella activities are only applied during the initial phases of software development projects.Answer: b 4.Planning ahead for software reuse reduces the cost and increases the value of the systems into which they are incorporated.Answer: a 5.The essence of software engineering practice might be described as understand the problem, plan a solution, carry out the plan, and examine the result for accuracy.Answer: a 6.In agile process models the only deliverable work product is the working program.Answer: b 7.A most software development projects are initiated to try to meet some business need.Answer: a 8.In general software only succeeds if its behavior is consistent with the objectives of its designers.Answer: b 9.Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project.Answer: a 10.Process technology tools allow software organizations to compress schedules by skipping unimportant activities.Answer: b 11.It is generally accepted that one cannot have weak software processes and create high quality end products.Answer: a 1.Requirements engineering is a generic process that does not vary from one software project to another.Answer: a 2.A stakeholder is anyone who will purchase the completed software system under development.Answer: b 3.It is relatively common for different customers to propose conflicting requirements, each arguing that his or her version is the right one.Answer: a 4.Developers and customers create use-cases to help the software team understand how different classes of end-users will use functions.Answer: a 5.Use-case actors are always people, never system devices.Answer: b 6.Analysis patterns facilitate the transformation of the analysis model into a design model by suggesting reliable solutions to common problems.Answer: a 7.In win-win negotiation, the customer’s needs are met even though the developer’s need may not be.Answer: b 8.In requirements validation the requirements model is reviewed to ensure its technical feasibility.Answer: b

1.Object-oriented domain analysis is concerned with the identification and specification of reusable capabilities within an application domain.Answer: a 2.In structured analysis models focus on the structure of the classes defined for a system along with their interactions.Answer: b 3.Creation and refinement of use cases if an important part of scenario-based modeling.Answer: a 4.It is important to consider alternative actor interactions when creating a preliminary use case.Answer: b 5.Brainstorming is one technique that may be used to derive a complete set of use case exceptions.Answer: a 6.In many cases there is no need to create a graphical representation of a usage scenario.Answer: a 7.One or more attributes of a data object must be defined as a key to allow the location of an instance of the data object.Answer: a 8.Attributes are chosen for an object by examining the problem statement and identifying the entities that appear to be related.Answer: b 9.An analysis package involves the categorization of analysis model elements into useful groupings.Answer: a 10.The data flow diagram must be augmented by min-spec that can serve as a guide the design of the software component that will implement the process.Answer: a 11.The UML sequence diagram show the order in which system events are processed.Answer: b 12.Analysis patterns are discovered, they are not explicitly created.Answer: a 13.It is not possible to justify the time required for WebApp requirements analysis.Answer: b 14.UML activity diagrams can be used to represent the user observable functionality delivered by the WebApp as well as the operations contained in each analysis class.Answer: a 15.Configuration analysis focuses on the architecture of the user’s web browsing environment.Answer: b 16.Content objects are extracted from use cases by examining the scenario description for direct or indirect content references.Answer: a 1.With thorough testing it is possible to remove all defects from a program prior to delivery to the customer.Answer: b 2.Program flow graphs are identical to program flowcharts.Answer: b 3.The cyclomatic complexity of a program can be computed directly from a PDL representation of an algorithm without drawing a program flow graph.Answer: a 4.Graph-based testing methods can only be used for object-oriented systems Answer: b 5.Equivalence testing divides the input domain into classes of data from which test cases can be derived to reduce the total number of test cases that must be developed.Answer: a 6.Boundary value analysis can only be used to do white-box testing.Answer: b 7.Orthogonal array testing enables the test designer to maximize the coverage of the test cases devised for relatively small input domains.Answer: a 8.Client/server architectures cannot be properly tested because network load is highly variable.Answer: b 1.The best representation of system architecture is an operational software prototype.Answer: b 2.The architectural representations can be an enabler for communication among project stakeholders.Answer: a 3.An architectural description is often documented using an architecture template.Answer: b 4.An architectural genre will often dictate the architectural approach that may used for the structure to be built.Answer: a 5.Before an architectural pattern can be chosen for use in a specific system it must have a code implementation to facilitate its reuse.Answer: b 6.Once selected, archetypes always need to be refined further as architectural design proceeds.Answer: a 7.Quantitative methods for assessing the quality of proposed architectural designs are readily available.Answer: b

Chapter 10 Self-Check Quiz

1.In the most general sense a component is a modular building block for computer software.a.True b.False

Answer: a(Section 10.1)

2.In the context of object-oriented software engineering a component contains

a.attributes and operations b.instances of each class c.roles for each actor(device or user)d.set of collaborating classes

Answer: d(Section 10.1.1)

3.In traditional software engineering modules must serve in which of the following roles?

a.Control component b.Infrastructure component c.Problem domain component d.All of the above

Answer: d(Section 10.1.2)

4.Software engineers always need to cerate components from scratch in order to meet customer expectations fully.a.True b.False

Answer: b(Section 10.1.3)

5.Which of the following is not one of the four principles used to guide component-level design?

a.Dependency Inversion Principle b.Interface Segregation Principle c.Open-Closed Principle d.Parsimonious Complexity Principle

Answer: d(Section 10.2.1)

6.The use of stereotypes can help identify the nature of components at the detailed design level.a.True b.False

Answer: a(Section 10.2.2)

7.Classes and components that exhibit functional, layer, or communicational cohesion are relatively easy to implement, test, and maintain.a.True b.False

Answer: a(Section 10.2.3)

8.Software coupling is a sign of poor architectural design and can always be avoided in every system.a.True b.False

Answer: b(Section 10.2.4)

9.WebApp content design at the component level focuses on content objects and the manner in which they interact.a.True b.False

Answer: b(Section 10.4.1)

10.A WebApp functional architecture describes the key functional components and how they interact with each other.a.True b.False

Answer: a(Section 10.4.2)

11.Which of these is a graphical notation for depicting procedural detail?

a.box diagram b.decision table c.ER diagram d.flowchart

Answer: d(Section 10.5.1)

12.A decision table should be used

a.to document all conditional statements b.to guide the development of the project management plan c.only when building an expert system d.when a complex set of conditions and actions appears in a component

Answer: d(Section 10.5.2)

13.A program design language(PDL)is often a

a.combination of programming constructs and narrative text b.legitimate programming language in its own right c.machine readable software development language d.useful way to represent software architecture

Answer: a(Section 10.5.3)

14.In component-based software engineering, the development team examines the requirements to see which are amenable to composition, rather than construction, before beginning detailed design tasks.a.True b.False

Answer: a(Section 10.6)

15.Which of the following is not one of the major activities of domain engineering?

a.analysis b.construction c.dissemination d.validation

Answer: d(Section 10.6.1)

16.Which of the following factors would not be considered during component qualification?

a.application programming interface(API)b.development and integration tools required c.exception handling d.testing equipment required

Answer: d(Section 10.6.2)

17.Which is the following is a technique used for component wrapping?

a.black-box wrapping b.clear-box wrapping c.gray-box wrapping d.white-box wrapping

Answer: b(Section 10.6.2)

18.Which of the following is not one of the issues that form a basis for design for reuse?

a.object-oriented programming b.program templates c.standard data d.standard interface protocols

Answer: a(Section 10.6.3)

19.In a reuse environment, library queries are often characterized using the ________ element of the 3C Model.a.concept b.content c.context d.all of the above

Answer: c(Section 10.6.4)

1.The importance of software design can be summarized in a single word a.b.c.d.Answer: d(Section 8.1)

2.Which of the following is not a characteristic common to all design methods?

a.configuration management b.functional component representation c.quality assessment guidelines d.refinement heuristics

Answer: a(Section 8.2.2)

3.Which of the following can be used to represent the architectural design of a piece of software?

a.Dynamic models b.Functional models c.Structural models d.All of the above

Answer: d(Section 8.3.2)

4.Design patterns are not applicable to the design of object-oriented software?

a.True b.False

Answer: b(Section 8.3.3)

5.Since modularity is an important design goal it is not possible to have too many modules in a proposed design.a.True b.False

Answer: b(Section 8.3.5)

6.Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program.accuracy complexity efficiency quality

a.True b.False

Answer: a(Section 8.3.6)

7.Cohesion is a qualitative indication of the degree to which a module

a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: b(Section 8.3.7)

8.Coupling is a qualitative indication of the degree to which a module

a.can be written more compactly.b.focuses on just one thing.c.is able to complete its function in a timely manner.d.is connected to other modules and the outside world.Answer: d(Section 8.3.7)

9.When using structured design methodologies the process of stepwise refinement is unnecessary.a.True b.False

Answer: b(Section 8.3.8)

10.Software designs are refactored to allow the creation of software that is easier to integrate, easier to test, and easier to maintain.a.True b.False

Answer: a(Section 8.3.10)

11.Which of the following is not one of the five design class types

a.Business domain classes b.Entity classes c.Process classes d.User interface classes

Answer: b(Section 8.3.13)

12.Which design model elements are used to depict a model of information represented from the user’s view?

a.Architectural design elements b.Component-level design elements c.Data design elements d.Interface design elements

Answer: c(Section 8.4.1)

13.Which design is equivalent to the floor plan of a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: a(Section 8.4.2)

14.Which design model is equivalent to the detailed drawings of the access points and external utilities for a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: d(Section 8.4.3)

15.Which design model is equivalent to a set of detailed drawings for each room in a house?

a.Architectural design b.Component-level design c.Data design d.Interface design

Answer: b(Section 8.4.4)

16.The deployment design elements specify the build order for the software components.a.True b.False

Answer: b(Section 8.4.5)

第五篇:软件工程总结

第一章软件与软件工程的概念

软件的概念:软件是计算机系统中与硬件相互依存的另一部分,软件包括程序,数据,及其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列。数据是使程序能够正确地处理信息的数据结构。文档是与程序开发,维护和使用有关的图文资料。

程序的最小单位是函数及子程序,程序与数据是分离的,在面向对象程序设计时代,程序的最小单位是类,在类中封装了相关的数据及指令代码。

软件的特性,判断正误:1.软件是无形的、不可见的逻辑实体,因此,软件是无法描述的。(错)

2、软件的开发特性是指软件需要大量手工劳动,难以自动化生产。(对)

3、有缺陷的软件就是废品。(错)

4、软件的生产指的是软件的复制。(错)

5、由于软件的开发充满人的个性特点,因此管理并不决定软件开发的成败(错)。

6、软件的开发环境往往就是软件的运行环境,或者与其兼容。(对)

7、合格的软件产品不需要维护,软件需要维护说明其质量不合格。(错)

8、软件可以不断改进,因此软件不需要废弃。(错)

软件的分类:1,系统软件:能与计算机硬件紧密配合在一起,使计算机系统各个部件,相关的软件和数据协调,高效的工作的软件。2,应用软件,是在系统软件的支持下,在特定区域内开发,为特定目的服务的一类软件。3,支撑软件,也叫工具软件,是协助用户开发软件的工具性软件。4,可复用软件,最初实现的典型的可复用软件是各种标准函数库,通常是由计算机厂商提供的系统软件的一部分。

IEEE给出的定义:软件工程是开发,运行,维护和修复软件的系统方法。软件的定义:计算机程序,方法,规则,相关的文档资料一集在计算机上运行时所必需的数据。

软件危机的典型表现

1、成本太高,预算不准

2、超过预计时间

3、软件质量标准不明确

4、生产率低

5、缺乏文档资料,难以维护。原因:1,缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。2.软件人员与用户的交流存在障碍,除了知识背景的差异,缺少合适的交流方法及需求描述工具。3,软件开发过程不规范,缺少方法和规范的指导。4,随着软件规模的增大,其复杂性往往会呈指数级升高。5,缺少有效的软件评测手段,提交用户的软件质量差。

软件危机发生的主要原因有:

1、遇到了无法解决的高难度技术问题(不是)

2、无法招聘到足够的编程高手(不是)

3、软件人员与用户互相不理解(是)

4、计划和管理不科学、落实不力(是)

5、软件质量标准不明确(是)

软件的质量特性包括(选择)问题1:

1、功能性

2、可靠性

3、使用性

4、经济性(不包括)

软件的质量特性包括(选择)问题2:

1、效率

2、可维护性

3、可移植性

4、经济性(不包括)

软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期,较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。软件生存期:软件的孕育,诞生,成长,成熟,衰亡的生存过程。软件生存期由软件定义,软件开发和运行维护三个时期组成,每个时期又可划分为若干个阶段。

2、软件定义时期的任务主要任务是解决“做什么”的问题,确定工程的总目标和可行性;实现工程目标的策略及系统功能;估计需要的资源和成本;制订工程进度表。通常又分为3个阶段:问题定义,可行性研究,需求分析。

3、软件开发时期的任务和包含阶段主要任务是解决“如何做”的问题,设计和实现定义的软件。由概要设计、详细设计、编码和测试4个阶段组成。

4、软件运行维护时期的主要任务是使软件持久地满足用户的需要,通常有4类维护活动:改正性维护;适应性维护;完善性维护;预防性维护。开发过程中的典型文档:软件需求规格说明书。项目计划。软件测试计划。软件设计说明书。用户手册。软件工程各个阶段的基本任务

1、问题定义与可行性研究:解决什么问题?能否解决问题?是否值得做?”

2、需求分析:做什么

3、软件设计:如何实现

4、程序编码和单元测试:实现设计

5、集成和系统测试:组装连接测试、功能验证测试

6、软件运行和维护:修改 第二章软件工程方法与工具

软件工具:是指能支持软件生存周期中某一阶段(如系统定义,需求分析,设计,编码,测试,维护等)的需要而使用的软件工具。

需求分析工具

1、结构化图形工具箱。通过数据流程图DFD进行功能分析。包括DFD图形工具,实体-关系图(E-R)图形工具,Jackson图形工具,Warnier图形工具,Visio综合工具,2、面向对象工具,Rational Rose,PowerDesigner,Visio 设计工具(1)概要设计工具:设计目标软件的体系结构、控制结构和数据结构。软件的体系结构通常用模块结构图来描述。模块的数据结构通常用实体-关系图来描述。Visio。Rational Rose 详细设计工具。设计模块的算法和内部实现细节。详细设计描述方法有输入-处理-输出(IPO)图。问题分析图(PAD)。盒图(NS图)。流程图(FC)。程序设计语言(PDL)。结构化语言。判定表。判定树

第三章软件需求获取与结构化分析方法 需求获取的主要任务是与用户沟通,了解系统或产品的目标是什么,客户或用户想要实现什么,系统和产品如何满足业务的要求,最终系统或产品如何用于日常工作。获取并理解用户的需求是软件工程师所面对的最困难的任务之一。

需求分析的困难体现:系统的目标或范围问题;需求不准确性问题;需求的易变问题

需求获取的任务:发现和分析问题,并分析问题的原因,结果关系。与用户进行各种方式的交流,并使用调查研究方法收集信息。按照三个成分即数据,过程和接口观察问题的不同侧面。将获取的需求文档化,形式有用例,决策表,决策树等。需求获取的原则:深入浅出,以流程为主线。

获取具体的需求的途径1,与用户交流。2,现有产品或竞争产品的描述文档。3,系统需求规格说明。4,当前系统的问题报告和改进要求。5,市场调查和用户问卷调查。6,观察用户如何工作。

关于需求获取问题的认识辨析:

1、没有与用户交流就不可能获取系统需求。(不能获取准确、全面的系统需求)

2、没有经过与用户交流而获取的需求都是不真实的需求。(一些需求从用户以外的途径获取)

3、系统开发必须独立完成,参考类似系统及技术文档属于抄袭行为,应予避免。(系统开发包含研究行为,应了解对手产品,取长补短)

4、系统开发包含改进当前系统的缺陷和不足。(对)

5、需求调查时,用户所说的需求未必是真实、准确的需求,因此需求分析需要依赖用户,但是不能过分迷信用户。(对,需求描述是困难的)

6、观察用户如何工作也是一种需求调查行为。(对)

软件需求分析阶段的任务:需求获取,需求分析,需求定义,需求验证。完整性,正确性,合理性,可行性,充分性。

结构化分析方法:是一种建模技术。核心是数据字典。

功能模型用数据流图(DFD)来描述使用实体—关系图(ER图)建立数据模型。使用状态转换图(简称状态图)建立系统行为模型。数据字典。加工规格说明。需求建模的依据是需求描述

数据建模,ER图,需要认真看。

第四章结构化设计方法

结构化设计方法是在模块化,自顶向下逐步细化及结构化程序设计技术基础上发展起来的,结构化设计方法可分为两类:一类是根据系统的数据流进行设计,称为面向数据流的设计,或称过程驱动设计,另一类是根据系统的数据结构进行设计,称为面向数据结构的设计,或称数据驱动的设计。

软件的体系结构设计,模块化设计都是分而治之策略的具体表现。模块化是将整体软件划分为独立命名且可独立访问的模块,不同的模块通常具有不用的功能或指责,每个模块可独立开发,测试,最后组装成完整的软件。模块是构成软件的基本构件。模块并不是越小越好,当模块数目增加时,每个模块的规模将减小,开发单个模块的成本确实减少了,但是随着模块数目增加,模块之间关系的复杂程度也会增加,设计模块间接口所需要的工作量也将增加。

模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而与软件系统中其他模块的接口是简单的,若一个模块只具有单一的功能且与其他模块没有太多的联系,那么称此模块有独立性。

自顶向下,逐步细化:抽象是指忽视一个主题中与当前目标无关的方面,以便更充分地注意与当前目标有关的方面,当我们进行软件设计时,设计开始时应尽量提高软件的抽象层次,按抽象级别从高到低进行软件设计,将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确定整个系统的体系结构,这就是自顶向下逐步细化过程。

复用是指同一事物不做修改或稍加修改就可以多次重复使用,将服用的思想用于软件开发,称为软件复用。1是尽量使用已有的构件。2是如果确实需要创建新的构件,则在设计时应该考虑将来的可重复使用性。软件设计的阶段与任务:从工程管理的角度,可以将软件设计分为概要设计阶段和详细设计阶段。从技术的角度,传统的结构化方法将软件设计划分为体系结构设计、数据设计、接口设计和过程设计4部分;概要设计包括体系结构设计、数据设计、接口设计。详细设计即过程设计,对结构表示进行细化,得到软件详细的数据结构和算法。

软件设计各项设计工作的依据:体系结构设计,定义软件模块及其之间的关系,依赖于数据流图。数据设计,依赖于ER图。接口设计,依赖于顶层数据流图。过程设计:依赖于加工规格说明、状态图

基于数据流方法的设计过程:1.复查并精化数据流图。2.确定数据流图中数据流的类型,典型的数据流类型有变换型数据流和事务型数据流。3.导出初始的软件结构图。4.逐级分解。5.精化软件结构。6.导出接口描述和全局数据结构。

软件模块结构的改进方法:1,模块功能的完善化。2,消除重复功能,改善软件结构。3,模块的作用范围应在控制范围之内。4,尽可能减少高扇出结构,随着深度增大扇入。5,避免或减少使用病态连接。6,模块的大小要适中。接口设计的依据是数据流图中的自动化系统边界。

自顶向下,逐步细化的设计过程主要包括两个方面:一是将复杂问题的解法分析和细化成由若干个模块组成的层次结构,二是将每个模块的功能逐步分解细化为一系列的处理。第五章编码

编码容易出现的风格不足

1、变量或函数名字缺乏具体含义

2、变量或函数名字与其用途不符

3、变量或函数未加上必要的注释

4、函数未说明其功能、参数的意义

5、引用的符号未加以解释和说明

6、对循环等重要的程序语句未注释

7、对用到的重要库函数没有解释说明

8、对结构体等复杂数据结构的组成成分没有解释说明

9、缺乏必要的提示语句 第六章软件测试方法

软件测试是在软件投入生产性运行之前,对软件需求分析,设计规格说明和编码的最终复审,是软件质量控制的关键步骤。软件测试是为了发现错误而执行程序的过程。

下载高级软件工程问题总结word格式文档
下载高级软件工程问题总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    软件工程总结

    一、软件工程概述1.软件特点 软件:计算机程序(人们为了实现特定的功能而编制的一组指令集),软件文档,以及计算机程序运行时所需要的数据。 软件是计算机系统中的逻辑成分,具有无形......

    软件工程总结

    软件工程的定义:软件工程是将系统化的,规范化的,可度量的方法应用于软件的开发,运行和维护过程,即将工程化应用于软件中的方法的研究。软件工程的定义2:开发运行,维护和修复软件的......

    高级软件工程教学大纲(英)2011-2012-1(最终五篇)

    高级软件工程 Advanced Software Engineering 课程编号:04615001 开课学期:秋 授课单位:软件学院 教学目的与要求: 使得学生掌握软件系统开发的基本方法,并能够按照工程学的方......

    软件工程期末考试总结

    一、 1、1968年“软件工程”诞生。 2、软件定义:软件是程序、数据 相关文档的完整结合。其中,程序是能够完成预订功能和性能的可执行的指令序列;数据是使程序能够适当的处理信......

    软件工程知识点总结

    软件工程知识点总结 软件工程知识点总结 1.软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2.软件危机产生的原因:1.软件本身的复杂性、难衡量的特点;2.......

    软件工程实习总结

    一.实习题目c/s模式下的网络游戏平台(类似于联众)二.题目要求a.平台上至少能够提供两种游戏(仅供两人参加)供用户选择。b. 服务器端实现用户账号、密码的管理,监控用户上下线状态......

    软件工程考点总结[精选合集]

    第一章 1.软件是程序和所使程序正确运行所需的相关文档和配置信息.软件工程是一门工程学科,涉及软件生产的各个方面.软件过程是指制作软件产品的一组活动及其结果。 2.软件过......

    软件工程知识点总结

    软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。是一门指导软件系统开发的工程学科,它以计算机理论及其他学科为指导,采用工程化的概念、原......