中国矿业大学软件工程菜鸟笔记

第一章 概述

1.1计算机软件概述

1.1.2软件的特点

  • 是一种逻辑实体,抽象性
  • 不是传统意义的被制造
  • 至今尚未完全摆脱手工艺的开发方式
  • 不会磨损会退化
  • 维护困难
  • 本身是复杂的,实际问题的复杂和程序逻辑结构复杂
  • 涉及到社会因素
  • 60-80%的工作花费在第一次将软件交付给客户之

1.1.3 软件分类

按功能分类:应用软件,支撑软件(类库),系统软件(数据库管理系统,操作系统)

按大小分类

按工作方式:批处理,分时处理,实时处理(实时性指特定操作所消耗的时间与空间的上限是可预知的),交互式处理

按服务对象:项目(定制)软件,产品(通用)软件

1.2 软件发展

四阶段

image-20220913163017916

1.3 软件危机与软件问题

开发软件遇到的问题:

  • 不能满足客户要求
  • 超出预算和时间安排
  • 生产过程不像硬件那样规范,受人的因素和外界的影响很大,在软件生产的各个阶段都会引入不同程度的错误,造成不能预期完成任务,成本上升,甚至软件失败

软件危机的表现:

  • 对开发成本和进度估计不正确
  • 用户对已完成的软件不满意
  • 质量靠不住
  • 常常是不可维护的
  • 没有适当的文档资料
  • 软件成本所占比例逐年上升
  • 开发生产率的提高速度远远跟不上计算机应用迅速普及深入的趋势

原因:

  • 逻辑产品,开发进度和成本难以估计
  • 不完整,不一致的文档给维护带来困难
  • 用户对软件需求的描述不够精确
  • 开发人员对需求的理解与用户愿望的差异
  • 多人协同时,缺乏管理经验
  • 开发人员不能有效,独立的处理大型软件的全部关系
  • 缺乏有力的方法学和工具
  • 软件的特殊性和人类智力的局限性

1.4 软件工程与开发准则

1.4.1 软件工程的概念

  • 将系统化,严格约束的,可量化的方法应用于软件的开发,运行与维护,根本在于提高软件的质量与生产率,最终实现软件的工业化生产
  • 软件工程是计算机软件开发的过程,方法和工具的学科

1.4.2 软件工程的内容

工具(为过程和方法提供自动或半自动的支持)

方法(软件开发过程采用的技术)

过程(软件人员进行的一系列的软件工程活动)

以上为软件工程三要素;

image-20220913171051154

1.5 软件生命周期

指从软件目标的提出,定义,开发,维护,到最终被丢弃的过程;

image-20220913171255982

image-20220913172004285

1.6 软件开发模型

对软件过程的建模:任务及执行顺序,目标是保证质量和适应需求变化;

主要模型:瀑布模型,原型模型,增量模型,螺旋模型

1.6.1 瀑布模型

image-20220913175829184

  • 阶段间具有顺序性和依赖性

  • 顺序性指必须在前一阶段的工作完成之后,才能进行下一阶段的工作

  • 依赖性指只有前一阶段的输出正确,后一阶段的工作才有可能获得正确的结果

  • 优点:1.线性是人们最容易掌握并熟练应用的思想

    ​ 2.一个软件的整体可能是复杂的,而单个子程序总是简单的,可以用线性的方式实现。

  • 推迟实现(缺点):编码完成后,用户才能看到产品

  • 缺点:要求一开始清楚给出所有需求,以后也不能发生任何变化,这是不可能实现的,开始阶段上自然存在一些不确定性

边做边改模型:

image-20220913180536206

问题:忽略需求环节,带来很大风险;缺少规划和设计环节,软件结构不断修改越来越糟,导致无法修改;

瀑布模型可能退化成边做边改模型,也是其缺点之一。

1.6.2 原型模型(只是壳子*,体现用户需求,简单界面设计)

项目开发中两个问题:1用户难以清楚的给出所有需求(不能标识详细的输入,处理,输出需求)

2 开发者不能确定以下问题:

编程语言的有效性;人机交互的形式;操作系统的适应性;

由以上问题给出原型模型:

  • 收集用户需求:标识出已知需求,需要进一步澄清的区域
  • 建立原型:能反映用户的主要需求,集中于用户可见的部分,输入,输出等
  • 用户评估原型,进一步精华软件需求
  • 逐步调整原型使其满足客户的要求

image-20220913204216404

对比瀑布模型的优点:

  • 原型为开发人员和用户提供了一种整理,分析和提炼软件需求的机制
  • 用户不必等到项目开发周期的晚期才能得到程序的可运行版本

1.6.3 增量模型(融合瀑布模型和原型模型)

软件被作为一系列的增量构件来设计,实现,集成和测试

image-20220913204949425

  • 增量模型由一系列瀑布模型组成
  • 原型模型时开发一个原型交给用户使用,然后根据用户的使用和评价,重新修改原型。增量模型也有类似的过程
  • 原型模型迭代中产生的原型系统是为了明确产品需求,最终将被废弃
  • 增量模型强调每一个增量均为发布的产品
  • 需求的变化不可避免时,增量模型适应这种变化的能力大大优于瀑布模型和原型模型
  • 软件过程的控制失去整体性时,容易退化成边做边改模型

1.6.4 螺旋模型(瀑布模型+原型模型)

强调了其他模型所忽视的风险分析,适合大型复杂系统

image-20220913235908499

image-20220914000940557

第二章 项目计划

2.1 问题定义

  • 目的:明确用户要计算机解决的问题;

  • 任务确定问题背景,待开发系统的目标和范围;

  • 方式:1.口头形式了解用户要求

    ​ 2.阅读用户提供的相关资料

    ​ 3.现场观察亲自操作

  • 成果:软件开发任务书
    软件开发任务书的内容:

    image-20220914002619633

2.2 可行性研究

2.3 流程图

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值