软件工程期末复习(超详细!!!)
一:软件工程概述
软件工程学的存在价值:促进软件项目成功。
软件的概念:
软件(software):软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。
(1)能够完成预定功能和性能的可执行指令(program)
(2)使得程序能够适当地操作信息的数据结构(data)
(3)描述程序的操作和使用的文档(document)
软件危机:
软件危机定义:软件在开发和维护过程中遇到的一系列严重问题。
软件危机包含两层含义:
如何开发软件。
如何维护数量不断膨胀的已有软件。
软件工程(Software Engineering):
是研究和应用功能如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。
软件生存周期:
是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程。一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。
计划阶段
确定待开发系统的总体目标和范围。
研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。
分析阶段
分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。
设计阶段(总体设计和详细设计)
设计阶段的目标是决定软件怎么做。
软件设计主要集中于软件体系结构、数据结构、用户界面和算法等方面。
实现阶段(编码)
实现阶段是将所设计的各个模块编写成计算机可接受的程序代码。
测试阶段
设计测试用例,对软件进行测试,发现错误,进行改正。
运行和维护阶段
应当在软件的设计和实现阶段充分考虑软件的可维护性。
维护阶段需要测试是否正确实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。
维护常常是软件生命周期中最具挑战性的一个阶段,其费用是相当昂贵的。
软件工程三要素:工具、方法、开发过程
瀑布模型:
问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。
特点:
1.自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
2.上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系。
问题:
1.各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
2.开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,增加了风险。
3.早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
RUP统一软件过程(Rational Unified Process)
RUP的中心思想是:用例驱动、架构为中心、迭代和增量。
Scrum敏捷过程:
产品负责人建立条目话的产品待开发项,并进行优先级排序。
在迭代计划会上,产品负责人讲解本迭代要开发的条目,团队进行估算并放入下一个迭代。
团队在迭代内完成所列需求,每天都开每日“立”会以沟通进度和问题。
在迭代终点的迭代评审会上,团队向产品负责人展示开发成果。
二.踏上ICONIX软件工程之路
需求是软件工程的基础。
需求工程: 通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进基于支持。
需求工程结构图:计算机软件开发培训
ICONIX过程:
扩展的ICONIX过程可分为:愿景、业务建模、需求分析、健壮性分析、关键设计、最终设计、实现。
两个大的部分:需求阶段和系统的设计和实现阶段。
四个阶段:需求分析阶段、初步设计阶段、详细设计阶段、部署阶段。
定义愿景(三部曲):
到软件项目的“老大”.
得到“老大”对项目的期望(愿景);
描述出愿景的度量指标。
三:业务建模,精准了解你的客户
业务建模的意义和注意事项
业务建模要求我们把视角从软件系统转向客户组织,站在客户角度看问题,以达到清晰准确地“诊断”,对症“开方”。
明确为谁服务–准客户及其愿景,切记不是在为自己做系统。
要改进的组织是什么现状–有什么痛处和不足。
如何改进–新系统的价值就是解决客户痛楚、改良客户不足,这才是客户愿意掏腰包的动力。
在业务建模和需求分析阶段,忘掉自己是技术专家的身份。
业务建模的步骤
业务建模是从组织的角度来定位系统应该提供的价值。
1 . 明确我们为谁服务(选定愿景要改进的组织)。
2 .要改进的组织是什么现状(业务用例图、现状业务序列图)。
从外部看:组织是价值的集合,用业务用例图来建模。
从内部看:组织是系统的集合(人是一种智能系统),用业务序列图来建模。
5. 我们如何改进(改进业务序列图)。
业务用例图
组成:业务执行者、业务组织、业务用例
业务执行者: 在组织之外和组织交互的人或组织。
业务用例: 组织为业务执行者提供的价值。
业务序列图: 业务序列图详细描述业务执行者、业务工人、业务实体之间如何交互、以完成某个业务用例的实现流程。
业务工人: 位于组织内部,负责业务流程中某些工作的人员。例如银行工作人员,医院医生。
业务实体: 在业务用例的实现流程中,业务工人所使用的“系统”。例如银行的取款机、点钞机、学校的校园卡系统。
业务序列图的作用:
1.识别业务对象:业务执行者、业务工人、业务实体;
2.确定业务对象间的职责、协作及交互顺序;
3.通过序列图来了解现状,为业务的优化提供依据。
如何采用改进业务序列图来改进现有业务流程?
1 . 将“新系统”作为一个业务实体进行整体设计;
2 . 将“新系统”引入组织现有业务流程;
3 . 查看可以改进的流程;
4 . 评估改进结果;
四:需求分析,用例分析法
域建模:
为项目创建一个属于表。确保项目中的每个人都能以清晰一致的术语来理解和交流问题领域。
域建模比普通的项目术语表优良的地方体现在:以图的方式清晰地显示出不同术语间的关系(减少理解偏差).
描述业务中涉及到的实体及其相互之间的关系,是帮助系统分析人员、用户认识现实业务的工具。
域模型图将通过不断修正完善逐步演化为最终的静态类图。
域建模的步骤:
仔细阅读需求文档,提取出名词和名词短语。
排除列表中重复、相似的术语
排除超出系统范围的术语

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。