“软件工程”基础解析

       软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而建立和使用的好的工程原则。它是指导计算机软件开发和维护的工程学科。

       (一) 软件工程的定义

       采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程

        此外,IEEE给出了一个更加综合的定义,软件工程是:1)将系统化的、规范的和可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;2) 1)中所述方法的研究。

       (二) 软件工程的分层结构及一般视图

       1. 软件工程的分层结构

       软件工程是一种层次化的技术。自底向上分为:过程层,方法层和工具层。

软件工程的基层是过程层,软件工程过程是将技术层结合在一起的凝聚力,使得计算机软件能够被合理地和及时地开发出来。

       软件工程的方法层提供了建造软件在技术上需要“如何做”。方法涵盖了一系列的任务:需求分析、设计、编程、测试和维护。

       软件工程的工具层对过程和方法提供了自动的或半自动的支持。如,计算机辅助软件工程(CASE)。

       2. 软件工程的一般视图

       与软件工程相关的工作可分为三个一般的阶段:定义阶段、开发阶段和维护阶段。

       定义阶段集中于“做什么”,三个主要任务:系统或信息工程,软件项目计划和需求分析。

       开发阶段集中于“如何做”,三个特定的任务:软件设计,代码生成和软件测试。

       维护阶段集中于“改变”,有四类修改要完成:纠错,适应,增强和预防。

       (三) 软件工程的基本原理

       1983年,美国TRW公司的B.W. Boehm概括出著名的软件工程7条基本原理:1)按软件生存周期分阶段制订计划并认真实施;2)坚持进行阶段评审;3)坚持严格的产品控制;4)使用现代程序设计技术;5)明确责任;6)用人少而精;7)不断改进开发过程。

       (四) 软件工程的目标

       软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。

       衡量软件质量的6个特性:功能性、可靠性、可使用性、效率、可维护性和可移植性。

 

 

       参考资料

[1] 软件工程。郑人杰,马素霞,麻志毅编著,人民邮电出版社。

[2] 软件工程——实践者的研究方法。(美)Roger S. Pressman著,黄柏素,梅宏等译。

时间: 2024-12-11 13:13:26

“软件工程”基础解析的相关文章

《软件工程方法与实践》—— 导读

前 言 软件工程包含一系列软件开发的基本原理.方法和实践经验,用来指导人们进行正确的软件开发.软件工程强调从工程化的原理出发,按照标准化规程和软件开发实践来引导软件开发人员进行软件开发和实践活动,并进行过程改进,促进软件企业向标准化和成熟化的方向发展.软件工程是一门理论与实践相结合的学科,更注重通过实践来理解原理和方法.为此,我们结合多年的软件工程教学和项目开发经验,通过5个项目实例,从不同的角度.利用不同的方法学来循序渐进地介绍软件开发过程中所涉及的原理.方法和技术.本书的另一个特色是从问题的

云解析大学第一期:DNS安全之道

摘要:11月29日在线培训,请来了阿里巴巴基础架构事业群技术专家宋毅给大家带来了DNS安全之道的讲解.本文主要从介绍云解析DNS开始,详细分析了DNS的总技术架构,接着分享了权威解析系统和安全解析系统,最后与大家介绍了云解析高级功能,包括基础解析和智能解析等.一起来了解下吧.   直播视频回顾   云解析DNS是权威解析服务,完成域名到IP的翻译过程,围绕获取IP.得到IP访问的过程的一款云产品.   云解析DNS DNS整个系统架构中,主要有递归DNS.权威DNS.最终用户三个角色,云解析是权

UML面向对象分析与建模-【2】UML语言基础

  一.UML的主要内容 UML主要文件包括UML概要.UML语义.UML表示法指南和对象约束语言规约. 二.UML的主要特点 UML主要特点包括统一标准.面向对象.可视化及表示能力强大.独立于过程和容易使用掌握.UML不是一个独立的软件工程方法,而是面向对象软件工程方法中的一个部分.UML贯穿软件系统开发的需求分析.系统分析.系统设计.系统实现和测试五个阶段. 三.UML建模中9种图的特点 1.       用例图 用例图描述系统外部的活动者(角色)与系统提供的用例之间的某种联系.它着重从系统

在中国开展CMM评估的几点建议

从美国的软件产业发展可以看到,软件产业有结构化生产方式(1975年-1995年).以过程为中心的生产方式(1985年-2005年)和工业化生产方式(1995-今)等三个发展阶段. 我国软件组织在软件过程的现状可以概括为以下三个方面:第一,我国正在由结构化生产方式向以过程为中心的生产方式和工业化生产方式前进.目前已有很多企业(不论是国营或者民营公司)认识到要按CMM改进软件过程,实施科学化.系统化的管理,以提高组织的软件能力成熟度,这表明具备了改善自我的强大动力.第二,目前在前进的道路上仍然有一些

基于.NET平台的Windows编程实战(一) 前言

案例背景:大约是3月份初的时候母校的一恩师打电话过来说其正在进行一项关于中国民族地区农村工作调查的科研项目,需要向所调查的区域发放数千份不同的调查问卷,并要进行精确的百分比统计,问我有没有好的办法帮他解决统计的问题,因为是农村且又是比较偏远的山区,根本不可能通过网络的形式来进行调查,所以只能通过发放打印出来的问卷并进行回收统计调查,但这样的统计相当的麻烦:数千份不同的问卷,每份问卷近80道选择题[单选多选都有],一个村庄一个村庄的发放出去,再回收回来,再人工一份份的进行统计--,那得要多少人力与

基于.NET平台的分层架构实战(一)—综述

通过浏览博客园的文章发现,很多朋友对分层架构特别感兴趣,刚好我刚做完 的毕业设计就是专门研究.NET平台上分层架构的(题目叫"基于.NET平台的 分层架构与设计模式应用研究").通过做这篇论文,我对分层架构有了一 定的了解,所以,就萌发了想写一个文章系列,详述一下分层架构.然而,论文 的理论性太强,不适合在网上发布,尤其不适合初学者理解,所以,我想在这个 文章系列中,少讲理论,而是通过做一个完整的案例来讨论分层架构的基本方法 ,这样会直观很多.希望在这个文章系列的写作过程中,能和朋友们

阿里云ACP级认证考试心得+过关经验

正在准备阿里云ACP级认证考试的童鞋福利来啦!经过小编的软磨硬泡,终于从高分通过ACP云计算专业认证及大数据专业认证的大牛同事那里要来了考试心得+经验分享,直接看吧 认证考试简介 知己知彼知大纲 首先介绍一下ACP考试.阿里云认证类似于大家比较熟悉的AWS认证.思科认证.红帽认证等厂商认证.阿里云认证分为四级ACF.ACP.ACA.ACM.本文章主要针对ACP认证.ACP认证目前又按专业方向分四种:云计算(主要对应阿里云基础架构产品).大数据(主要对应阿里云大数据系列产品).云安全(主要对应阿里

递归算法时间复杂度

开篇前言:为什么写这篇文章?笔者目前在学习各种各样的算法,在这个过程中,频繁地碰到到递归思想和分治思想,惊讶于这两种的思想的伟大与奇妙的同时,经常要面对的一个问题就是,对于一个给定的递归算法或者用分治思想缩小问题规模的算法,如何求解这个算法的时间复杂度呢?在google过很多的博文后,感觉这些博文总结的方法,有很好优秀的地方,但是都不够全面,有感于此,笔者决定总结各家之长,作此博文,总结各种方法于此,有不足之处,欢迎各位批评指证! 在算法的分析中,当一个算法中包含递归调用时,其时间复杂度的分析会

《精益软件度量——实践者的观察与思考》目录—导读

内 容 提 要 精益软件度量--实践者的观察与思考 软件度量是当今软件开发行业的热点话题,但同时也是推广实施过程中的难题.一方面软件企业管理存在度量的迫切需求:另一方面,企业在推行软件度量的实践中问题颇多,效果不佳.人们迫切需要破解度量谜题,找到切实可行的软件度量实践方法. 本书并不试图描述一个完整的软件度量体系,也不会试图解决度量所面临的所有问题,只是从精益理念的角度,尝试重新梳理在中等规模到大规模软件开发中度量体系设计和实施的思路.全书分为3部分,共14章.第一部分包括第1章至第4章,介绍了