Skip to content

期末

字数
1475 字
阅读时间
6 分钟

一、软件与软件危机

1. 软件的定义

  • 软件是计算机系统中与硬件相互依存的一部分,它是包括程序、数据及其相关文档组成的完美集合
    • 软件 = 程序 + 数据 + 文档
      • 程序:事先设计好的功能和性能要求执行的指令序列
      • 数据:程序能正常处理信息的数据和数据结构(给程序运行的)
      • 文档:与程序运行和维护有关的图文资料(必不可少的,给人阅读利用的)

2. 软件的特征

  1. 软件具有抽象特征
  2. 软件无明显制造过程
  3. 无备件
  4. 手工制作
  5. 成本昂贵

3. 软件分类

  • 按软件功能分类:
    1. 系统软件
    2. 支撑软件
    3. 应用软件

4. 软件危机[1]

  • 在软件开发和维护过程中产生的一系列严重问题。一是如何开发软件,满足用户对软件的需求,二是如何维护数量众多的已有软件。主要表现如下:
    1. 用户需求不明确,变更过多
    2. 软件成本日益增长
    3. 开发进度难以控制
    4. 软件质量差
    5. 软件维护困难
  • 产生原因:
    1. 软件开发无计划性
    2. 软件需求不充分
    3. 软件开发过程无规范
    4. 软件产品无测评手段
  • 解决软件危机的途径:
    1. 加强软件开发过程的管理
    2. 推广使用软件开发的成功技术和方法
    3. 开发和使用好的软件工具

5. 软件工程[2]

  • 为解决软件危机,人们开软件开发中也不断改进与发展,经历了三个发展阶段:
    • 程序设计阶段:约为50至60年代
    • 程序系统阶段:约为60至70年代
    • 软件工程阶段:约为70年代后

重点!!!

软件工程三要素:方法、工具、过程

  • 软件工程的目标:在给定成本和进度的前提下,开发具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户要求的软件产品

6. 软件的生存周期

  • 生存周期:包含孕育、诞生、成长、成熟、衰亡的生存过程。每个阶段都包含计划、开发、运行与维护三个时期,每个时期又分为多个阶段。
    • 计划时期:以调查和分析为主要任务。存在问题定义和可行性研究两个阶段
    • 开发时期:完成设计和实现两大任务。设计包括需求分析和软件设计两个阶段;实现包括编码和测试
      1. 需求分析[3]:主要解决“目标系统必须做什么”这一问题。深入描述软件的功能和性能,确定软件设计的限制和其他系统元素的接口定义,并定义软件的其他有效性需求,最后用“需求规格说明书”的形式准确地表达出来,提交管理机构评审
      2. 软件设计:是软件工程的核心,任务是把各项需求转换为一个相应的体系结构,通常细分为总体设计和详细设计两阶段
      3. 编码:按照选定语言将软件设计转换为计算机可接受的程序代码,即写成“源程序清单”
      4. 测试:保证软件质量的手段,是用于发现问题、找到问题的。主要方式是在设计测试用例的基础上检测软件的各个组成部分
    • 运行时期:已开发的软件投入正式使用。是软件生存期的最后一个时期。软件人员在该阶段的任务就是做好软件的维护

7. 软件生存周期模型[4]

  • 该模型是横跨整个软件生存周期的,这些模型都包含“定义(或:计划)”、"开发"和"维护"3类活动

二、可行性分析

  • 目的:用极少的代码在最短时间内决定被开发的软件是否能开发成功
  1. 经济可行性:开发后能取得的效益能否收回经济成本
  2. 技术可行性:分析系统功能和性能以及实际系统的各种约束来分析,确定当前技术是否能够实现整个系统
  3. 法律可行性:分析在系统开发过程中可能出现的法律问题,如:合同、责任、知识产权等
  4. 运行可行性:判断新系统运行是否可行

1. 可行性研究的步骤

  1. 确定系统的规模和目标
  2. 分析现有系统,设计新系统的模型
  3. 评审系统模型
  4. 设计和评价新系统的实现方案
  5. 指定方案
  6. 拟定开发计划
  7. 编制可行性报告(以文档形式输出)

三、需求分析

贡献者

The avatar of contributor named as freeway348 freeway348

文件历史


  1. 重点1:软件危机 ↩︎

  2. 重点2:软件工程 ↩︎

  3. 重点3:需求分析 ↩︎

  4. 重点4:软件生存周期模型 ↩︎

撰写