软件工程第一章至十一章汇总

第一章软件
软件是计算机程序,规程及运行计算机系统可能需要的文档和数据。软件分为通用软件和定制软件。
软件的特性:1.复杂性2.不可见性3.不断变化4.大多数软件仍然是定制的,而不是通过已有的构件组装而成。
软件于二十世纪50~60年代,70年代,80年代,90年代至今进行发展。
在此过程中遇到一些危机:1.软件的开发成本和进度难以估计,延迟交付甚至取消项目的现象屡见不鲜。2.软件存在着错误多,性能低,不可靠,不安全等质量问题。3.软件的成本在计算机系统的整个成本中所占的比例越来越大。4.软件的维护极其困难,而且很难适应不断变化的用户需求和使用环境。
软件工程早在1968年10月,于德国的加尔迷死开会讨论软件可靠性与软件危机的问题中被Fritz Bauer首次提出。
其包括软件工程是工程概念在软件领域里的一个特定应用,和软件工程涉及软件产品的所有环节。
软件工程的三要素:工具,方法,过程。
计算机辅助软件工程CASE是一组工具和方法的集合,具有一定的层次划分。当前其主要面临的挑战有遗留系统的问题,高可信性开发的要求,软件开发方式的变化。
软件知识体系(swebok)由软件的需求,软件设计,软件构造,软件测试,软件维护,软件配置管理,软件工程管理,软件工程过程,软件工程工具与方法,和软件质量组成。
软件工程人员应秉承一定的职业道德准则,遵纪守法,持有服务客户,造服社会的观念,以城实守信作为工程人员职业道德的核心。
(不知不觉600字了。。)
第二章软件过程
程序员应具有的任务思维与过程思维概述。
软件过程的定义:是软件工程人员为了获取软件产品而在软件工具的支持下实施的一系列软件过程活动。
软件过程的基本活动有1.问题的提出2.软件规格说明3.软件设计4.软件实现5.软件确认6.软件演化。
软件过程的制品按照不同的阶段,书上予以细细的列举。
软件工程的模型有瀑布模型、快速原型模型、增量模型、形式化方法模型、和基于组件的开发模型。
微软公司开发软件过程的案例,1。其开发管理的原则(5点不再一一列举)2.微软公司的软件过程模型有五个阶段(按时间顺序进行)规划阶段、设计阶段、开发阶段、稳定阶段、和发布阶段。3.递进式的软件开发策略。
第三章软件项目管理
软件项目的特征
软件项目管理的“4p”1.人员2.产品3.过程4.项目。
软件项目管理活动4点
人员的组织与管理其中组织有民主式组织、主程序员式组织、技术管理式组织。
以微软为例讲解组织的形式如何运用于实际中。
项目沟通管理:项目沟通具有一定的复杂性,并且有六种沟通方式
项目沟通活动:1.规划项目沟通2.建立基础设施3.实施阶段性评审4.每周组织小组会议。
软件项目规划:1.估算项目规模2.软件项目计划
软件风险管理
风险的是识别:(七中不同形式的识别不一一列举)
面对分先应作出风险分析,规划与监控。
软件基本配置的基本概念及配置管理活动。
第四章需求工程
人们对“软件需求”这个术语缺乏统一的描述,客户所说的“需求”在开发人员看来是一个较高层次的产品概念,而开发人员所说的“需求”在用户看来又像是详细设计。应该说,人们从不同角度和不同的程度反映着各自的需求,形成了不同层次的需求。有业务需求,功能非功能需求,和系统需求。
需求工程过程1.需求的获取2.需求的分析3.需求的规格说明4.需求验证(其中包括正确性,无二义性,完整性,可验证性,一致性,可跟踪性等)。需求管理分为需求变更控制,需求文档的版本控制,需求跟踪需求管理工具。
需求获取技术可以通过面谈、需求专题讨论会观察用户工作流程等方式实现,方法基于原形化方法和用例方法。
案例:小型图书馆资料管理系统
步骤:1.确定参与者2.确定场景3.确定用例4.编写用例描述。
第五章软件工程中的形式化方法
形式化方法的基本概念:1.软件规格说明是对系统对象,对象的操作方法,以及对象行为的描述。2.形式证明与验证技术包括模型检测和定理证明。3.程序求精是将自动推理和形式化方法相结合,从抽象的形式规约推演出具体的面向计算机的程序代码的全过程。
时态逻辑Kripke结构一阶段线性时态逻辑汉诺塔操作规划问题
计算树逻辑是一种离散、分支时间、命题时态逻辑。
模型检测
Z语言概述:Z语言为系统建立基于状态的模型。
其表示大体分为两类:1.集合、关系及函数2.自由类型和模式
实例:1.停车场管理系统为例:初始化,基本定义,状态定义,全局变量声明,操作定义。2.以听图书管理系统为例:(同1.)
网:基本定义任何系统都可以抽象为两类元素和事件。petri网
petri网的实例——信号灯。(对信号灯原理进行简单的描述)
第六章面向对象基础
面向对象方法概述:客观世界是由对象组成的,任何客观的事物或实体都是对象,复杂的对象可以有简单的对象组成;
面向对象技术的发展历史(简述初始,发展,成熟三个阶段)
面向对象的软件工程方法:1.面向对象分析2.面向对象设计3.面向对象编程4.面向对象测试5.面向对象维护
面向对象基本概念:1.对象从不同角度有不同的含义2.类是具有相同的属性和服务的一组对相集合,它属于该类的全部对象提供了统一的抽象描述,其内部属性和服务两个主要部分。3.封装是把对象属性和服务结合成一个独立的系统单位,并尽可能隐藏对相内部细节。4.继承(不再打了)5.消息6.关联7.聚合8.多态性
软件建模概念针对软件所具有的复杂性,以及人们对复杂问题的理解的局限性,在软件开发过程中使用共同的建模语言进行建模十分重要,特别是特别大的复杂系统。
系统、模型和视图(简述了3点)
软件建模的重要性(简述,略)
统一建模语言uml
1,uml发展史2.uml概念:由视图、图、模型元素和公共机制等部分组成。3,uml示例(以图为例)4.uml的应用
常用的uml图:类图、顺序图、状态图。(已学过)
第七章面向对象分析
分析的概念:分析类,分析活动
识别分析类通常,一个参与者与一个用例之间的交互或通讯关联对应一个边界类。边界类收集来自参与者的信息,这些信息可以被实体类控制类控制使用。
识别控制类
控制类负责协调边界和实体类,通常在现实世界中没有对应的事物,他负责接收边界类的信息,并将其分给实体类。
识别实体类简述了识别方法
定义交互行为:顺序图可以讲=将用力和分析对象联系到一起。(绘制顺序图步骤)
建立分析类图1.定义关系和属性2.应用分析模式
评分分析模型(检查正确性的步骤)
第八章面向对象分析
设计的概念
设计活动,设计原则1.模块化2.耦合度和内聚性3.复合型
软件体系结构1.仓库体系结构简述2.分层体系结构3.mvc体系结构4.客户机/服务器体系结构5.管道和过滤体系结构6.案例:minilibrary系统体系结构(图略)
系统设计1.识别设计元素2.数据储存策略3.部署子系统4.系统设计评审
详细设计1.方法建模(三点)2.属性建模3.状态建模4.关键建模5.详细设计评审。
应用设计模式:1.abstract factory模式2.adaptor模式3.bridge模式4.facade模式
用户界面设计:1.用户界面设计原则2.web界面的设计3.用户支持
设计文档步骤1.引言2.参考文献等(共6个步骤)
第九章软件实现
程序设计语言一直在不断地演化和演变,其从经历了从机器语言到高级语言的过程。
软件编码规范1.文件命名与组织2.代码的版式3.分行、对齐与缩进4.命名规则5.声明6.注释
软件编码案例分析:1.程序注释问题2.变量命名问题3.内存异常问题(4点)4.异常处理问题5.性能问题两点
软件代码审查代码审查有:1.类2.属性3.构造函数4.方法头5.方法体
第十章软件测试
验证与确认:1.软件的错误2.验证与确认3.v&v的活动
软件测试基础:1.什么是软件测试2.软件测试的基本原则3.软件测试与软件开发各阶段的关系4.测试文档5.软件测试信息流6.软件测试人员。
软件测试策略:1.单元测试2.集成测试确认测试4.系统测试5.软件调试。
软件测试方法:1.静态测试与动态测试2.黑盒测试与白盒测试3.黑盒测试方法4.白盒子测试方法5.程序的静态测试
面向对象软件测试:1.面向对象测试类型2.面向对象测试示例3.gui测试示例软件测试工具。
第十一章软件演化
软件演化的特性1.软件维护是一个必然的过程2.软件的不断修改会导致软件退化3.软件系统的演化特性是在早期的开发阶段建立起来4.软件开发的效率与投入的资源无关5.在软件系统中添加新的功能不可避免地会产生新的缺陷。
软件维护的概念:1.改正性维护2.适应性维护3.完善性维护
软件维护的特点:1.软件维护受开发过程影响大2.软件维护困难多3.软件维护成本高。
软件维护的过程1.改正性维护2.适应性维护3.完善性维护
软件再工程:1.对象选择2.反向过程3.文档重构4.代码重构5.数据重构6.正向工程。

时间: 2024-08-10 23:25:37

软件工程第一章至十一章汇总的相关文章

软件工程概论总结第十一章

 第十一章 软件演化 软件演化的特性: 1.软件维护是一个必然的过程. 2.软件的不断修改会导致软件的退化. 3.软件系统的演化特性是在早期的开发阶段建立起来的. 4.软件开发的效率与投入的资源无关. 5.在软件系统中添加新的功能不可避免地产生新的缺陷,因此在一个发布的新版本中有较大的功能增量将会意味着需要发布下一个版本,该版本中的新增功能较少,而主要是修补这些新产生的软件缺陷. 软件维护 软件维护是指在软件运行或维护阶段对软件产品所进行的修改. 1.改正性维护 2.适应性维护 3.完善性维护

《软件工程》总结——第十一章

本章的主要内容是软件演化 软件演化的特性 1985 年,Lehman 和 Belady 总结了软件在更改过程中演化的特性:1. 软件维护是一个必然的过程:2. 软件的不断修改会导致软件的退化:3. 软件系统的演化特性是在早起的开发阶段建立起来的.4. 软件开发的效率与投入的资源无关:5. 在软件系统中添加新功能无可避免的会产生新的缺陷.对于软件变更引起的各种问题,人们通常采用不同的策略进行处理:软件维护和软件再工程. 软件维护 软件维护的概念 软件维护是指在软件运行或维护阶段对软件产品所进行的修

思科CCNA第一学期第十一章答案

1 路由器完成启动步骤后,网络管理员希望立即检查路由器配置.管理员从特权执行模式可以使用以下哪些命令达到此目的?(选择两项) show flash show NVRAM show startup-config show running-config show version 2 网络中的用户发现向远程服务器传输文件时响应很慢.发出什么命令可以确定路由器是否存在任何输入或输出错误? show running-config show startup-config show interfaces sh

《软件工程概论》第十一章 软件演化

软件演化特性 1.软件维护是一个必然的过程 2.软件的不断修改会导致软件的退化 3.软件系统的演化特性是在早期的开发阶段建立起来的 4.软件开发的效率与投入的资源无关 5.在软件系统中添加新的功能不可避免地会产生新的缺陷. 软件维护的概念: 1.改正性维护 2.适应性维护 3.完善性维护 软件维护的特点: 1.软件维护受开发过程影响大 2.软件维护困难多 (1)读懂别人的程序是很困难的 (2)文档的不一致性是软件维护困难的又一个因素 (3)软件开发和软件维护在人员和时间上存在差异 (4)软件维护

软件工程——理论方法与实践(段落概述第一章至第十一章)

第一章软件软件是计算机程序,规程及运行计算机系统可能需要的文档和数据.软件分为通用软件和定制软件.软件的特性:1.复杂性2.不可见性3.不断变化4.大多数软件仍然是定制的,而不是通过已有的构件组装而成.软件于二十世纪50~60年代,70年代,80年代,90年代至今进行发展.在此过程中遇到一些危机:1.软件的开发成本和进度难以估计,延迟交付甚至取消项目的现象屡见不鲜.2.软件存在着错误多,性能低,不可靠,不安全等质量问题.3.软件的成本在计算机系统的整个成本中所占的比例越来越大.4.软件的维护极其

Linux与云计算——第二阶段 第一十一章:代理Proxy服务器架设—Squid代理服务器正向代理和客户端配置

Linux与云计算--第二阶段Linux服务器架设 第一十一章:代理Proxy服务器架设-Squid代理服务器正向代理和客户端配置 安装Squid 安装Squid来配置代理服务器. [1] 这是一个通用的转发代理配置 [[email protected] ~]# yum -y install squid [[email protected] ~]# vi /etc/squid/squid.conf # line 26: 添加一条新的ACL acl lan src 192.168.96.0/24

软件工程—第一章

软件工程—第一章概述 软件的定义是计算机程序.规程以及运行计算机系统可能需要的相关文档和数据,软件开发存在的问题是由特性决定的,软件危机从爆发到至今依然没有消除. 软件工程以关注软件质量为目标,由过程.方法和工具三要素组成,软件质量与客户.用户.维护人员等提出的要求密切相关,当前面临的主要挑战有:遗留系统的问题.高可信软件开发的要求.软件开发方式的变化. SWEBOK的组成:软件需求.软件设计.软件构造.软件测试.软件维护.软件配置管理.软件工程管理.软件工程过程.软件工程工具与方法.软件质量.

现代软件工程 第十一章 练习与讨论

1  如何避免在产品开发后期不断有重大修改,导致其它模块的连锁反应? DCR Tell mode vs. Ask mode设计变更 在项目早期,如果大家觉得要做一个设计变更,便可以采用告知模式(Tell-mode)的形式,也就是说,修改方必须通告所有关系人:“我在这里修改了某某界面, 我在某个API 增加了一个参数.”但是修改方不必取得其他关系人(或者模块)的事先同意,就是说可以先行设计并编码.当然,如果其他关系人不同意,修改还是不能签入. 当项目进行到稳定阶段,例如达到了代码完成(CC)阶段,

软件工程——理论、方法与实践 第十一章

第十一章.软件演化      第十一章   主要讲 1.软件演化的特性,软件维护是一个必然的过程,软件的不断修改会导致软件的退化,软件系统的演化特性是在早期的开发阶段建立起来的,软件开发的效率与投入的资源无关,在软件系统中添加新的功能不可避免地会产生新的缺陷: 2.软件的维护,软件维护是指在软件运行或维护阶段对软件产品进行的修改:分为改正型维护.适应性维护.完善性维护:并介绍了维护的特点和过程: 3.软件再工程,软件再工程以系统理解为基础,结合逆向工程.重构和正向工程等方法,讲现有系统重新构造成