1.1.软件工程概述1.1.3 软件危机软件危机具体表现:1.软件开发进度难以预测,软件开发成本难以控制2.用户对产品功能难以满足3.软件产品质量无法保证4.软件难以维护5.软件缺少适当的文档资料软件危机的原因:1.从事软件开发的人员对这个产业认识不充分,缺乏经验2.缺乏统一的,标准的开发过程设计,缺乏规范化的方法论进行指导3.忽视软件开发前期的需求分析4.文档资料不齐全,不准确5.忽视测试的重要性6.没有完善的质量保证体系7.开发团队内部交流不顺畅,不充分8.不重视维护,或由于以上原因造成工作的困难1.1.4 软件工程概念和基本原则软件工程有2方面的含义: 一方面软件工程是指到计算机软件开发和维护工程的学科,另外一方面,它是人们把经过时间考验而证明正确有效的管理技术当前能够得到的最好的技术方法结合起来,经济的开发出高质量的软件并有效的维护它。软件工程:1.把系统化的,规范的,可度量的途径应用于软件开发,运行和维护的过程,也就是把工程化方法应用于软件中;2.研究系统化的,规模化的,可度量的途径以工程化的形式组织软件的开发和维护,应能够保证达到以下目标:1.开发成本控制在预计的合理范围内2.开发周期能够控制在预计的合理时间范围内3.软件的功能和性能能够满足用户需求4.软件具有较高的质量5.软件具有较高的可靠性6.软件产品易于移植,维护,升级和使用软件工程的7条原则:1.供分阶段的生命周期计划严格管理。这条基本原理要求把软件生命周期划分为若干个阶段,并制定相应的切实可行的计划,然后严格按照计划对软件的开发和维护工作进行管理2.坚持进行阶段评审。在每个阶段都进行严格的评审,以尽早发现软件开发过程中所犯的错误3.实行严格的产品控制。不能随意对软件进行修改,必要的修改必须严格按照严格的规范进行评审,获得批准后才能实施修改4.采用现代程序设计技术。采用先进的开发技术提高开发和维护的效率,降低开发中可能出现的错误,提高软件产品质量5.结果应该能够清楚的审查。根据软件开发项目的总目标和完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚的审查6.开发小组的人员应该小而精。小的开发小组,可以降低交流成本,精炼的开发人员可以极大的提高开发效率,并显著的降低错误。7.承认不断改进软件工程实践的必要性。积极主动的采用新技术,注意不断总结经验,对于促进软件产品的质量也有莫大的效果。1.2软件生命周期 一个软件产品也要经过一个包含孕育,诞生,成长,成熟,衰亡等,称为软件生命周期。概括的说,软件生命周期包括软件定义,软件开发,软件运行维护三个时期,并可以进一步划分为可行性研究,
项目计划,需求分析,概要设计,详细设计,编码实现与单元测试,系统集成测试,系统确认测试,系统运行与维护等几个阶段。1.2.1 软件定义期软件定义是软件项目的早期阶段,主要由软件系统分析人员和用户合作,针对有待开发的软件系统进行分析,规划和规格描述,确定软件是什么,为今后的软件开发做准备。分4个阶段:1.软件任务立项软件项目往往开始于任务立项,并需要针对项目的名称,性质,目标,意义和规模等作出回答,以此获得对准备着手开发的软件系统的最高层描述。2.项目可行性分析可行性分析是针对准备进行的软件项目进行的可行性风险评估。因此,需要对准备开发的软件系统提出高层模型,并根据高层模型的特征,从技术可行性,经济可行性和操作可行性三个方面,对项目作出是否值得往下进行的应答,由此决定项目是否继续。3.制定项目计划在确定项目可以进行后,接着需要针对项目的开展,从人员,组织,进度,资金,设备等多个方面进行合理的规划,并制定项目的开发计划。4.软件需求分析软件需求分析是软件规模描述的具体化和细节化,是软件定义时期需要达到的目标。需求分析要求以用户需求为基本依据,从功能,性能,数据,操作等多方面,对软件系统给出完整,准确,具体的描述,用于确定软件规格。需求分析是从软件定义到软件开发的最关键步骤,其结论不仅是今后软件开发的基本依据,同时也是今后用户对软件产品进行验收的基本依据。1.2.2 软件开发期1.软件概要设计2.软件详细设计3.编码和单元测试4.系统集成测试5.系统确认验证1.2.3 软件运行和维护期软件系统的运行是一个比较长久的过程,跟软件开发机构有关的主要任务是对系统进行经常性的有效维护。软件的维护过程,也就是修正软件错误,完善软件功能。1.3 软件开发过程模型软件开发模型提供了一个框架并把必要的活动映射在这个框架中,包括主要的开发阶段,各个阶段要完成的主要任何和互动,各个阶段的输入和输出。1.3.1 瀑布模型计划 => 需求 => 设计 => 编码 => 测试 => 运行维护适合下面特征的项目开发:1.需求稳定,变化很小且开发人员能够一次性获取全部需求的项目2.软件开发人员经验丰富,对应用领域非常熟悉3.软件项目本身的风险很低1.3.2 原型模型1.快速原型方法快速原型是原型模型在软件分析,设计阶段的应用,用来解决用户对软件系统在需求上的模糊认识,或用来试探某种设计是否能够得到预期结果。2.原型进化模型原型进化对开发过程的考虑是,针对有待开发的软件系统,先开发一个原型系统给用户使用,然后根据用户使用情况的意见反馈,对原型系统不断修改,使它逐渐接近并最终达到开发目标。适合下面特征的项目开发:1.对现有软件产品进行升级或者功能完善2.开发人员和用户交流困难,需求获取困难3.开发人员对技术熟悉或把握性不大4.具有支持快速开发的工具1.3.3 增量模型增量模型在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则将软件系统按照功能分解为许多增量构件,并以构件为单位逐个的创建于交付,直到全部增量构件创建完毕,并都被集成到系统之中交付用户使用。适合下面特征的项目开发:1.待开发系统能够被模块化2.软件产品可以被分批次交付3.软件开发人员对应用领域不熟悉,或者一次性开发的难度很大4.项目管理人员把握全局的水平很高1.3.4 螺旋模型螺旋模型既是一种引入了风险分析与规避机制的过程模型,又是瀑布模型,快速原型丰富和风险分析方法的有机结合。1.3.5 喷泉模型喷泉模型是专门针对面向对象软件开发而提出的。1.3.6 统一软件开发过程(RUP)统一软件开发过程是基于UML的一种面向对象软件开发的过程。工作流 => 业务建模 => 需求 => 分析和设计 => 实现 => 测试 => 发布 => 配置变更与管理 => 项目管理 => 环境1.4 软件企业过程能力评价模型软件工程研究院(SEI)提出了一个五级别的过程成熟度综合模型。1.初始级2.可重复级3.定义级4.管理级5.优化级SEI 将关键过程区域(KPA)与每一个成熟度级别联系起来。KPA 描述了要达到某一特定级别必须满足的软件工程功能(如软件项目计划,需求管理),每一个KPA均通过标识下面特征来描述:1.目标 :KPA要达到的总体目的2.约定 :要求(组织必须遵守的)。这些要求是要达到目标就必须满足的,或者是提供了是否实现目标的考察标准3.能力 :使得组织能够满足约定要求的那些事务(组织的或技术的)4.活动 :为了完成KPA的功能所需要的特定任务5.监控实现的方法 :活动在实现过程中被监控的方式6.验证实现的方法 :KPA 的活动能够被验证的方式。成熟度模型中定义了18个KPA(每一个都用上述的结构来描述),它们映射到过程成熟度的不同级别。过程成熟度第二级:软件配置管理;软件质量保证;软件子合同管理;软件项目追踪和查错;软件项目计划;需求管理;过程成熟度第三级:详细复审;组内协调;软件产品工程;集成的软件管理;培训程序;组织的过程定义;组织的过程焦点;过程成熟度第四级:软件质量管理;定量的过程管理;过程成熟度第五级:过程变化管理;技术变化管理;错误预防;1.5 软件开发技术1.5.1 结构化技术1.5.2 面向对象技术1.5.3 组件技术1.6 软件开发过程的建模与文档1.项目前期1.现状分析2.软件分析3.组织结构分析4.各种需求收集,主要来源于现状分析5.粗略设计6.可行性分析项目前期的技术文档主要包括,需求说明书,技术应答书,软件任务立项报告,可行性研究报告。2.需求分析软件需求分析规格说明书 主要由厦门6个部分组成:1.引言,包括编写目的,背景说明,术语定义及参考资料等2.概述主要功能,约束条件或者特殊背景3.数据流图与数据字典(结构化方法),用例模型(面向对象方法)4.用户接口,硬件接口及软件接口5.性能需求,属性等6.其他需求,如数据库,操作及故障等3.概要设计1.目的,背景,定义及参考资料2.总体设计3.接口设计4.数据结构设计5.系统出错设计4.软件的详细设计和实现1.目的,背景,定义及参考资料2.程序系统的结构3.每个程序模块的设计5.测试单元测试,集成测试,验证测试等。测试阶段的主要任务是设计测试用例并执行测试,并以"测试计划"和"测试报告"的形式提交书面报告。6.项目结束项目开发总结报告:1.目的,背景,定义及参考资料2.实际开发结果3.开发工作评价4.经验教训

1.软件工程--软件建模与文档协作 --- 软件开发过程相关推荐

  1. 经验分享 | 最佳文档协作软件推荐

    早在 2012 年,麦肯锡研究报告称,员工通常花费 1.8 小时搜索和收集信息. 但那是很久以前的事了.今天,我们拥有云存储系统,允许我们在线共享文档并在任何设备上查看它们.所以,应该很容易找到我们需 ...

  2. 在线文档协作:办公必备高效率神器

    文档处理一直是办公中使用频率最高的工具之一,我们经常说的Office三大件:word.Excel.powerpoint,是为企业办公最需要的基础办公软件. 无论是多大的企业,涉及到公司日常的运营文件, ...

  3. 推荐 6 款还不错的文档协作工具~

    你们团队是否正在寻找便捷丰富功能的文档协作软件? 文件协作软件帮助你和你的团队更有效地工作,并进行实时协作,为创新创造更多的空间. 但是,今天有数百种文档协作工具,你应该选择哪一种呢? 为了帮助你,我 ...

  4. 推荐两款好用的企业文档管理软件

    档案管理工作是一项专业性.政策性.机密性很强的工作,它也是信息的重要载体,信息的主要源头.无论是学校.企业或是政府都需要对档案进行管理,因此管好用好档案,对现代社会的生存与发展具有重要的现实意义. 什 ...

  5. 软件工程 学习管理系统 需求分析文档

    软件工程 学习管理系统 需求分析文档 [摘要] 学生学习管理系统是学生管理的一个重要组成部分,也是学校管理的组成部分.尤其是在信息技术高度发达的今天,利用信息技术实现高效的校园学习管理有着巨大的实用价 ...

  6. 软件需求规格文档(含附录)

    智慧校园数据管理系统 软件需求规格文档 文件版本2.2版本 文件状态:修改完成 文件作者:22组全体成员 完成日期:2023年4月11日 软件需求规格说明 a. 引言 2 a. 1目的 a. 2文档约 ...

  7. 如何挑选文档管理软件?

    21世纪,一个全新的信息化时代,从最初的传统办公到现在的信息化办公,一个世纪的跨越造就了各种大数据的诞生.然而在这个数据横行的时代,文档管理产品市场逐渐兴盛起来,文档作为企业的智慧信息的载体,在企业发 ...

  8. Confluence 文档协作平台安装部署笔记

    文章目录 一.下载并安装 1.下载地址 2.赋予运行权限 3.执行安装 二.初始化配置Confluence 1.访问 Confluence 页面 2.激活 Confluence 3.配置数据库(使用M ...

  9. 为你开发的应用赋能文档协作功能

    为你开发的应用赋能文档协作功能 学习如何集成OnlyOffice办公套件,为你的用户开启其文档协作功能,研究已有应用案例的代码示例. 在我们之前的文章里面,我们讲述了在开发web应用中,如何通过Onl ...

  10. 史上最全的团队文档协作及管理工具盘点,看看哪款适合你

    转载地址:http://geek.csdn.net/news/detail/130184 现如今,越来越多的人开始认识到知识管理的重要性,然而对文档知识库的管理本身却是件极其耗费时间精力的事情.这时, ...

最新文章

  1. 近期活动盘点:大咖云集,中国AI创新者论坛(3.21)
  2. 比特币现金众筹应用Lighthouse正式上线
  3. MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)
  4. linux使用qemu教程,Linux:使用 QEMU 测试 U-BOOT的步骤
  5. 利用Python抓取搜索引擎结果
  6. PageHelper测试分页插件
  7. arm rtx教程_【RTX操作系统教程】第5章 RTX操作系统库方式移植(超级...
  8. vscode 终端美化
  9. C#中的事件(event)
  10. 5年内在豫投资超30亿元 重点助力河南智慧城市运营
  11. windows 控制台提示:请求的操作需要提升
  12. 网站卡死服务器2008,winserver2008r2频繁卡死?
  13. JavaRSAJS加密解密(整合版,仅供自己参考)
  14. Android Studio掷骰子生成随机数(Java)
  15. 一根网线实现电脑远程登录树莓派
  16. 引才!博士60万、硕士35万、本科28万,沿海城市
  17. 【Ajax】form表单
  18. MySql项目查询优化经验总结
  19. Vue学习25_Vue的异步操作Promise
  20. 组合逻辑电路一——数字逻辑实验

热门文章

  1. 使用php+gmail 发送邮件
  2. ListView多种item注意以及自己出现的莫名其妙的错误
  3. JAVA基础-XML的解析
  4. 转:在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法...
  5. 进程与线程的区别(网络摘抄)
  6. 系统调用跟我学(4)
  7. LeetCode题解——Reverse Integer
  8. 这 8 个 Python 技巧让你的数据分析提升数倍!
  9. 包邮送50本数据分析、MySQL、Python相关书籍!
  10. 私人订制,一份专属你的数据分析课程!