(完整版)软件工程导论复习重点总结很全(第六版)(精)

(完整版)软件工程导论复习重点总结很全(第六版)(精)
(完整版)软件工程导论复习重点总结很全(第六版)(精)

第1章软件工程学概述

1.1 软件危机

1.1.1 软件危机的介绍

软件危机(软件萧条、软件困扰:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两方面的问题:

如何开发软件,满足对软件日益增长的需求;

如何维护数量不断膨胀的已有软件。

软件危机的典型表现:

(1对软件开发成本和进度的估计常常很不准确;

(2用户对“已完成的”软件系统不满意的现象经常发生;

(3软件产品的质量往往靠不住;

(4软件常常是不可维护的;

(5软件通常没有适当的文档资料;

(6软件成本在计算机系统总成本中所占的比例逐年上升;

(7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

1.1.2 产生软件危机的原因

(1与软件本身的特点有关

(2与软件开发与维护的方法不正确有关

1.1.3 消除软件危机的途径

对计算机软件有正确的认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。

应该开发和使用更好的软件工具。

总之,为了解决软件危机,既要有技术措施(方法和工具,又要有必要的组织管理措施。

1.2

1.2.1 软件工程的介绍

软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(期中考

软件工程的本质特性:

软件工程关注于大型程序的构造

软件工程的中心课题是控制复杂性

软件经常变化

开发软件的效率非常重要

和谐地合作是开发软件的关键

软件必须有效地支持它的用户

在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品

1.2.2 软件工程的基本原理

用分阶段的生命周期计划严格管理

坚持进行阶段评审

实行严格的产品控制

采用现代程序设计技术

结果应能清楚地审查

开发小组的人员应该少而精

承认不断改进软件工程实践的必要性

1.2.3 软件工程方法学

软件工程包括技术和管理两方面的内容。

软件工程方法学3要素:方法、工具、过程

1.传统方法学(生命周期方法学或结构化范型——强调自顶向下

2.面向对象方法学——强调主动地多次反复迭代

面向对象方法学4个要点:对象、类、继承、消息

1.3 软件生命周期(必考

三个时期八个阶段:软件生命周期由软件定义、软件开发和运行维护(也称为软件维护三个时期组成,每个时期又进一步划分成若干个阶段。

三个时期:八个阶段:

软件生命周期软件定义软件开发

软件维护

问题定义

可行性研究

需求分析

概要设计

详细设计

编码和单元测试

综合测试

运行维护

系统设计

系统实现

1.4 软件过程

1.4.1 瀑布模型

1.4.2 快速原型模型

1.4.3 增量模型

1.4.4 螺旋模型

1.4.5 喷泉模型

第2章可行性研究

2.1可行性研究的任务

可行性研究的目的:

不是解决问题,而是确定问题是否值得去解决。

可行性研究的实质:

进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。

可行性研究的内容:

首先进一步分析和澄清问题定义,导出系统的逻辑模型;

然后从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案;

对每种解法都研究它的可行性,至少应该从三方面研究每种解法的可行性。

主要方面:

技术可行性,经济可行性,操作可行性,

其他方面:

运行可行性,法律可行性,

2.2 可行性研究过程

1.复查系统规模和目标

2. 研究目前正在使用的系统

3. 导出新系统的高层逻辑模型

4. 进一步定义问题

5. 导出和评价供选择的解法

6. 推荐行动方针

7. 草拟开发计划

8. 书写文档提交审查

2.3 系统流程图

系统流程图:是概括地描绘物理系统的传统工具。表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。

2.4数据流图

2.4.1符号

基本符号:

数据存储:数据存储是处于静止状态的数据;

数据流:数据流是处于运动中的数据。

附加符号:

星号(*:表示“与”关系

加号(+:表示“或”关系

异或(⊕:表示互斥关系

2.5数据字典

数据流图和数据字典共同构成系统的逻辑模型。

2.5.1 数据字典的内容

数据字典的组成:数据流数据流分量(即数据元素数据存储处理2.5.2定义数据的方法

方法:对数据自顶向下分解。

数据组成方式(三种基本类型:顺序选择重复附加类型:可选

符号:

=意思是等价于(或定义为;

+意思是和(即,连接两个分量;

[]意思是或(即,从方括弧内列出的若干个分量中选择一个,通常用“|”号隔开供选择的分量;

{ }意思是重复(即,重复花括弧内的分量;常常使用上限和下限进一步注释表示重复的花括弧。

( 意思是可选(即,圆括弧里的分量可有可无。

2.5.3数据字典的实现

计算机实现人工实现

2.6成本/效益分析

2.6.1 成本估计:1. 代码行技术 2. 任务分解技术

3. 自动估计成本技术

2.6.2 成本/效益分析的方法

成本/效益分析涉及的4个概念:

1. 货币的时间价值

2. 投资回收期

3. 纯收入

4. 投资回收率:P = F1/( 1 + j + F2/( 1 + j 2 + …+ Fn( 1 + j n

第3章需求分析

需求分析的任务:

需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。

确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求

3.1需求分析的任务

确定对系统的综合要求

分析系统的数据要求

导出系统的逻辑模型

修正系统开发计划

3.1.1确定对系统的综合要求

1.功能需求

2. 性能需求

3. 可靠性和可用性需求

4. 出错处理需求

5. 接口需求

6. 约束

7. 逆向需求

8. 将来可能提出的要求

3.1.2 分析系统的数据要求

建立数据模型——ER图

描绘数据结构——层次方框图和Warnier图

数据结构规范化

3.2 与用户沟通获取需求的方法

访谈:1. 正式访谈 2. 非正式访谈 3. 调查表 4. 情景分析技术

面向数据流自顶向下求精

简易的应用规格说明技术

快速建立软件原型:(1 第四代技术(4GL(2 可重用的软件构件 (3 形式化规格说明和原型环境

3.3分析建模与规格说明

3.3.1 分析建模

需求分析过程应该建立3种模型:数据模型功能模型行为模型

数据字典是分析模型的核心

实体-联系图用于建立数据模型的图形

数据流图是建立功能模型的基础

状态转换图是行为建模的基础

3.4实体-联系图

数据模型中包含3种相互关联的信息:数据对象、数据对象的属性、数据对象彼此间相互连接的关系

3.4状态转换图

3.6.1状态

状态图分类:

表示系统循环运行过程,通常不关心循环是怎样启动的。

表示系统单程生命期,需要标明初始状态和最终状态。

3.6.2事件

事件就是引起系统做动作或(和转换状态的控制信息。

3.6.3符号

3.7其他图形工具

3.7.1 层次方框图

3.7.2Warnier图

3.7.3IPO图

3.8验证软件需求(重点

3.8.1 从哪些方面验证软件需求的正确性

一致性完整性现实性有效性

第五章总体设计

5.1设计过程

由两个主要阶段组成:

系统设计阶段,确定系统的具体实现方案:设想供选择的方案选取合理的方案推荐最佳方案

结构设计阶段,确定软件结构:功能分解设计软件结构设计数据库制定测试文档书写文档审查和复查

5.2设计原理

5.2.1 模块化

模块化的作用:

采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。

模块化使软件容易测试和调试,因而有助于提高软件的可靠性。

模块化能够提高软件的可修改性。

模块化也有助于软件开发工程的组织管理。

5.2.2抽象

5.2.3逐步求精

5.2.4信息隐藏和局部化

5.2.5 模块独立

尽量使用数据耦合,

少用控制耦合和特征耦合,

限制公共环境耦合的范围,

完全不用内容耦合。

七种内聚的优劣评分结果:

高内聚:功能内聚

顺序内聚

中内聚:通信内聚

过程内聚

低内聚:时间内聚

逻辑内聚

偶然内聚

5.3启发规则

1.改进软件结构提高模块独立性

2.模块规模应该适中

3.深度、宽度、扇出和扇入都应适当

4.模块的作用域应该在控制域之内

5.力争降低模块接口的复杂程度

6. 设计单入口单出口的模块

7. 模块功能应该可以预测

5.4 描绘软件结构的图形工具

5.4.1 层次图和HIPO图

1. 层次图(H图

层次图用来描绘软件的层次结构。很适于在自顶向下设计软件的过程中使用。

2.HIPO图

5.4.2结构图

5.5面向数据流的设计方法

结构化设计方法(简称SD方法,也就是基于数据流的设计方法。

5.5.1概念

面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。信息流有两种类型:变换流事务流

第6章详细设计

6.1 结构程序设计

经典的结构程序设计:

只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构;

扩展的结构程序设计:

如果除了上述3种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构;

修正的结构程序设计:

再加上允许使用LEAVE(或BREAK结构。

6.2人机界面设计

6.2.1设计问题

设计人机界面过程中会遇到的4个问题:

系统响应时间:长度易变性

用户帮助设施:集成的帮助设施附加的帮助设施

出错信息处理

命令交互

6.2.3 人机界面设计指南

一般交互指南

信息显示指南

数据输入指南

6.3过程设计的工具

6.3.1 程序流程图(程序框图

程序流程图的主要缺点:

程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。

程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。

程序流程图不易表示数据结构。

6.3.2盒图(N-S图

盒图具有下述特点:

功能域明确。

不可能任意转移控制。

很容易确定局部和全程数据的作用域。

很容易表现嵌套关系,也可以表示模块的层次结构。

6.3.3 PAD图

它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。

PAD图的主要优点如下:

使用表示结构化控制结构的PAD符号设计出来的程序必然是结构化程序。

PAD图所描绘的程序结构十分清晰。

PAD图表现程序逻辑易读、易懂、易记。

容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成。

即可表示程序逻辑,也可描绘数据结构。

PAD图的符号支持自顶向下、逐步求精方法的使用。

6.3.4 判定表

判定表却能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。

判定表的缺点:

判定表的含义不是一眼就能看出来的,初次接触这种工具的人理解它需要有一个简短的学习过程。

当数据元素的值多于两个时,判定表的简洁程度也将下降。

6.3.5 判定树

判定树的优点:

它的形式简单,一眼就可以看出其含义,因此易于掌握和使用。

判定树的缺点:

简洁性不如判定表,数据元素的同一个值往往要重复写多遍,而且越接近树的叶端重复次数越多。

画判定树时分枝的次序可能对最终画出的判定树的简洁程度有较大影响。

6.3.6 过程设计语言(伪码

伪代码的基本控制结构:

简单陈述句结构:避免复合语句。

判定结构:IF_THEN_ELSE或CASE_OF结构。

选择结构:WHILE_DO或REPEAT_UNTIL结构。

PDL的优点:

可以作为注释直接插在源程序中间。有助于保持文档和程序的一致性,提高了文档的质量。可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDL的书写和编辑工作。

已经有自动处理程序存在,而且可以自动由PDL生成程序代码。

PDL的缺点:

不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单。

6.4 面向数据结构的设计方法

面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。

6.4.1Jackson

软件工程导论总结报告

软件工程总结报告 序言 本期软件工程专业导论课程结束后,为圆满完结本期此课程的学习,特此总结个人学习所得以求些许回报先生无私教导。 主体 第一节课主要讲述了软件工程各领域之间的联系以及贯穿始终 的基础为何。其中较为基础并相当重要使的应该是算法。对于算法重要性与基础性的理解,我个人有比较切身的体验。比如前不久的 ACM 竞赛,在比赛中我所在的小组以及当场几乎所有小组都遇到这样一个 问题:超时—这无非就是个人设计的算法的效率不够高,这也证明我 们对算法理论知识的匮乏(不清楚优化个人算法的方法)。我对软件 工程这一专业有了一个较为全面的把握,对我个人未来进取方向而言 也起到了一定的指导作用。 第二节课老师带来了三位本专业的前辈向我们传授大学生活应 如何度过以及对我等一些问题作出解答。其中我个人印象深刻的是其 中一位学姐 PPt 中引用李开复的那部分内容。即试着记录下自己一整天做的所有事以及其所花费的时间,再仔细研究自己在哪些事上浪费 了时间,应该如何整改。我个人认为这方法可能有一定直观性,因为 直观的数据更能深刻的反映真实和刺激一个人整改,但此法实施起来又太古板,中觉得生活有些教条化、章程化,缺乏新意与自由。求上进,珍惜时间也无需以丧失人生情趣为代价。还有就是学长再提潘老师曾讲过的那些重要、紧急优先次序。他提到的个人的学习生活情况

倒没什么深刻感,但我认为他引用的一番话较有道理,大概意思是比 起个人兴趣更为优先的应该是谋生的本领,尤其是当自己感兴趣的正 好是冷门时。当掌握了一些实实在在有能保证自身良好发展前景后,再 去做一些自己感兴趣的事也来得及。于我而言,一个人尚不能独善其身,何求其兼济天下。成己方成人就是如此道理。 第三节课主要讲解了大学学习生活中应着重的基础课以传递重 基础的要旨。据个人体会,其中英语科目实是基础中的基础,主要是 为辨认单词(即代码变量以及注释)意义以达到理解他人算法并顺利 接手他人接下来的工作。企业和公司出于其本身利益主张雇方市场 -- 讲究项目的可接手性,而不希望对现有人员的过分依赖。离散数学则应该是为之后学习其他编程专业知识做理论知识的铺垫。概率统计更多应是对统计有关算法及理论的学习(个人认为现实生活中许多问题都可以运用概率统计的方法加以解决,因此应是很重要的基础知识)。C/C++(Java)语言是作为编程的工具使用,无疑是基础(现今水平下的 我们主要用 C 编代码)。数据结构则应是提供特定的解决问题的结构 思想以便进行数据处理方面工作。算法的重要性以及基础性的个人体 会已包含在第一节课中。计算机体系结构与汇编课程与操作系统原理 课程主要在于理解计算机系统运行原理能加深对代码运行原理的理 解,对于现今水平的我也能更深层次的理解 c 语言的指针操作等方面知识。汇编语言能够直接对硬件进行操作,生成的程序与其他的语言相 比具有更高的运行速度,占用更小的内存,因此在一些对于时效性要求很高的程序、许多大型程序的核心模块以及工业控制方面大量应

软件工程导论(第5版)课后习题答案

1-5 根据历史数据可以做出如下的假设: 对计算机存储容量的需求大致按下面公式描述的趋势逐年增加:M=4080e0.28(Y-1960) 存储器的价格按下面公式描述的趋势逐年下降:P1=0.3×0.72Y-1974(美分/位) 如果计算机字长为16位,则存储器价格下降的趋势为:P2=0.048×0.72Y-1974(美元/字) 在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。 基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算: (1) 在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少? (2) 假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。 (3) 假设在1995年存储器字长为32位,一名程序员每天可开发出30条指令,程序员的月平均工资为6000美元,重复(1)、(2)题。 ●(1)在1985年对计算机存储容量的需求,估计是 M=4080e0.28(1985-1960)=4474263(字) ●如果字长为16位,则这个存储器的价格是 ●P=0.048*0.72 1985-1974*4474263=$5789 ●(2)如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。 ●在1985年一名程序员每天可开发出10条指令,如果每月有20个工作日,则每人 每月可开发出10×20条指令。 ●为了开发出4474263条指令以装满存储器,需要的工作量是: 4474263/200=22371(人月) ●程序员的月平均工资是4000美元,开发出4474263条指令的成本是 22371*4000=¥89484000 ●(3)在1995年对存储容量的需求估计为: M=4080E0。28(1995-1960)=73577679(字)=4080E9.8 ●如果字长为32位,则这个存储器的价格是: P=0.003*32*0.72(1995-1974)*73577679=$7127 ●如果一条指令为一个字长,则为使存储器装满程序共需73,577,679条指令。 ●在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开 发出可装满整个存储器的程序,需要的工作量为 73577679/600=122629(人月) ●开发上述程序的成本为: 122629*6000=$735776790 1-6 什么是软件过程?它与软件工程方法学有何关系?

《软件工程导论》实验报告

2011-2012(2)《软件工程导论》实验报告 学院:计算机学院 班级:软件工程114 姓名:黄芳恺 学号:119074258 目录 实验1:项目计划、分析和设计 实验2;编码 实验3:代码复查、编译 实验4:项目测试总结

软件工程导论实验一:项目计划、分析和设计 [ 实验日期 ] 2012 年 4 月 20 日 [ 实验目的 ] 初步了解结构化分析、设计方法的原理、步骤以及各阶段的文档,练习撰写简要的需求文档、设计文档。 [ 实验内容 ] 贪吃蛇程序:贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物则表示食物被蛇吃掉,这时蛇的身体长一节,同时计1分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体,游戏结束。根据编写贪吃蛇的游戏规则,我们利用c语言来进行编辑具体步骤,从而使游戏能够运行,根据编写贪吃蛇程序,掌握软件工程思想及要领,进一步巩固编程思想和掌握画图函数底层,依据项目可行性研究的结果,进行需求分析和设计,编写简要的需求规格说明书,绘制程序流程图。 [ 实验原理和步骤] 当前的建模方法主要有传统的结构化分析、设计方法(SA/D)和面向对象分析、设计方法(OOA/D)两种。 分析阶段: 结构化分析(SA)是一种建模技术,它通过一定方法帮助开发人员定义系统需要什么功能,系统需要存储和使用哪些数据,以及为完成这些功能,系统需要什么样的输入和输出以及如何把这些功能结合在一起来完成任务。 设计阶段: 分总体设计和详细设计两阶段。总体设计阶段的任务主要是确定系统由哪些模块组成,以及这些模块之间的相互关系;详细设计阶段的任务主要是设计每个模块的处理过程。常用的结构化设计(SD)方法有面向数据流分析(DFA)的设计方法和面向数据的设计方法。DFA设计技术实施的通用步骤:(1)复查并精化DFD;(2)确定DFD类型; (3)把DFD映射到系统模块结构,设计出模块结构的上层;(4)基于DFD逐步分解高层模 块,设计出下层模块〈初步结构〉;(5)根据模块独立性原理,精化模块结构,得到更为合理的软件结构;(6)模块接口描述;(7)修改和补充数据词典;(8)制定测试计划。 详细设计阶段的任务主要是确定每个模块的处理过程,包括(1)确定每个模块的算法。(2)确定每一个模块的数据组织。(3)为每个模块设计一组测试用例。(4)编写详细设计说明书。详细设计阶段采用的方法是结构化程序设计(SP),与SA,SD方法衔接。目标是给出可以直接用以编码的程序逻辑结构,强调清晰第一。 设计思路: 这个程序的关键点是表示蛇的图形以及蛇的移动。用一个小矩形块表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不

软件工程导论复习知识点

一、软件: 软件定义: 软件=程序+文档+数据 软件特点: 1、具有抽象性 2、没有明显的制造过程 3、软件的维护比硬件的维护要复杂得多 4、对计算机系统有着不同程度的依赖性 5、尚未完全摆脱手工艺的开发方式 6、软件本身是复杂的 7、软件成本相当昂贵 8、相当多的软件工作涉及到社会因素软件的发展: 程序设计、程序系统、软件工程 软件危机: 软件危机指的是软件开发和维护过程中遇到的一系列严重问题。 软件危机的问题: 如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机表现: 1.开发成本难以控制,进度不可预计; 2.软件系统的质量和可靠性很差,难以满意; 3.软件文档相当缺乏,软件系统不可维护; 4.软件开发生产率很低,软件产品供不应求。 5.软件产品成本十分昂贵。

软件危机产生原因: 1、软件本身的特点 2、对软件开发与维护存在许多错误认识和做法 3、软件开发与维护的方法不正确 解决软件危机途径: 1、将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的工程项目。 2、研究和推广成功的软件开发技术和方法。 3、开发和使用好的软件工具。 软件生命周期: 软件所经历的定义、开发、使用和维护直到废弃所经历的时期。 程序设计环境: 源程序编辑,编译或解释,链接,调试和运行工具的集合 软件工程环境: 软件定义,设计和实现,测试和维护等各个阶段所使用的软件工具的集合 二、软件工程: 软件工程定义: 研究如何应用一些科学理论和工程上的技术来指导软件的开发,用较少的投资获得高质量的软件的一门学科。 软件工程性质: 涉及计算机科学、工程科学、管理科学、数学等领域,着重于如何建造一个软件系统。用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。用管

软件工程导论(第五版)课后习题测验答案

《软件工程导论》课后习题答案 第一章软件工程概论 1-1 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。 (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.软件危机有那些典型表现? (1)对软件开发成本和进度的估计常常很不准确。 (2) 用户对“已完成的”软件系统不满意的现象经常发生。 (3)软件产品的质量往往靠不住。 (4)软件常常是不可维护的。 (5)软件通常没有适当的文档资料。 (6) 软件成本在计算机系统总成本中所占的比例逐年上升。 (7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 3.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 4.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 1-3、

软件工程导论实验报告

<<软件工程概论>> 实验报告 姓名:李治 学号:100511210 班级:网工1001 指导教师:桂兵祥 实验一“图书馆系统”结构化需求分析

上机任务: 用结构化需求分析方法完成下列任务: (1)对“图书馆系统”问题进行描述; (2)对该系统进行功能分析; (3)建立数据流图; (4)建立实体 - 关系图; (5)建立数据字典; 一、图书馆系统的问题描述: ① 一个图书馆藏有图书和期刊杂志两大类书籍,每种图书/杂志可以有多册。 ② 图书馆可以维护(注册、更新和删除)图书资料。 ③ 图书馆管理员负责与借书者打交道。 ④ 借书者可以预约目前借不到的书或杂志。 ⑤ 所有人员都可以浏览图书馆的图书信息和各种告示。 ⑥ 系统能在流行的技术环境下运行,有一个良好的图形交互界面。 ⑦ 系统应具有良好的可扩展性。 二、图书馆系统功能分析: ① 浏览功能:所有人员都可以浏览图书馆的图书信息。 ② 借还功能:借书者可以借/续借、还、预约图书。 ③ 图书管理功能:图书管理人员可以做录入、更新和销毁等图书信息维护工作。④ 借书者管理:系统管理人员可进行注册、更改、注销借书者信息等维护工作。 三、建立数据流图: 1、图书馆系统的基本逻辑模型: 浏览图书 浏览者 图书信息 浏览信息 2、借/还功能数据流图: (1)借/还功能(第一步)DFD : 借书还书 续借预约 书目号和借书 证号 书目号 书目号 标题号和借书 证号 管理员 借书者 借书者 显示信息 (2)借/还功能(修改)DFD :

借书还书续借预约 书目号和借书 证号 书目号 书目号 标题号和借书 证号 管理员 借书者 3、维护功能数据流图: (1)维护功能(第一步)DFD : 更改借者注销借书者 录入新书更新图书管理员 注册借书者销毁图书处理罚金 管理员 (2)维护功能(修改) DFD : 录入标题修改标题删除标题录入新书管理员 销毁书目修改书目 标题信息 标题号 标题号 书目信息 书目号 书目号 4、借书功能细化的数据流图:

《软件工程导论》第六版期末复习总结要点

软件工程 一、名词解释与问答 1、S A——结构化分析方法 2、画数据流图应注意什么事项? (1)数据流名称只能是名词或是名词短语; (2)每个加工至少有一个输入数据和一个输出数据流,反映出此加工数据的来 源与加工的结果; (3)编号:某个加工分解成一张数据流图时,上层图为父类,下层图为子类; 父图与子图的平衡:子图的输入输出数据流同父类相应的输入输出数据流必须一致; (4)注意数据流图的易理解性; 3、什么是软件生存周期?它有那几个活动? 一个软件从提出开发要求开始直到该软件报废为止的整个时期。 包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。 4、什么是数据流图?作用是什么?其中的基本符号表示什么含义?以图的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。 箭头,表示数据流数据流是数据在系统内传播的路径,由一组成分固定的数据项组成; 圆或椭圆,表示加工对数据进行某些操作或变换,每个加工要有名字,通常是动词短语,描述完成的加工; 双杆,表示数据存储指暂时保存的数据;方框,数据源点或终点软件系统外部环境的实体,为帮助理解系统接口界面引入,只出现在顶层图中; 什么是数据字典简述数据字典与数据流图的关系答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与 说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用?数据流图和对数据

流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3分)简述编码风格的重要性? 答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供 人阅读的文章?应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间? 良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定 着程序的质量. 简述软件测试的任务、目的与类型。 答:软件测试是一个为了寻找软件错误而运行程序的过程。 目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发 现 的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测 试 主要分为白盒测试和黑盒测试两大类。 可行性分析的目的和主要任务是什么? 答:可行性分析的目的不是解决问题,而是确定问题是否值得去解决。 主要任务是从下面几方面研究每种解法的可行性:技术可行性,经济可行性,操作可行 性,社会可行性,抉择可行性。 需求分析的目的和主要任务是什么? 答:进行需求分析是为了准确地回答“系统必须做什么”这个问题,决定可以做什么不做什么。需求分析的主要任务是描述系统的功能需求、性能需求、数据需求、可靠性/可用性需求、出错处理需求、接口需求、约束条件、其他需求。 软件维护的目的和主要任务是什么?维护的类型有哪些? 答:软件维护是软件生命周期中最后一个、持续时间最长的阶段。 主要任务是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件,目的是提高软件的可靠性、可用性,延长软件的寿命。维护的类型有:改正性(错误)、适应性(环境)、完善性(功能)、预防性(新产品)什么是耦合?模块的耦合包括哪些类型?答:耦合是对一个软件结构内不同模块之间互连程度的度量。 模块的耦合包括以下几种类型:数据耦合,控制耦合,特征耦合,公共环境耦合,内容耦合,标记耦合,无耦合/非直接耦合 什么是内聚?模块的内聚包括哪些类型?

《软件工程导论》第五版-张海藩-编著-总结

《软件工程导论》第五版张海藩编著总结 分类:Computer System2011-01-04 10:14 6417人阅读评论(10) 收藏举报 测试数据结构工具任务文档软件测试 总结重点: ?Unit1 ?软件危机包含两方面の问题:一是如何开发软件,怎样满足人们对软件日益增长の需求?二是如何维护软件,使它们持久地满足人们の要求。 ?软件工程学定义:把软件当作一种工业产品,采用工程学の原理来管理和组织软件の开发和维护,称为软件工程。 ?软件是指程序、数据和文档三者共同构成の配置。 ?包含与数据处理系统操作有关の程序、规程、规则以及相关文档の智力创作称为软件。文档是描述程序开发过程の,是智力创作の真实记录,是创作活动の历史档案和结晶。 ?软件の描述性定义:软件由计算机程序,数据结构和文档组成。 ?软件质量定义为“与软件产品满足规定の和隐含の需求能力有关の特征和特性の全体” 具体来说: 1)软件产品中能满足给定需求の性质和特性の总体; 2)软件具有所期望の各种属性の组合程度。 ?将软件质量属性划分为六个特性(功能性、可靠性、易用性、效率、维护性和可移植性),这六个属性是面向用户の观点——面向管理の观点,且是定性描述の。 ?软件质量度量体系:内部度量可用于开发阶段の非执行软件产品,外部度量只能在生存周期过程中の测试阶段和任何运行阶段使用。 ?软件工程项目の基本目标:(1)低成本;(2)满足功能要求;(3)高性能;(4)易移植;(5)易维护。 ?软件工程方法学就是要从技术和管理上提供如何去设计和维护软件。 ?软件开发方法:面向数据流(约旦)方法、面向数据结构方法、面向对象方法。 ?结构程序设计是进行以模块功能和处理过程设计为主の详细设计の基本原则。它の主要观点是采用自顶向下、逐步求精の程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。 ?用来辅助软件开发、运行、维护、管理、支持等过程中活动の软件称为软件工具(CASE)。 ?软件生存周期定义:软件产品从形成概念开始,经过开发、使用和维护,直到最后不再使用の整个过程。各阶段の任务彼此间尽可能の相对独立,同一阶段内各项任务の性质尽可能の相同。软件の开发就是“按软件顺时间发展の过程分阶段进行”の。 ?软件生存周期模型: 瀑布模型(阶段间具有顺序型和依赖性,清楚地区分逻辑设计与物理设计、尽可能推迟程序の物理实现,是文档驱动模型,遵循结构化设计);

软件工程导论(第6版)知识点总结、复习课_图文.

复习课 --------酷爱YC 第一章 1、什么是软件危机,什么是软件工程 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:(1如何开发软件,以满足对软件日益增长的需求;(2如何维护数量不断膨胀的已有软件。 软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件,并有效地维护它。 2、完整的软件配置由哪些内容组成 软件配置主要包括程序,文档和数据等成分。 3、软件生命周期分为哪3个时期和8个阶段,每个阶段的任务(工作分别是什么,重要性如何

概括地说,软件生命周期由软件定义、软件开发和运行维护3个时期组成 1、软件定义(系统分析。 软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完成。软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。 (1 问题定义,确定系统要解决的问题是什么。成果:关于问题性质、工程目标和工程规模的报告。 (2 可行性研究,确定问题是否有可用的、能行得通的解(包括:技术、经济、操作、社会等方面的可行性。这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。成果:可行性研究报告。 (3 需求分析,确定软件系统的必须实现的功能、必须达到的性能、必须满足的运行环境要求。系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。成果:软件需求规格说明书(SRS,内容包括:系统的逻辑模型;系统(子系统的名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则等。 2、软件开发。 开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。 (1 总体设计(概要设计,回答“怎样实现目标系统”。

大连理工大学城市学院软件工程导论期末考试复习重点

软件工程导论重点 第一章重点: 软件的概念:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。 软件危机概念:软件危机暴发于上个世纪六十年代末。 主要表现为:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难。 软件工程概念: 概括地说,软件工程是指导计算机软件开发和维护的工程学科。 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 软件工程的目标: 软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。 基本目标: 付出较低的开发成本 达到要求的软件功能 取得较好的软件性能 开发的软件易于移植 需要较低的维护费用 能按时完成开发工作,及时交付使用 软件生存期概念和包含内容: 软件也有一个孕育、诞生、成长、成熟和衰亡的生存过程,我们称这个过程为软件生命周期或软件生存期。 软件生存期分为三个时期 软件定义 软件开发 运行维护

软件工程的方法: 软件工程包含技术和管理两方面的内容,是技术和管理紧密结合所形成的工程学科。 通常将软件开发全过程中使用的一整套技术方法的集合称为方法学(methedology),也称为范型(paradigm)。 目前使用最广泛的软件工程方法学:传统方法学(结构化方法学),面向对象方法学。 软件工程三要素: 三要素:方法、工具和过程。 第二章重点: 生存期模型有哪些: ?瀑布模型 ?快速原型模型 ?增量模型 ?螺旋模型 ?喷泉模型 ?统一过程 ?基于构件的开发模型 ?敏捷过程 前四种面向过程后四种面向对象 给一个模型,判断出是哪一模型的 第三章重点: 结构化分析方法的概念: 传统的分析建模方法称为结构化分析(structured analysis,SA)方法。 三大建模:(未完待续!!!) 功能建模: 功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。功能模型

软件工程导论实验报告 白盒测试 黑盒测试

《软件工程导论》实验报告 学生姓名: 学号: 班级: 指导老师: 专业: 实验日期:

白盒测试 一、实验目的 通过简单程序白盒测试,熟悉测试过程,对软件测试形成初步了解,并养成良好的测试习惯。熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。 二、实验内容: 1、被测试程序功能:求解系数为整数的方程ax2+bx+c=0 2、程序定义:键盘输入3个数字a,b,c,求解方程ax2+bx+c=0 3、测试环境:Windows 8.1、Eclipse 4、说明:本次测试采用插桩测试法,由于程序比较简单,手动输入测试用例。 四、实验步骤 1、程序流程图

2、代码: import java.util.Scanner; public class test { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入3个整数a,b,c:"); String as; String bs; String cs; int a=0; int b=0; int c=0; double x, x1, x2; as=sc.nextLine(); bs=sc.nextLine(); cs=sc.nextLine(); try{ a=Integer.parseInt(as); b=Integer.parseInt(bs); c=Integer.parseInt(cs); }catch(Exception e){ System.out.println("输入错误"); System.exit(0); } if (a == 0) { if (b == 0) { if (c == 0) System.out.println("无穷多解" ); else

软件工程导论最全复习总结

1、软件危机是指在计算机开发过程中的开发和维护过程中所遇到的一系列的 严重问题。 2、软件是程序、数据及相关文档的完整集合,程序是能够完成预定功能和性能的可执行的 程序序列;数据是是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。 3、软件工程学包含3个要素:方法、工具、过程。 4、目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。 5、软件工程方法学的软件过程基本上可以用瀑布模型来描述。 6、瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。 7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。 8、可行性研究的三方面:技术可行性、经济可行性、操作可行性。 9、数据流图(DFD是一种图形化技术,他描绘信息流和数据从输入移动到输出的过程中 所经受的变化。 10、数据字典是关于数据信息的集合,也就是对数据流程图中所包含的所有元素的定义 的集合。 11、数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据如就不严格, 没有流程图,数据字典也难以发挥作用。

12、需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准 确的描述软件需求。 13、9、结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 14、ER图中包含了实体、关系和属性,矩形代表实体,菱形表示关系,椭圆或圆角矩 形表示属性,用直线把实体和其属性连接。 15、验证软件需求的正确性:一致性、完整性、现实性、有效性。 总体设计又称 16、总体设计的基本目的是回答“概括地说,系统应该如何实现?”, 为 概要设或初步设计。 17、模块的独立程度可以有两个定性标量度量:内聚和耦合。 18、软件测试的目标:(1测试是为了发现程序中的错误而执行程序的过程;(2好的 测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3成功的测试是发现可至今为止尚未发现的错误的测试。 19、软件测试步骤:模块测试、子系统测试、系统测试、验收测试、平行运 行。 20、软件可靠性是程序在给定的时间点,按照规格说明书的规定,成功的运行的概率。

软件工程导论第五版复习重点(必考题)

(最后部分为每年必考题) 第一章 1. .软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的. 2. 软件危机的概念:软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题。 3. 产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 4. 面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件 2.把所有对象都划分成类3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。4.对象彼此间仅能通过发送消息互相联系。 5. 软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要) 6. 瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。 7. 微软过程把软件生命周期划分为成5个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。 第二章 1.可行性包括:技术可行性,经济可行性,操作可行性。 2. 系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形势描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。4. 书库流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示。 5. 用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。有数据元素组成的数据的方式只有下述3种基本类型:顺序(即以确定次序连接两个或多个分量)。选择即从两个或多个可能的元素中选取一个重复即把指定的分量重复零次或多次

软件工程导论复习重点总结很全(第六版)(精)

第1章软件工程学概述 1.1 软件危机 1.1.1 软件危机的介绍 软件危机(软件萧条、软件困扰:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 软件危机的典型表现: (1对软件开发成本和进度的估计常常很不准确; (2用户对“已完成的”软件系统不满意的现象经常发生; (3软件产品的质量往往靠不住; (4软件常常是不可维护的; (5软件通常没有适当的文档资料; (6软件成本在计算机系统总成本中所占的比例逐年上升; (7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 1.1.2 产生软件危机的原因 (1与软件本身的特点有关 (2与软件开发与维护的方法不正确有关

1.1.3 消除软件危机的途径 对计算机软件有正确的认识。 认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施(方法和工具,又要有必要的组织管理措施。 1.2 1.2.1 软件工程的介绍 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(期中考 软件工程的本质特性: 软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户

(完整版)软件工程导论(第5版)习题二答案

P53 习题二 4.目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于 不能随时观察病人的病情变化,还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的可行性。 医院对患者监护系统的基本要求是随时接收每个病人的生理信号(脉搏体温血压心电图等)定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安全范围试向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。 答: 问题定义:某医院打算开发一个以计算机为中心的患者监护系统是为了更好地让医生监护病人的生理信号(脉搏、血压、心电图等)的变化,定时记录病人情况以形成患者日志,防止没能及时发现危重病人的病情恶化而耽误抢救时机的现象出现;当某个病人的生理信号超出医生规定的安全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统印出某个指定病人的病情报告。 可行性研究: (1)技术可行性:开发系统的计算机硬件已经非常普及,现在的计算机各方面的技术都非常成熟,相对来说开发此系统的技术也要求比较简单,因此在技术方面是可行的;同时医院还必须有一定量的系统管理和维护的专业人员。医院的患者监护系统由三部分构成:监护中心、护士监听部分和 Internet医疗网站。监护中心通过Internet与护士监护部分、Internet连接、把监听到的患者声音、视频信息以及影像资料通过通讯网络实时传送到护士监听部分(便于护士随时掌握患者的生理状况)和Internet医疗中心(有利于实现生理数据的共享)。 因此技术上分析是可行的。 (2)经济可行性:随着经济越来越发达,人们可以支付的治疗疾病的花费也挺高了,因此其开发具有广阔的市场。目前住院病人主要由护士护理,这样做不仅需要大量护士,而且由于不能随时观察病人的病情变化,还可能会延误抢救时机。当前的社区医疗保健系统还不够完善,大多数据收集工作主要采取手工方式;并且信息不利于共享,采集的资料存在一台计算机里,社区中心与居民之间不能建立起随时访问和被采访的关系。 (3)操作可行性:计算机的普及使人们对以计算机为中心的患者监护系 统的使用做了铺垫,系统的操作人员需要经过专业的人员指导以及培训。 (4)法律可行性:医院想要使用患者监护系统需要购买正版的软件,机 器设置也需要通过正当途径购买。 5.北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成, 第1位数字不是零;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本地电话再接着拨8位数字(第一位不是0),若是外地电话则拨3位区码再拨8位电话号码(第一位不是0)。 用2.5.2小节讲诉的数据定义的方法,定义上述电话号码。 答:电话号码=[校内电话号码|校外电话号码]

软件工程导论实验报告

目录 第一章可行性分析报告 (7) 1.1 引言 (7) 1.2 可行性研究的前提 (8) 1.3技术可行性分析 (9) 1.3.1系统简要描述 (9) 1.3.2处理流程和数据流程 (9) 1.4操作可行性分析 (9) 1.5经济可行性分析 (10) 1.5.1支出 (10) 1.5.2效益 (10) 1.5.3收益/投资比 (11) 1.5.4投资回收周期 (11) 1.5.5敏感性分析 (11) 1.6法律可行性 (11) 1.7结论 (11) 第二章需求分析报告 (12) 2.1引言 (12) 2.1.1 编写目的 (12) 2.1.2 项目背景 (12) 2.1.3 定义 (12)

2.2任务概述 (13) 2.2.1 目标 (13) 2.2.2 假定和约束 (12) 2.2.3 人力、资金、时间的约束 (12) 2.2.4技术发展规律的约束 (13) 2.3需求规定 (8) 2.3.1对功能的规定 (8) 2.3.2对性能的规定 (8) 2.3.3精度 (8) 2.3.4时间特性要求 (15) 2.3.5旅客信息 (15) 2.4数据描述 (15) 2.4.1数据特征 (15) 2.4.2系统数据流图 (15) 2.5 运行环境规定 (11) 2.5.1服务器端子系统运行要求 (11) 2.5.2客户端子系统运行要求 (11) 第三章概要设计 (18) 3.1引言 (18) 3.1.1编写目的 (18) 3.1.1项目背景 (18)

3.2任务概述 (19) 3.2.1目标 (18) 3.2.2运行环境 (18) 3.2.3需求概述 (18) 3.3总体设计 (20) 3.3.1处理流程 (20) 3.3.2客户机程序流程 (20) 3.3.3总体结构设计 (20) 3.3.4功能分配 (20) 3.4 接口设计 (20) 3.4.1外部接口 (24) 3.4.2软件接口 (24) 3.4.3硬件接口 (24) 3.4.4内部接口 (24) 3.5 数据结构设计 (27) 3.5.1 数据库数据结构设计 (27) 3.5.2物理结构设计 (27) 3.5.3 数据结构与程序关系 (27) 3.6 运行设计 (27) 3.6.1 运行模块的组合 (27) 3.6.2 运行控制 (27)

软件工程导论知识点概要

1.1软件危机 软件危机的表现 软件危机是指在计算机软件的开发、使用和维护过程中遇到的一系列严重问题。 1)成本难以估计、成本高。 2)软件开发进度估计不准确,项目延期比比皆是。 3)软件质量得不到保证(功能和性能)。 4)用户对“已完成的”软件系统不满意的现象经常发生。 5)维护非常困难(多样性、复杂性、副作用)。 6)软件通常没有适当的文档。 7)软件产品供不应求,跟不上计算机普及速度。 产生软件危机的原因 (1)及软件本身的特点有关(逻辑复杂,成本高,风险大,难于维护)。 (2)及软件开发及维护的方法不正确有关: 软件≠程序(软件是程序、数据及相关文档的完整集合)急于求成=拔苗助长(软件从定义、开发、使用和维护、废弃要经历一个漫长的生命周期) 各自为阵无方法学(应要组织良好、管理严密、各类人员协作共同完成的工程项目) 1.2软件工程定义 软件工程是应用计算机科学、数学、心理学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量、降低成本和提高效率为目的。 软件工程包括技术和管理两方面的内容,是技术及管理紧密结合所形成的工程学科。 软件工程的特性: 1. 软件工程关注于大型程序的构造 (传统的程序设计技术和工具是支持小型程序设计的)

2. 软件工程的中心课题是控制复杂性(问题分解) 3. 软件经常变化(考虑将来要发生的变化) 4. 开发软件的效率非常重要(寻求更好、更有效的工具) 5. 和谐地合作是开发软件的关键(运用标准和规程) 6. 软件必须有效地支持它的用户(软件要服务于用户) 7. 在软件工程领域中通常是由具有一种文化背景的人替具有另一种文化背景的人创造产品 软件工程的7条基本原理 1.用分阶段的生命周期计划严格管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用现代程序设计技术 5.结果应能清楚地审查 6.开发小组的人员应该少而精 7.承认不断改进软件工程实践的必要性 软件工程方法学 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学(methodology),也称为范型(paradigm)。 目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。 软件工程方法学包含3个要素:方法、工具和过程。 1.3软件生命周期 每阶段的基本任务: 1. 问题定义 2. 可行性研究 3. 需求分析 4. 总体设计 5. 详细设计 6. 编码和单元测试 7. 综合测试 8. 软件维护

《软件工程导论第五版》张海潘pdf版(第五版清华大学出版社课后答案)

第一章 z 软件工程方法学(3个要素) :通常把软件生命周期全过程中使用的一整套技术方法的集合称为方法学, 也称范型。三要素:方法、工具和过程。 z 软件生命周期模型 – 瀑布模型:优点:1.可强迫开发员采用规范的方法2.严格地规定了每个阶段必须提交的文件3.要求每 个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 – 缺点:传统的瀑布模型过于理想化,是由文档驱动的。 – 快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反 馈意见的方法,获取用户真正的需要。 – 增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用 户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。 – 螺旋模型:优点:对可选方案和约束条件的强调有利于已有软件的重用;减少了过多测试;维护只 是螺旋模型中另一个周期。 1-1 什么是软件危机? 是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 1-2 什么是软件工程? 是指导计算机软件开发和维护的一门工程学科。 1-3 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。 目前使用得最广泛的软件工程方法学(2种): 1. 传统方法学:也称为生命周期方法学或结构化范型。 优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 2. 面向对象方法学:优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作; 促进了软件重用。 1-4 软件生命周期划分成哪些阶段 z 软件生命周期(各阶段)软件生命周期由软件定义、软件开发和运行维护三个时期组成。 1. 软件定义时期划分为三个阶段:问题定义、可行性研究和需求分析 2. 开发时期:总体设计、详细设计、编码和单元测试、综合测试。 3. 维护时期:主要任务是使软件持久地满足用户的需要。 1-5 什么是软件过程?它与软件工程方法学有何关系? z 软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤 z 软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型 1-6 传统“瀑布模型”的主要缺陷是什么?试说明改进的方法。 传统的瀑布模型过于理想化了。增加“反馈环” 第二章 z 可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 z 可行性研究的任务:1.进一步分析和澄清问题;2.导出系统的逻辑模型;3.从逻辑模型出发,提出若干种系统 实现方案4.研究每种实现方案的可行性: z 技术上的可行性 ——使用现有的技术能实现这个系统吗? z 经济上的可行性 ——这个系统的经济效益能超过它的开发成本吗? (投资与效益) z 操作可行性 ——系统的操作方式在这个用户组织内行得通吗? z 社会、政策允许的可行性 5.为每个可行的解决方案制定一个粗略的实现进度 6.对以后的行动方针提出建议 方法:1.系统流程图 2.数据流图:(DFD ) 符号 数据流 第 1 页https://www.360docs.net/doc/5b17858649.html,

相关文档
最新文档