zoukankan      html  css  js  c++  java
  • 软件工程——第一章 软件和软件工程的基本概念【转】

    第一章软件和软件工程的基本概念

    什么是软件(software)?

    顾名思义:软件就是软的(soft),和硬件(hard)相对。硬件(hardware)是有形的,软件(software)则是无形的。看到hardsoft很容易联想到高中的一节课上讲的也是相对的一对词:hard drink:硬饮料,烈性酒,指带酒精的饮料;soft drink:软饮料,指不含酒精的饮料。

    简单的说软件就是程序加文档的集合体。程序设计的最终结果是软件。

    哈工大软件工程视频中讲到的软件的定义是:计算机系统是通过运行程序来实现各种不同的应用。把各种不同功能的程序,包括用户为自己的特定目的的编写的应用程序、检查和诊断机器系统的程序、支持用户应用程序运行的系统程序、管理和控制机器系统资源的程序等通常称为软件。

    软件分类:

    一、按软件功能分。

    1、系统软件(操作系统,数据库管理系统,设备驱动程序,通信处理程序等。)

    2、支撑软件(文本编辑程序,文件格式化程序,磁盘或磁带向数据传输程序,程序库系统,支持需求分析、设计、实现、测试和支持管理的软件)

    3、应用软件(商业数据处理软件,工程与科学计算软件,计算机辅助设计/制造软件,系统仿真软件,只能产品嵌入软件,医疗、制药软件,事务管理、办公自动化软件,计算机辅助教学软件)

    二、按软件规模进行划分。

    微型,小型,中型,大型,甚大型,极大型。

    三、按软件工作方式划分。

    实时处理软件、分时软件、交互式软件、批处理软件

    四、按使用的频度进行划分

    一次使用、频繁使用

    五、按软件服务对象的范围划分

    项目软件,产品软件

    六、按软件失效的影响进行分类

    高可靠性软件、一般可靠性软件

    软件工程过程:软件规格说明,软件开发,软件确认,软件演进。

    软件生存期life cycle

    软件生存期的六个步骤:制定计划,需求分析,设计,程序编码,测试,运行维护

    1、制定计划确定开发软件系统的总目标;给出功能、性能、可靠性以及接口等方面的要求;完成该软件任务的可行性研究;估计可利用的资源(计算机硬件、软件,人力等,成本、效益、开发进度);制定出完成开发任务的实施计划。

    2、需求分析和定义对待开发软件提出的需求进行分析并给出详细的定义;编写软件需求说明书或系统功能说明书及初步的系统用户手册

    3、软件设计

      1)、概要设计

      2)、详细设计

    4、程序编写

    把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”

    写出的程序应当是结构良好、清晰易读的,且与设计相一致的。

    5、软件测试

    单元测试,查找各模块在功能和结构上存在的问题并加以纠正;组装测试,将已测试过的模块按一定的顺数组装起来;按规定的各项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用。

    6、运行维护

    改正性维护,适应性维护,完善性维护

    软件生存期模型

    软件生存期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架

    瀑布模型、演化模型、螺旋模型、喷泉模型、智能模型

    瀑布型:思想:从制作时间上按工序把问题化简,将功能实现与制作分开便于分工协作。

    演化型:???

    螺旋型:将软件的生存期的六个步骤分为四个活动(指定计划、风险分析、实施工程、客户评价),按顺时针从第二象限起,分别放在平面直角坐标系的四个象限中,从指定计划到客户评价一圈一圈的旋转,多次反复将系统完善。

    喷泉模型:特点:迭代,无间隙(各阶段间没有明显界限)

    软件工程(Software Engineering简称SE)定义:是一门研究用工程化方法构建和维护有效地、使用的和高质量的软件的学科。

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

    软件工程方法为软件开发提供了“如何做”的技术。

    软件工具为软件工程方法提供了自动的或半自动的软件支撑环境。

    ***********************************************************************************************
    *【Author】:missysm586
    *【Date】:2013年07月29日
    *【URL】:http://blog.csdn.net/missysm586/article/details/5889202
    *【Notice】:
    *1、本文为原创技术文章,首发CSDN个人站点。
    *2、转载和引用请注明作者及出处。
    *3、本文必须全文转载和引用,任何组织和个人未授权不能修改任何内容,并且未授权不可用于商业。
    *4、本声明为文章一部分,转载和引用必须包括在原文中。
    ***********************************************************************************************

  • 相关阅读:
    移动端rem布局
    父子组件通信
    拦截器
    Vue路由教程
    使用var和let的区别
    数组去重的几种方法
    利用位运算进行权限控制
    线程基础
    关于get请求的乱码问题
    nuxt.js Navigating to current location ("/xxx") is not allowed
  • 原文地址:https://www.cnblogs.com/armyant/p/3223967.html
Copyright © 2011-2022 走看看