电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

软件开发过程概述

31页
  • 卖家[上传人]:人***
  • 文档编号:475581189
  • 上传时间:2022-10-19
  • 文档格式:DOC
  • 文档大小:165KB
  • / 31 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第 1 章 软件开发过程概述1.1 软件开发过程概述1.1.1 软件的概念软件(Software)简单的说就是那些在计算机中能看的着,但摸不着的东西,概念性 的说软件也称为“软设备”,广义地说软件是指系统中的程序以及开发、使用程序所需要的 所有文档的集合软件分为系统软件和应用软件。软件并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为 是软件的一部分。软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响。1. 系统软件系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软 件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如 何工作的。一般来讲,系统软件包括操作系统和一系列基本的工具(比如编译器,数据库管理, 存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具)。2. 应用软件应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一 个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的 Office 软件。也可以是一个由众多独立程序组成的庞大的软

      2、件系统,比如数据库管理系统。 较常见的有:文字处理软件 如 WPS、Word 等;信息管理软件;辅助设计软件 如 AutoCAD ; 实时控制软件;教育与娱乐软件。1.1.2 编程与软件开发软件开发的内容是:需求、设计、编程和测试。(1)需求:不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据为了清楚地知道这些需求,你经常要和客户、项目经理等交流。(2)设计:编码前,肯定有个计划告诉你要做什么,结构是怎样等等。你一定要按照 这个来做,否则可能会一团糟。(3)编程:如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不 到钱。(4)测试:目的是让你知道,什么时候算是完成了。如果你聪明,你就应该先写测试, 这样可以及时知道你是否真地完成了。否则,你经常会不知道,到底有哪些功能是真正完 成了,离预期目标还差多远。软件开发中,客户和开发人员都有自己的基本权利和义务。(1)客户:定义每个用户需求的商业优先级;制订总体计划,包括用多少投资、经过多长时间、达到什么目的; 在项目开发过程中的每个工作周,都能让投资获得最大

      3、的收益; 通过重复运行你所指定的功能测试,准确地掌握项目进展情况; 能随时改变需求、功能或优先级,同时避免昂贵的再投资;能够根据各种变化及时调 整项目计划;能够随时取消项目;项目取消时,以前的开发工作不是一堆垃圾,已开发完的功能是 合乎要求的,正在进行或未完成的的工作则应该是不难接手的。(2)开发人员:知道要做什么,以及要优先做什么;工作有效率;有问题或困难时,能得到客户、同事、上级的回答或帮助; 对工作做评估,并根据周围情况的变化及时重新评估; 积极承担工作,而不是消极接受分配。1.1.3 软件开发过程软件开发过程一般分为以下6 个阶段:1. 计划对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和 社会因素等 3 个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问 题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效 益和开发进度作出估计。制订完成开发任务的实施计划。2. 分析软件需求分析就是回答做什么的问题。它是一个对用户的需求进行去粗取精、去伪存 真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说

      4、明书)表达 出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型, 编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、 数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的 软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的 接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库 或数据结构设计说明书,组装测试计划。3. 设计软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将 软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是 一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可 分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目 标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程 序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。4. 编码软件编码是指把软件设计转换成计算机可以接受的程序,即写

      5、成以某一程序设计语言 表示的源程序清单。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具 的选择以及保证软件产品的开发质量。当前软件开发中除在专用场合,已经很少使用二十世纪80 年代的高级语言了,取而代 之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提 高了开发的速度。5. 测试软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设 计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。如何才能设计出一 套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。 两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现 软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用 例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的 是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内 部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的 用例覆盖模块输出和输入接口。黑盒法。6

      6、. 维护维护是旨在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后, 对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改, 以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其 运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。 在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护 工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还 可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护 工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维 护的工作量和成本都要大得多。在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在 进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用 户可能会提出一些需要来修改需求说明书等。1.2 软件需求分析1.2.1 需求获取需求获取(requi

      7、remen telici tat ion)是需求工程的主体。对于所建议的软件产品,获 取需求是一个确定和理解不同用户类的需要和限制的过程。获取用户需求位于软件需求三 个层次的中间一层。业务需求决定用户需求,它描述了用户利用系统需要完成的任务。从 这些任务中,分析者能获得用于描述系统活动的特定的软件功能需求,这些系统活动有助 于用户执行他们的任务。需求获取是在问题及其最终解决方案之间架设桥梁的第一步。获取需求的一个必不可 少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析者、开发者和客 户就能探索出描述这些需求的多种解决方案。参与需求获取者只有在他们理解了问题之后 才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的返工。把需求获 取集中在用户任务上而不是集中在用户接口上有助于防止开发组由于草率处理设计问 题而造成的失误。需求获取、分析、编写需求规格说明和验证并不遵循线性的顺序,这些活动是相互隔 开、增量和反复的。当你和客户合作时,你就将会问一些问题,并且取得他们所提供的信 息(需求获取)。同时,你将处理这些信息以理解它们,并把它们分成不同的类别,还要把 客户需

      8、求同可能的软件需求相联系(分析)。然后,你可以使客户信息结构化,并编写成文 档和示意图(说明)。下一步,就可以让客户代表评审文档并纠正存在的错误(验证)。这 四个过程贯穿着需求分析的整个阶段。 需求获取可能是软件开发中最困难、最关键、最易 出错及最需要交流的方面。需求获取只有通过有效的客户开发者的合作才能成功。分析 者必须建立一个对问题进行彻底探讨的环境,而这些问题与产品有关。为了方便清晰地进 行交流,就要列出重要的小组,而不是假想所有的参与者都持有相同的看法。对需求问题 的全面考察需要一种技术,利用这种技术不但考虑了问题的功能需求方面,还可讨论项目 的非功能需求。确定用户已经理解:对于某些功能的讨论并不意味着即将在产品中实现它。 对于想到的需求必须集中处理并设定优先级,以避免一个不能带来任何益处的无限大的项 目。需求获取是一个需要高度合作的活动,而并不是客户所说的需求的简单誊本。作为一 个分析者,你必须透过客户所提出的表面需求理解他们的真正需求。询问一个可扩充 (open-ended)的问题有助于你更好地理解用户目前的业务过程并且知道新系统如何帮助 或改进他们的工作。调查用户任务可能

      9、遇到的变更,或者用户需要使用系统其它可能的方 式。想像你自己在学习用户的工作,你需要完成什么任务?你有什么问题?从这一角度来 指导需求的开发和利用。还有,探讨例外的情况:什么会妨碍用户顺利完成任务?对系统错误情况的反映,用 户是如何想的?询问问题时,以“还有什么能” ,”当?时,将会发生什么”“你有没有曾 经想过” ,“有没有人曾经”为开头。记下每一个需求的来源,这样向下跟踪直到发现特 定的客户。有些时候,尝试着问一些“愚蠢”的问题也有助于客户打开话匣子。如果你直接要求 客户写出业务是如何实现的,客户十有八九无法完成。但是如果你尝试着问一些实际的问 题,例如:“以我的理解,你们收到订单后,会.”。客户立刻就会指出你的错误,并滔滔 不绝的开始谈论业务,而你,就在一边仔细的聆听吧。这一招就叫做“抛砖引玉”。需求讨论会上必须要使用笔记本电脑,还要指定一个打字熟练的人把所有的讨论记录 下来,记录的同时还要做一定的整理。如果不这样做,那么你结束会议的时候就会发现, 所有的讨论只剩下一个模糊的印象,需求对你来说仍然是一件遥远的事情。在座谈讨论之 后,记下所讨论的条目(item),并请参与讨论的用户评论并更正。及早并经常进行座谈讨 论是需求获取成功的一个关键途径,因为只有提供需求的人才能确定是否真正获取需求。 进行深入收集和分析以消除任何冲突或不一致性。尽量把客户所持的假设解释清楚,特别是那些发生冲突的部分。从字里行间去理解以 明确客户没有表达清楚但又想加入的特性或特征。Gause和Weinberg (1989)提出使用“上 下文无关问题”这是一个高层次的问题,它可以获取业务问题和可能的解决方案的全部 信息。客户对这些问题的回答诸如“产品要求怎样的精确度”或“你能帮我解释一下你为 什么不同意某人的回答吗? ”这些回答可以更直接地认识问题,而这是封闭(close-end) 问题所不能做到的。需求获取利用了所有可用的信息来源,这些信息描述了问题域或在软件解决方案中合 理的特性。一个研究表明:比起不成功的项目,一个成功的项目在开发者和客户之间采用

      《软件开发过程概述》由会员人***分享,可在线阅读,更多相关《软件开发过程概述》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.