软件工程 软件: 1.程序 (exe msi mkv rm) 2.文档(使用手册) 特点: 1.逻辑实体,与硬件相反 2.开发成本,无法估计,进度控制 3.软件能开发/设计,研发成功,可以复制 4.维护成本高 5.对计算机硬件依赖程度教高 6.软件开发无法实现完全自动化 软件分类: 1.系统软件 systerm, software 操作软件:pc: windows . macos Mobile: andriod 2.支持软件 software support 3.应用软件:…………. 软件语言 1.需求定义语言 2.功能 性 语言 3.设计 性 语言 4.实 现 语 言 5.文 档 语 言 软件危机 定义:软件的开发、运行、维护过程出现的一系列问题 1. 软件无法满足客户需求 2. 成本/收益 产生原因: 1. 软件逻辑,成本开发进度无法估计 2. 文档不健全 3. 需求不明确 4. 开发人员与客户的理解差异很大 5. 大型项目缺乏大型团队合作的模式,缺乏管理经验 6. 开发人员无法理解大型系统之间的关系 7. 测试人员能力的缺乏 软件工程的定义:(1968年NATO(北大西洋公约组织)) 软件工程是为了经济的可靠的获得软件和能在实际机器中运行的一个好的工程规则 三要素: 1. 过程:支持软件生命周期的一系列活动 2. 工具:为软件开发方法提供自动化/半自动化的一个支撑环境 3. 方法:为软件开发过程中提供如何做的技术 框架: 1. 目标:正确性的,适用性的,价格适宜的产品 2. 过程:process 3. 原则:选取适宜的开发模式/模型,选择合适的方法,提供高质量的工程支持 软件生命周期 software life cycle 计算机系统工程: 1. 确定代开发系统的总体要求和范围 2. 进行成本估算,组织安排 3. 可行性分析 过程: 需求分析: 1. 确定软件开发做什么 2. 确定软件的应用范围和界面 设计: 1. 解决其估文 2. 概念设计/详细设计 编码: 测试: 发现纠正软件测试,发现的错误和缺陷 运行: 维护: 软件过程: 技术活动 活动的集合——任务的集合 管理活动 人文——工具——方法——规范 有机结合 CMM 能力成熟模型 用来评价机构,软件过程。成熟设计的一个模型 第一级:初始级——第二级:可重复级——第三级:已定义级——第四级:管理级——第五级:优化级 软件过程模型: 1. 瀑布模型 2. 软化模型 3. 原形模型 4. 螺旋模型 5. 构建的开发模型 原则 1. 以目标为驱动的开发 2. 具有外部可见的里程碑 3. 具有多版本发布的机制 4. 合作暴露的小型团队 阶段: 1. 规划阶段 2. 设计阶段 3. 稳定阶段:不停的发布版本 4. 发布阶段:光盘/产品说明书 Case工具 计算机辅助的软件过程 1. 计算机软件开发过程中,软件工程师和管理人员。 2. 软件工程师的方法的原则,协助计算机软件的工具 3. 开发和维护软件管理的过程 VSS |