47 软件工程34h-北京大学孙艳春老师

P11. 1.2软件工程课程介绍第一讲48:03

P22. 1.2软件工程课程介绍第二讲50:53

P33. 2.1软件生存周期过程第一讲49:51

P44. 2.1软件生存周期过程第二讲46:35

P55. 2.2软件生存周期模型第一讲46:43

P66. 2.2软件生存周期模型第二讲45:38

P77. 3软件需求与软件需求规约第一讲52:22

P88. 3软件需求与软件需求规约第二讲42:20

P99. 4结构化分析方法第一讲48:02

P1010. 4结构化分析方法第二讲47:48

P1112. 5.1结构化设计方法-总体设计第二讲38:09

P1213. 5.2结构化设计方法-详细设计第一讲47:52

P1314. 5.2结构化设计方法-详细设计第二讲16:39

P1415. 6敏捷软件开发第一讲48:48

P1516. 6敏捷软件开发第二讲52:34

P1617. 7.1面向对象方法简介38:19

P1718. 7.2UML描述客体及客体关系的术语-第一部分59:42

P1819. 7.3UML描述客体及客体关系的术语-第二部分(第1讲)49:33

P1920. 7.3UML描述客体及客体关系的术语-第二部分(第2讲)48:09

P2021. 7.4UML模型表达工具第一讲48:07

P2122. 7.4UML模型表达工具第二讲46:08

P2223. 8.1面向对象分析第一部分46:16

P2325. 8.2面向对象设计第一部分18:11

P2426. 8.2面向对象设计第二部分45:11

P2527. 8.2面向对象设计第三部分30:15

P2628. 8.3面向对象编程20:09

P2730. 9.1软件测试技术第二讲47:58

P2831. 9.2软件测试步骤和测试技术应用第一讲49:59

P2932. 9.2软件测试步骤和测试技术应用第二讲46:24

P3033. 10.1软件项目管理简介46:30

P3134. 10.2CMM和ISO9000第一讲48:23

P3235. 10.2CMM和ISO9000第二讲21:23

P3336. 11互联网软件技术第一讲41:41

P3437. 11互联网软件技术第二讲47:08

P3538. 12软件开发工具与环境40:23

P3639. 13课程总复习56:18

P3740. 14.1习题课第一讲32:29

P3842. 15.1课程实践介绍14:28

P3943. 15.2课程实践工具和技术介绍58:04

P4045. 16.1课程实践1:软件开发计划和结构化需求分析(第2讲)47:38

P4146. 16.2课程实践2:结构化总体设计和详细设计(第1讲)46:56

P4247. 16.2课程实践2:结构化总体设计和详细设计(第2讲)58:16

P4348. 16.3课程实践3:面向对象分析和设计(第1讲)47:01

P4449. 16.3课程实践3:面向对象分析和设计(第2讲)1:00:41

P4550. 16.4课程实践4:软件实现、软件测试和项目开发总结(第1讲)44:31

P4651. 16.4课程实践4:软件实现、软件测试和项目开发总结(第2讲)59:11

P4753. 1.1软件工程概述第二讲49:16

附录

软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率 。

定义

软件工程

软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己认可的定义: [1]

BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。

IEEE:在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究

FritzBauer:在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

计算机科学技术百科全书》:软件工程是应用计算机科学数学逻辑学管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学数学用于构建模型与算法工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。

比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

ISO 9000对软件工程过程的定义是:软件工程过程是输入转化为输出的一组彼此相关的资源和活动。 [2]

其它定义:1.运行时,能够提供所要求功能和性能的指令或计算机程序集合。2.程序能够满意地处理信息的数据结构。3.描述程序功能需求以及程序如何操作和使用所要求的文档。以开发语言作为描述语言,可以认为:软件=程序+数据+文档

内涵

一、软件工程过程是指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动,包括以下四个方面:

1、P(Plan)——软件规格说明。规定软件的功能及其运行时的限制。

2、D(DO)——软件开发。开发出满足规格说明的软件。

3、C(Check)——软件确认。确认开发的软件能够满足用户的需求。

4、A(Action)——软件演进。软件在运行过程中不断改进以满足客户新的需求。

二、从软件开发的观点看,它就是使用适当的资源(包括人员,软硬件资源,时间等),为开发软件进行的一组开发活动,在活动结束时输入(即用户的需求)转化为输出(最终符合用户需求的软件产品)。

三个阶段:定义阶段:可行性研究初步项目计划、需求分析;开发阶段:概要设计详细设计、实现、测试;运行和维护阶段:运行、维护、废弃

原则:1、抽象;2、信息隐蔽;3、模块化;4、局部化;5、确定性;6,一致性;7、完备性;8、可验证性

基本内容

软件工程原理软件工程过程软件工程方法软件工程模型、软件工程管理、软件工程度量、软件工程环境、软件工程应用、软件工程开发使用。著名软件工程专家B.Boehm综合有关专家和学者的意见并总结了多年来开发软件的经验,于1983年在一篇论文中提出了软件工程的七条基本原理:

(1)用分阶段的生存周期计划进行严格的管理。

(2)坚持进行阶段评审。

(3)实行严格的产品控制。

(4)采用现代程序设计技术

(5)软件工程结果应能清楚地审查。

(6)开发小组的人员应该少而精。

(7)承认不断改进软件工程实践的必要性。 [2]

发展过程

软件是由计算机程序程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。软件的发展大致分为四个阶段。

无软件概念阶段(1946年~1955年)

此阶段的特点是:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料(除程序清单外),主要用于科学计算。 [2]

意大利面阶段(1956年~1970年)

软件工程

此阶段的特点是:硬件环境相对稳定,出现了“软件作坊”的开发组织形式。开始广泛使用产品软件(可购买),从而建立了软件的概念。但程序员编码随意,整个软件看起来像是一碗意大利面一样杂乱无章,随着软件系统规模的壮大,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。

软件工程阶段(1970年至今)

由于“软件危机”的产生,迫使人们不得不研究、改变软件开发的技术手段和管理方法。从此软件产生进入了软件工程时代。此阶段的特点是:硬件已向巨型化、微型化、网络化和智能化四个方向发展,数据库技术已成熟并广泛应用,第三代、第四代语言出现;第一代软件技术:结构化程序设计在数值计算领域取得优异成绩;第二代软件技术:软件测试技术、方法、原理用于软件生产过程;第三代软件技术:处理需求定义技术用于软件需求分析和描述。

面向对象阶段(1990年至今)

这一阶段提出了面向对象的概念和方法。面向对象的思想包括面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及面向对象的编程实现(OOP,Object Oriented Programming)等等。

如同模块化的编码方式一样,面向对象编程也需要通过反复的练习加深对面向对象的理解和掌握。

未来

在Internet平台上进一步整合资源,形成巨型的、高效的、可信的虚拟环境,使所有资源能够高效、可信地为所有用户服务,成为软件技术的研究热点之一。

软件工程领域的主要研究热点是软件复用和软件构件技术,它们被视为是解决“软件危机”的一条现实可行的途径,是软件工业化生产的必由之路。而且软件工程会朝着开放性计算的方向发展,朝着可以确定行业基础框架、指导行业发展和技术融合的“开放计算”。

目标

软件工程的目标是:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。

(1)适用性:软件在不同的系统约束条件下,使用户需求得到满足的难易程度。

(2)有效性:软件系统能最有效的利用计算机的时间和空间资源。各种软件无不把系统的时/空开销作为衡量软件质量的一项重要技术指标。很多场合,在追求时间有效性和空间有效性时会发生矛盾,这时不得不牺牲时间有效性换取空间有效性或牺牲空间有效性换取时间有效性。时/空折衷是经常采用的技巧。

(3)可修改性:允许对系统进行修改而不增加原系统的复杂性。它支持软件的调试和维护,是一个难以达到的目标。

(4)可靠性:能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。

(5)可理解性:系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制系统软件复杂性,并支持软件的维护、移植或重用。

(6)可维护性:软件交付使用后,能够对它进行修改,以改正潜伏的错误,改进性能和其它属性,使软件产品适应环境的变化等。软件维护费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。

(7)可重用性:把概念或功能相对独立的一个或一组相关模块定义为一个软部件。可组装在系统的任何位置,降低工作量。

(8)可移植性:软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度。

(9)可追踪性:根据软件需求对软件设计、程序进行正向追踪,或根据软件设计、程序对软件需求的逆向追踪的能力。

(10)可互操作性:多个软件元素相互通信并协同完成任务的能力。

皮格马利翁效应心理学指出,赞美、赞同能够产生奇迹,越具体,效果越好~
“收藏夹吃灰”是学“器”练“术”非常聪明的方法,帮助我们避免日常低效的勤奋~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: MOV AX, 86H ; 将86H放入 AX MOV BX, 34H ; 将34H放入 BX MUL BX ; 将 AX 与 BX 相乘,结果存入 AX MOV CX, 21H ; 将21H放入 CX SUB AX, CX ; 从 AX 减去 CX,结果存入 AX ; 此时 AX 中存储的即为 S 的值 ### 回答2: 要编写一个能计算S = 86H × 34H - 21H 的程序,其中的3个数都是无符号数。 首先,我们需要了解无符号数的表示方式。无符号数是一种数值表示方法,它只用于表示非负整数,没有正负号。 根据题目给出的表达式,我们可以将其拆成三个部分进行计算: 1. 计算86H × 34H:这里的H表示十六进制数。我们需要将86H和34H转换成十进制数,然后进行乘法运算。86H等于134,34H等于52。所以86H × 34H = 134 × 52 = 6968。 2. 计算21H:同样地,我们需要将21H转换成十进制数。21H等于33。 3. 计算结果的差:将之前计算得到的乘法结果6968减去33。得到的结果是:6968 - 33 = 6935。 因此,编写程序来计算S = 86H × 34H - 21H 的结果就是输出6935。 下面是一个简单的C语言程序示例,来计算S的值: ```c #include <stdio.h> int main() { unsigned int a = 0x86; unsigned int b = 0x34; unsigned int c = 0x21; unsigned int result = (a * b) - c; printf("S = %u\n", result); return 0; } ``` 上述程序定义了三个无符号整数变量a、b和c,分别赋值为十六进制数86、34和21。然后,计算a和b的乘积,并减去c的值,将结果保存在result变量中。最后,使用printf函数输出结果。 希望以上回答能够对你有所帮助! ### 回答3: 为了编写程序计算S=86H×34H-21H,我们首先需要了解转换有符号数为无符号数的方法。 在计算机中,有符号数和无符号数都是用二进制表示的。对于无符号数,最高位不用于表示符号位,而是用于表示数值的大小。因此,无符号数的取值范围比有符号数大。 在给定的式子中,H代表一个无符号数。我们可以将H分别转换为十进制,然后进行计算。由于无符号数的取值范围为0到最大值,我们可以假设H的取值范围为0到255。即H可以取0,1,2,3,...,255中的任意一个。 为了编写程序计算S=86H×34H-21H,我们可以按照以下步骤进行: 1. 定义变量:定义一个变量H来表示无符号数,并且给定一个初值0。 2. 计算S:使用计算机中的乘法运算符,将式子86H×34H-21H转换为程序中的计算表达式。 3. 输出结果:将计算得到的结果输出。 例如,如果选择H=2,那么程序计算的过程如下: 1. 定义变量:H = 2 2. 计算S:S = 86 * 2 * 34 * 2 - 2 * 21 = 11704 3. 输出结果:将S的值11704输出。 所以,编写程序计算S=86H×34H-21H的过程如上所述。根据所选择的H的取值范围,可以进行循环或者多次计算,以便计算出多组结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书香度年华

创作不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值