- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程复习
第一章
1、软件工程的基本原理
用分阶段的生命周期计划严格管理
坚持进行阶段评审
实行严格的产品控制
采用现代程序设计技术
结果应能清楚地审查
开发小组的人员应该少而精
承认不断改进软件工程实践的必要性
2、软件工程方法学的三要素:方法、工具、过程
方法:完成软件开发的各项任务的技术方法,回答“怎样做”的问题;
工具:为运用方法而提供的自动的或半自动的软件工程支撑环境;
过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
3、面向对象方法学的4个要点
(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。
(2)把所有对象都划分成类(class)。
(3)按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。
(4)对象彼此间仅能通过发送消息互相联系。
4、软件生命周期分时期、分阶段。各阶段主要完成的任务,回答什么问题
软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。
软件定义时期的任务是: 确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完成。
软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
维护时期的主要任务是使软件持久地满足用户的需要。具体地说,当软件在使用过程中发现错误时应该加以改正;当环境改变时应该修改软件以适应新的环境;当用户有新要求时应该及时改进软件以满足用户的新需要。通常对维护时期不再进一步划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程。
每个阶段的基本任务:
1、问题定义:问题定义阶段必须回答的关键问题是:“要解决的问题是什么?” 这个阶段的任务是通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告得到客户的确认。
2、可行性研究:这个阶段的任务是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法,回答:“对于上一个阶段所确定的问题有行得通的解决办法吗?” 的问题
3、需求分析:这个阶段的任务是确定目标系统必须具备哪些功能。准确地回答“为了解决这个问题,目标系统必须做什么”。
4、总体设计:必须回答的关键问题是:“概括地说,应该怎样实现目标系统?” 这个阶段的任务一个是软件工程师实现目标系统的几种可能的方案,通过分析权衡每种方案的优缺点后选出最佳方案,制定实现最佳方案的详细计划;另一个是设计程序的体系结构,即确定程序由哪些模块组成和模块间的关系。
5、详细设计:这个阶段的任务是把解法具体化,即详细设计每个模块,确定模块功能需要的算法和数据结构。回答下面这个关键问题:“应该怎样具体地实现这个系统呢?”
6、编码和单元测试:这个阶段的任务是写出正确的容易理解、容易维护的程序模块
7、综合测试:这个阶段的任务是通过各种类型的测试(及相应的调试)使软件达到预定的要求。
8、软件维护:这个阶段的任务是通过各种必要的维护活动是系统持久地满足用户的需要。
5、几种典型的模型,基本特点
1、瀑布模型
特点:
1. 阶段间具有顺序性和依赖性
2. 推迟实现的观点
3. 质量保证的观点
瀑布模型的优点:
结构简单,强调软件开发过程的阶段性和顺序性;
对软件开发管理严格,文档齐全(里程碑驱动或称文档驱动),注重复审,保证了软件的质量;
软件开发的支持工具比较齐全;
支持推迟实现的观点,尽可能将编码向后推迟.
瀑布模型的缺点:
过程不可逆转,前面阶段隐藏下来的问题会在后面放大;
由于强调软件开发的阶段性,反馈信息慢,拖延了开发进度;
由于是文档驱动的,因此耗费了太多的时间和精力;
重视需求规格说明,然而获得一个完整的规格说明是非常困难的,导致了开发出来的系统最终需求与最初需求不一致,大大地降低了实用性.
二、快速原型模型
快速原型模型是不带反馈环的,这正是这种过程模型的主要优点:软件产品的开发基本上是线性顺序进行的。
三、增量模型(也称为渐增模型)
能在较短时间内向用户提交可完成部分工作的产品,是增量模型的一个优点。
另一个优点是:逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。
增量模型的优点:(PPT里的)
项目可以分解为多个子系统,子系统
文档评论(0)