第1章_软件工程与软件设计.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章_软件工程与软件设计

先修课程后继课程 先修课程 数据结构 面向对象程序设计语言 数据库系统 软件工程 UML统一建模 后继课程 软件质量控制 软件项目管理 软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构 本课程教学内容内容 软件工程与软件设计 整体设计 软件体系结构的设计 界面设计 详细设计 设计模式 软件体系结构评估 第1章 软件工程与软件设计 1.1 软件工程 1.2 软件生存周期 1.3 软件开发过程模型 1.4 软件设计 1.5 软件体系结构 1.6 小结 第1章 软件工程与软件设计 以计算机为核心的信息社会 软件是信息化的灵魂 以工程化方法和思想开发软件 软件设计是软件开发过程中的核心活动之一 1.1软件工程 软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题 软件设计:计算机软件发展到一定阶段,为了应对软件危机 计算机软件=程序+数据+文档 计算机软件是逻辑和智力产品,不是物理产品 1.1软件工程 软件的应用领域和分类 系统软件 实时软件 嵌入式软件 科学和工程计算软件 事物务理软件 人工智能软件 个人计算机软件 1.1软件工程 软件危机 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 即包含两方面的问题: (1)如何开发软件 (2)如何维护软件 软件危机的原因 软件产品生产效率较低 软件供需失衡 用户需求不明确 整个软件开发过程缺乏正确的理论指导 软件产品的规模越来越大 软件产品开发的复杂度越来越高 1.1软件工程 软件工程 软件工程是指导计算机软件开发和维护的工程学科; 将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究; 是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术和管理方法; 软件工程要素:方法、工具、过程 方法:为软件开发提供了“如何做”的技术,是完成软件工程项目的技术手段 工具:人类在开发软件的活动中智力和体力的扩展和延伸,为软件工程方法提供自动或半自动的软件支持环境 过程:将方法和工具综合起来以达到合理、及时地进行软件开发的目的 1.1软件工程 软件工程的目标和原则 目标:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可复用性、可适应性、可移植性、可跟踪性并满足用户需求的软件产品。 原则:抽象、信息隐藏、模块化、局部化、一致性、完全性、可验证性 目标 可修改性 有效性 可靠性 可理解性 可维护性 可复用性 可适应性 可移植性 可追踪性 软件工程的原则 抽象 采用分层次抽象,自顶向下、逐层细化的办法控制软件开发过程的复杂性 信息隐蔽 将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模块的使用者直接访问。这就是信息封装,使用与实现分离的原则 模块化 如 C 语言程序中的函数过程,C++ 语言程序中的类。模块化有助于信息隐蔽和抽象,有助于表示复杂的系统。 软件工程的原则 局部化 要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块之间具有松散的耦合,模块内部具有较强的内聚。这有助于控制解的复杂性 确定性 软件开发过程中所有概念的表达应是确定的、无歧义性的、规范的。 一致性 整个软件系统的各个模块应使用一致的概念、符号和术语。程序内部接口应保持一致。软件和硬件、操作系统的接口应保持一致。系统规格说明与系统行为应保持一致。用于形式化规格说明的公理系统应保持一致 软件工程的原则 完全性 软件系统不丢失任何重要成分,可以完全实现系统所要求功能的程度。为了保证系统的完备性,在软件开发和运行过程中需要严格的技术评审。 可验证性 开发大型的软件系统需要对系统自顶向下、逐层分解。系统分解应遵循系统易于检查、测试、评审的原则,以确保系统的正确性。 软件工程的原则 1.2 软件生存周期 Software life cycle 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生存周期 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期 软件定义-软件开发-软件使用和维护 软件定义(系统分析):可行性研究(软件计划)、需求分析 软件开发(系统设计):概要设计、详细设计、软件实现 (编码、单元测试)、软件测试(组装测试、确认测试) 软件使用、维护 退役 软件生存周期 可行性研究 确定要开发软件系统的总目标 给出功能、性能、可靠性以及接口等方面的要求 完成该软件任务的可行性研究 估计可利用的资源 、成本、效益、开发进度 制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查 需求分析 对用户提出的要求进行分析并给出详细的定义 编写软件需求说明书

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档