软件开发概述详解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件开发技术 智能科学系 林贤明 2014年 秋 联系信息 林贤明 联系信息:linxm@ QQ:105794413 办公地点: 科研2 - 413 课程考核 考核方式:采用课程项目设计,无笔试 本课程最终考核内容包括: 出勤情况(10%) 课程项目设计完成情况 (50%) 课程项目设计报告 (40%) 服务器地址: 5 用户名:develop, 密码:developpass 本学期内容 软件开发概述(2学时) UML基础(4学时) 设计模式(6学时) C++ STL (6学时) 动态链接库编程与钩子编程(4学时) Web编程入门 (2学时) Android开发入门(4学时) 软件测试基础(2学时) 第1讲 软件开发概述 智能科学系 林贤明 * 软件发展过程中存在的问题 软件开发能力不能满足人们的需要 社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性 若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护 由于经济原因,嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁+时髦界面的方法 问题实例 日常生活:零元帐单 国计民生: 1962年6月,美国飞向金星的航空探测器因导航程序出错,致使探测器偏离航道而失败。 阿波罗8号太空飞船的一个软件错误,造成了存储器部分信息丢失;阿波罗14号在飞行过程中出现过18个软件错误。 身边 电脑、手机的操作系统崩溃 银行取款机系统故障 2. 软件生命周期 软件产品或系统一系列相关活动的全周期 2.2 软件定义 1.问题定义 “要解决的问题是什么?” 确定用户要求解决的问题的性质、工程的目标和规模 2. 可行性研究 “对于上一个阶段所确定的问题有行得通的解决办法吗?” 经济、技术、法律许可、不同的方案 2.3 软件开发 3. 需求分析 “为了解决这个问题,目标系统必须做什么” 确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景 规格说明书(specification) 4. 总体设计(概要设计) “概括地说,应该怎样实现目标系统?” 设计出实现目标系统的几种可能的方案。推荐一个最佳方案 确定程序由哪些模块组成以及模块之间的关系 5. 详细设计(模块设计) “应该怎样具体地实现这个系统呢?” 设计出程序的详细规格说明 确定实现模块功能所需要的算法和数据结构 2.3 软件开发 6. 编码和单元测试 写出正确的易理解、易维护的程序模块并仔细测试每个模块 7. 综合测试 集成测试和验收测试 2.4 软件维护 8. 软件维护 使系统持久地满足用户的需要 维护工作分成以下四类 改正性维护(17-20%) 适应性维护(18-25%) 完善性维护 (50-60%) 预防性维护 (4%) 4 如何成为一名合格的程序员 4.1 程序员的个人素质 成己:积极的心态、良好的工作和生活态 度 待人:和谐的人际关系 理事:专业的做事精神 4.2 程序员的职业素质 ? 忠诚 ? 守信 ? 责任心 ? 敬业精神 ? 自动自发 4.3 程序员的基本素质 1. 写文档和注释的习惯 2. 模块复用性思维习惯 3. 测试习惯 4. 学习、总结的习惯 5. 团队精神 6. 沟通能力 4.3.1 写文档和注释的习惯 注释 开发过程文档:良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。 4.3.2 复用性,模块化思维能力 软件最大的优点是能够复用,因此程序员在完成任何一个模块或函数的时候,不要局限在完成当前任务的上,要多想一些,想想看该模块是否可以脱离这个系统存在,是否能够重复使用? 用户控件 组件技术 4.3.3 测试习惯 单元测试 集成测试 系统测试 稳定性测试 软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。 4.3.4 学习和总结的能力 学习:程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。 总结:善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。 4.3.5 团队精神 木桶理论 学习性组织

文档评论(0)

挑战不可能 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档