第一篇:软件工程个人总结
得分:
《软件工程》个人总结
姓
名:
石青龙
学
号:
201310403104
软件名称:
我的大学微信
日
期:
2016年06月16日
昆明理工大学信息工程与自动化学院
《软件工程》个人总结
1学习综述
在这个课程中学到需求分析的重要性以及提前要做好总体设计并且如何做好一个完备的总体设计。再到详细设计就是对总体设计的延伸,做到更加细致的设计。还有白鹤与黑盒测试的不同之处,以及用于不同的场合。
2软件开发
我们所开发的项目为我的大学微信,在小组中担任组员。我所做的就是设计一个整体的框架,以及详细的UI设计,所占比例为24%。
从上课开始,老师就告诉我们软件工程实际是一门专业,但是自己并没有怎么领会。直到在之后的学习中才理解,这其实是一门很需要时间的专业。
差不多第二节课,老师就要求我们有一个明确的软件设计目标,类似于app或者网页交互以及管理系统之类的。也就有了我们对实际需求的分析,同时我们就开始对可行性以及需求有了更加直观的认识。
因为,需求分析实际上就是————你想要什么,做什么,什么样子的。而相对应得可行性分析则是对实现需求的一个目标的精简化的过程。也就是怎么样更快更好的做到。后面我们写了自己的软件设计方向之后,并且在实现它的过程中才对各个部分深有体会。例如,我们组的是做一个andriod app,起初,并没有在意它的开发难度。毕竟抱着个学习的心态去尝试的。后面,做的时候才有了棘手的感觉,就是那种从零开始的感觉。每一个问题都要卡很久,从刚开始的平台搭建开始,到后面平台的使用都是简单但是烦人的问题。之后在遇到对andriod控件以及使用规则的不熟悉,一而再的陷入困境。这就是开始的可行性部分没有做到位的后果。
再说,慢慢熟悉对开发平台的使用之后,能够编一些自己想要的东西,但是凌乱不堪。在开发过程中,就有一种被项目牵着走的感觉,之后不得已重新开始。但是,对总体设计有了清楚的认识。那就是类似于计划书一样的东西。或者说是目录更合适一点,可以在后面开发的过程中不停的反过来参考,做到哪了,下一步该做什么,都是十分明确的,不会乱了自己的阵脚。对了,还有最好要有一个开发记录本,用于记录个人开发过程中的总结以及在开发前的界面以及详细控件要求或则功能等。在开发的时候就更加方便。再讲测试部分,则是有些惭愧,时至今日,尚未开发完成。也只是在实体机上进行部分功能的测试。其中黑盒以及白盒都有直观的理解。对于开发者自身而言,白盒测试是找出问题的主要手段。而黑盒测试则为体验者所用。
以上差不多就是我这个学期在上课和自己亲自动手编写程序中的感受了,说来从一个开始上来就乱写的新手来说,上了这门课之后,在老师不停的叮咛中,变成一个很有思路的新人,自我感收获很大。
《软件工程》个人总结
3意见和建议
以上差不多就是我这个学期在上课和自己亲自动手编写程序中的感受了,说来从一个开始上来就乱写的新手来说,上了这门课之后,在老师不停的叮咛中,变成一个很有思路的新人,自我感收获很大。至于建议有两点,一点是最后一节课的效果很好,为什么呢?实践!没有脱离课本的内容,所以以后这门课可以开始就一个计算机之类的作为引导,来阐述教材内容。二是课下自主开发有一定的困难,并且团队开发的具体实施方法并不熟悉,所以只不算一个建议只能算一个想法或者说问题。
第二篇:2014软件工程个人实习总结
西南交通大学信息科学与技术学院
软件工程系2012级
程序设计综合实习/软件工程实习
个人实习总结
专业:___软件工程______________ 班级:__********______________ 学号:__********______________ 姓名:__***__________________ 组别:____********______________
2014年7月
个人实习总结
基于本次暑期实习的情况,我收获很大。
从实训目的来看,本次实训主要是在VS2012开发平台上实现对C#语言、SQL数据库的应用,就我所在小组的项目工作内容来看,还需要掌握水晶报表和MDI多窗口应用技术。除了要充分熟悉开发平台及应用设计之外,还要掌握并实践软件项目设计规范及其开发流程即需求阶段、分析和设计阶段、编码阶段和测试阶段,以便能按时交付作业。
从实训的内容来看,我小组的项目是“人事工资管理系统”,主要实现公司企业对内部员工档案、工资、奖罚考勤等一系列的管理,这在当今不断壮大的企业用人单位是亟待需要的,总的来说,项目的难度系数不是很高,但也是相当困难。
在校外实习之前,老师先在校内培训了5天。5天实训中,着重讲解了c#语言应用,并布置编写“通讯录”工作台程序,windows应用程序和WPF程序,数据先是用文本保存,然后练习用数据库保存,期间每天需上交当日作业。5天的时间里,通过不断地学习,我从完全不懂c#语言成长到初步掌握了这门语言,当然在具体应用中还是会遇到些问题,但我还在学习。其实在实习的前一个月里,老师就上传了一些关于c#语言的资料并通知我们需要配置哪些软件环境,对于这一点,我是相当感谢何老师的,当然在校外的实习里,公司也全都把开发项目用到的一系列软件上传到公共文件夹里,从而免去了我们下载软件的麻烦,在此,感谢众老师。
校内实习要上交的作业我是在校外实习中补充完成的,因为之前上交的作业由于时间仓促大都有错误,所以借着校外实习中对c#语言的进一步应用和讲师的详细讲解后,我重新改正了错误,希望何老师能谅解采纳。
校外实习是从7月12号开始,历时15天,15天的最后一天要回校评审。我对本次校外实习的各个方面都十分满意。相比上次实习,首先这里的住宿学习条件非常好,住宿和实习地都安装了空调,实习地方环境清幽宽敞明亮,伙食也非常好。然后就是
实习讲师非常专业和负责,他事先把所有有关实习的资料软件存放在公共文件夹,且规划入微。一开始先是对我们进行C#测试分好组安排好每组项目任务,又指导我们每个小组安装SVN软件,方便小组文件上传与统一,整体一气呵成,不似之前实习的凌乱,这一点我十分敬佩。之后每天都先安排好任务工作,认真且非常详细的给我们操作示范并细心地制作成word文档供小组之后查看。每隔几天都会有小组评审,主要针对小组所编文档的规范程度和不足提出修改建议。作为小组的PM,我必须承认一开始工作任务安排不当,没有完全发挥各成员的优势,以致文档编写的有些瑕疵,不过在小组评审过后,我便及时更改了项目工作的分工,而之后小组项目工作进行的非常顺利,每个人的能力都得到了最大的发挥和升华,当然这完全得力于小组成员的高度配合。
我小组是c#软件开发第一组,组内有6名成员,两个主要负责项目核心代码的编写,其余负责简单模块代码的编写,我主要负责填写与修改相关项目文档并督促小组进度和团结组内成员、合理分配组员任务并及时调节组内安排的各种不适与问题。校外实习的过程中,小组成员高度团结,协调合作,对所有问题都能及时探讨并高效解决,有时遇到分歧,不过在全体讨论后,都能找到合理的统一方案,如在界面设计环节中,就登陆界面和模块界面的设计中,组员有很多不同建议,在询问老师和权衡实现困难程度后,我们达成了一致意见,统一后的界面相比之前更加规整明晰,且功能更加健全,当然这是我们小组齐心合力的结果。在开发的过程中,出现过项目分工不明确的问题,其原因源于我考虑到组员能力的不同,所以就把大部分的工作安排给能力高的人身上,其他能力低的只暂让他们自由学习希望能尽早跟上小组步伐,不过事实证明我错了。让部分组员自由学习而不参与项目的工作中本身就拖累了小组的整体速度,而且在短暂的时间里,他们也实在学不到任何实际的东西,所以后来我更改了战略。我先让能力低的组员尝试参照模板编写一些文档的简单部分,然后让能力稍高点的组员继续补充文档的核心部分,最后由我修改格式和内容,最后让老师审阅。这个方案实施过后,小组的效率整体上明显提高,每个人各司其职,全组团结一致,共同为项目的完成发挥自己的聪明才智。而之后,在项目编码阶段,我们小组的TL负责对项目整个框架的构建,即设计好主要的窗口原型,然
后指导小组成员在自己所负责的模块上添加具体事件代码,最后再进行修改,这样做不仅将组员团结在一起提高组内效率,更直接提高了组员的编程能力。
需求分析阶段和设计阶段很快结束了,我们小组齐心协力按时完成了相关文档的编写,包括需求规约、实现规约、界面设计word图形文档、数据库设计说明书、详细设计说明书和概要说明书,在老师评审过后,发现问题还是有很多,作为项目经理的我本该对这些文档进行及时修改和更正,但由于时间仓促且我们是第一组需第一个评审,所以就马马虎虎的拿未精确修改的文档进行审评了,老师着重对系统模块图和模块功能描述那块提出了些许建议,并让演示了小组编写的代码程序,对其中错误问题提出了解决方案。之后进行一番修改过后,我小组正式进入了编码阶段,编码只有短暂的3天,后两天老师分小组评审并提出改进意见,小组修正和改进代码结构语句,完善项目要求,紧接着进入测试阶段,老师又着重介绍了一些测试工具方便小组测试,填写并修改好测试文档后,整个实习就将要进入尾声了。再回校进行最后评审项目PPT和提交作业后,暑期实习就正式结束。
短短半个月的实习中,我深深的感受到自己在实际应用中专业知识的匮乏和短时间学习掌握一门新知识和新技术的困难,这是我非常畏惧的两大难题。就自身来说,我喜欢有所准备,不喜欢临阵磨枪,尽管之前对实习要求的知识技能有些了解,但到真正实施时,还是不免有些不知所措,而之后能慢慢克服畏惧慌张并团结小组成员按时且高效的完成作业,这都得力于实习老师和组员对我的巨大帮助,在此,由衷感谢他们,也感谢我自己。
本次实习,我成长了很多,相比过去的浮躁戾气,现在的我更多的是一份耐心和隐忍,而且在面对新知识和新技能时,我不再紧张无措,而是耐心学习,认真处理每个问题,积极迎接每个挑战,这才是一个将要步入社会的合格大学生所应具备的品质。而且,在书本知识的具体应用中,我秉承“熟能生巧”这句古语的精髓,坚持不懈,勤加练习,一次次的遇到困难,一次次的战胜困难,又一次次的总结困难。
这次实训是对我们学习的一个检验。项目中有很多知识在日常的学习中都没有接触过,同时也提醒我:要想成为一个合格的程序员就需具备一种自学能力,千万不能畏惧挑战,因为在寻找答案和解决问题的过程中,不仅是项目工作得以完成,而且自己的能力也在潜移默化的提升。我们要不断地探索,不断地尝试,不断地锻炼自己的胆识与勇气,要相信,只要自己秉承努力奋斗、为理想拼搏的精神,尽管未来道路荆棘丛丛,也一定可以披荆斩棘,度过重重难关,实现自己的理想。
这次实训是对我们实际能力的一个提升。让我感受最深的是理论和实际的结合,正如列宁那句话所说,“理论联系实际,实践是检验真理的唯一标准”。理论知识固然重要,可是无实践的理论就是空谈。真正做到理论与实践的相结合,将理论真正用到实践中去,才是展示自己才华的最佳方式。
这次实训也是我们日后步入社会进入团队合作的一个很好的奠基。本次实训,除了专业知识的应用,也让我收获了好多人生哲理。个人力量固然重要,团队力量也不容小觑。团队是个人才能展示的最佳舞台,是个人才能升华的最佳练习场,我爱我们这个团队。
实习真的结束了,相信在它的锻造下,我会走的更远。
第三篇:软件工程实践个人总结
软件工程实践个人总结
学号:
在这个学期的软件工程实践课中,我们小组所选的题目为XXX公司全国销售管理系统。按照这个题目及相关需求,我们小组对选题进行了需求分析、模块设计、系统设计、数据库设计、用户界面设计等,并积极完成相应的开发编码工作,后又对开发的系统进行了相应功能的测试工作。
对项目的理解
我们项目小组制作的的是XXX全国销售管理系统,该公司考虑进行集约化经营模式,进军电子商务领域,将全国市场资源进行整合形成有自身特色的经营体系,提升企业核心竞争能力,为此需要运用电子商务的力量对全国经销商资源进行整合,对线上和线下进行双重营销。
经过对该项目的相关分析,我们小组明确了要具体实现的功能模块。我们所开发的系统共有两大模块,一块为XXX公司面向普通用户的在线商城销售系统;另一块为XXX公司用户进行对内的自我管理的管理系统。两个大模块下具体细分包括网上商城、客户管理、市场及销售管理、内部办公系统、仓库管理、财务管理、权限与安全7个子模块 在线商城中,要实现商品信息的展示、浏览,用户将添加商品到购物车,下单购买等功能。管理系统中,要实现的功能包括:公司的内部人员及人员对应的权限的管理、公司产品库存的管理、公司财务的管理、公司推出的一些市场营销活动(比如:促销、广告等)的管理等。
自己在项目中负责的部分
在小组完成该项目的工程中,组内进行了明确的分工,包括项目初期的分析、文档撰写及项目后期的开发测试过程。在小组中,我负责的部分为:项目初期的数据库分析、数据库设计文档的撰写和后期的测试工作。在数据库设计及相应文档撰写方面,我独立完成了数据库的初期设计和数据库设计文档的撰写,数据库文档总页数为11页。我所撰写的数据库设计文档被组内其他人和其他文档整合到一起,后来,实际的开发人员在此基础上进行了一部分的修改。在后期的开发过程中,我负责的部分为系统测试。具体负责的部分为:网上商城、库存管理、系统权限与安全这三个模块的测试工作。网上商城部分,主要功能包括商品信息的浏览、购物车功能及下订单三大部分。在编写的测试用例中,包括:
1.商品信息展示测试:分别以游客及网上商城注册用户身份浏览商城,在商品类目中选择相应的商品信息,查看商品信息的显示是否存在问题。随机打开商品信息条目,查看商品的详细描述信息,查看商品详细信息页面是否能正常显示。
2.购物车相关功能测试:购物车需要以注册用户身份登录才能正常使用,游客无法正常使用购物车功能。购物车相关功能包括商品添加到购物车、购物车中浏览已添加的商品、将已添加的商品从购物车中删除、选择购物车中的商品提交订单。每个购物车的相关功能都编写了相应的测试用例。结果发现在网上商城的初期版本中,购物车无法正常删除已添加的商品信息,已作为bug提交给相应的开发人员。在后续的版本中,该bug已经被修复。
3.由于订单功能设计支付等相关部分,开发人员未完全实现订单的相应功能。所以订单部分无法进行详细的测试。
库存管理部分,主要功能包括商品库存信息查看、出入库单的查看、出入库详情的查看、商品出入库及出入库单的审批。编写的测试用例中,包括:
1.商品库存信息的查看:以超级管理员或库存管理员的身份登录后台的管理系统,在库存中查看商品的库存详细信息。2.出入库单的查看:查看出入库单是否正确。
3.商品出入库的测试:新建商品的出入库单,提交知否能否在出入库单中查看到且出入库单的商品信息、数量、出入库单的状态是否正确。
4.出入库单的审批测试:在出入库单的审批界面中,允许某些出入库单的审批,不允许另一些出入库单的审批,然后在出入库单查看界面,查看审批的订单的状态是否发生改变。系统角色权限及安全部分,主要的功能包括:新建角色、删除角色、角色权限的管理。测试用例包括:
1.以超级管理员用户登录后台管理系统,建立新的角色并赋予相应的权限。
2.以超级管理员身份登录,并删除某些已经存在的角色,看系统是否会产生某些级联的错误。
3.角色权限的管理:为已存在的角色添加或删除某些权限。经过测试,在我测试的模块中,只发现商品购物车无法正常删除已添加的商品,其他的功能都能正常使用。
经验总结
本次的实践让我学到了一些我之前不了解的东西。这次的软件工程实践,分工十分明确,有分工的职责也很细,我分到的岗位是软件测试。在此之前,对于软件测试,我只是听说过,却并没有真实地接触过。对于组长指派给我的编写测试用例,我完全不知道要怎么写,也不知道从何下手。后来,同样是负责测试用例的组里其他成员给我发了一份测试用例的文档,我以此为参照,结合自己负责的部分,才渐渐对于测试用例有了一个大致的认识。按照自己对于软件测试的理解,加上同学的测试用例示例,结合同学的指导,我才大致完成了测试用例文档的编写,也顺利的完成了对开发的销售管理系统的测试。在这些测试用例的编写中,由于我对软件测试及测试用例的了解不深,难免存在一些问题,例如:不能很好的测试到系统中的一些功能,无法测试到一些会引发问题的情况等。另外,在这次的软件工程实践里,也跟着整组人完整地经历了一遍软件开发的流程。之前的一些课程虽然也有涉及,但总的来说没有这么完整,时间跨度上也没有这么长。在这么课中,第一次接触到了软件开发小组中用到的周报,也学到了其他一些书本上没有的东西。
第四篇:软件工程总结
软件工程课程总结
摘要:
计算机是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)