软件工程---逆向工程
需求工程---需求验证:
需求是软件项目成功的核心所在,它为其他许多技术和管理活动奠定基础,在软件需求工程中,需求管理贯穿整个过程。需求管理最基本的任务是明确需求、并且使项目团队和用户达成共识,即建立需求基线。
软件工程---需求工程:
需求管理是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法。而非对需求开发的管理,需求开发包括:需求获取、需求分析、需求定义和需求验证。需求的跟踪属于需求管理的范畴
软件工程---需求获取
若想获取用户对系统的想法和建议等定性特征,则开调查会方法比较合适,因为开调查会的方式会强调需求分析人员与用户之前的交互,在交互过程中可以获取用户对系统的想法和建议。
若想获取系统某些较为复杂的流程和操作过程,则现场观摩方法比较合适,俗话说,“百闻不如一见”,对于一些较为复杂的流程和操作而言,是比较难以用语言和文字进行表达的,对于这种情况,可以采用到客户的工作现场,一边观察,一边听客户的讲解,从而更直观的了解客户需求。
软件工程---需求工程:
在结构化分析中,主要进行三个方面的建模:
需求分析---UML
UML中有4种事物:
需求工程---UML
在UML中,把组织模型的组块称为包。包是用于把元素组织的通用机制,有助于组织模型中的元素,使得对他们的理解变得更容易,也使得用户能够控制对包的内容的访问,从而控制系统体系结构中的接缝
构件是系统中遵从一组接口且提供实现的物理的、可替代的部分,可以利用构件为可能存在于结点上的物理事物(如可执行体、库、表、文件以及文档等)进行建模。一般情况下,构件表示将类、接口和协作等逻辑元素打包而形成的物理模块。好的构件应采用定义良好的接口来定义灵活的对象,以便将来可以用更新的、且接口兼容的构件来替换较旧的构件。
需求工程---UML
定时图:是一种新增的、特别适合实时嵌入式系统建模的交互图,也称为计时图,计时图关注沿着线性时间轴、生命线内部和生命线之间的条件改变。它描述对象状态随着时间改变的情况,很像示波器,适合分析周期和非周期性任务。定时图强调消息快约不同对象或参与者的实际时间,而不仅仅关心消息的相对顺序。
通信图:强调收发消息的对象结构组织,在早期的版本中也被称为协作图。它强调参加交互的对象组织
交互概览图是UML2.0新增的交互图之一,是活动图的变体,描述业务过程中的控制流概览,软件工程中的详细逻辑概览,以及将多个图进行连接,抽象掉了消息和生命线。
序列图是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。
需求工程---UML
UML采用4+1视图来描述软件和软件开发过程,其中的4个视图分别是:
需求工程---需求分析:
面向对象的分析是基于用例模型,通过对象建模记录确定的对象、对象封装的数据和行为以及对象之间的关系。面向对象分析包括三个活动:
需求工程---需求分析:
根据需求分析的定义:
需求分析是一种软件工程活动,它在系统级软件分配和软件设计间起到桥梁作用。需求分析使得系统工程师能够刻画出软件的功能和性能、指明软件和其他系统元素的接口、并且建立软件必须满足的约束。
需求分析的任务是发现、求精、建模和规约的过程。包括详细地精化初始由系统工程师建立并在软件项目计划中精化的软件范围,创建所需数据、信息和控制流以及操作行为的模型,此外还有分析可选择的解决方案,并将他们分配到各个软件元素中。
框架是类库的一种扩展形式
软件工程---软件设计
软件设计包括体系结构设计、接口设计、数据设计和过程设计
系统设计---处理流程设计
系统设计---结构化设计
一个模块的扇出是指模块直接调用下级模块的个数,扇出大表示模块的复杂度高,需要控制和协调过多的下级模块。
扇出过大一般是因为缺乏中间层次,应当适当增加中间层次的控制模块;
扇出过小时可以把下级模块进一步分解若干个子功能模块,或者合并到它的上级模块中去。
一个模块的扇入是指直接调用该模块的上级模块的个数
扇入大表示模块的复用程度高。设计良好的软件结构通常顶层扇出表大,中间扇出比较小,底层模块则有大扇入
软件模块内部的内聚程度从高到低排序为:
需求工程:UML
用例之间有三种关系:包含(include)、扩展(extend)、继承(generalize)。
当两个用例之间具有继承关系时,以为者子用例可以继承父用例的行为,并可以在此基础上添加新的行为或重置父用例的行为,子用例可以出现在父用例出现的任务位置上。
软件架构设计---软件架构风格
软件工程---设计模式
设计模式可以分为三种:
软件工程---设计模式
IPSec提供即可用于IPv4也用于IPv6的安全性机制,它是IPv6的一个组成部分,也是IPv4的一个可选扩展协议。
IPsec为跨越LAN/WAN,Internet的通讯提供安全性:
IP安全性协议是针对IPv4和IPv6的,IPsec的主要特征是可以支持IP级所有流量的加密或者认证,增强所有分布式应用的安全性。IPSec在IP层提供安全服务,使得系统可以选择所需要的安全协议,确定该服务所用的算法,并且提供安全服务所需任何加密秘钥
目前的全球因特网所采用的协议族是TCP、IP协议族。IP是TCP、IP协议族中网络层的协议,是TCP、IP协议族的核心协议。目前IP协议的版本号是4(简称为IPv4),发展至今已经使用了30多年了。IPv4地址位数为32位,也就是最多是2的32次方的电脑可以连接到Internet。
IPv6是下一个版本的互联网协议,也可以说是下一代互联网的协议,它的提出最初是因为随着互联网的迅速发展,IPv4定义的有限地址空间将被耗尽,地址控制的不足必将妨碍互联网的进一步发展。为了扩大地址空间,逆通过IPv6重新定义地址空间。IPv6采用的128位地址长度,几乎可以不受限制地提供地址。按保守方法估算IPv6实际可以分配的地址,整个地球的每平方面积仍可分配1000多个地址。在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题以外,还考虑在IPv4中解决不好的其他问题,主要端到端IP连接,服务质量、安全性、多播、移动性、即播即用等。
信息安全---其他
业务流分析属于信息安全威胁的一种,它通过对系统进行长期监听,利用统计分析方法诸如通信频度、通信的信息流向、通信总量的变化等参数进行研究,从中发现有价值的信息规律
信息安全---其他
作为全方位的、整体的系统安全防范体系也是分层次的,不同层次反映了不同的安全问题,根据网络的应用现状结构,可以将安全防范体系的层次划分为物理安全、系统安全、网络安全、应用层安全和安全管理。
项目管理---范围管理
在初步项目范围说明书中已文档化的主要的可交付物、假设和约束条件的基础上准备详细项目范围说明书,是项目成功的关键,范围定义的输入包括如下内容:
项目管理---时间管理---时间管理的过程包括
项目管理---时间管理
通过绘图找最长路径可知:
关键路径为:ADFH,长度为13,所以项目的工期为13周。
当C拖延3周之后,关键路径变为:ACEH,长度为15周,所以工期拖延2周
项目管理---软件配置管理
配置项式构成产品配置的主要元素,配置项主要有一下两个大类:
非网络知识---软件开发基础
软件工程---软件测试
驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并且打印相应的结果。
桩模块(stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成部分。主模块作为驱动模块,与之直接相连的模块用桩模块代替。在集成测试前要被测模块编制一些模拟其下级模块功能的替身模块,以代替之直接相连的模块用桩模块代替。在集成测试前要被测模块一些模拟其下级模块功能的替身模块,以代替被测模块的接口,接收或传递被测模块的数据,这些专供测试用的假模块称为被测模块的桩模块。
软件工程---软件测试
根据测试目的不同,性能测试 主要包括压力测试、负载测试、并发测试和可靠性测试等
软件的维护并不只是修正错误,为了满足用户提出的增加新功能,修改现有功能以及一般性的改进要求和建议,需要进行完善性维护,它是软件维护工作的主要部分;软件测试不可能揭露旧系统中所有潜在的错误,所以这些程序在使用过程中还可能发生错误,诊断和更正这些错误的过程称为改正性错误;为了改进软件未来的可维护性或可靠性,或者为了给未来的改进提供更好的基础而对软件进行修改,这类活动称为预防性维护。