软件工程定义??
IEEE
- 将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件
- 对上述方法的研究。
Pressman
- 软件工程包括一个过程、管理和构建软件的方法以及工具
- 适应性和敏捷性
- 软件工程是一种分层技术
软件工程层次图????

- 支持软件工程的根基在于质量关注点
- 软件工程的基础是过程( process)层。
- 软件工程方法(method)为构建软件提供技术上的解决方法(如何做)。
- 软件工程工具( tool)为过程和方法提供自动化或半自动化的支持。
软件过程
- 软件过程是工作产品构建时所执行的一系列活动、动作和任务的集合。
- 活动( activity)主要实现宽泛的目标(如与利益相关者进行沟通),与应用领域、项目大小、结果复杂性或者实施软件工程的重要程度没有直接关系。
- 动作( action,如体系结构设计)包含了主要工作产品(如体系结构设计模型)生产过程中的一系列任务。
- 任务( task)关注小而明确的目标,能够产生实际产品(如构建一个单元测试)。
-
框架活动(framework activities)??
- 沟通:理解利益相关者的目标并收集需求以定义软件特性和功能
- 策划:定义和描述软件工程工作
- 建模:利用模型更好地理解软件需求并完成设计
- 构建:包括编码和测试
- 部署:软件交付
- 普适性活动(umbrella activities)——软件过程框架活动由很多普适性活动来补充实现
- 软件项目跟踪和控制—项目组根据计划来评估项目进度,并且采取必要的措施保证项目按进度计划进行。
- 风险管理——对可能影响项目成果或者产品质量的风险进行评估。
- 软件质量保证——确定和执行保证软件质量的活动。
- 技术评审——评估软件工程产品,尽量在错误传播到下一个活动之前发现并清除错误。
- 测量——定义和收集过程、项目以及产品的度量,以帮助团队在发布软件时满足利益相关者的要求。同时,测量还可与其他框架活动和普适性活动配合使用。
- 软件配置管理——在整个软件过程中管理变更所带来的影响。
- 可复用管理——定义工作产品复用的标准(包括软件构件),并且建立构件复用机制。
- 工作产品的准备和生产——包括生成产品(如建模、文档、日志、表格和列表等)所必需的活动。
软件工程实践
实践的精髓??
- 理解问题(沟通和分析)。
- 策划解决方案(建模和软件设计)。
- 实施计划(代码生成)。
- 检查结果的正确性(测试和质量保证)。
实践的原则??
-
存在价值
- 一个软件系统因能为用户提供价值而具有存在价值
-
保持简洁
- 所有的设计都应该尽可能简洁,但不是过于简化
-
保持愿景
- 清洗的愿景是软件项目成功的基础
-
关注使用者
- 在需求说明、设计和实现过程中,牢记要让别人理解你所做的事情
-
面向未来
- 生命周期持久的系统具有更高的价值
- 构建可以解决通用问题的系统,为各种可能的方案做好准备
-
提前计划复用
- 提前做好复用计划将降低开发费用,并增加可复用构件以及构件化系统的价值
-
认真思考
- 在行动前清晰定位、完整思考通常能产生更好的结果
软件开发神话
- 管理神话
- 一本宝典可以提供所需的所有信息
- 通过增加程序员人数可以赶上进度
- 放心甩手外包公司
- 客户神话
- 大概了解项目目标就能开始写程序
- 软件很容易适应变更
- 从业者神话
- 写完程序交付后就结束了
- 直到程序开始运行才能评估质量
- 可执行程序是唯一可交付的成果
- 软件工程将产生大量文档降低工作效率
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!