软件设计的概念和过程(精)
- 格式:ppt
- 大小:518.00 KB
- 文档页数:120


软件的概念:软件=程序+文档。
软件是能够完成预定功能的可执行计算机程序包括使程序正常执行所需要的以及有关描述程序操作和使用的文档。
特点:软件是一种逻辑实体,而不是具体的物理实体。
因此,它具有抽象性。
软件的生产与硬件不同,没有明显的制造过程。
对软件的质量控制,必须立足于软件开发方面。
在软件的运行和使用期间,没有像硬件那样的磨损、老化问题。
软件的开发和运行往往受到计算机系统的限制,对计算机系统有不同程度的依赖性。
迄今为止,软件的开发尚未完全摆脱手工艺的方式。
软件本身是复杂的软件的成本相当昂贵相当多的软件工作涉及到社会因素。
分类:按软件的功能划分:系统软件、支撑软件、应用软件按软件的规模划分:微型、小型、中型、大型、超大型按软件的工作方式划分:实时、分时、交互、批处理按软件服务对象的范围划分:项目软件、产品软件(2)软件的发展和软件危机(一般)计算机软件发展的各个时期1. 第一代(60年代中期之前)程序设计阶段硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。
2. 第二代(60年代中期-70年代中期)程序系统阶段出现“软件作坊”、产品软件;“个体化”开发方法。
3. 第三代(70年代中期之后)软件工程阶段软件开发成为一门新兴的工程学科——软件工程。
4. 第四代(90年代后)现代软件工程阶段。
软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
主要是两个问题。
1. 如何开发软件,怎样满足对软件的日益增长的需求。
2. 如何维护数量不断膨胀的已有软件软件危机的主要表现:1. 对软件开发成本和进度的估计不准确2. 用户不满意3. 软件质量不高、可靠性差4. 软件常常不可维护、错误难以改正。
5. 缺乏适当的文档资料6. 软件成本占系统总成本的比例逐年上升7. 软件开发速度跟不上计算机发展速度(3)软件工程过程(重点)软件工程的基本原理:1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能清楚地审查6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性软件工程方法学3要素:方法、工具和过程第二部分软件过程2(1)软件生命周期的基本任务(重点)软件生命周期的各个阶段:(定义、开发、使用及维护)(1)问题定义(2)可行性分析(3)需求分析: 分析软件需求,编写软件需求规格说明(4)概要设计和详细设计: 确定软件体系结构,设计软件模块(5)程序编写(6)软件测试(7)运行和维护(2)Rational 统一过程(次重点)识记:RUP(统一软件开发过程)的6条软件开发经验(①迭代式开发②管理需求③体系结构④可视化建模⑤验证软件质量⑥控制软件变更)理解:RUP软件开发生命周期(初始阶段、细化阶段、构造阶段、迁移阶段)第三部分结构化分析(一)考核知识点及考核目标(1)软件需求分析概述(重点)需求分析:是指开发人员要准确地理解用户的要求,进行细致的调查分析,将用户非形式化的需求陈述转化为完整的需求定义,再由需求定义转化为相应的软件需求规格说明书(即需求分析的结果)的过程需求分析的任务:是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求过程:可行性分从收集资料到形成软件需求分析文档,一般来说要经过四个过程:获取用户需求,分析用户需求,编写需求文档,评审需求文档可行性分析的内容?经济可行性技术可行性运行可行性法律可行性需求分析的主要原则?一. 确定对系统的综合要求1. 功能需求2. 性能需求3. 可靠性和可用性需求4. 出错处理需求5. 接口需求6. 约束7. 逆向需求8. 将来可能提出的要求二 .分析系统的数据要求三. 导出系统的逻辑模型四. 修正系统开发计划(2)结构化分析方法(重点)结构化分析方法的含义:结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止第四部分结构化设计(1)软件设计的目标和任务(重点)软件设计的重要性:软件设计是后续开发步骤及软件维护工作的基础。
软件设计和体系结构是软件开发过程中两个重要的概念,它们在软件系统的构建和组织中起着关键的作用。
软件设计指的是确定和定义软件系统的结构、组件、模块和其相互关系的过程。
它涉及到将软件系统的需求转化为可执行的软件解决方案。
软件设计的目标是创建一个高效、可维护、可扩展、可靠和可重用的软件系统。
在软件设计过程中,设计师通常会使用各种设计原则、模式和方法来帮助他们制定优良的设计方案。
软件体系结构则是描述软件系统的整体结构和组织方式的概念。
它定义了系统的主要组件、模块、它们之间的关系以及与外部环境的交互。
软件体系结构可以视为软件系统的"骨架",它决定了系统的整体框架、架构风格和重要决策。
良好的软件体系结构应该具有可维护性、可扩展性、可重用性和性能等方面的优势。
软件设计和软件体系结构之间存在着密切的关系。
软件设计是软件体系结构的一部分,它关注的是如何在系统的局部范围内实现和组织组件和模块。
而软件体系结构则关注的是系统的整体结构和组织方式,包括不同组件之间的交互、通信和协作。
好的软件体系结构应该为软件设计提供指导和框架,而设计决策则应该符合整体体系结构的原则和约束。
综上所述,软件设计和体系结构在软件开发中是相辅相成的概念,它们共同为构建高质量、可靠和可维护的软件系统提供了基础和指导。