软件工程期末复习知识点

测试分类,过程模型,UML图,软件各个阶段的主要做什么。面向对象。结构化分析方法

一、软件及软件工程(定义 / 概念)

1. 软件的本质

计算机软件:软件是计算机系统中与硬件相互依存的另一部分,包括指计算机系统中的程序、数据及其相关文档的完整集合。

三要素:

程序:按照特定顺序组织的计算机数据和指令的集合。

数据:使程序能正常执行的数据结构

文档:为了便于理解程序所需的与开发、维护和使用有关的资料

软件 = 程序 + 文档 + 数据

软件的特点

1)软件是设计开发的,而不是传统意义上生产制造的。

2)软件不会“磨损”,但会退化。

3)大多数软件还是用户定制的。

软件的特点:

(1)一种逻辑实体,不是物理实体,具有抽象性

(2)软件的生产与硬件不同,它没有明显的制作过程

(3)软件在运行、使用期间不存在磨损、老化问题

(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,导致软件移植问题

(5)软件复杂性高,成本昂贵

(6)软件开发涉及诸多社会因素

计算机软件可分为七个大类:

1)系统软件

2)应用软件

3)工程/科学软件

4)嵌入式软件

5)人工智能软件

6)产品线软件

7)WebApp

8)移动App

另一种分类

1)系统软件:

位于计算机系统中最靠近硬件的一层,其它软件一般都通过系统软件发挥作用,它与具体的应用领域无关。如操作系统、编译程序等。

2)支持软件:

支持软件的开发和维护的软件。如数据库管理系统、网络软件、软件开发环境等。

3)应用软件:

特定应用领域专用的软件。如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等。

软件危机

软件危机(Software Crisis)(https://zhuanlan.zhihu.com/p/344772007):计算机软件的开发和维护过程所遇到的一系列严重问题。

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列重问题。这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,乎所有软件都不同程度地存在这些问题。

概括地说,软件危机包含下述两方面的问题:

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

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

鉴于软件危机的长期性和症状不明显的特征,近年来有人建议把软件危机更名为“软件萧条( depression)”或“软件困扰(affliction)”。不过“软件危机”这个词强调了问题的严重性,而且也已为绝大多数软件工作者所熟悉,所以本书仍将沿用它。

软件危机的表现:

(1)对软件开发成本和进度的估算很不准确,甚至严重拖期和超出预算;

(2)无法满足用户需求,导致用户很不满意;

(3)质量很不可靠,经常失效;

(4)难以更改、调试和增强;

(5)没有适当的文档资料;

(6)软件成本比重上升;

(7)软件开发生产率跟不上计算机应用迅速深入的趋势。

软件为什么要更新和迭代?

1)软件必须适应新的计算环境或技术的需要。

2)必须增强软件来实现新的业务需求。

3)软件必须扩展到与其他更现代的系统或数据库进行互操作。

4)必须重新构建软件,使其在网络环境中可行。

为什么会产生软件危机?

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

1. 软件不同于硬件,管理和控制软件开发过程相当困难

2. 软件在运行过程中不会因为使用时间过长而被”用坏“如果运行中发现了错误,很可能是遇到了一个在开发时期引入的在测试阶段没能检测出来的错误

3. 软件不同于一般程序,他的一个显著特点是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升

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

1.只重视程序而忽视软件配置其余成分的糊涂观念。

2.软件开发人员在定义时期没有正确全面地理解用户需求,知道测试阶段或软件交付使用后才发现”已完成的“软件不完全符合用户的需要

3.严重的问题在软件开发的不同阶段进行修改需要付出的代价是很不相同的!

消除软件危机?

1.首先应该对计算机软件有一个正确的认识

2.充分认识到软件开发应该是各类人员协同配合,共同完成的工程项目

3.推广使用在实践中总结出来的开发软件的成功技术和方法,并且研究探索更好的技术和方法。

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

软件工程定义?

软件工程是开发、运行、维护和修复软件的系统方法。也可以说应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程或者进行研究的学科。

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

软件工程的内容?

(1)软件工程是一种层次化的技术。任何工程方法必须构建在质量承诺的基础上。

(2)软件工程的基础是过程。软件过程将各个技术层次结合在一起,使得合理及时地开发计算机软件成为可能。

(3)软件工程方法为构建软件提供技术上的解决方法。

(4)软件工程工具为过程和方法提供自动化或半自动化的支持。

软件工程的目标
软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产效率,也就是要以较短的周期、较低的成本生产出高质量的软件产品,并最终使心啊软件的工业化生产。在给定成本、进度的前提下、开发出具有有效性、可靠性、可维护性、可重用性、可适应性、可移植性、可追踪性和可操作性且满足用户需求的产品。

或者是:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;只需较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。

追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。

软件工程的原则

选择适宜地开发模型;采用合适的设计方法:提供高质量的工程支持;重视开发过程的管理。

1)抽象
抽取事物最基本的特征和行为,忽略非本质细节
(2)信息隐蔽
(3)模块化
(4)局部化
(5)确定化
(6)一致性
程序内外接口保持一致,系统规格说明与系统行为保持一致
(7)完备性
(8)可验证性
自顶向下,逐层分解

软件生命周期?

软件生命周期, 又称为软件生存周期,是软件从产生直到报废的整个时期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值