软工视频到底在讲什么?
2016-11-30 10:19
183 查看
二零零六年,初冬…… 三三两两,独自成群,我开始了软件工程的学习,从特长远的角度看,我迈出了成为软件工程师的第一步,其实一开始学习我是迷茫的,看了一个多星期不知道自己看了些什么东西,前面看后面忘,快看完了也没有什么收获,后来去图书馆找了本软件工程的书看了看,大概看了两本吧,才大概知道了软件工程到底讲了些什么东西,在我看来软件工程就是制造软件的一系列过程,从无到有,经过一系列麻烦复杂的步骤把一个具有自己或者客户功能意向的软件制造出来。那么从专业角度来看什么是软件工程呢?制造软件的一系列步骤又是什么呢?它的制作过程都需要什么东西呢?
好,接下来我们就来逐一讲解一下。
什么是软件工程?
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率。
它的内涵包括什么?
一、软件工程过程是指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动,包括以下四个方面:
1、P(Plan)——软件规格说明。规定软件的功能及其运行时的限制。
2、D(DO)——软件开发。开发出满足规格说明的软件。
3、C(Check)——软件确认。确认开发的软件能够满足用户的需求。
4、A(Action)——软件演进。软件在运行过程中不断改进以满足客户新的需求。
二、从软件开发的观点看,它就是使用适当的资源(包括人员,软硬件资源,时间等),为开发软件进行的一组开发活动,在活动结束时输入(即用户的需求)转化为输出(最终符合用户需求的软件产品)。
三个阶段:定义阶段:可行性研究初步项目计划、需求分析;开发阶段:概要设计、详细设计、实现、测试;运行和维护阶段:运行、维护、废弃
原则:1、抽象;2、信息隐蔽;3、模块化;4、局部化;5、确定性;6,一致性;7、完备性;8、可验证性
它经过了一系列什么过程?
软件工程视频的内容:
最后的战役;
这是一个系列的过程,还包括最后的维护,管理等内容,其中还有一些比较重要的知识点和专业名词比如
甘特图
①简介
即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。
1、以图形或表格的形式显示活动;
2、一种通用的显示进度的方法;
3、构造时应包括实际日历天和持续时间,并且不要将周末和节假日算在进度之内。
②优点
图形化概要,通用技术,易于理解;
中小型项目一般不超过30项活动;
有专业软件支持,无须担心复杂计算和分析。
描述每个模块输入、输出、处理功能及模块调用的详细情况,相当于为一个模块写的一份说明。
IPO图的主体是算法说明部分(数据处理),可采用结构化语言、判定表、判定树,也可用N-S图、问题分析图和过程设计语言等工具进行描述,要准确而简明的描述模块执行的细节。在IPO图中,输入、输出数据来源于数据字典,局部数据项是指个别模块内部使用的数据,与系统的其它部分无关,仅由本模块定义、存贮和使用,注释是对本模块有关问题作必要的说明。即根据数据流图、数据字典及H图绘制具体的IPO图
既可用于表示程序逻辑,也可用于描述数据结构。是一种程序结构可见性好、结构唯一、易于编制、易于检查和易于修改的详细设计表现方法。
它用二维树形结构的图表示程序的控制流,以PAD图为基础,遵循机械的走树规则就能方便地编写出程序,用这种图转换为程序代码比较容易。
②特征
1)结构清晰,结构化程度高;
2)易于阅读
3)最左端的纵线是程序主干线,对应程序的第一层结构;每增一层PAD图向右扩展一条纵线,帮程序的纵线数等于程序层次数。
4)程序执行:从PAD图最左主干线上端结点开始,自上而下、自左向右依次执行,程序终止于最左主干线。
③优点
1.使用表示结构优化控制结构的PAD符号所设计出来的程序必然是程序化程序
2.PAD图所描述的程序结构十分清晰。图中最左边的竖线是程序的主线,即第一层控制结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数;
3.用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维数型结构的图形,程序从图中最左边上端的结点开始执行,自上而下,从左到右顺序执行;
4.很容易将PDA图转换成高级程序语言源程序,这种转换可由软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。
5.可用于表示程序逻辑,也可用于描述数据结构
6.PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象程序,随着设计工作的深入而使用“def”符号逐步增加细节,直至完成详细设计。
一个同模块结构图等价的结构化设计图形工具,它也被广泛的使用在概要设计阶段。它又分为H图,IPO图和HIPO图三种。
HIPO图由层次结构图和IPO图两部分构成,前者描述了整个系统的设计结构以及各类模块之间的关系,后者描述了某个特定模块内部的处理过程和输入/输出关系。
它是表示软件系统结构的工具。HIPO图以模块分解的层次性以及模块内部输入、处理、输出三大基本部分为基础建立的。
描述软件总的模块层次结构,矩形框表示一个模块,矩形框之间的直线表示模块之间的调用关系,同结构图一样未指明调用顺序。它的设计依据是系统的模块划分,主要由设计者决定。在机房收费系统中,H图可以按照一般用户、操作员、管理员来划分层次
时序图(Sequence Diagram),亦称为序列图或循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。
②组成元素
时序图中包括如下元素:角色,对象,生命线,控制焦点和消息。
1、角色(Actor)
系统角色,可以是人或者其他系统,子系统。
2、对象(Object)
对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表。
3、生命线(Lifeline)
生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间 的消息存在于两条虚线间。
4、控制焦点(Activation)
控制焦点代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。它可以被理解成C语言语义中一对花括号“{}”中的内容。
5、消息(Message)
消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。
③创建步骤
1、确定交互过程的上下文;
2、识别参与过程的交互对象;
3、为每个对象设置生命线;
4、从初始消息开始,依次画出随后消息;
5、考虑消息的嵌套,标示消息发生时的时间点,则采用FOC(focus of control);
6、说明时间约束的地点。
好,接下来我们就来逐一讲解一下。
什么是软件工程?
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作效率和生活效率。
它的内涵包括什么?
一、软件工程过程是指为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动,包括以下四个方面:
1、P(Plan)——软件规格说明。规定软件的功能及其运行时的限制。
2、D(DO)——软件开发。开发出满足规格说明的软件。
3、C(Check)——软件确认。确认开发的软件能够满足用户的需求。
4、A(Action)——软件演进。软件在运行过程中不断改进以满足客户新的需求。
二、从软件开发的观点看,它就是使用适当的资源(包括人员,软硬件资源,时间等),为开发软件进行的一组开发活动,在活动结束时输入(即用户的需求)转化为输出(最终符合用户需求的软件产品)。
三个阶段:定义阶段:可行性研究初步项目计划、需求分析;开发阶段:概要设计、详细设计、实现、测试;运行和维护阶段:运行、维护、废弃
原则:1、抽象;2、信息隐蔽;3、模块化;4、局部化;5、确定性;6,一致性;7、完备性;8、可验证性
它经过了一系列什么过程?
软件工程视频的内容:
最后的战役;
这是一个系列的过程,还包括最后的维护,管理等内容,其中还有一些比较重要的知识点和专业名词比如
甘特图
①简介
即以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。
1、以图形或表格的形式显示活动;
2、一种通用的显示进度的方法;
3、构造时应包括实际日历天和持续时间,并且不要将周末和节假日算在进度之内。
②优点
图形化概要,通用技术,易于理解;
中小型项目一般不超过30项活动;
有专业软件支持,无须担心复杂计算和分析。
IPO图
①简介描述每个模块输入、输出、处理功能及模块调用的详细情况,相当于为一个模块写的一份说明。
IPO图的主体是算法说明部分(数据处理),可采用结构化语言、判定表、判定树,也可用N-S图、问题分析图和过程设计语言等工具进行描述,要准确而简明的描述模块执行的细节。在IPO图中,输入、输出数据来源于数据字典,局部数据项是指个别模块内部使用的数据,与系统的其它部分无关,仅由本模块定义、存贮和使用,注释是对本模块有关问题作必要的说明。即根据数据流图、数据字典及H图绘制具体的IPO图
PAD图
①简介既可用于表示程序逻辑,也可用于描述数据结构。是一种程序结构可见性好、结构唯一、易于编制、易于检查和易于修改的详细设计表现方法。
它用二维树形结构的图表示程序的控制流,以PAD图为基础,遵循机械的走树规则就能方便地编写出程序,用这种图转换为程序代码比较容易。
②特征
1)结构清晰,结构化程度高;
2)易于阅读
3)最左端的纵线是程序主干线,对应程序的第一层结构;每增一层PAD图向右扩展一条纵线,帮程序的纵线数等于程序层次数。
4)程序执行:从PAD图最左主干线上端结点开始,自上而下、自左向右依次执行,程序终止于最左主干线。
③优点
1.使用表示结构优化控制结构的PAD符号所设计出来的程序必然是程序化程序
2.PAD图所描述的程序结构十分清晰。图中最左边的竖线是程序的主线,即第一层控制结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数;
3.用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维数型结构的图形,程序从图中最左边上端的结点开始执行,自上而下,从左到右顺序执行;
4.很容易将PDA图转换成高级程序语言源程序,这种转换可由软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。
5.可用于表示程序逻辑,也可用于描述数据结构
6.PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象程序,随着设计工作的深入而使用“def”符号逐步增加细节,直至完成详细设计。
HIPO图
①简介一个同模块结构图等价的结构化设计图形工具,它也被广泛的使用在概要设计阶段。它又分为H图,IPO图和HIPO图三种。
HIPO图由层次结构图和IPO图两部分构成,前者描述了整个系统的设计结构以及各类模块之间的关系,后者描述了某个特定模块内部的处理过程和输入/输出关系。
它是表示软件系统结构的工具。HIPO图以模块分解的层次性以及模块内部输入、处理、输出三大基本部分为基础建立的。
H图
①简介描述软件总的模块层次结构,矩形框表示一个模块,矩形框之间的直线表示模块之间的调用关系,同结构图一样未指明调用顺序。它的设计依据是系统的模块划分,主要由设计者决定。在机房收费系统中,H图可以按照一般用户、操作员、管理员来划分层次
时序图
①简介时序图(Sequence Diagram),亦称为序列图或循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。
②组成元素
时序图中包括如下元素:角色,对象,生命线,控制焦点和消息。
1、角色(Actor)
系统角色,可以是人或者其他系统,子系统。
2、对象(Object)
对象代表时序图中的对象在交互中所扮演的角色,位于时序图顶部和对象代表。
3、生命线(Lifeline)
生命线代表时序图中的对象在一段时期内的存在。时序图中每个对象和底部中心都有一条垂直的虚线,这就是对象的生命线,对象间 的消息存在于两条虚线间。
4、控制焦点(Activation)
控制焦点代表时序图中的对象执行一项操作的时期,在时序图中每条生命线上的窄的矩形代表活动期。它可以被理解成C语言语义中一对花括号“{}”中的内容。
5、消息(Message)
消息是定义交互和协作中交换信息的类,用于对实体间的通信内容建模,信息用于在实体间传递信息。允许实体请求其他的服务,类角色通过发送和接受信息进行通信。
③创建步骤
1、确定交互过程的上下文;
2、识别参与过程的交互对象;
3、为每个对象设置生命线;
4、从初始消息开始,依次画出随后消息;
5、考虑消息的嵌套,标示消息发生时的时间点,则采用FOC(focus of control);
6、说明时间约束的地点。
相关文章推荐
- 那么到底什么是一个系统呢?(软工系列文章之五)
- 视频流中的DTS/PTS到底是什么 转载
- (转自)视频流中的DTS/PTS到底是什么;
- 视频和图像到底有什么区别
- 到底EJB是什么
- 公钥加密算法到底什么鬼
- 【转载】ORM的概念, ORM到底是什么
- 到底什么是TCP连接?
- fedora下安装telnet,ftp,vnc----这三个工具到底是什么
- 因为涉嫌歧视女性被开除的那位工程师到底在备忘录上写了什么?
- 科普 | 12个关键词,告诉你到底什么是机器学习
- http的无状态无连接到底是什么含义
- ASIHttpRequest的requestFinish代理函数到底在什么线程执行
- 数字万用表什么的都有“五位半”之说,到底什么是所谓的五位半?
- 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
- 大学的目的到底是什么
- 分布式锁,进程锁,线程锁到底是什么
- web server和application server到底有什么区别?
- 到底如何区分什么是架构、框架、模式和平台