1. 提出问题:
定义问题的基本要素?基本格式?目的是准确的定义需求。
2 软件的作用:控制、耦合、软件本身提供的功能;提供了低成本的解决方法。软件为解决系统基础提供了灵活的解决方案;
软件工程的最佳实践:
系统工程范畴;包含软件系统工程-包含软件工程;最优化是系统工程的追求目标。
3. 软件在系统工程中的作用:
软件需求定义:通过分析分配给软件的那些需求,确定软件需求和约束。即从系统规格书中提炼出软件需求规格;研究系统环境、软件需求的细化:确定在一个软件需求规约中的软件需求。
功能、非功能、约束条件;
软件体系结构设计:为软件需求和约束,确定一组解决方案,进行实例研究,分析可能的答案,并选择一个最佳的方案。追求最佳的解决方案;
验证、确认、测试:以需求为准则,通过测试、演示、分析和审查。评估最终产品和文档。
4. 自顶向下和自底向上的开发
自定向下的开发:类似于瀑布模型的方式。
自低向上的开发,采用现有的构件,可以通过构件的功能来堆积满足需求的功能。其实就是已有的构件的复用。
5.需求的定义:
功能的定义、性能的定义、设计约束。
6.需求的基本性质:
IEEE标准830-1998需求的五个基本性质:
1)必要性;2)无歧义的(不同的相关方都可以达成一致的认知);3)可测的(给定输入,输出是确定的,唯一的,可测试性);4)可跟踪性(技术可持续发展)5)可以测量吗?
确定一个需求是否满足以上的五个性质是很耗时的事情;
7. 需求的分类
功能、性能、外部接口、设计约束、质量属性。
功能需求:规约了系统或系统构件必须执行的功能;是需求的主体,没有功能需求就没有非功能需求(性能需求、外部接口需求、设计约束、质量需求)
除此之外,还需要规约:
重要程度、异常响应(包括内外部所产生的错误)、功能之间的互斥规则、系统内部状态的假定、输入、输出次序、需要的公式。
非功能需求:可以是1对多的,即一个非功能需求作用于多个功能需求。
1. 性能需求:规约系统或构件必须具备的性能特性;
2. 接口需求:
- 外部接口:描述应用如何与系统的其他应用进行交互;
- 用户接口:与用户之间接口的逻辑特性;
- 硬件接口: 支持和协议类型;
- 软件接口
- 通讯接口:开发系统与通讯设施之间的交互;
3. 设计约束:
限制了系统或系统构件的设计方案。对其权衡和调整是相当困难的,甚至是不可能的。他们必须予以满足。许多设计约束将对软件项目规划、所需要的附加成本和工作产生直接影响;编程语言、操作系统、计算能力等等;
4. 质量属性
- 可靠性;出错的概率;
- 存活性:鲁棒性、健壮性、一部分不能运行时,该软件继续运行或支持关键功能的可能性;
- 可维护性:发现和改正一个软件或特定的范围进行修改所要求的平均工作;
- 用户友好性:学习和使用一个软件系统的容易程度;
- 安全性:在一个预定的时间内,使软件系统安全的可能性;
- 可移植性:软件系统运行的平台类型;