您的位置:首页 > 其它

附加题1---我想搞懂的软件工程问题

2015-09-24 13:01 127 查看
第一章问题:

1.2.1软件有哪些形式?

答:①系统软件:操作系统、设备驱动程序、工具软件等;②应用软件:用户使用它们来完成工作,从管理核电厂到写文章,或者是通信、游戏、浏览网页、播放视频等;③恶意软件:软件病毒等。

第二章问题:

2.1什么是单元测试?其创建函数主要步骤?

答:单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

①设置数据;②使用被测试类型的功能;③比较实际结果和预期的结果。

第三章问题:

3.1什么是软件工程,它包括哪些?

答:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。

目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。

软件工程的主要课程

外语、高等数学、线性代数、高等代数、电子技术基储离散数学、计算机引论(C语言)、数据结构、C++程序设计、汇编语言程序设计、算法设计与分析、计算机组成原理与体系结构、数据库系统、计算机网络、软件工程、软件测试技术、软件需求与项目管理、软件设计实例分析、CMM/ISO9000等。

第四章问题:

4.3代码设计规范有哪些?

答:1提高编码质量,代码可读性和可维护性。

2代码编写规范

2.1删除所有无用代码
2.2必须给代码添加注释,一个类的注释字数不得小于代码的百分之20%
2.3建议遵循30秒原则。如果另一个程序员无法在三十秒内无法知道你的函数在做什么,如何做以及为什么要这样做,那么说明你的代码是难于维护的,需要得到提高。
2.4一个函数的代码长度不允许超过100行,超过一百行的函数建议在不破坏原子性的基础上进行拆分。
2.5变量都应在方法或者类的头部集中定义
2.6保证一行代码只做一件事
2.7使用括号来控制操作符的运算顺序,以免使用java默认的操作符优先级顺序。
2.8代码格式化:对代码进行格式化,再进行提交。
2.9接口不允许没有方法或者变量的声明

3.命名规范
3.1各种标识符的命名要使用有实际意义的英文单词或者英文单词缩写,缩写词及英文单词要收录在项目的简写词汇表中。切忌使用阿拉伯数字和拼音进行命名。
3.2类名:首字母大写,每个单词首字母都需要大写。
3.3方法名:首字母小写,其余单词首字母都需大写。
3.4全局变量,和常量名称要求全部字母大写。
3.5参数名称与局部变量基本相同,区别在于参数名称需要加上冠词a,an或者在单词结尾以s结束。

4.注释规范
4.1注释需要注意的事项:
★注释应该用中文清晰表达意思,应该是程序看起来更清晰,更容易理解
★注释要尽量简明,避免装饰性的注释。
★注释不但要说明做什么,还应当说明为什么要这样做。最好先写注释表明要做什么,再进行编码。

4.2类的注释
★类的用途,目的。包括其他人感兴趣的介绍。
★已知bug,当然最好是修改好所有的错误,但有时可能暂时没有办法修改,或者没有时间修改。
★开发和维护该类的历史列表,记录每一次修改的作者,日期,修改的内容。
★列举类的各种稳定状态,说明调用成员函数使类的状态产生的变迁(可选)。
★同步问题(可选)
★对主要的算法必须加以说明,主要流程必须给予引导性说明
标准格式:
如果对已经版本话的类进行了修改,需要按照如下格式为每一次修改附加修改历史记录:
//修改人+修改日期
//修改说明范例:

//李四2010/07/02
//添加错误数据修改后继续批量保存的处理函数saveBatch(
@Bind(key="itemParams",defaultValue="")StringitemParams,
@Bind(key="pid",defaultValue="")Stringpid)。
//王小二2010/07/02

4.3接口注释:
★接口的注释风格基本与类的注释风格相同;
★在别人使用接口之前,必须了解接口所包含的概念。检验一个接口是否应该定义的简单方法是:你是否能★够容易的描述接口的用途;
★接口如何应当和不应当被使用。开发者需要知道该接口如何被使用,也希望知道该接口不能被怎样使用。

4.4函数的注释
★函数头注释必须包括:函数执行了什么功能,为什么要这样处理;函数处理过程中对对象的哪些属性
★可能进行更改;函数执行前后,对象的状态;
★比较、循环等控制结构加注释(可选);
★在代码的功能并非一目了然的情况下,应当说明为什么要这样做;
★局部变量必须加注释;
★复杂难写的代码必须加注释;

4.5类属性的注释:
★描述域的用途。使别人知道如何去使用它;
★对于有着复杂事物规则的域,可以加入范例来说明。有时候一个简单的小例子,抵的上千言万语.

第五章问题:

5.2软件团队的模式有哪些?

答:①主治医师模式;②明星模式;③社区模式;④业余剧团模式;⑤秘密团队;⑥特工团队;⑦交响乐团模式;⑧爵士乐模式;⑨功能团队模式;⑩官僚模式。

第六章问题:

5.1什么是敏捷流程?及其原则?

答:敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。除了原则和实践,模式也是很重要的,多研究模式及其应用可以使你更深层次的理解敏捷开发。

原则是:①最重要的是通过尽早和不断交付有价值的软件满足客户需要。
②我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。
③经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。
④业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。
⑤围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
⑥在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。
⑦可以工作的软件是进度的主要度量标准。
⑧敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。
⑨对卓越技术与良好设计的不断追求将有助于提高敏捷性。
⑩简单——尽可能减少工作量的艺术至关重要。
⑪最好的架构、需求和设计都源自自我组织的团队。
⑫每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: