- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程开发
第一章 软件工程基本观念
软件工程的目标与常用模型
软件工程的目标是提高软件的质量与生产率,最终实现软件的工业化生产。对开发人员而言,如果非得在质量与生产率之间分个主次不可,那么应该是质量第一,生产率第二。
软件工程的主要环节如图 1 所示,软件开发过程一般包括可行性与需求分析、系统设计、程序设计、测试和维护。
图 1 软件工程环节
常见的软件工程模型有:线性模型,渐增式模型,螺旋模型,快速原型模型,形式化描述模型等等.虽然线性模型比较简单,太理想化,但是每一个非线性的模型都能转化为一系列简单的线性模式,因此在其他模式中需要灵活运用线性模式.
软件开发的基本策略
1。2。1 复用
在一个新系统中,大部分的内容是成熟的,只有小部分内容是创新的.应该把大部分的时间用在小比例的创新工作上,而把小部分的时间用在大比例的成熟工作中。我们将具有一定集成度并可以重复使用的软件组成单元称为软构件.软件复用可以表述为:直接使用已有的软构件,即可组装(或加以合理修改)成新的系统。这样可以提高生产率和质量。
图 2 应用软构件产生应用软件
1。2。2 分而治之
我们可以把复杂的问题分解成N个简单的问题,再逐个寻求解决方法。但是最终的目的 是要保证单个的简单问题可以通过程序实现,组装后能够使原本复杂的问题得到合理解决。
1.2.3 优化——折衷
优化是用以优化软件的各个质量因素,但不能面面俱到,应折衷,其目标就是协调各个质量因素,实现整体质量最优。而不能盲目得拆东墙,补西墙。
第二章 软件开发过程各个环节介绍
2.1 可行性分析与需求分析
2.1。1 可行性分析要求
可行性分析是从经济、技术、市场与政策及人员方面分析这个项目做还是不做。
。2 需求分析要求
当确定做之后,我们就要与客户交流,进行需求分析,但由于客户表达不清、需求自身经常变动或分析人员理解有误,都会导致需求分析困难。因此,有必要通过请教行家或者分析同类型产品,来做进一步的分析。
系统设计
体系结构设计
体系结构就如同人体中的骨架,是软件系统中最本质的东西。其中层次结构和客户机/ 服务器结构是两种非常通用的软件体系结构。每个系统均有一个体系结构,我们在没有必要地情况下不可以修改.
2。2.2 模块设计
模块设计过程不仅要考虑本身提供什么样的功能,还要考虑该模块与其他模块如何交流. 常用以下三个特征进行模块优劣的评价:“信息隐藏”、“内聚与耦合”和“封闭—开放性”。模块的信息隐藏可以通过接口设计来实现,执行模块的功能或与模块交流信息必须且只
须通过调用公有接口来实现。
内聚是模块内部各成分之间的关联度,而耦合是模块间的依赖程度,在模块设计时应做到强内聚,弱耦合。
2。2。3 数据结构与算法设计
在算法设计时我们主要要从时间和空间的角度考虑软件的效率。时间与空间的优化也应该采取折中的方式。
2。2.4 用户界面设计
人机界面设计应从合适性、风格和广义美上着手。做到吸引眼球和谐,才能吸引客户。
程序设计
本节主要讲述了编程的一些小注意事项,需养成良好的编程规范。
1、命名约定
宏定义用大写字母加下划线表示,如MAX_LENGTH;
函数用大写字母开头的单词组合而成,如SetName, GetName ;
(3)指针变量加前缀p,如 *pNode ;
(4)BOOL 变量加前缀b,如 bFlag ;
int 变量加前缀i,如 iWidth ;
float 变量加前缀f,如 fWidth ;
(7)double变量加前缀d,如 dWidth ;
(8)字符串变量加前缀str,如 strName ;
(9)枚举变量加前缀e,如 eDrawMode ;
(10)类的成员变量加前缀m_,如 m_strName, m_iWidth ;
2、使用断言:使用assert函数可以追踪断点,检查程序是否有出错。
3、new、delete与指针:在C中是malloc与free,在申请内存后,要记得释放。要防止指针指向已释放的内存。
4、使用const :const可定义有类型的常量,可确保此常量不被改变。
5、不要将BOOL值TRUE和FALSE对应于1和0进行编程.
测试与改错
测试
测试的目的在于发现尽可能多的错误,而不是为了说明程序中没有错误。
测试可分为α测试和β测试。α测试是公司内部人员进行的测试,其中开发人员要做白 盒测试,就是已知各模块的结构进行单步调试,而测试小组要做黑盒测试,主要是看模块接 口是否正确,输出结果是否正确.β测试是请用户过来试用,发现在试用中出现的一些问题, 提交测试报告。
2。4.2 改错
在发现错误之后需要及时大胆得修改,但是修改之后还要重新测试,以免引入新的错误。
2。5 维护与再生
2.5.1 维护
软件维护划分为主要的三类:纠错性维护、适应性维护和完善
原创力文档


文档评论(0)