软件工程导论复习知识点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、软件:
软件定义:
软件=程序+文档+数据
软件特点:
1、具有抽象性
2、没有明显的制造过程
3、软件的维护比硬件的维护要复杂得多
4、对计算机系统有着不同程度的依赖性
5、尚未完全摆脱手工艺的开发方式
6、软件本身是复杂的
7、软件成本相当昂贵
8、相当多的软件工作涉及到社会因素软件的发展:
程序设计、程序系统、软件工程
软件危机:
软件危机指的是软件开发和维护过程中遇到的一系列严重问题。
软件危机的问题:
如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机表现:
1.开发成本难以控制,进度不可预计;
2.软件系统的质量和可靠性很差,难以满意;
3.软件文档相当缺乏,软件系统不可维护;
4.软件开发生产率很低,软件产品供不应求。
5.软件产品成本十分昂贵。
软件危机产生原因:
1、软件本身的特点
2、对软件开发与维护存在许多错误认识和做法
3、软件开发与维护的方法不正确
解决软件危机途径:
1、将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的工程项目。
2、研究和推广成功的软件开发技术和方法。
3、开发和使用好的软件工具。
软件生命周期:
软件所经历的定义、开发、使用和维护直到废弃所经历的时期。
程序设计环境:
源程序编辑,编译或解释,链接,调试和运行工具的集合
软件工程环境:
软件定义,设计和实现,测试和维护等各个阶段所使用的软件工具的集合
二、软件工程:
软件工程定义:
研究如何应用一些科学理论和工程上的技术来指导软件的开发,用较少的投资获得高质量的软件的一门学科。
软件工程性质:
涉及计算机科学、工程科学、管理科学、数学等领域,着重于如何建造一个软件系统。用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。用管
理科学中的方法和原理进行软件生产的管理。用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。
软件工程三要素:
方法、工具和过程。
软件方法:
是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。包括:传统方法学面向对象方法学需要解决的问题:
软件成本、软件可靠性、软件维护、软件生产率和软件复用。
基本内容:
包括理论、结构、方法、工具、环境与规范等
目标:
以较少的投资获得易维护、易理解、可靠和高效率的软件产品。
原则:
即分解、抽象和信息隐蔽、一致性和确定性
原理:
工程化和系统化。
软件过程:
软件过程是把输入转化为输出的一组彼此相关的资源和活动
从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等,为开发软件进行的一组开发活动,在过程结束时将输入(用户要求转化为输出(软件产品。
软件工程过程包含四种基本的过程活动:
Plan 软件规格说明:规定软件的功能及其运行的限制
Do 软件开发:产生满足规格说明的软件
Check 软件确认:确认软件能够完成客户提出的要求
Action 软件演进:为满足客户的变更要求,软件必须在使用的过程中演进
软件工程的基本原理:
强调使用生存周期方法学、强调使用结构分析与结构设计任务
软件工程的目标:
生产具有正确性、可用性以及开销合宜的产品
1、付出较低的开发成本
2、达到要求的软件功能
3、取得较好的软件性能
4、开发的软件易于移植
5、需要较低的维护费用
6、能按时完成开发
7、及时交付使用
三、软件生命周期:
生命周期基本流程:
问题定义→可行性研究→需求分析→总体设计(概要设计→详细设计→编码和单元测试→综合测试→软件维护。
瀑布模型:
这种方法是从一个阶段呈瀑布流入下一个阶段,所以这个模型就称为“瀑布模型”。各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落。每项活动均处于一个质量环(输入-处理-输出-评审中。
增量模型:
定义基本需求→将需求赋予增量构件→设计系统体系结构→开发增量构件→集成增量构件→确认系统
把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入。每个构件由多个
相互作用的模块构成,并且能够完成特定的功能。增量开发方法的新演进版本叫做“极限程序设计
演化模型:
先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。
快速原型方法是原型模型在软件分析、设计阶段的应用,用来解决用户对软件系统在需求分析上的模糊认识。是用来获取用户需求的,或是用来试探某种设计是否有效。一旦需求或设计确定下来,原型就将被抛弃
原型运用方式:
抛弃策略和附加策略
喷泉模型:
体现了迭代和无间隙的特性。
系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。喷泉模型是对象驱动的过程。
需求分析阶段→设计阶段→编程阶段→集成与确认阶段→维护阶段→演进阶段
微软软件开发过程:
战略:靠改进特性与固定资源来激发创造力
①计划阶段②设计阶段③开发阶段④稳定化阶段⑤发布阶段。
微软管理过程:
一、将大项目分成若干里程碑式的重要阶段,各阶段之间有缓冲时间,但不进行单独的产品维护。
二、运用想象描述和对特性的概要说明指导项目。
三、根据用户行为和有关用户的资料确定产品特性及其优先顺序。
四、建立模块化的和水平式的设计结构,并使项目结构反应产品结构的特点。
五、靠个人负责和固定项目资源实施控制。
四、可行性研究:
可行性研究实质:
可行性研究实质上是要进行一次简化、压缩了的需求分析和设计过程,要在较高层次上以抽象的方式进行需求分析和设计过程。
可行性研究目的: