殷人昆《实用软件工程》复习资料
- 格式:doc
- 大小:1.04 MB
- 文档页数:19
1.软件工程目标:正确性、可用性、适合销售活动:需求、设计、实现、V&V(验证与确认)、支持原则:开发泛型、设计方法、支持工具、工程管理WW软件工程是开发,运行,维护和修复软件的系统方法,将系统化的,规范的,可度量的方法应用与软件的开发,运行维护的过程。
即将工程化应用于软件中。
2.软件过程中的基本活动(pdca)1.软件规格说明plan2.软件开发do3.软件确认check4.软件演进action3.瀑布模型:需求-》系统设计-》实现单元测试-》集成与系统测试-》运营维护。
他的显著特点是顺序性和依赖性。
4.演化模型:软件通过不断的演化才能完成和完善,其显著特点是迭代。
适合于业务和需求不断变更的开发过程,交付部分功能给客户,确认需求,逐步完善。
5.螺旋模型:将瀑布模型和演化模型结合起来,加入了风险分析。
6.增量模型:是将软件分解成一系列的增量的构件,在增量开发迭代中逐步加入,也叫极限程序设计。
7.软件工程原则:a)抽象自顶向下,逐层细化b)模块化的开发方法c)信息隐蔽和数据封装。
d)局部化e)一致性f)完备性g)可验证性8.软件工程基本原理:a)按软件生存期分阶段制定计划并认真实施b)坚持进行阶段评审c)坚持严格的产品控制d)使用现代程序设计技术e)明确责任f)用人少而精g)不断改进开发的过程9.识别用户要求,必须考虑的问题:a)功能和性能b)可靠性和质量c)总的系统目标d)成本与进度的把控e)制造需求f)市场竞争情况g)有效的技术h)将来可能的扩展10.可行性研究a)问题识别b)市场调查c)分析准备d)环境分析e)物理分析f)功能分析g)信息分析h)动态分析i)确立系统方案和成本估算j)模型评审k)成本可行性l)法律可行性11.面向对象设计面向对象=对象+分类+继承+消息通信,基本组成部分叫对象,计算是通过新对象的确立和对象之间的通信来执行。
相对于面向过程开发,核心:数据被封装在对象中,而不是全局变量中,数据流是通过消息传递,而不是面向过程解决办法。
《软件工程》期末复习重点第一章软件工程1.什么是软件工程。
A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。
2. 软件工程的三要素:方法、工具和过程。
第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。
概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。
c.运行维护:修正错误,使软件持久地满足用户需要。
改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。
如:瀑布模型的不足是不能适应需求的动态变更。
A.瀑布模型特点:可强迫开发人员采用规范化的方法。
严格地规定了每个阶段必须提交的文档。
要求每个阶段交出的所有产品都必须是经过验证(评审)的。
缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。
如果需求规格与用户需求之间有差异,就会发生这种情况。
只适用于项目开始时需求已确定的情况。
B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。
降低了规格说明文档变化的可能性。
减少了后续阶段错误的可能性。
c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。
当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
增量能够有计划地管理技术风险。
缺点:要求构件具备开放式的体系结构。
易退化为边做边改模型,从而使软件过程的控制失去整体性。
《软件工程》复习提纲一一、、 授授课课的的主主要要内内容容11.. 基基本本概概念念((11)) 有有关关““软软件件工工程程””的的基基本本概概念念11))软软件件工工程程的的诞诞生生那是1968……22))软软件件危危机机计计算算机机软软件件开开发发和和软软件件维维护护过过程程中中所所遇遇到到的的一一系系列列严严重重问问题题统统称称为为““软软件件危危机机””。
概括地说,软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。
33))软软件件包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件(计算机)。
文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。
软软件件由由计计算算机机程程序序,,数数据据结结构构和和文文档档组组成成。
计算机程序执行特定的功能;数据结构是程序运行所需的数据;文档是描述程序开发、使用和维护的资料。
44)) 软软件件工工程程的的概概念念采采用用工工程程学学的的原原理理来来管管理理和和从从事事软软件件的的开开发发和和软软件件维维护护,,称称为为软软件件工工程程。
(工程学:系统化、规范化、数量化)55))软软件件质质量量的的基基本本概概念念(a )软件质量的定义与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体。
具体来说:1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。
(b )软件质量特性(1)功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。
(2)可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。
(3)易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
(4)效 率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。
(5)维护性:软件产品可被修改的能力。
计算机论文常用的一些参考文献学生根据自己选择的开发工具,来选择以下参考文献填写在任务书中要求阅读或检索的参考资料及文献那一栏。
主要参考文献[1]刘韬,楼兴华.SQL Server2000数据库系统开发实例导航.北京:人民邮电出版社,2004.[2]丁宝康,董健全.数据库实验教程.北京:清华大学出版社,2003[3]孙强.基于的专题网站的研究与设计.东北师范大学,2006.[4]Michele Leroux Bustamants.Secure your Apps and WCF services with Windows CardSpace.MSDN Magazine,April2007.[5]肖建编编程实例与技巧集粹.北京:北京希望电子出版社,2003.[6]巴兹拉等安全性高级编程.北京:清华大学出版社,2003.[7]Jesse Libert.Programming C#中文版.电子工业出版社,2006.[8]米切尔的等编著权威指南.北京:中国电力出版社,2003.[9]曾登高编著系统架构与开发.北京:电子工业出版社,2003.[10]Jeffrey Richter.Applied Framework programming.北京:清华大学出版社,2003.[11]张海藩.软件工程导论.北京:清华大学出版社,2003.[1]周佩德.数据库原理及应用〔M〕.北京:电子工业出版社,2004.[2]刘炳文等.VISUAL BASIC程序设计——数据库篇〔M〕.北京:人民邮电出版社,1999.[3]李光明.Visual Basic6.0编程实例大制作〔M〕.北京:冶金工业出版社,2002.[4]王兴晶,赵万军等.Visual Basic软件项目开发实例[M].北京:电子工业出版社,2004.[5]陈艳峰,高文姬等.Visual basic数据库项目案例导航[M].北京:清华大学出版社,2004.[6]李红等.管理信息系统开发与应用〔M〕.北京:电子工业出版社,2003.[7]周之英.现代软件工程〔M〕.北京:科学出版社,2000.[8]张红军,王红.Visual Basic6.0中文版高级应用与开发指南〔M〕.北京:人民邮电出版社,2001.[9]林立军,程斌,翁迪恩.Visual Basic6.0数据库开发指南〔M〕.西安:西安电子科技大学出版社,2000.[10]张宏林,孔艳,王哲.按实例学Visual Basic6.0〔M〕.北京:人民邮电出版社,2000.[11]宋伟,吴建国等.中文Visual Basic6.0编程基础〔M〕.北京:清华大学出版社,2000.[1]陶宏才.数据库原理与设计[M].北京,清华大学出版社.2005.[2]董翔英.Access基础教程[M].北京:科学出版社,2005.[3]王兴晶,赵万军等.Visual Basic软件项目开发实例[M].北京:电子工业出版社,2004.[4]陈艳峰,高文姬等.Visual basic数据库项目案例导航[M].北京:清华大学出版社,2004.[5]李红.管理信息系统开发与应用〔M〕.北京:电子工业出版社,2003.[6]周之英.现代软件工程〔M〕.北京:科学出版社,2000.[7]张红军,王红.Visual Basic6.0中文版高级应用与开发指南〔M〕.北京:人民邮电出版社,2001.[8]林立军,程斌,翁迪恩.Visual Basic6.0数据库开发指南〔M〕.西安:西安电子科技大学出版社,2000.[9]张宏林,孔艳,王哲.按实例学Visual Basic6.0〔M〕.北京:人民邮电出版社,2000.[10]宋伟,吴建国等.中文Visual Basic6.0编程基础〔M〕.北京:清华大学出版社,2000.[1]郑阿奇.SQL Server实用教程(第2版)[M].北京:电子工业出版社,2005.[2]王珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,2006.[3]金旭亮,吴彬.网站建设教程[M].北京:人民邮电出版社,2003.[4]李长林.+SQL Server动态网站开发与实例[M].北京:清华大学出版社,2006.[5]求是科技.数据库管理系统开发实例导航[M].北京:人民邮电出版社,2004.[6]张海藩.软件工程(第二版)[M].北京:人民邮电出版社,2006.[7]张欣.Microsoft SQL Server2000Reporting Services[M].北京:清华大学出版社,2005.[8]郑人杰,殷人昆,陶永雷.实用软件工程(第二版)[M].北京:清华大学出版社,1997.[9]刘小伟,王萍.与SQL Server网站开发实用教程[M].北京:电子工业出版社,2006.[10]龚赤兵.2.0网站开发实例教程[M].北京:人民邮电出版社,2005.[11]Darie,Cristian,Zak Ruvalcaba.Build your own 2.0web site using C#&VB2d ed.SciTech Book News,2006.[12]Michele Leroux Bustamants.Secure your Apps and WCF services with Windows CardSpace.MSDN Magazine,April2007.[1]万峰科技网站开发四[酷]全书[J].图书情报知识,2005,(5).[2]郭瑞军数据库开发实例精粹[M].北京:中国电子出版社,2002.[3]邓文渊网络数据库技术[M].西安:中国铁道出版社,2005.[4]刁仁宏.网络数据库原理及应用[J].情报理论与实践,2004,(1).[5]张莉,王强.SQL Server数据库原理及应用教程[M].清华:清华大学出版社出版,2003.[6]郭瑞军,李杰,初晓璐数据库开发实例精粹[M].西安:电子工业出版社出版,2003.[7]宋昕网络开发技术实用教程入门与提高[J].情报杂志,2005,(7).[8]顼宇峰+SQL Server典型网站建设案例[M].清华:清华大学出版社出版,2006.)1〕张桂珠,刘丽,陈爱国.Java面向对象程序设计(第2版)[M].北京:邮电大学出版社,2005.〔2〕毕广吉.Java程序设计实例教程[M].北京:冶金工业出版社,2007.〔3〕王保罗.Java面向对象程序设计[M].北京:清华大学出版社,2003.〔4〕高林,周海燕.管理信息系统与案例分析[M].北京:人民邮电出版社,2004.〔5〕刘腾红,孙细明.信息系统分析与设计[M].北京:科学出版社,2003.[6]马朝晖,陈美红译.Java语言学导论[M].北京:机械工业出版社,2003.[7]何玉洁,梁琦.数据库设计教程[M].北京:机械工业出版社,2003.〔1〕郑阿奇.SQL Server实用教程.北京:电子工业出版社,2007.7〔2〕戴志诚.SQL Server2005数据库系统开发与实例.北京:电子工业出版社,2007.3〔3〕陆力斌.企业管理学.哈尔滨:哈尔滨工业大学出版社,2005.〔4〕郑人杰、殷人昆.实用软件工程.北京:清华大学出版社,1997.4〔5〕王珊,萨师煊.数据库系统概论.北京:高等教育出版社,2006.5〔6〕孙更新,吕婕.Java毕业设计指南与项目实践.北京:科学出版社,2008.〔7〕陈俞.信息系统分析与设计.北京:高等教育出版社,2005.〔8〕刘志成.SQL Server2005实例教程.北京:电子工业出版社,2008.〔9〕光军,胡波.JSP应用开发高级教程.北京:北京航空航天出版社,2007.〔10〕吴葳,洪炳熔.JavaBean高级讲解.北京:上海人民出版社,1997.〔11〕杨飞辰.基于Web的人事管理系统.北京:科技情报开发与经济出版社,2005.〔12〕苗春义.Java项目开发全程实录.北京:清华大学出版社,2008.6〔13〕潘浩,李芙玲.Java程序设计.北京:北京交通大学出版社,2005.11[1]刘亚秋,梁心东,蒋力等.C#程序设计与应用[M].北京:电子工业出版社,2002.[2]王昊亮,李刚等.Visual C#程序设计教程[M].北京:清华大学出版社,2003.[3]明月创作室.Visual C#编程精彩百例[M].北京:人民邮电出版社,2001.[4]美国微软公司.Visual C#2005软件的帮助信息[M].2005.[5]孙永强等.Visual C#.NET入门与提高[M].北京:清华大学出版社,2002.[6]王要武.管理系统开发[M].北京:电子工业出版社,2003.[7]李红等编著,管理信息系统开发与应用[M].北京:电子工业出版社,2003.[8]郭胜等.C#.NET程序设计教程[M].北京:清华大学出版社,2002.[9]康博工作室,张红军,王红等缟著Microsoft Visual Studio20056.0中文版高级应用与开发指南[M].北京:人民邮电出版社,2001.[10]林立军,程斌,翁迪恩缟著Microsoft Visual Studio20056.0数据库开发指南[M].西安:西安电子科技大学出版社,2000.[11]张宏林,孔艳,王哲等编著.按实例学Microsoft Visual Studio20056.0[M].北京:人民邮电出版社,2000.[12]宋伟,吴建国等编著.中文Microsoft Visual Studio20056.0编程基础[M].北京:清华大学出版社,2005.------------------------------------------------LINUX-------------------------------------------------------------参考文献[1]林慧琛《Red hat Linux服务器配置与应用》人民邮电出版社2006.1[2]岳浩《Linux操作系统教程》机械工业出版社2005.4[3]刘志国《练就Linux系统高手教程》延边出版社2006.1[4]社大鹏《Red hat Linux因特网服务器》中国水利水电出版社2004.2[5]毛德操胡希明《Linux内核源代码情景分析》[6]《Linux内核设计与实现(第2版)》(Robert Love著,机械工业出版社出版译著)[7]骆耀祖,刘远东,骆珍仪.Linux网络服务器管理教程.北京:电子工业出版社,2007.166~167[8]李洋,汪虎松.Red Hat Linux9系统与网络管理教程.北京:电子工业出版社,2006.248~263[9]冉林仓.Red Hat Linux9编程开发与网络管理.北京:电子工业出版社,2006.171~192[10]李成大.操作系统—Linux篇.北京:人民邮电出版社,2005[11]柳青.Linux应用教程.北京:清华大学出版社,2008[12]邱世华.Linux操作系统之奥秘.北京:电子工业出版社,2008-----------------------------------------------JAV A---------------------------------------------------------参考文献:[1]Eric.Java编程思想[M].第4版.机械工业出版社,机械工业出版社.[2]杜波依斯.MySQL技术内幕[M].第4版.人民邮电出版社,2011年07月.[3]林信良.JSP&Servlet学习笔记[M].清华大学出版社,2012年05月.[4]张峋,杨三成.关键技术:JSP与JDBC应用详解[M].中国铁道出版社,2010年11月.[5]张银鹤.点石成金:JSP+Ajax网站开发典型实例[M].电子工业出版社,2009年01月.[6]Weiss,MA.数据结构与算法分析:Java语言描述[M].第2版.机械工业出版社,2009年01月.[7]Metsker S J.Java设计模式[M].第2版.电子工业出版社,2012年09月.[8]孙卫琴.Tomcat与Java Web开发技术详解[M].第2版.电子工业出版社,2009年01月.[9]刘京华等.Java Web整合开发王者归来[M].清华大学出版社,2010年01月.[10]贺松平.基于MVC模式的B/S架构的研究及应用[D].武汉:华中科技大学,2006年4月[11]毕建信.基于MVC设计模式的Web应用研究与实现[D].武汉:武汉理工大学,2006年5月.[10]陈刚.Eclipse从入门到精通[M].北京:清华大学出版社,2005年4月.[11]清宏计算机工作室.《JSP编程技巧》.机械工业出版社,2004年5月.[12]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002年2月.[13]温谦.HTML+CSS网页设计与布局从入门到精通[M].人民邮电出版社,2008年08月.[14]刘晓义.XML技术及应用[M].哈尔滨工程大学出版社,2011年06月.[15]赵俊峰等.Java Web应用开发案例教程:基于MVC模式的JSP+Servlet+JDBC和AJAX[M].清华大学出版社,2012年01月.[1]冯燕奎,赵德奎.JSP实用案例教程[M]清华大学出版社,2004,5:70-100[2]王家华软件工程[M]东北大学出版社2001年3月303页[3]王宜贵软件工程[M]北京:机械工业出版社,2002:20-79[4]孙卫琴精通struts[M]电子工业出版社2004年8月50-70[5]孙卫琴精通hibernate[M]电子工业出版社2005年4月100-120[6]张洪斌java2高级程序设计[M]中科多媒体出版社2001年11月85-90[7]Jim Arlow UML2.0and the Unified Process[M]机械工业出版社2006年6月30-40[9]熊节、林仪明、张凯峰、陈玉泉等主编[《CSDN社区电子杂志——Java杂志》创刊号][10]《程序员》杂志2007年第4期[11]耿祥义编著.JSP基础编程[M].清华大学出版社,2004.55-162[12]徐建波,周新莲.Web设计原理于编程技术[M].中南大学出版社,2005.185-193[13]孙鑫编著.Java Web开发详解[M].电子工业出版社,2006.189-274[14]林上杰,林康司编著.JSP2.0技术手册[M].电子工业出版社,2004.3-6[15]萨师煊,王珊.数据库系统概论(第三版)[M].北京:高等教育出版社,1998.[16]蔡剑,景楠.Java Web应用开发:J2EE和Tomcat[M].北京:清华大学出版社,2004.[1]王海涛,-贾宗璞.基于Struts和Hibernate的Web应用开发[J].计算机工程,2011,37(9):113.[2]傅鹏,殷旻昊.基于Structs+Spring+Hibernate+Ajax技术的科研管理系统设计[J].软件导刊,2009,8(1):135-136.[3]龚瑜江,红黄永.基于Struts的Web开发[J].计算机与数字工程,2009,37(232):58-62.[4]李峰,刘彦隆.基于SSH框架与jquery技术的Java Web开发应用[J].科技情报开发与经济,2010,20(6):106-109.[5]赵洋,张丽,王恩东,张素宁.基于Structs+Spring+Hibernate的J2EE的架构研究[J].现代电子技术,2009,2(289):107-110.[6]许川佩,张民,张婧.基于Ajax的J2EE安全应用框架[J].计算机工程,2010,36(4):110-111.[7]陈正举.基于HIRBERNATE的数据库访问优化[J].计算机应用与软件,2012,29(7):145-149.[8]李宁,李战怀.基于黑盒测试的软件测试策略研究与实现[J].计算机应用研究2009,26(3):924-926.[9]Zoya Ali.Designing Object Oriented Software Applications within the Context of Software Frameworks[D].Ohio State University,2011.[10]Rachit Mohan Garg,YaminiSood,Balaji Kottana,Pallavi Totlani.A Framework Based Appro ach for the Development of Web Based Applications Waknaghat[J].Jaypee University of Informat ion Technology,2011,1(1):1-4.[10]《程序员》杂志2007年第4期[1]飞思科技产品研发中心,《JSP应用开发详解(第二版)》,北京:电子工业出版社,2004。
一、写出下列缩写英文的中文涵义CFD DFD OOA SA SD SP CMM CMMI UML CASE XP C/S B/SATAM PDL SQA MVC CRC MBS CBSD GUI SQL MTTR MTTFMTBF FTR PERT SCM CPM RMMP二、概念[1] 在《计算机科学技术百科全书中》,对计算机软件作出如下定义:计算机软件指计算机系统中的程序和文档,前者是计算任务的处理对象和处理规则的描述;后者是为了便于了解程序所需的阐述性资料。
[2] 软件和硬件具有完成不同的特性,软件是设计开发的,而不是传统意义上生产制造的。
[3] 软件工程是一种层次化技术,是建立在以质量焦点为基础的,分过程、方法、工具三个研究层次的综合技术。
[4] 软件工程是应用计算机科学、数学及管理学等原理,开发软件的工程,其框架可概括为:目标、过程和原则。
[5] 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为事务型的数据流图。
[6] 数据流图仅反映系统必须完成的逻辑功能,所以它是一种功能模型。
[7]耦合性是定性度量模块独立性的标准之一,它根据模块的外部特征提出的,是对软件系统结构中各模块间相互联系紧密程度的一种度量,也称块间关系。
[8] 衡量软件的独立性有两个定性的度量标准,即耦合和内聚。
[9] 任何程序都可由选择结构、循环结构和顺序结构3种基本控制结构构造,其共同点是单入口、单出口。
[10] 统一过程(UP)是一种用例驱动的迭代式增量开发过程,每次迭代过程中主要的工作流包括捕获需求、分析、设计、实现和测试等,这种软件过程的用例图式通过分析得到。
[11] 软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个自底向上或相反顺序集成的过程。
[12] 软件测试的目的是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。
《实用软件工程》第3版习题参考答案习题 11.1 开发文档都有哪些?用图示表示它们之间的关系。
开发文档包括目标程序、源程序、详细设计说明书、概要设计说明书、需求规格说明书、用户需求报告、软件合同,它们之间的关系如下图所示。
1.2 简述软件工程研究的内容。
软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。
其中软件开发方法的内容又涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级。
常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型。
软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose。
软件管理过程主要有CMMI、ISO9000、微软企业文化和敏捷文化现象。
1.3 详细解释软件的定义、程序的定义及软件工程的定义。
软件的定义:软件=程序+数据+文档。
这里的程序是指程序系统。
这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据和项目管理数据中的大量决策原始记录数据。
这里的文档指的是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。
现在有一种新提法正在引起关注,这种提法是:软件=知识+程序+数据+文档。
程序是计算机为完成特定任务而执行的指令的有序集合。
从应用的角度可理解为:面向过程的程序=算法+数据结构面向对象的程序=对象+信息面向构件的程序=构件+构架软件工程是研究软件开发和软件管理的一门工程学科。
1.4 软件工程的7+1条基本原理有什么现实意义?软件工程的7条基本原理是在面向过程的程序设计时代(结构化时代)提出来的,但在面向数据和面向对象的程序设计的今天,它仍然有效。
并且在军事上的实时跟踪监控系统中有很好的应用,而且随着软件的开发和管理的进步,它将不断完善和充实。
一、选择题:1、用例图中,用来表示用例的符号为( B ) 。
2、协作图中包含的元素包括(A ) 。
A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。
A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。
A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。
A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。
A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。
A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。
A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。
A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。
A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。
A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。
A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。
A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。
1.软件工程目标:正确性、可用性、适合销售活动:需求、设计、实现、V&V(验证与确认)、支持原则:开发泛型、设计方法、支持工具、工程管理WW软件工程是开发,运行,维护和修复软件的系统方法,将系统化的,规范的,可度量的方法应用与软件的开发,运行维护的过程。
即将工程化应用于软件中。
2.软件过程中的基本活动(pdca)1.软件规格说明plan2.软件开发do3.软件确认check4.软件演进action3.瀑布模型:需求-》系统设计-》实现单元测试-》集成与系统测试-》运营维护。
他的显著特点是顺序性和依赖性。
4.演化模型:软件通过不断的演化才能完成和完善,其显著特点是迭代。
适合于业务和需求不断变更的开发过程,交付部分功能给客户,确认需求,逐步完善。
5.螺旋模型:将瀑布模型和演化模型结合起来,加入了风险分析。
6.增量模型:是将软件分解成一系列的增量的构件,在增量开发迭代中逐步加入,也叫极限程序设计。
7.软件工程原则:a)抽象自顶向下,逐层细化b)模块化的开发方法c)信息隐蔽和数据封装。
d)局部化e)一致性f)完备性g)可验证性8.软件工程基本原理:a)按软件生存期分阶段制定计划并认真实施b)坚持进行阶段评审c)坚持严格的产品控制d)使用现代程序设计技术e)明确责任f)用人少而精g)不断改进开发的过程9.识别用户要求,必须考虑的问题:a)功能和性能b)可靠性和质量c)总的系统目标d)成本与进度的把控e)制造需求f)市场竞争情况g)有效的技术h)将来可能的扩展10.可行性研究a)问题识别b)市场调查c)分析准备d)环境分析e)物理分析f)功能分析g)信息分析h)动态分析i)确立系统方案和成本估算j)模型评审k)成本可行性l)法律可行性11.面向对象设计面向对象=对象+分类+继承+消息通信,基本组成部分叫对象,计算是通过新对象的确立和对象之间的通信来执行。
相对于面向过程开发,核心:数据被封装在对象中,而不是全局变量中,数据流是通过消息传递,而不是面向过程解决办法。
算法被包裹在对象中,实现功能。
12.统一建模语言:UML概述Unified Modeling Language的缩写,他聚集了建模的精髓。
数据建模(实体关系图ERD)业务建模(工作流)对象建模构件建模13.UML图用例图:描述系统边界和主要功能;主要该系统在它的上下文环境所提供的服务。
1)上下文环境建模:主要指在位于系统之外并与系统进行交互的参与者以及他们扮演的角色的含义。
2)功能需求建模:说明系统想要的行为。
交互图(时序图,协作图):描述用例的实现,其主要描述了系统的外部视图,如何通过对象之间的交互实现用例。
包括顺序图和协作图,顺序图也叫时序图或序列图,他是按照时间顺序来的。
类图:标示系统的静态机构类图从系统的逻辑视图展现了一组类、接口、协作和它们之间的关系,类图给出系统的静态设计视图,主动类的类图给出了系统的静态进程视图。
其主要包括1)类及其结构和行为2)接口3)协作4)关联、依赖、泛化关系5)多重性和导航指示符6)角色名字类图的关系:父子关系实现关系关联关系(单向关联有箭头,多项无箭头)聚合:整体和部分关系组合关系(也是整体与部分,但是部分离开整体无法存活)依赖关系(动物无法离开氧气,为依赖关系)整体类图状态图:模型化对象的行为泳道图泳道图构件图和部署图:展现物理实现的体系结构衍型:扩展建模能力14.软件需求:a)为满足用户解决某一问题而达到某个目标所需要的条件或者能力,系统或系统部件为满足合同、规格、标准说明或其他正式的强制性文档所必须具有的条件和能力。
为满足以上条件和能力的文档化说明b)软件需求包括:业务需求、用户需求、功能需求、非功能性需求。
c)业务需求:描述了组织愿景,即为什么要开发一个系统;系统的业务范围、业务对象、客户特性、价值和各种特性的优先级别。
d)用户需求:描述了系统必须完成任务,即用户对系统的目标要求。
它只涉及到外部可见行为,不涉及内部特性。
是用户对自身需求的一种陈述。
这种陈述可能与实际需求不一致。
e)功能需求:定义了开发者应该提供的软件功能或服务,但不涉及这些功能和服务的实现。
f)非功能需求:对功能需求的补充,包括了对系统的各种限制和用户对系统的质量的要求。
如系统响应时间或截面。
i.包括产品必须遵从的标准、规范和合约ii.外部接口的具体细节iii.性能要求iv.设计实现的约束条件15.需求获取的过程需求获取包括以下活动:(a)发现和分析问题(b)获取需求(c)需求归档需求获取的主要步骤(a)理解业务领域,即目标软件的业务环境,如银行、电信,了解后可以建立自对业务理解后的数据模型。
通过结合实际业务,迭代完善业务模型(b)定义项目的视图和范围,定义项目范围是描述项目该做什么,不该做什么一般使用用例图。
(c)寻找软件的需求来源,客户、竞品、系统需求规格说明书、当前系统的问题报告和改进要求、市场调研报告、观察用户如何工作、用户工作场景分析、事件和响应。
(d)识别用户类和用户代表,确定系统的用户及其分类,与用户一块工作,确定系统的决策者。
(e)确定系统的业务流程和业务规则(f)访谈和记录(g)需求整理和描述16.面向对象的UML需求获取方法:a)用户模型视图:从用户角度来标示系统,通过用例图来标示b)结构模型视图:通过静态的数据模型图,类图、对象图来建模c)行为模型视图:描述系统的动态和行为,以及在上述两种视图中的各元素如何交互。
d)实现模型视图e)环境模型视图面向对象模型,分为三个独立模型a)有用例和场景组成功能视图b)用类和对象标示的分析对象模型c)用状态图和顺序图标示的动态模型17.对需求文档的要求:1)完整:要求必要的需求信息,必须进行完整的描述2)无歧义:每种需求只有一种解释。
3)一致性:对需求规格说明,必须保持一致。
4)可验证:可演示、测试、分析、审查、特殊的检查5)可修改6)可追踪:向前和向后的追踪性。
18.软件需求评审的主要内容:a)用例:是否清晰,用例规格。
b)功能:是否清楚,是否必须,是否满足,是否覆盖异常c)性能:是否精确描述,是否制定指标,是否制定使用环境d)接口:外部、内部描述是否清晰。
调用关系。
e)数据:是否确定系统的输入、输出f)硬件g)软件h)通信i)正确性完整性一致性,兼容性,安全性清晰性,健壮性,可扩展性。
19.需求管理:a)需求变更:建议变更---分析影响---作出决策---交流---合并b)版本控制:确定需求文档版本c)需求跟踪:d)需求状态跟踪20.需求变更的控制策略:a)需求变更原因:内部原因,外部原因i.内部原因:需求获取的不确切,需要发生变更,以适应真正的客户需求ii.外部原因:客户需求与之前发生了变化,如:客户的组织结构和工作流程发生了变化。
b)需求变更的策略i.认识到变更不可避免的时候,为变更指定计划ii.重新确定需求的基线iii.指定变更的唯一渠道,防止因为变更导致的需求扩散。
iv.指定合理的需求变更管理过程:如必须经过变更管理委员会确定的变更,才能真正进入需求文档,而不是开发人员擅自做主变更需求。
21.软件设计a)传统结构化软件设计:数据设计,体系结构设计,接口设计,过程设计。
b)面向对象的软件设计:体系结构设计、类设计、接口设计、构件设计i.体系结构设计:软件的主要结构元素其之间的关系ii.类设计:转化为设计类的实现及软件实现所要求的数据结构iii.数据设计:主要是关系数据库中的E-R实体关系图iv.构件级设计:构件级设计22.软件设计原则:a)设计应遵循:过程抽象,数据抽象。
b)过程应遵循模块化的原则i.模块可分解ii.模块可组装iii.模块可被理解iv.模块连续性v.模块保护c)应遵循信息屏蔽的原则d)模块独立性:高内聚,低耦合。
e)模块设计原则:先把该模块下的所有下层模块看成黑盒23.极限编程a)极限编程是一种原型设计方法,是基于实践的设计方法。
b)极限编程的原则:交流、简单、反馈、勇气。
i.交流:鼓励开发人员与客户直接沟通,用沟通代替文档。
ii.XP不建议过分构建系统设计,反对杞人忧天的做法。
简单最好,实现为前提。
iii.反馈要迅速,反馈越快越好,进行结对编程,测试优先,现场客户。
iv.拥抱变化,不变是变化,要有坚持XP设计的勇气,同时有放弃勇气。
c)XP的重要方法:i.放弃包袱,轻装上阵。
ii.结对编程iii.测试优先,以测试用例为驱动,单元测试。
iv.重构v.持续集成vi.小版本vii.现场客户24.软件体系结构软件体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个子模块和子系统有效的组织起来,组织成一个完整的系统。
25.常见的风格:管道过滤器风格:26.面向对象的设计风格27.层次结构的风格(每一层定义一个抽相机,为上一层提供服务,并作为下一次层的客户)28.数据仓库风格(共享系统单元,所有人可以访问这些数据,此系统常见于专家系统中)专家黑板系统29.设计模式:设计模式分为三类:1)创建型模式:与对象的创建有关2)结构型模式:处理类与对象的组合,将一组对象组合成一个大的结构3)行为型模式:描述类与对象交互和职责分配。
按照使用范围,又分为对象和类两种类型其中23中设计模式,主要创建型:描述怎么创建一个对象,他隐藏对象创建的具体细节,实用程序可不依赖具体的对象,因此当增加一个新对象时几乎不需要修改代码。
其隐藏了这些类的实例如何创建、如何放在一起。
创建型类模式有:工厂模式创建型对象模式有:抽象工厂,构造模式,原型模式,单例模式重点1:抽象工厂模式:以同一接口建立一整组相关或相互依赖的对象,而不用指明个对象真正所属的具体类。
抽象工厂的特点:1.封装性:都是接口,不关心细节。
只需知道工厂类即可,就能创建出一个对象,省时省力。
2.约束性:产品约束在产品内部,外部不需要关心。
缺点:1.扩展性困难,增加一个新产品,需要抽象类,抽象类实现工厂都要修改,改动太大。
抽象工厂是一种契约关系,一种契约修改,所有的代码都要修改。
使用场景:1.使用对象组,这类对象有相同约束,如:文本编辑器,在Linux下的和Windows下的因为底层API不同,代码实现不同。
但是功能是相同的,有共同的约束条件,可以用抽象工厂,还有DB的操作,不同数据库的实例化。
2.一个模式在什么情况下才能够使用,是很多读者比较困惑的地方,抽象工厂模式是一个简单的模式,使用的场景非常多,大家在软件产品开发过程中,涉及到不同操作系统的时候,都可以考虑使用抽象工厂模式,例如一个应用,需要在三个不同平台上运行:Windows、Linux、Android(Google 发布的智能终端操作系统)上运行,你会怎么设计?分别设计三套不同的应用?非也非也,通过抽象工厂模式屏蔽掉操作系统对应用的影响。