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