计算机科学导论课件:Software Engineering

合集下载

计算机专业英语第三版教学课件Unit5 Software Engineering

计算机专业英语第三版教学课件Unit5 Software Engineering
Mr. Brown: Zhonghua Computers. What can I do for you?
布朗先生:您好!中华计算机公司。我能为您做些什么?
Linda: Hello, Mr. Brown. It is Linda. Got a minute?
琳达:您好,布朗先生。我是琳达。您有时间吗?
Mr. Brown: I see your point. If we have to spend more time on developing the second version, we’ll have to adjust the schedule. People need to know that we have adjusted the project development plan as soon as possible. Do you want me to call the project manager?
Look and Learn Dialogue Reading Learn More New Words and Phrases
A software development project organization.
Lesson 14
Unit 5
Look and Learn Dialogue Reading Learn More New Words and Phrases
Mr. Brown: Yes.We planned to put the two versions in the same development process. Well, what kind of problem are you having now?
布朗先生:是的。我们计划在同一个开发过程中投入两个版本。那您现在遇到什么问题了?

软件工程SoftwareEngineering-PPT精品

软件工程SoftwareEngineering-PPT精品
软件设计过程是,在不同抽象级别上考虑、处理问题的过程。
(1)在最高抽象级别上,用面向问题域的语言叙述“问题”, 概括“问题解”的形式。
(2)不断地具体化,不断地用面向过程的语言描述问题。
(3)在最低的抽象级别上给出可直接实现的“问题解”,即 程技大学计算机学院
8
抽象与逐步求精
2019/10/15
国防科技大学计算机学院
18
8.2.2模块化与信息隐藏
8.2软件设计基本概念
模块化的概念
把软件划分为可独立命名和编址的部件,每个部件称为一 个模块,当把所有模块组装到一起时则获得满足问题需要的一 个解。
软件总体结构体现了模块化思想。
“模块化是软件唯一能使程序获得智能化管理的一个属性”,
2019/10/15
国防科技大学计算机学院
9
抽象与逐步求精
8.2软件设计基本概念
在由高级抽象到低级抽象的转换过程中,伴随着一连串 的过程抽象和数据抽象。
过程抽象把完成一个特定功能的动作序列抽象为一 个过程名和参数表,通过指定过程名和实际参数调用 此过程;
数据抽象把一个数据对象的定义(或描述 )抽象为一 个数据类型名,用此类型名可定义多个具有相同性质 的数据对象。
20
模块化与信息隐藏
8.2软件设计基本概念
“分治法”
一个复杂问题分割成若干个可管理的小问题后更易 于求解。
当模块总数增加时,每个模块的成本减少了,但模块接 口所需代价随之增加。
如果模块数为M时将获得最小开发成本,那么模块数 在M附近选择,就能避免模块分割过度和不足。
这些问题涉及信息隐藏、内聚度与藕合度的概念。
2019/10/15
国防科技大学计算机学院
10

Software Engineering Chapter 15

Software Engineering Chapter 15

Sensors Actuatorsreal-time systemsoft real-time system hard real-time systemPeriodic stimuli Aperiodic stimuliStimulus/Response Timing requirementsPower fail interrupt The switch to backup power must be completedwithin a deadline of 50 ms.Door alarm Each door alarm should be polled twice persecond.Window alarm Each window alarm should be polled twice persecond.Movement detector Each movement detector should be polled twiceper second.Audible alarm The audible alarm should be switched on within1/2 second of an alarm being raised by a sensor. Lights switch The lights should be switched on within 1/2second of an alarm being raised by a sensor. Communications The call to the police should be started within 2seconds of an alarm being raised by a sensor. Voice synthesiser A synthesised message should be availablewithin 4 seconds of an alarm being raised by asensor.class BuildingMonitor extends Thread {BuildingSensor win, door, move ;Siren siren = new Siren () ;Lights lights = new Lights () ;Synthesizer synthesizer = new Synthesizer () ;DoorSensors doors = new DoorSensors (30) ;WindowSensors windows = new WindowSensors (50) ;MovementSensors movements = new MovementSensors (200) ;PowerMonitor pm = new PowerMonitor () ;BuildingMonitor(){// initialise all the sensors and start the processessiren.start () ; lights.start () ;synthesizer.start () ; windows.start () ;doors.start () ; movements.start () ; pm.start () ;}public void run (){int room = 0 ;while (true){// poll the movement sensors at least twice per second (400 Hz)move = movements.getVal () ;// poll the window sensors at least twice/second (100 Hz)win = windows.getVal () ;// poll the door sensors at least twice per second (60 Hz)door = doors.getVal () ;if (move.sensorVal == 1 | door.sensorVal == 1 | win.sensorVal == 1){// a sensor has indicated an intruderif (move.sensorVal == 1) room = move.room ;if (door.sensorVal == 1) room = door.room ;if (win.sensorVal == 1 ) room = win.room ;lights.on (room) ; siren.on () ; synthesizer.on (room) ;break ;}}lights.shutdown () ; siren.shutdown () ; synthesizer.shutdown () ;windows.shutdown () ; doors.shutdown () ; movements.shutdown () ;} // run} //BuildingMonitorclass CircularBuffer{int bufsize ;SensorRecord [] store ;int numberOfEntries = 0 ;int front = 0, back = 0 ;CircularBuffer (int n) {bufsize = n ;store = new SensorRecord [bufsize] ;} // CircularBuffer。

软件工程SoftwareEngineering-PPT精品.ppt

软件工程SoftwareEngineering-PPT精品.ppt
在这一抽象级别上,
2021/1/8
国防科技大学计算机学院
11
不同抽象级别软件的形式
8.2软件设计基本概念
抽象2 CAD 软件任务; 用户界面任务; 创建二维图形任务; 显示图形任务; 管理图形文件任务; end CAD. 在这一抽象级别上,给出了组成CAD软件任务的所有子任
务,术语与问题域有所不同,但仍然不是实现用的语言。
软件设计过程是,在不同抽象级别上考虑、处理问题的过程。
(1)在最高抽象级别上,用面向问题域的语言叙述“问题”, 概括“问题解”的形式。
(2)不断地具体化,不断地用面向过程的语言描述问题。
(3)在最低的抽象级别上给出可直接实现的“问题解”,即 程序。
2021/1/8
国防科技大学计算机学院
8
抽象与逐步求精
8.2软件设计基本概念
软件工程过程的每一步都是对较高一级抽象的解作一 次较具体化的描述。
在系统定义阶段, 软件系统被描述为基于计算机的大 系统的一个组成部分;
在软件规划和需求分析阶段,软件用问题域约定的习 惯用语表达;
从概要设计过渡到详细设计时,抽象级再一次降低;
编码完成后,达到了抽象的最低级。
2021/1/8
软件设计者根据这组概念进行设计决策, 如:
划分子部件的标准; 从软件的概念表示中分离出功能和数据结构的细节; 以统一的标准衡量软件设计质量等等。
2021/1/8
国防科技大学计算机学院
7
8.2.1抽象与逐步求精
8.2软件设计基本概念
抽象是管理、控制复杂性的基本策略 。
“抽象”是心理学概念,它要求人们将注意力集中在某一层次上 考虑问题,而忽略那些低层次的细节。 使用抽象技术便于人们用“问题域”的概念和术语描述问题,而 无须过早地转换为那些不熟悉的结构。

【大学课件】Software Engineering软体工程(英文课件)

【大学课件】Software Engineering软体工程(英文课件)
6
Symptom of Software Crisis
About US$250 billions spent per year in the US on application development
Out of this, about US$140 billions wasted due to the projects getting abandoned or reworked; this in turn because of not following best practices and standards
ppt课件
4
Contents
Software Crisis Software Myths What is Software Engineering Evolution of Software Engineering State-of-art in Software Engineering
Software Engineering 軟體工程
ppt课件
1
Course Obout all the difficulties in developing software so that we can avoid pitfalls and myths in software design
average time
overrun = 222%.
53%
Project completion
61% of originally specified features included
16%

?
On time, on budget, with all of the specified features and functions

软件工程SoftwareEngineering

软件工程SoftwareEngineering
之为5,中间情况分别取值1,2,3,4值越大表示风险越大。 æ 人员配备风险检测表反映了人的因素给软件项目带来的风险。
PPT文档演模板
软件工程SoftwareEngineering
2 风险估算
2.6软件开发过程的管理
æ 软件项目管理人员可以从影响风险的因素和 风险发生后的损失两方面来度量风险。
PPT文档演模板
PPT文档演模板
软件工程SoftwareEngineering
2.6.3 软件开发标准
2.6软件开发过程的管理
æ 传统工业没有标准化就没有现代化的工业。 大型软件工程项目也离不开标准化。
æ 软件文档、程序和数据的标准化有助于提高 软件的一致性、完整性和可理解性,有助于提 高软件开发质量和效率。
æ 标准化的软件便于存档、交流和重用。
PPT文档演模板
软件工程SoftwareEngineering
例:人员配备风险检测表
2.6软件开发过程的管理
(1) 开发人员的水平如何。 (2) 开发人员在技术上是否配套。 (3) 开发人员的数量如何。 (4) 开发人员是否能够自始至终地参加软件开发工作。 (5) 开发人员是否能够集中全部精力投入到软件开发工作。 (6) 开发人员对自己的工作是否有正确的期望。 (7) 开发人员是否接受过必要的培训。 (8) 开发人员的流动是否能够保证工作的连续性。 æ 上述问题可以选用0,1,2,3,4,5来回答。完全肯定取值为0,反
软件工程SoftwareEngineering
进度安排
2.6软件开发过程的管理
PERT和CPM方法提供了定量描述工具,包括
①关键路径。完成关键路径上所有任务时间的 总和,就是项目开发所需要的最短时间。
②用统计模型估算开发每个子任务需要的工作 量和时间。

软件工程导论PPT课件

软件工程导论PPT课件

软件(software)是计算机系统中与硬件 (hardware)相互依存的另一部分,
它包括程序(program)、 相关数据(data)及其 说明文档(document)。
软件特指大型复杂的程序
2021
5
软件的发展
早期 •面向批处理 •有限的分布 •自定义软件
第二阶段 •多用户 •实时 •数据库 •软件产品
是把软件当作一种工业产品,要求 “采用工程化的 原理与方法对软件进行计划、开发和维护 ”。
2021
21
围棋与软件工程的感想
围棋
围棋棋谱拿过来的时候, 大师问“后面应该走哪里?”
十个初级爱好者选择的落
点散布在棋盘各处…… 十个职业棋手说的落子点
都差不多,甚至包括后面的几 步……
这就是高手和低手的差
别……
2021
13
软件危机的原因
● 一方面是与软件本身的特点 有关
● 另一方面是由软件开发和维 护的方法不正确有关
2021
14
软件开发工作量分配比例
40% ~ 50%
10% ~ 20%
测试
程序
其它
2021
15
引入同一变化付出的代价随时间变化的趋势
2021
16
费用分配比例
55%~70%
软件维护 其它
2021
25
总之: 软件工程是应用计算机科学、 数学及管理科学等原理开发软 件的工程。它借鉴传统工程的 原则、方法,以提高质量,降 低成本为目的。
2021
26
软件工程是一门交叉学科
软件工程的主要研究内容
软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境
软件工程管理:软件管理学 软件经济学 软件心理学

软件工程SoftwareEngineeringppt课件

软件工程SoftwareEngineeringppt课件

国防科技大学计算机学院
5
7.1.1 Warnier图
7.1面向数据结构的系统开发方法
Warnier图是一种表示信息层次结 构的紧致机制。
Warnier图具有树形层次结构,可 以用另外一些Warnier图继续分解 图中的叶结点。

报纸自动组版系统
图,花括符内的信息条目构成顺序 关系,园括符内的数字表示重复次 数,如,广告 可以有1至5条,股 市行情出现0到1次。
国防科技大学计算机学院
23
创建软件系统模型
站内按钮和目标软件中的按 钮处理过程之间以“数据流” 方式连接
交通车和交通车控制过程之 间则应以“状态向量”方式 连接。
7.2Jackson系统开发方法
1/19/2020
国防科技大学计算机学院
24
系统规格说明图示例
利用Jackson给出的“结构 正文” (Structure Text)将 实体结构图和系 统规格说明 图综合起来,并针对目标软 件系统中的每一过程用正文 方式给出更为精确、更为详
12
2. 创建信息—过程图
DSSD中的信息—过程图与 数据流图的作用类似,都是 用来表示信息流及其处理功 能的。
信 息—过程图从每个实体的 输出信息流开始,逆向寻找 用于生成该输出信息的输入 信息流及相 应的处理功能。
7.1面向数据结构的系统开发方法
1/19/2020
国防科技大学计算机学院
13
等待标志置位,则循环等待*/
read
WAIT-BODY end
Leave(i)
TRANSIT-BODY itr while Transit(i)
read
TRANSIT-BODY end
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

System life cycle
• Software, like many other products, goes through a cycle of repeating phases.
SysБайду номын сангаасem development phases
• The development process in the software life cycle involves 4 phases.
Analysis
• • • • Define the user (generic or specific?) Define the needs (expectations) Define the requirements Define the methods (to meet requirements)
Chapter 7 Software Engineering
Objectives
• Understand the software life cycle. • Describe the development process models.. • Understand the concept of modularity in software engineering. • Understand the importance of quality in software engineering. • Understand the role of documentation in software engineering.
Modularity - coupling
• Data coupling: passes only the minimum required data from the calling function to the called function. Most desirable. • Stamp coupling: when the parameters are composite objects such as arrays. • Control coupling: passes flags to direct the control flow of a function. • Global coupling: uses global variables. Should never be used. • Content coupling: when one function refers directly to the data or statements in another function.
Development process models
• In the incremental model, the process is developed in a series of steps. • First complete a simplified version of the whole package. • Gradually add more details.
Implementation phase
• Tools
– Flow chart – Pseudocode
• Coding
Testing phase
• Black box tesing
– Black box test plans are developed by looking only at the requirements statement.
Modularity
• Modularity means breaking a large project into smaller parts that can be understood and handled easily. • Tools
– Structure chart – Class diagram – Unified Modeling Language (UML)
Design phase
• The design phase defines how the system will accomplish what was defined in the analysis phase. • Modularity • Tools
– Structure chart – UML
• White box testing
– White box testing is the responsibility of the programmer, who knows exactly what is going on inside the program.
Development process models
• Waterfall model: a sequential software development process, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance.
Modularity - coupling
• Coupling is a measure of how tightly two modules are bound to each other. • Loose coupling is more desirable, because:
– Independent functions are more resuable – Less likely to cause problems – Maintenance modifications are easier
Modularity - cohesion
相关文档
最新文档