软件开发过程

上传人:cl****1 文档编号:492500689 上传时间:2023-08-12 格式:DOC 页数:12 大小:108KB
返回 下载 相关 举报
软件开发过程_第1页
第1页 / 共12页
软件开发过程_第2页
第2页 / 共12页
软件开发过程_第3页
第3页 / 共12页
软件开发过程_第4页
第4页 / 共12页
软件开发过程_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《软件开发过程》由会员分享,可在线阅读,更多相关《软件开发过程(12页珍藏版)》请在金锄头文库上搜索。

1、 软件开发的过程信息工程学院 0802班 王勇(2008011728)摘要:什么是软件工程 软件工程(SoftWare Engineering)的框架可概括为:目标、过程和原则。 (1)软件工程目标:生产具有正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对过程、过程模型及工程方法选取的约束。 (2)软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程过程主要包括开发

2、过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。 (3)软件工程的原则是指围绕

3、工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则。1 软件开发的流程概要需求分析概要设计详细设计编码单元测试集成测试系统测试维护2 需求调研 调研用户领域的组织结构、岗位设置和职责定义,从功能上区分有多少个子系统,划分系统的大致范围,明确系统的目标。 调研每个子系统所需的工作流程、功能与处理规则,收集单据、报表和账本等原始资料,分析物流、资金流和信息流三者的关系,以及如何用数据流来表示这三者的关系。 对调研的内容事先准备,针对不同管理层次的用户询问不同的问题,列出问题清单。将操作层、管理层和决策层的需求既联系,又区分开来,形成一个金字塔,使下层满足上层的需求。 对与用户沟通的情况及

4、时总结归纳,整理调研结果,找出新的疑点,初步构成需求基线。 若基线符合要求,则需求分析完毕;反之返回到第1步或第2或第3步。如此循环多次,直到需要分析使双方满意为止。3 可行性分析和需求分析可行性分析是要决定“做还是不做”。需求分析是要决定“做什么,不做什么”。3.1 可行性分析3.1.1 经济经济可行性分析主要包括:“成本收益”分析和“短期长远利益”分析。3.1.1.1 成本收益(1)办公室房租。(¥)(2)办公用品,如桌、椅、书柜、照明电器、空调等。(¥)(3)计算机、打印机、网络等硬件设备。(¥)(4)电话、传真等通讯设备以及通讯费用。(¥)(5)资料费。(¥)(6)办公消耗,如水电费、

5、打印复印费等。(¥)(7)软件开发人员与行政人员的工资。(¥)(8)购买系统软件的费用,如买操作系统、数据库、软件开发工具等。有些老板买盗版的系统软件,却按市场价算成本,可从美国佬那里赚一笔。(¥)(9)做市场调查、可行性分析、需求分析的交际费用。(¥)(10)公司人员培训费用。(¥)(11)产品宣传费用。如果用Internet作宣传,则要考虑建设Web站点的费用。(¥)(12)如果客户是政府部门,还要充分考虑用于吃喝玩乐、行贿的费用。(¥)(13)如果公司的风水不好,会有很多莫名其妙的管理费。每戳一个红艳艳的公章都要化一把钞票。(¥)3.1.1.2 短期长远利益人们喜欢吃着碗里的、看着锅里的

6、,还想着别人家里的。短期利益和长远利益兼得是人们梦寐以求的事。在商业上,这等好事可不会轻易降临。短期利益容易把握,风险较低。但收益有限,做的是项目。长远利益难以把握,风险较大。但收益可能巨大,做的是企业。3.1.2 技术技术可行性分析至少要考虑以下几方面因素:(1)在给定的时间内能否实现需求说明中的功能。(2)软件的质量如何?主要考虑在网络、硬件、市场竞争等上面的分析。 (3)软件的生产率如何?主要是开发的周期、移植性、维护、扩展方面的考虑。 技术可行性分析可以简单地表述为:做得了吗?做得好吗?做得快吗?3.1.3 社会环境社会环境的可行性至少包括两种因素:市场与政策。3.1.3.1 市场市场

7、又分为未成熟的市场、成熟的市场和将要消亡的市场。涉足未成熟的市场要冒很大的风险,要尽可能准确地估计潜在的市场有多大?自己能占多少份额?多长时间能实现?挤进成熟的市场,虽然风险不高,但油水也不多。如果供大于求。收入稳定将要消亡的市场就别进去了。如DOS时代编程现在不可能有人去做了。3.1.3.2 政策政策对软件公司的生存与发展影响非常大。需要考虑:国家的网络法律的发展、与对项目的限制,是否有鼓励机制,新的网络技术等先进科技的引进等 3.1.4 人的因数技术人员的水平如何,时间安排是否可以到位,特殊情况(如病假等)等对项目开发的进度和质量的影响。如何合理安排人手,对各个计划(小功能块)的开发时限分

8、析等,对于项目开发是非常重要的。3.2 需求分析有几种原因使需求分析变得困难:(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。3.2.1 客户说不清楚需求也可以理解为市场人员和初级策划要给出整个软件开发的目的,消费人群,市场等内容。3.2.2 需求自身经常变动首先先接受“需求会变动”这个事实,免得在需求变动时惊慌失措。明白“需求会变动”这个道理后,在进行需求分析时就要留点神:(1)尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求。以便在进行系统设计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。(2)在文档中一定要说清楚“做什么”和“不做什么”。3.2.3

9、 分析人员或客户理解有误不同的分析人员可能有不同的理解。如果分析人员理解错了,可能会导致开发人员白干活,吃力不讨好。所以在具体的项目开发过程中,程序员和策划还有市场要随时沟通,不断交流。3.2.4 业务需求业务需求说明了提供给客户和产品开发商的新系统的最初利益。不同产品可能会有不同的侧重点。本部分描述了你为什么要从事此项项目的开发,以及它将给开发者和购卖者带来的利益。3.2.4.1 背景在这一部分,总结新产品的理论基础,并提供关于产品开发的历史背景或形势的一般性描述。3.2.4.2 业务机遇描述现存的市场机遇或正在解决的业务问题。描述商品竞争的市场和信息系统将运用的环境。包括对现存产品的一个简

10、要的相对评价和解决方案,并指出所建议的产品为什么具有吸引力和它们所能带来的竞争优势。认识到目前只能使用该产品才能解决的一些问题,并描述产品是怎样顺应市场趋势和战略目标的。3.2.4.3 业务目标用一个定量和可测量的合理方法总结产品所带来的重要商业利润。关于给客户带来的价值在后面阐述,这里仅把重点放在给业务的价值上。这些目标与收入预算或节省开支有关,并影响到投资分析和最终产品的交付日期。3.2.4.4 客户或市场需求描述一些典型客户的需求,包括不满足现在市场上的产品或信息系统的需求。提出客户目前所遇到的问题在新产品中将可能(或不可能)出现的阐述,提供客户怎样使用产品的例子。确定了产品所能运行的软

11、、硬件平台。定义了较高层次的关键接口或性能要求,但避免设计或实现细节。把这些要求写到列表中,可以反过来跟踪调查特殊用户和功能需求。3.2.4.5 提供给客户的价值确定产品给客户带来的价值,并指明产品怎样满足客户的需要。可以用下列言辞表达产品带给客户的价值:1.提高生产效率,减少返工;2.节省开支;3.业务过程的流水线化;4.先前人工劳动的自动化;5.符合相关标准和规则;6.与目前的应用产品相比较,提高了可用性或减少了失效程度。3.2.4.6 业务风险总结开发(或不开发)该产品有关的主要业务风险,例如市场竞争、时间问题、用户的接受能力、实现的问题或对业务可能带来的消极影响。预测风险的严重性,指明

12、你所能采取的减轻风险的措施。3.2.4.7 项目视图文档中的这一部分为系统建立了一个长远的项目视图,它将指明业务目标。这一项目视图为在软件开发生存期中做出决策提供了相关环境背景。这部分不包括详细的功能需求和项目计划信息。3.2.4.7.1 项目视图陈述编写一个总结长远目标和有关开发新产品目的的简要项目视图陈述。项目视图陈述将考虑权衡有不同需求客户的看法。它可能有点理想化,但必须以现有的或所期待的客户市场企业框架。组织的战略方向和资源局限性为基础。3.2.4.7.2 主要特征包括新产品将提供的主要特性和用户性能的列表。强调的是区别于以往产品和竞争产品的特性。可以从用户需求和功能需求中得到这些特性

13、。包括拥有的功能,用户对象,优势等内容。3.2.4.7.3 假设和依赖环境在构思项目和编写项目视图和范围文档时,要记录所做出的任何假设。通常一方所持的假设应与另一方不同。如果你把它们都记录下来,并加以评论,就能对项目内部隐含的基本假设达成共识。(该产品的市场定位,和依赖环境)3.2.4.8 范围和局限性项目范围定义了所提出的解决方案和概念和适用领域,而局限性则指出产品所不包括的某些性能。如果一般客户所提出的需求超出项目的范围时就应当拒绝它,除非这些需求是很有益的。记录这些需求以及拒绝它们的原因,以待查。3.2.4.8.1 首次发行的范围总结首次发行的产品所具有的性能。描述了产品的质量特性,这些

14、特性使产品可以为不同的客户群提供预期的成果。应当避免将想到的每一个特性都包括到1.0版本产品中去。开发者应把重点放在能提供最大价值、花花费最合理的开发费用及普及率最高的产品上。3.2.4.8.2 随后发行的范围如果你想象一个周期性的产品演变过程,就要指明哪一个主要特性的开发将被延期,并期待随后版本发行的日期。3.2.4.8.3 局限性和专用性明确定义包括和不包括的特性和功能的界线是处理范围设定和客户期望的一个途径。列出风险承担者们期望的而你却不打算把它包括到产品中的特性和功能。3.2.4.9 业务环境这一部分总结了一些项目的业务问题。3.2.4.10 客户概貌客户概述明确了这一产品的不同类型客

15、户的一些本质特点,以及目标市场部门和在这些部门中的不同客户的特征。对于每一种客户类型,概述要包括: 各种客户类型将从产品中获得的主要益处; 它们对产品所持的态度; 感兴趣的关键产品的特性; 哪一类型客户能成功使用; 必须适应任何客户的限制。3.2.4.11 项目的优先级一旦明确建立项目的优先级,风险承担者和项目的参与者就能把精力集中在一系列共同的目标上。达到这一目的的一个途径是考虑软件项目的五个方面:性能、质量、计划、成本和人员。3.2.4.12 产品成功的因素明确产品的成功是如何定义和测量的,并指明对产品的成功有巨大影响的几个因素。不仅要包括组织直接控制的范围内的事务,还要包括我部素。如果可能,可建立测量的标准,用于评价是否达到业务目标,如:市场股票、销售量及收入、客户满意度、交易处理量和准确度。4 系统设计(策划与程序员完成)系统设计是新系统的物理设计阶段。根据系统分析阶段所确定的新系统的逻辑模型、功能要求,在用户提供的环境条件下,设计出一个能在计算机网络环境上实施的方案,即建立新系统的物理模型。这个阶段的任务是设计软件系统的模

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号