Presentation is loading. Please wait.

Presentation is loading. Please wait.

《软件工程》 学习情境一:客户管理 李祥 信息工程学院.

Similar presentations


Presentation on theme: "《软件工程》 学习情境一:客户管理 李祥 信息工程学院."— Presentation transcript:

1 《软件工程》 学习情境一:客户管理 李祥 信息工程学院

2 客户管理

3 主要内容 一 软件的生存周期 二 软件开发模型 三 可行性分析 四 可行性分析文档

4 一 软件生存周期 软件生存周期(Software Development Life Cycle,SDLC) 又名软件生命周期
软件生存周期可划分为定义、开发和运行三个时期,每个时期又可以划分若干阶段。 软件生存周期通常包括可行性分析、需求分析、软件设计、软件实现、软件测试、运行与维护

5 软件生存周期 阶段 任务及说明 参与者 输出 可行性分析 对项目的技术,功能需求和市场进行调研和初步分析,确定是否需要启动项目 项目经理
核心技术人员 可行性分析报告 需求分析 对项目详细需求分析,编写需求文档,对B/S 结构的系统应制作静态演示页面。 系统分析师 需求分析师网页设计师 需求分析说明书 软件设计 根据需求分析进行概要设计。包括程序系统流程、组织结构、模块划分、功能分配、接口设计。运行设计、数据结构设计和出错处理设计等。 系统架构师 数据库设计师 软件设计师 设计说明书 编码实现 根据设计开发项目,同时有美工对操作界面进行美化 软件工程师 程序员 项目规范 软件测试 项目小组配合测试部门修改软件中的错误 软件测试师 测试计划 测试报告 运行维护 项目验收实施 实施工程师 项目所有文档和程序

6 二 软件开发模型 软件生存周期模型是软件工程思想的具体化,是跨越软件生存周期的系统开发、运行、维护所实施的全部活动和任务的过程框架。
常用的软件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应用开发( RAD )模型。

7 1 瀑布模型 瀑布模型(waterfall model)将生存期的计划时期、开发时期和运行时期。
计划时期可分为问题定义、可行性研究、需求分析3个阶段 开发时期分为概要设计、详细设计、软件实现、软件测试等阶段 运行时期则需要不断进行运行维护,需要不断修改错误、排除故障,或以用户需求、运行环境改变进行改更调整。

8 1 瀑布模型 图中的实线箭头表示开发流程,每个阶段顺序进行,有时会返工;虚线箭头表示维护工作的流程,根据不同情况返回到不同的阶段进行维护。
图1瀑布模型

9 瀑布模型 利用瀑布模型开发软件有3个特点: (1)开发过程的顺序性。
瀑布模型开发适用于软件需求明确,开发技术成熟,工程管理较严格的场合下使用。 (2)统筹兼顾不过早编程。 在编码前安排分析和设计阶段,只考虑逻辑模型,不涉及物理实现。 (3)严格要求保证质量。 每个阶段必须完成规定的文档,并进行审核,尽早发现问题,消除隐患。

10 2 原型模型 原型模型需要先建造一个快速原型。
如操作窗口及界面等,进行客户或潜在用户与系统间的交流,用户/客户可以通过对原型的评价及改进意见,进一步细化待开发软件的需求,通过逐步调整原型达到客户要求,从中确定客户的具体需求;然后按照需求开发软件。 如图所示。此模型最适合于可以先尽快构建成一个原型的应用系统。

11 2 原型模型

12 3 增量模型 利用增量模型开发的软件被作为一系列的增量构件来进行设计、实现集成和测试,每个构件具有一定功能,并最终能组合成一个具有完整功能软件的模块。如图所示。

13 软件开发模型选取 最常用的是瀑布模型和原型模型,其次是增量模型各种模型各有其特点和优缺点。选择模型时需要综合考虑以下6点:
(1)符合软件本身的性质,包括规模、复杂性等; (2)满足软件应用系统整体开发进度要求; (3)尽可能控制并消除软件开发风险; (4)具有计算机辅助工具快速的支持,如快速原型工具; (5)与用户和软件开发人员的知识和技能匹配; (6)有利于软件开发的管理与控制。 在实际软件开发过程中,开发模型的选定并非直接照抄照搬、一成不变,有时还需要根据实际开发目标要求进行裁剪、修改、确定和综合运用。

14 三 可行性分析 可行性分析是要决定项目“做还是不做”。 分析什么? 怎样分析?

15 联想公司创始人柳传志说: “没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投得起但没有可靠的人选,这样的事也不干。”

16 工作流程 开始 问题定义 可行性研究 可行否? 项目实施计划 终止项目的建议 结束 Y N

17 1 问题定义 问题定义是指在初步调研的基础上,逐步搞清拟研发软件开发的具体问题。
用户根据实际需要粗略地描述其基本意向,而对软件的具体目标、问题范围、功能性能、规模和环境等方面表述不一定很准确,因此,对用户提出的开发问题,还需要从专业技术方面进行更深层次的细致调研、分析和定义。

18 调研内容 1.软件名称 软件名称准确描述软件问题的内涵、主要用途及规模的项目名称,与所开发的项目内容相一致。 2. 项目提出的背景
软件所服务的行业属性、主要业务及特征、目前存在的主要问题、需要改进的具体方面及要求、本项目开发所能够带来的经济/社会效益和前景。 3. 软件目标 软件目标是指软件项目所要达到的最终目的指标和具体结果,具有可度量性和预测性。

19 4. 软件类型 项目性质用于描述软件的主要特性,为此还要确定软件的应用特性,如通用软件或专用软件。 5. 软件服务范围 确定软件所服务行业及领域的界限,本软件服务的领域用户对象、及应用范畴,主要从总体上确定软件的具体应用领域和服务范畴。 6. 基本需求 明确软件问题定义的主要内容,包括整体需求、功能需求、性能需求和时限要求等。

20 7.软件环境 软件环境包括服务领域、运行环境和外部系统等方面。 8.主要技术 开发软件所需要的主要技术,以及关键技术路线。主要包括分析、建模、设计、编程、测试、集成、切换等相关的软件开发技术,以及软件管理与维护技术、软件度量技术、软件支撑技术等。 9.基础条件 软件开发的基础条件包括:软件的业务基础、技术基础和支撑基础等。

21 问题定义 调研内容 正泰集团管理系统 软件名称 正泰集团进销存管理系统 项目提出背景 产品种类多、客户多、业务复杂 软件目标
进销存规范化、提供效率 软件类型 应用软件 软件服务范围 进销存 基本需求 采购、销售、财会、客户 软件环境 Sql2005、tomcat6.0 主要技术 数据库技术、后台技术、前台技术 基础条件 团队、公司代表

22 2 可行性分析 不是解决问题,而是确定问题是否可解,是否值得去解,一般可行性分析的成本只占预期工程成本的5%-8%。
-技术上:咱们有能力吗? -经济上:能赚钱吗? -操作上:用户愿意这么用吗? -法律上:开发、使用该系统不违法吧? - 社会上:社会需要这个系统吗?

23 技术可行性 技术可行性分析至少要考虑以下几方面因素: (1)在给定的时间内能否实现需求说明中的功能。
(2)软件的质量如何?有些应用对实时性要求很高,如果软件运行慢如蜗牛,即便功能具备也毫无实用价值。 (3)软件的生产率如何?如果生产率低下,能赚到的钱就少,并且会逐渐丧失竞争力。 技术可行性分析可以简单地表述为:做得了吗?做得好吗?做得快吗?

24 经济可行性 经济可行性分析主要包括:“成本——收益”分析和“短期——长远利益”分析。 (1)成本——收益
如果是为客户做软件项目,收益就写在合同中。如果是做自己的软件产品,收益就是销售额。要考虑的成本有:办公室房租、办公用品等。 (2)短期——长远利益 短期利益和长远利益兼得是人们梦寐以求的事。在商业上,这等好事可不会轻易降临。 短期利益容易把握,风险较低。 长远利益难以把握,风险较大。

25 社会可行性 社会可行性至少包括两种因素:市场与政策。 市场分为未成熟的市场、成熟的市场和将消亡的市场。
涉足未成熟的市场要冒很大的风险,能准确地估计市场有多大?自己能占多少份额?多长时间能实现? 挤进成熟的市场,风险不高,油水也不多。如果软件开发公司多,项目少,在竞标时会出现恶性杀价。 将要消亡的市场就别进去了。尽管很多程序员怀念DOS时代编程,可现在没人要DOS应用软件了。 政策对软件公司的生存与发展影响非常大。政策不当将阻碍软件公司的健康发展,可最怕的还是政府干预企业的正当行为。

26 运行可行性 新软件运行可行性分析包括5个方面: (1)原业务与新系统流程的相近程度和差异。
(2)业务处理的专业化程度,功能、性能、安全性、可靠性及接口等。 (3)对用户操作方式及具体使用要求。 (4)新软件界面的友好程度及操作的便捷程度。 (5)用户的具体实际应用能力及存在的问题等。

27 可行性分析的结论,概括起来有3种情况: (1)可行。“可行”结论表明可以按初步方案和计划进行立项并开发。 (2)基本可行。对软件项目内容或方案进行必要修改后,可以进行开发。 (3)不可行。软件项目不能进行立项或确定项目终止。

28 案例分析 我从本科三年级开始编写图形程序。1997年春季,我到了向往已久的浙江大学CAD&CG国家重点实验室读博士学位。
1997年8月,我去北京参加首届中国大学生电脑大赛软件展示。路费也是借的,同学为我壮胆时说:“如果不能获奖,就回到实验室干活吧。” 于是我拿了第一名,号称大学生“软件明星”。 我选择了一位年龄比我大一倍、非常精明的商人作合伙人,10月成立了“杭州临境软件开发有限公司”。彼时,我可谓光芒四射,卓而不群,名片上印着“以振兴民族软件产业为已任,做真实、正直、优秀的科技人员。” 我当时想开发一套名为Soft3D的图形系统,此系统下至开发工具,上至应用软件,无所不包。 我从实验室挖来一位聪明绝顶的师弟做技术伙伴。一想到Microsoft公司的二维Windows系统即将被Soft3D打击得狼狈不堪时,我们就乐不可支,冲劲十足。到了1998年7月份,我们做了一套既不是科研又不全象商品的软件,我宣传了几个月都没有人要。1998年10月份,我用光了30万元资金,只好关闭公司。 上海漫索计算机科技有限公司 林锐

29 可行性分析工具 当我们在进行可行性研究时需要了解和分析现有的系统,而系统流程图就是以图的形式表达对现有系统的认识;而且它能很清楚地表达信息在系统各部件之间流动的情况。 系统流程图:System Flow Diagram,描绘物理系统 反映信息在各部分间流动情况 不等于控制信息,不是程序流程图

30 基本符号 流程符号 含 义 数据加工符号 换页连接 输入/输出符号 磁带符号 连接点符号 文档符号 人工操作 多文档符号 显示器或终端机
含 义 数据加工符号 换页连接 输入/输出符号 磁带符号 连接点符号 文档符号 人工操作 多文档符号 显示器或终端机 数据流符号 磁盘机或数据库 流程开始与结束

31 案例分析 正泰集团仓库中现有许多种元器件及其数量等项数据。需要加工的数据是每当仓库中的元器件数量发生变化时,就应该及时修改库存清单,如果那种元器件的库存量少于它的库存临界值 ,则应该报告个采购部门以便定货,规定每天向采购部门送一次定货报告。

32 库存清单程序 订货报告 事务 订货信息 结束 报告生成程序 库存清单

33 项目计划 在可行性分析之后,项目计划与质量管理将贯穿需求分析、系统设计、程序设计、测试、维护等软件工程环节。
项目计划是要提供一份合理的进程表,让所有开发人员任务明确、步调一致,最终共同准时地完成项目。项目计划是要付诸实施的,不象用嘴巴喊政治口号,可以很夸张。软件的项目计划重在“准确”而非“快速”。 一、把握资源:项目的资源分为三类:“人”、“可复用的软构件”和“软硬件环境”。 二、进度安排:(1)制定进度表的人最好就是项目负责人,他最了解项目和开发人员。(2)进度安排并不见得一定要符合逻辑顺序。应尽可能地先做技术难度高的事,后做难度低的事。

34 四 可行性分析文档 1 引言 2 引用文件 3可行性分析的前提 4可选的方案 5所建议的系统 6经济可行性(成本----效益分析)
7技术可行性(技术风险评价) 8法律可行性 9运行可行性

35 小结 软件开发方法学是编制软件的系统方法,它确定软件开发的各个阶段,规定每一阶段 的活动、产品、验收的步骤和完成准则。常用的软件开发方法有结构化方法、面向数据结构方法和面向对象方法等。 可行性分析不是决定系统如何做,而是确定项目是否可行。

36 思考 软件的什么周期是什么? 过程模型有哪些?哪一个适合你的项目开发? 可行性分析的主要内容是什么?

37 实验二 1 每个同学选择一个熟悉的项目 2 回顾可行性分析主要内容 3 完成可行性分析文档 可以选择的项目 实验教学管理系统 图书管理系统
医药销售系统 学生选课系统 人事档案系统 服装销售系统 其他系统


Download ppt "《软件工程》 学习情境一:客户管理 李祥 信息工程学院."

Similar presentations


Ads by Google