软件工程—理论、方法与实践

第一章  概述

软件是计算机程序、规程以及计算机系统可能需要的相关文档和数据。

软件一般分为通用和定制软件。

软件的特性:

1、软件是复杂的;

2、软件是不可见的;

3、软件是不断变化的;

4、大多数软件是定制的,而不是通过已有的构件组装的。

软件工程师为了经济的获得能够在实际机器上高效运行的可靠软件而建立和使用的一系列好的工程化原则。

软件危机

1、软件开发的成本和进度难以进行准确估计,延迟交付甚至取消项目的现象屡见不鲜;

2、软件存在着错误多、性能低、不可靠、不安全等质量问题;

3、软件成本在计算机系统的整个成本中所占的成本越来越大;

4、软件维护及其困难,而且很难适应不断变化的用户需求和使用环境。

第二章  软件过程

任务思维和过程思维

软件过程的定义:

软件过程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动。

软件过程的基本活动

1、问题的提出;

2、软件需求规格说明;

3、软件设计;

4、软件实现;

5、软件确认;

6、软件确认。

软件过程模型

1、瀑布模型;

2、快速原型模型;

3、增量模型;

4、螺旋模型;

5、形式化方法模型;

6、基于组件的开发模型。

第三章  软件项目管理

软件项目管理概述:

1、软件项目的特征;

2、软件管理的“4P”;

3、软件项目管理活动:

a、项目启动;

b、项目规划;

c、项目实施;

d、项目收尾。

人员组织与管理

1、软件项目组织;

2、软件团队建设。

项目沟通管理

1、项目沟通复杂性;

2、项目沟通方式;

3、项目沟通活动。

软件项目规划

1、软件规模估算;

2、软件成本估算;

3、软件项目计划。

软件风险管理

1、风险意识;

2、风险分析;

3、风险规划;

4、风险监控。

软件配置管理

1、基本概念;

2、配置管理活动;

第四章  需求工程

软件需求

1、业务需求;

2、用户需求;

3、功能需求和非功能需求;

4、系统需求

需求工程过程

1、需求获取;

2、需求分析;

3、需求规格说明;

4、需求验证;

5、需求管理;

需求获取技术

1、面谈;

2、需求专题讨论会;

3、观察用户工作流程;

4、原型化方法;

5、基于用例的方法。

案例

1、确定参与者;

2、确定场景;

3、确定用例;

4、编写用例描述;

第五章  软件工程中的形式化方法

形式化方法基本概念:

1、形式规约;

2、形式证明与验证;

3、程序求精;

时态逻辑

1、一阶线性时态逻辑;

2、计算树逻辑;

模型检测

Z语言

1、概述

2、Z语言表示

3、Z语言实例

Petri 网

第六章   面向对象基础

面向对象技术手机软件工程领域的重要技术,这种技术比较自然地模拟了人类认识世界的方法,成为当前计算机软件工程学中的主流方法,面向对象技术不仅仅是一种程序设计方法,更是一种对客观世界的抽象思维。

面向对象技术的基本思想是从现实世界中客观存在的事物出发,尽可能地运用人类的自然思维方式来构造软件系统。它更加强调运用人类在日常的思维中经常采用的思想方法与原则,例如抽象、分类、继承、聚合、封装等,是开发者以现实世界中的事物为中心来思考和认识问题,并以人们易于理解的方式表达出来。

第七章 面向对象分析

在需求获取阶段,开发人员关注于理解用户以及他们的使用要求。而在需求分析阶段,开发人员关注于理解系统需要构建的内容,其核心是产生一个准确的、完整的、一致的和客验证的系统模型,称为分析模型。

面向对象的分析模型由三个独立的模型组成:

1、功能模型:有用例和对象图组成;

2、分析对象模型:有类图和对象图表示;

3、动态模型:由状态图和顺序图表示。

第八章, 面对对象设计

通常,设计活动划分成系统设计和详细设计等两个主要阶段,其中系统设计是选择合适的解决方案策略。而设计的原则有:模块化;耦合度和内聚性;复用性。

对于大型复杂系统来说,软件体系结构设计显得尤为重要,它的好坏往往会成为一个系统设计成败的关键。集中典型的软件体系结构有:仓库体系结构;分层体系结构;MVC体系结构;客户机/服务器体系结构;管道和过滤器体系结构。

在系统设计中,要识别设计元素,数据存储策略,部署子系统,系统设计评审。儿详细设计包括方法建模,属性建模,状态建模和关系建模等。集中常用的设计模式有Abstract Facatoty模式;Adaptor模式;Bridge模式;Facade模式。

用户页面设计对于一个系统的成功是至关重要的。一个设计的很差的用户界面可能导致用户很容易产生错误,甚至用户拒绝使用该系统。

第九章,软件实现

程序设计语言一直在不断地演化和演变,其发展经历了从机器语言到高级语言的过程

如今,人们不再过度的强调编码的技巧性,而是将代码可读性作为影响软件质量的一个重要因素。一些通用的编码规范有:文件命名和组织,代码的版式,(适当的空行;代码行及行内空格;分行、对齐、和缩进;命名规则;声明;注释)

编程风格在很大程度上影响着程序的可读性、可测试性和可维护性,甚至会影响到程序的执行效率。有程序注释问题,变量命名问题,异常处理问题,性能问题,

为了获得高质量的代码,有必要参照代码检查清单进行代码走查。

第十章  软件测试

软件危机曾经是软件界甚至整个计算机界最热门的话题。为了解决这个问题,软件从业人员,专家和学者做出了大量的努力。现在的人们已经逐渐认识到所谓的软件危机实际是一种状态,那就是软件中的错误,正是这些错误导致了软件在开发成本,进度和质量上的失控。

如今信息技术的飞速发展,是软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的问题。软件测试是软件质量保证的移向关键活动,它是通过对需求规格说明,软件设计说明和程序代码等进行复审,以保证在软件产品交付前,尽可能发现软件中潜伏的问题,大量的统计表明,软件测试工作量往往占软件开发量的40%以上,在极端的情况下,甚至可能高达软件工程其他步骤成本的综合的3~5倍。目前,随着软件规模的不断扩大,复杂程度的不断提高,特别是面对对象技术和工具的应用,软件测试的难度也在进一步提高。

第十一章,软件演化

软件在更改过程的验货特性。具体如下:软件维护是一个必然的过程;软件的不断修改会导致软件的退化;软件系统的验货特性实在早期的开发阶段建立起来的;软件开发的效率与投入的资源无关;在软件系统中添加新的功能不可避免的会产城新的缺陷。

根据软件维护的不同圆心,可以分为三种类型:改正性维护,适应性维护,完善性维护。

软件维护的特点:软件维护收开发过程影响大;软件维护困难多;软件维护成本高。

软件维护工作包括建立维护组织、报告、与评估维护申请、实施维护流程等步骤。

软件再工程主要包括:对象选择、反向工程、文档重构、代码重构、数据重构和正向工程等活动。

时间: 2024-08-10 23:28:05

软件工程—理论、方法与实践的相关文章

阅读《软件工程—理论方法与实践》第五章心得体会

阅读第五章所了解到的基本知识,形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动.主要目的是保证软件的正确性.已建立的形式化方法可分为操作类和描述类.操作类方法基于状态和转移;描述类基于数学公理和概念.形式证明与验证技术主要包括模型检测(适用于有穷状态系统,完全自动化并且验证速度快)和定理证明(采用逻辑公式来表示系统规约及其性质,分为自动和交互式两种).一阶线性时态逻辑是一阶谓词逻辑的扩展.对汉诺塔操作规划问题有了更深一步的理解.计算树逻辑是

软件工程理论方法与实践

第一章. 概述  软件是人类思维的杰作,并成为人类现代生活的催化剂.今天软件遍布整个世界,在生物工程.现代通信.宇宙探索.商务处理.工业控制等方面发挥出巨大的威力,并推动了商业.科学和工程领域的跨越式发展,对整个社会的经济和文化产生了深远的影响.软件工程师为了解决开发成本效益和软件质量的问题而产生的.软件是计算机程序.规程以及运行计算机系统可能需要的相关文档和数据.软件分为通用软件和定制软件.软件的特性分别是软件是复杂的.软件是不可见的.软件是不断变化的.大多数软件是定制的而不是通过已有构件组装

阅读《软件工程—理论方法与实践》第三章心得体会

通过对第三章的阅读,对以下概念有了了解:软件项目管理是为了使软件项目能够按照预定的成本.进度.质量顺利完成,而对成本.人员.进度.质量.风险等进行分析和管理的活动.其有利于将软件开发人员的个人开发能力转化成企业的开发能力,并使企业的软件开发能力不断提高和成熟.软件项目的特征有软件产品的不可见性.项目的高度不确定性.软件过程的多变化性,降低复杂性和控制变化成为软件项目管理面临的关键问题.软件项目管理集中于人员.产品.过程和项目.软件项目的生命周期包括项目启动(确定项目的目标和范围).项目规划(建立

阅读《软件工程—理论方法与实践》第二章心得体会

软件过程是软件工程人员为了获取软件产品而在软件工具的支持下实施的一系列软件工程活动.其基本活动包括:问题提出.软件需求规格说明.软件设计.软件实现.软件确认.软件演化.软件过程产品涉及软件需求.软件设计.软件实现.软件测试和软件实施等活动产生的结果,这些制品通常是在不同的开发活动之间进行转移和演进.常用软件过程模型:瀑布模型(适用于开发的早期阶段软件需求被完整确定的情况).快速原型模型(必须迅速建立原型,随之迅速修改原型,以反映客户的需求).増量模型(可以较好地适应需求的变化).螺旋模型(强调可

软件工程理论方法与实践第五章读后感

形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动,从根本上讲,软件设计过程就是一个建立形式化规约,软件设计的最终产物--程序在进行形式化的过程中涉及到三中系统模型:现实世界,模型表示和计算机系统.软件规格说明是对软件系统对象,对象的操作系统以及对象行为的描述,形式化的规格说明可用自然语言图表等形式来描述,模型检测主要用于有穷状态系统,优点是完全自动化并且验证速度快

软件工程理论方法与实践第一章读后感

软件是计算机程序,规程以及运行计算机系统可能需要的相关文档和数据,根据软件服务UI想的范围不同,一般可以将软件划分为通用软件和定制软件两种类型.软件的特性主要有,软件是复杂的,不可见的,不断变化的,大多数软件是定制的而不是通过已有的构建组装而成的,然而在软件开发过程中软件开发的成本和进度难以准确估计,延迟交付甚至取消项目的现象屡见不鲜,软件存在这错误多性能低不可靠不安全等质量问题,软件成本在计算机系统的整个成本中所占比例越来越大,且维护困难等等,而软件工程中则是将工程化应用到软件上,由过程方法和

阅读《软件工程—理论方法与实践》第六章心得体会

面向对象技术是软件工程领域中的重要技术,不仅仅是一种程序设计方法,更是一种对真实世界的抽思维方式.面向对象的软件工程方法涉及到从面向对象分析.面向对象设计.面向对象编程.面向对象测试到面向对象软件维护的全过程.面向对象的基本概念包括对象.类.封装.继承.消息.关联.聚合.多态性.属性和服务是构成对象的两个基本要素.使用共同的建模语言进行软件建模在软件开发过程中很必要(①以一种容易理解的形式为后期使用信息提供了便利的方法,②便于交流).UML富有表达力,描述开发所需要的各种视图,以此为基础组建系统

软件工程理论方法与实践第二章读后感

第二章读后感 为解决软件开发的问题,首先是将整个软件开发任务看做是一个可比较的刻度量的可改造,而软件过程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动,主要包括问题提出,软件需求规格说明,软件设计等等.软件过程模型主要分为瀑布模型,快速原型模型,增量模型,螺旋模型,形式化方法模型,基于组件的开发模型.而微软公司的软件过程模型由规划,设计,开发,稳定和发布五个主要阶段组成,采取低近视的软件开发策略,具体表现在解决问题的及时行.不确定和变更因素的可控性,缩短按产品的上市周

软件工程理论方法与实践第六章读后感

面向对象技术比较自然的模拟了人类认识客观世界的方式,成为当前计算机软件工程学中的主流方式,具有相同数据和相同操作对象可以归为一个类,对象是对象类的一个实例,类可以派生出子类,子类继承父类的全部特性,面向对象=对象+类+挤成+通信.面向对象的软件工程方法:面向对象分析,面向对象设计,面向对象编程,面向对象设计,面向对象维护, 属相和对象是构成对象的两个基本要素,其定义是,属性是用来面熟对象静态特征的一个数据项,服务是用来描述对象动态特征的一个操作序列,类是具有相同属性和服务的一组对象的集合,封装是

阅读《软件工程—理论方法与实践》第一章心得体会

通过对第一章的阅读,软件的划分有了了解,知道了软件是复杂的.不可见的.不断变化的,并且大多数软件是定制的,并不是通过已有构件组装而成的.软件维护是非常困难的,新的修改又会带来新的错误.软件存在多种质量问题,且能成功完成的软件项目的平均率在26%左右.软件工程已关注软件质量为目标,有过程.方法和工具三要素组成.对于软件的质量,对不同的用户角色是不一样的,但他们都有共同的质量要求是可靠性.正确性和有效性.软件工程知识体系被划分10个知识域:软件需求.软件设计.软件构造.软件测试.软件配置管理.软件工