软件工程导论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
清华出版社 ··· ···
2020/7/9
抽象 老系统
2020/7/9
… 模…型
改进
… 新模…型
实现
新系统
可行性研究
4.重新定义问题
新系统的逻辑模型实质上表达了分析员对新系统必须做什么的 看法,用户是否也有同样的看法呢?分析员应该和用户一起再次复 查问题ቤተ መጻሕፍቲ ባይዱ义、工程规模和目标。
可行性研究的前四个步骤实质上构成一个循环,分析员定义问 题,分析这个问题,导出一个试探性的解,在此基础上再次定义问 题,再一次分析这个问题,修改这个解,继续这个循环过程,直到 提出的逻辑模型完全符合系统目标。
的5%~10%。
2020/7/9
可行性研究
四、可行性研究的步骤 1、 确定系统规模和目标
分析员访问关键人员,仔细阅读和分析有关的材 料,以便改正含糊或不正确的叙述,清晰的描述对目 标系统的一切限制和约束
2020/7/9
可行性研究
2、 研究目前正在使用的系统
1) 新系统必须解决旧系统中存在的问题 2) 运行使用旧系统所需要的费用是一个重要经济指标, 如
2020/7/9
可行性研究
5、导出和评价供选的解法
导出供选择的解法的最简单的途径,是从技术角度出发考虑 解决问题的不同方案。
依次从技术可行性、操作可行性、经济可 行性三个方面考虑。
2020/7/9
技术上不可行
技术上可行 用户不可能操作
操作上可行 不合算
经济上合算
进度表
可行性研究
6、推荐一个方案并说明理由 7、推荐行动方针 任务分解,确定负责人 大致进度规划 财务预算 风险分析及对策 8、书写文档提交审查
请用户和使用部门的负责人仔细审查。
2020/7/9
制定软件计划
软件计划以可行性研究报告为基础,由软件人员和用户共同 确立软件的功能和限制,提出软件计划任务书。
一个典型的软件计划计划书的内容应该包括如下四个方面: 1、软件范围
软件计划的第一个任务是确定软件需求描述,主要包括功能、 性能、可靠性和接口等问题。 2、环境资源
包括软件、硬件和人力资源,每种资源均从资源的描述,对 资源需求的日程表时间以及对资源应用的持续时间三个方面来说 明。
2020/7/9
制定软件计划
3、进度安排
计划者要协调可用资源与项目的工作量,考虑各项任务之间的
互相依赖,而在可能时间时就并行地安排工作,预见潜在的问题或
瓶子口,并提供意外事故处理等。
果新系统不能增加收入或减少使用费用,那么从经济角 度看新系统就不如旧系统。 3) 注意了解并记录现有系统和其它系统之间接口情 况,这 是设计新系统时的重要约束条件。 4) 常见的错误做法是花费过多时间去分析现有的系统。
2020/7/9
可行性研究
3. 导出新系统的高层逻辑模型
优秀的设计过程通常总是从现有的物理系统出发,导出现 有系统的逻辑模型(数据流图),在参考现有系统的逻辑模型, 设想目标系统的逻辑模型,最后根据目标系统的逻辑模型建造 新的物理系统。
• 关于进度安排,我的经验是1/3计划、1/6编码、 1/4构件测试以及1/4系统测试。
2020/7/9
参考书目
1、《软件工程导论》 张海藩 清华出版社 2、 《软件工程导论学习辅导》张海藩 清华出版社 2、《软件工程》 徐仁佐 华中科技出版社 3、《软件工程—原理、方法与应用》 史济民等
高等教育出版社 4、《软件工程方法与实践》李芷 科学出版社 5、《人月神话》 Frederick P.Brooks Jr.
人月神话(F弗re雷d德e里ric克k·布P鲁.B克r斯ooks Jr )
• 缺乏合理的时间进度是造成项目滞后的最主要 原因,它比其他所有因素的总和影响还大。
• 良好的烹饪需要时间,某些任务无法在不损害 结果的情况下加快速度。
• 由于编程人员通过纯粹的思维活动来开发,我 们期待在实现过程中不会碰到困难。但是,我 们的构思本身是有缺陷的,因此总会有bug。
2020/7/9
可行性研究
3.操作可行性 系统的操作方式在这个用户组织内行得通吗?
4.法律可行性 确定由于开发软件项目是否会侵犯他人、集体或国家
的利益,是否会违反国家的法律,并由此承担法律责任。
2020/7/9
可行性研究
三、可行性研究需要的时间长短取决于工程的规模。 一般说来,可行性研究的成本只是工程总成本
⑴进度安排的主要内容
进度安排的主要工作是制定软件进度表,以明确开发各阶段的
任务和时间安排情况。软件进度表的内容包括:
软件的任务划分情况;
各任务的起始时间和结束时间;
各任务的工作量和所需的人数; 各任务之间的衔接关系;
各任务所需的资源情况;
各任务完成后所应提交的文档;
对各任务的审查和审查记录等。
2020/7/9
2020/7/9
可行性研究
二、可行性研究集中在如下四个最为敏感的方面:
1.经济可行性 这个系统的经济效益能超过它的开发成本吗?
2.技术可行性 使用现有的技术能实现这个系统吗?分析技术冒险
的各种因素,例如有关的技术是否已进步到足以支持 该系统?能否有胜任开发该系统的熟练技术人员?为 开发项目的所有硬、软件资源是否能按期得到?
可行性研究
一、目的 开发任何一个基于计算机的系统都会受到时间和资
源的限制。因此,开发方在接受客户的项目之前,必须根 据客户可能提供的时间和资源等条件进行可行性研究。
可行性研究工作要在初步的需求定义之后进行。其主 要任务不是研究如何解决问题,而是要用最小的代价在最 短的时间内确定该项目是否值得去解决,是否存在可行的 解决方案。即在系统层面上论证系统开发的可行性。
2020/7/9
制定软件计划
②网络计划法
网络计划法是用网状图表安排与控制各项活动的方法,可 通过对网状图的分析,方便地确定完成整个工程至少需要多少 时间,以及哪些子工程是影响工程进度的关键。一般适应于工 作步骤密切相关、错综复杂的工程项目的计划管理。
网络计划法的描述符号和示例示。
4、软件成本
2020/7/9
2020/7/9
人月神话
• 用人月作为衡量一项工作的规模是危险和带有欺 骗性的神话,因为它暗示人员数量和时间是可以 相互替换的。
• Brooks法则:向进度落后的项目增加人手,只会 使进度更加落后。
• 向软件项目中增派人手从三个方面增加了项目必 要的总体工作量:任务重新分配本身和所造成的 工作中断;培训新人员;额外的相互沟通。
制定软件计划
⑵软件进度计划的编制方法 ①甘特图法
甘特图(Gantt Chart)又称线条图,是一种对各项活动进行 计划调度与控制的图表,它具有简单、醒目和便于编制等特点。 一般甘特图的横方向表示时间,纵方向列出工作。
甘特图的描述符号和示例。
特点:能够动态反映软件项目开发进展的情况。
难以反映多个任务之间存在的复杂的逻辑关系。
2020/7/9
抽象 老系统
2020/7/9
… 模…型
改进
… 新模…型
实现
新系统
可行性研究
4.重新定义问题
新系统的逻辑模型实质上表达了分析员对新系统必须做什么的 看法,用户是否也有同样的看法呢?分析员应该和用户一起再次复 查问题ቤተ መጻሕፍቲ ባይዱ义、工程规模和目标。
可行性研究的前四个步骤实质上构成一个循环,分析员定义问 题,分析这个问题,导出一个试探性的解,在此基础上再次定义问 题,再一次分析这个问题,修改这个解,继续这个循环过程,直到 提出的逻辑模型完全符合系统目标。
的5%~10%。
2020/7/9
可行性研究
四、可行性研究的步骤 1、 确定系统规模和目标
分析员访问关键人员,仔细阅读和分析有关的材 料,以便改正含糊或不正确的叙述,清晰的描述对目 标系统的一切限制和约束
2020/7/9
可行性研究
2、 研究目前正在使用的系统
1) 新系统必须解决旧系统中存在的问题 2) 运行使用旧系统所需要的费用是一个重要经济指标, 如
2020/7/9
可行性研究
5、导出和评价供选的解法
导出供选择的解法的最简单的途径,是从技术角度出发考虑 解决问题的不同方案。
依次从技术可行性、操作可行性、经济可 行性三个方面考虑。
2020/7/9
技术上不可行
技术上可行 用户不可能操作
操作上可行 不合算
经济上合算
进度表
可行性研究
6、推荐一个方案并说明理由 7、推荐行动方针 任务分解,确定负责人 大致进度规划 财务预算 风险分析及对策 8、书写文档提交审查
请用户和使用部门的负责人仔细审查。
2020/7/9
制定软件计划
软件计划以可行性研究报告为基础,由软件人员和用户共同 确立软件的功能和限制,提出软件计划任务书。
一个典型的软件计划计划书的内容应该包括如下四个方面: 1、软件范围
软件计划的第一个任务是确定软件需求描述,主要包括功能、 性能、可靠性和接口等问题。 2、环境资源
包括软件、硬件和人力资源,每种资源均从资源的描述,对 资源需求的日程表时间以及对资源应用的持续时间三个方面来说 明。
2020/7/9
制定软件计划
3、进度安排
计划者要协调可用资源与项目的工作量,考虑各项任务之间的
互相依赖,而在可能时间时就并行地安排工作,预见潜在的问题或
瓶子口,并提供意外事故处理等。
果新系统不能增加收入或减少使用费用,那么从经济角 度看新系统就不如旧系统。 3) 注意了解并记录现有系统和其它系统之间接口情 况,这 是设计新系统时的重要约束条件。 4) 常见的错误做法是花费过多时间去分析现有的系统。
2020/7/9
可行性研究
3. 导出新系统的高层逻辑模型
优秀的设计过程通常总是从现有的物理系统出发,导出现 有系统的逻辑模型(数据流图),在参考现有系统的逻辑模型, 设想目标系统的逻辑模型,最后根据目标系统的逻辑模型建造 新的物理系统。
• 关于进度安排,我的经验是1/3计划、1/6编码、 1/4构件测试以及1/4系统测试。
2020/7/9
参考书目
1、《软件工程导论》 张海藩 清华出版社 2、 《软件工程导论学习辅导》张海藩 清华出版社 2、《软件工程》 徐仁佐 华中科技出版社 3、《软件工程—原理、方法与应用》 史济民等
高等教育出版社 4、《软件工程方法与实践》李芷 科学出版社 5、《人月神话》 Frederick P.Brooks Jr.
人月神话(F弗re雷d德e里ric克k·布P鲁.B克r斯ooks Jr )
• 缺乏合理的时间进度是造成项目滞后的最主要 原因,它比其他所有因素的总和影响还大。
• 良好的烹饪需要时间,某些任务无法在不损害 结果的情况下加快速度。
• 由于编程人员通过纯粹的思维活动来开发,我 们期待在实现过程中不会碰到困难。但是,我 们的构思本身是有缺陷的,因此总会有bug。
2020/7/9
可行性研究
3.操作可行性 系统的操作方式在这个用户组织内行得通吗?
4.法律可行性 确定由于开发软件项目是否会侵犯他人、集体或国家
的利益,是否会违反国家的法律,并由此承担法律责任。
2020/7/9
可行性研究
三、可行性研究需要的时间长短取决于工程的规模。 一般说来,可行性研究的成本只是工程总成本
⑴进度安排的主要内容
进度安排的主要工作是制定软件进度表,以明确开发各阶段的
任务和时间安排情况。软件进度表的内容包括:
软件的任务划分情况;
各任务的起始时间和结束时间;
各任务的工作量和所需的人数; 各任务之间的衔接关系;
各任务所需的资源情况;
各任务完成后所应提交的文档;
对各任务的审查和审查记录等。
2020/7/9
2020/7/9
可行性研究
二、可行性研究集中在如下四个最为敏感的方面:
1.经济可行性 这个系统的经济效益能超过它的开发成本吗?
2.技术可行性 使用现有的技术能实现这个系统吗?分析技术冒险
的各种因素,例如有关的技术是否已进步到足以支持 该系统?能否有胜任开发该系统的熟练技术人员?为 开发项目的所有硬、软件资源是否能按期得到?
可行性研究
一、目的 开发任何一个基于计算机的系统都会受到时间和资
源的限制。因此,开发方在接受客户的项目之前,必须根 据客户可能提供的时间和资源等条件进行可行性研究。
可行性研究工作要在初步的需求定义之后进行。其主 要任务不是研究如何解决问题,而是要用最小的代价在最 短的时间内确定该项目是否值得去解决,是否存在可行的 解决方案。即在系统层面上论证系统开发的可行性。
2020/7/9
制定软件计划
②网络计划法
网络计划法是用网状图表安排与控制各项活动的方法,可 通过对网状图的分析,方便地确定完成整个工程至少需要多少 时间,以及哪些子工程是影响工程进度的关键。一般适应于工 作步骤密切相关、错综复杂的工程项目的计划管理。
网络计划法的描述符号和示例示。
4、软件成本
2020/7/9
2020/7/9
人月神话
• 用人月作为衡量一项工作的规模是危险和带有欺 骗性的神话,因为它暗示人员数量和时间是可以 相互替换的。
• Brooks法则:向进度落后的项目增加人手,只会 使进度更加落后。
• 向软件项目中增派人手从三个方面增加了项目必 要的总体工作量:任务重新分配本身和所造成的 工作中断;培训新人员;额外的相互沟通。
制定软件计划
⑵软件进度计划的编制方法 ①甘特图法
甘特图(Gantt Chart)又称线条图,是一种对各项活动进行 计划调度与控制的图表,它具有简单、醒目和便于编制等特点。 一般甘特图的横方向表示时间,纵方向列出工作。
甘特图的描述符号和示例。
特点:能够动态反映软件项目开发进展的情况。
难以反映多个任务之间存在的复杂的逻辑关系。