Software Engineering, 10th
1 concept
1.1 常见问题
Question | Answer |
---|---|
什么是软件 | 计算机程序和相关文档. 软件产品可以针对特定用户开发,也可以面向通用的市场开发 |
好的软件特性 | 应当向用户提供所需的功能和性能,且具有良好的可维护性,可依赖性和可用性 |
什么是软件工程 | 软件工程是一个学科,涵盖软件生产的各个方面,从初始的构想到运行维护 |
基本的软件工程活动 | 软件规格说明、软件开发、软件确认和软件演化 |
软件工程和计算机科学的区别 | 计算机科学关注理论和基础,而软件工程则关注开发和交付有用的软件大的实践 |
软件工程和系统工程的区别 | 系统工程关注基于计算机的系统开发的所有方面,包括硬件、软件和过程工程。软件工程是这个更加泛化的过程的一部分 |
软件工程面临的关键挑战是什么 | 应对不断增长的多样性、缩短交付时间以及开发可信软件的要求 |
软件工程的成本有哪些 | 软件开发成本约占总成本60%,测试成本占40%。对于定制化软件而言,演化成本经常超过开发成本 |
最好的软件工程技术和方法是什么 | 虽然所有的软件项目都必须进行专业化的管理和开发,但适合于不同类型的系统的技术各不相同。例如,游戏开发总是需要使用一系列的原型,而安全关键的控制系统开发则要求开发一个完整并且可分析的规格说明。没有任何方法和技术适用于所有系统 |
互联网给软件工程带来哪些不同 | 互联网不仅带来了大规模、高度分布式、基于服务的系统的开发,而且在互联网的支持下创造了改变软件经济模式的移动App业务 |
1.2 好的软件基本属性
产品特性 | 描述 |
---|---|
可接受性 | 软件对于目标类型的用户而言必须是可接受的。这意味着软件必须可理解、有用,且与用户使用的其他系统兼容 |
可依赖性和信息安全性 | 软件可依赖型包括一系列特性,如可靠性、信息安全性、安全性。可依赖的软件即使在系统失效时也不应到导致物理或经济上的破坏。软件必须保证信息安全,使得恶意用户无法访问或破坏系统 |
效率 | 软件不应当浪费系统资源,例如存储和处理器周期。因此,效率包括响应性、处理时间、资源利用情况等 |
可维护性 | 软件应当能够通过演化满足客户变化的需求。这是一个关键属性,因为软件变更是一个变化的业务环境不可避免地要求 |