软件工程总结

时间:2024.4.13

第一章软件与软件工程的概念

软件的概念:软件是计算机系统中与硬件相互依存的另一部分,软件包括程序,数据,及其相关文档的完整集合。程序是按事先设计的功能和性能要求执行的指令序列。数据是使程序能够正确地处理信息的数据结构。文档是与程序开发,维护和使用有关的图文资料。

程序的最小单位是函数及子程序,程序与数据是分离的,在面向对象程序设计时代,程序的最小单位是类,在类中封装了相关的数据及指令代码。

软件的特性,判断正误:1.软件是无形的、不可见的逻辑实体,因此,软件是无法描述的。(错)2、软件的开发特性是指软件需要大量手工劳动,难以自动化生产。(对)3、有缺陷的软件就是废品。(错)4、软件的生产指的是软件的复制。(错)5、由于软件的开发充满人的个性特点,因此管理并不决定软件开发的成败(错)。6、软件的开发环境往往就是软件的运行环境,或者与其兼容。(对)7、合格的软件产品不需要维护,软件需要维护说明其质量不合格。(错)8、软件可以不断改进,因此软件不需要废弃。(错)

软件的分类:1,系统软件:能与计算机硬件紧密配合在一起,使计算机系统各个部件,相关的软件和数据协调,高效的工作的软件。2,应用软件,是在系统软件的支持下,在特定区域内开发,为特定目的服务的一类软件。3,支撑软件,也叫工具软件,是协助用户开发软件的工具性软件。4,可复用软件,最初实现的典型的可复用软件是各种标准函数库,通常是由计算机厂商提供的系统软件的一部分。

IEEE给出的定义:软件工程是开发,运行,维护和修复软件的系统方法。软件的定义:计算机程序,方法,规则,相关的文档资料一集在计算机上运行时所必需的数据。

软件危机的典型表现1、成本太高,预算不准2、超过预计时间3、软件质量标准不明确4、生产率低5、缺乏文档资料,难以维护。原因:1,缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。2.软件人员与用户的交流存在障碍,除了知识背景的差异,缺少合适的交流方法及需求描述工具。3,软件开发过程不规范,缺少方法和规范的指导。4,随着软件规模的增大,其复杂性往往会呈指数级升高。5,缺少有效的软件评测手段,提交用户的软件质量差。

软件危机发生的主要原因有:1、遇到了无法解决的高难度技术问题(不是)2、无法招聘到足够的编程高手(不是)3、软件人员与用户互相不理解(是)4、计划和管理不科学、落实不力(是)5、软件质量标准不明确(是)

软件的质量特性包括(选择)问题1:1、功能性 2、可靠性 3、使用性 4、经济性(不包括)

软件的质量特性包括(选择)问题2:1、效率 2、可维护性3、可移植性 4、经济性(不包括)

软件工程的目标是运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短的周期,较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。 软件生存期:软件的孕育,诞生,成长,成熟,衰亡的生存过程。软件生存期由软件定义,软件开发和运行维护三个时期组成,每个时期又可划分为若干个阶段。2、软件定义时期的任务主要任务是解决“做什么”的问题,确定工程的总目标和可行性;实现工程目标的策略及系统功能;估计需要的资源和成本;制订工程进度表。通常又分为3个阶段:问题定义,可行性研究,需求分析。3、软件开发时期的任务和包含阶段主要任务是解决“如何做”的问题,设计和实现定义的软件。由概要设计、详细设计、编码和测试4个阶段组成。4、软件运行维护时期的主要任务是使软件持久地满足用户的需要,通常有4类维护活动:改正性维护;适应性维护;完善性维护;预防性维护。

开发过程中的典型文档:软件需求规格说明书。项目计划。软件测试计划。软件设计说明书。用户手册。

软件工程各个阶段的基本任务1、问题定义与可行性研究:解决什么问题?能否解决问题?是否值得做?”2、需求分析:做什么3、软件设计:如何实现4、程序编码和单元测试:实现设计5、集成和系统测试:组装连接测试、功能验证测试6、软件运行和维护:修改

第二章软件工程方法与工具

软件工具:是指能支持软件生存周期中某一阶段(如系统定义,需求分析,设计,编码,测试,维护等)的需要而使用的软件工具。

需求分析工具1、结构化图形工具箱。通过数据流程图DFD进行功能分析。包括DFD图形工具,实体-关系图(E-R)图形工具,Jackson图形工具,Warnier图形工具,Visio综合工具,2、面向对象工具, Rational Rose,PowerDesigner,Visio

设计工具(1)概要设计工具:设计目标软件的体系结构、控制结构和数据结构。软件的体系结构通常用模块结构图来描述。模块的数据结构通常用实体-关系图来描述。Visio。Rational Rose

详细设计工具。设计模块的算法和内部实现细节。详细设计描述方法有输入-处理-输出(IPO)图。问题分析图(PAD)。盒图(NS图)。流程图(FC)。程序设计语言(PDL)。结构化语言。判定表。判定树

第三章软件需求获取与结构化分析方法

需求获取的主要任务是与用户沟通,了解系统或产品的目标是什么,客户或用户想要实现什么,系统和产品如何满足业务的要求,最终系统或产品如何用于日常工作。获取并理解用户的需求是软件工程师所面对的最困难的任务之一。

需求分析的困难体现:系统的目标或范围问题;需求不准确性问题;需求的易变问题

需求获取的任务:发现和分析问题,并分析问题的原因,结果关系。与用户进行各种方式的交流,并使用调查研究方法收集信息。按照三个成分即数据,过程和接口观察问题的不同侧面。将获取的需求文档化,形式有用例,决策表,决策树等。

需求获取的原则:深入浅出,以流程为主线。

获取具体的需求的途径1,与用户交流。2,现有产品或竞争产品的描述文档。3,系统需求规格说明。4,当前系统的问题报告和改进要求。5,市场调查和用户问卷调查。6,观察用户如何工作。

关于需求获取问题的认识辨析:1、没有与用户交流就不可能获取系统需求。(不能获取准确、全面的系统需求)2、没有经过与用户交流而获取的需求都是不真实的需求。(一些需求从用户以外的途径获取)3、系统开发必须独立完成,参考类似系统及技术文档属于抄袭行为,应予避免。(系统开发包含研究行为,应了解对手产品,取长补短)4、系统开发包含改进当前系统的缺陷和不足。(对)5、需求调查时,用户所说的需求未必是真实、准确的需求,因此需求分析需要依赖用户,但是不能过分迷信用户。(对,需求描述是困难的)6、观察用户如何工作也是一种需求调查行为。(对)

软件需求分析阶段的任务:需求获取,需求分析,需求定义,需求验证。完整性,正确性,合理性,可行性,充分性。

结构化分析方法:是一种建模技术。核心是数据字典。

功能模型用数据流图(DFD)来描述使用实体—关系图(ER图)建立数据模型。使用状态转换图(简称状态图)建立系统行为模型。数据字典。加工规格说明。需求建模的依据是需求描述

数据建模,ER图,需要认真看。

第四章结构化设计方法

结构化设计方法是在模块化,自顶向下逐步细化及结构化程序设计技术基础上发展起来的,结构化设计方法可分为两类:一类是根据系统的数据流进行设计,称为面向数据流的设计,

或称过程驱动设计,另一类是根据系统的数据结构进行设计,称为面向数据结构的设计,或称数据驱动的设计。

软件的体系结构设计,模块化设计都是分而治之策略的具体表现。

模块化是将整体软件划分为独立命名且可独立访问的模块,不同的模块通常具有不用的功能或指责,每个模块可独立开发,测试,最后组装成完整的软件。模块是构成软件的基本构件。 模块并不是越小越好,当模块数目增加时,每个模块的规模将减小,开发单个模块的成本确实减少了,但是随着模块数目增加,模块之间关系的复杂程度也会增加,设计模块间接口所需要的工作量也将增加。

模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而与软件系统中其他模块的接口是简单的,若一个模块只具有单一的功能且与其他模块没有太多的联系,那么称此模块有独立性。

自顶向下,逐步细化:抽象是指忽视一个主题中与当前目标无关的方面,以便更充分地注意与当前目标有关的方面,当我们进行软件设计时,设计开始时应尽量提高软件的抽象层次,按抽象级别从高到低进行软件设计,将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确定整个系统的体系结构,这就是自顶向下逐步细化过程。

复用是指同一事物不做修改或稍加修改就可以多次重复使用,将服用的思想用于软件开发,称为软件复用。1是尽量使用已有的构件。2是如果确实需要创建新的构件,则在设计时应该考虑将来的可重复使用性。

软件设计的阶段与任务:从工程管理的角度,可以将软件设计分为概要设计阶段和详细设计阶段。从技术的角度,传统的结构化方法将软件设计划分为体系结构设计、数据设计、接口设计和过程设计4部分;概要设计包括体系结构设计、数据设计、接口设计。详细设计即过程设计,对结构表示进行细化,得到软件详细的数据结构和算法。

软件设计各项设计工作的依据:体系结构设计,定义软件模块及其之间的关系,依赖于数据流图。数据设计,依赖于ER图。接口设计,依赖于顶层数据流图。过程设计:依赖于加工规格说明、状态图

基于数据流方法的设计过程:1.复查并精化数据流图。2.确定数据流图中数据流的类型,典型的数据流类型有变换型数据流和事务型数据流。3.导出初始的软件结构图。4.逐级分解。

5.精化软件结构。6.导出接口描述和全局数据结构。

软件模块结构的改进方法:1,模块功能的完善化。2,消除重复功能,改善软件结构。3,模块的作用范围应在控制范围之内。4,尽可能减少高扇出结构,随着深度增大扇入。5,避免或减少使用病态连接。6,模块的大小要适中。

接口设计的依据是数据流图中的自动化系统边界。

自顶向下,逐步细化的设计过程主要包括两个方面:一是将复杂问题的解法分析和细化成由若干个模块组成的层次结构,二是将每个模块的功能逐步分解细化为一系列的处理。

第五章编码

编码容易出现的风格不足1、变量或函数名字缺乏具体含义2、变量或函数名字与其用途不符3、变量或函数未加上必要的注释4、函数未说明其功能、参数的意义5、引用的符号未加以解释和说明6、对循环等重要的程序语句未注释7、对用到的重要库函数没有解释说明

8、对结构体等复杂数据结构的组成成分没有解释说明9、缺乏必要的提示语句

第六章软件测试方法

软件测试是在软件投入生产性运行之前,对软件需求分析,设计规格说明和编码的最终复审,是软件质量控制的关键步骤。软件测试是为了发现错误而执行程序的过程。


第二篇:大型软件课程实践个人总结


学号:

姓名:

负责的阶段:软件测试

个人小结:

在完成大型软件课程实践这一过程中我负责软件测试和编码。在这个过程中体会最深的有两点:1是软件开发人员之间的沟通;2:测试在软件开发中的重要性。

关于第一点,虽然以前被强调过了很多遍但是我一直没有很深的体会。但在这次参与编码的过程中队这点感慨颇深。从一开始关于软件功能的定位到具体实现过程中,和其他编码人员之间的沟通协调必不可少。代码的编写也不是一蹴而就,而是随着开发的过程中不断进行调节。

关于第二点,我实在是在测试中吃尽了苦头才深刻认识到这点。不管是最开始的单元测试还是最后的集成测试,这些测试都必须进行不止一次。在测试中最痛苦的是,有错却不知错在何处。我发现有一些错误是和开发人员的编程水平和习惯有很大关系的。。拿我自己举例,在测试过程中总是不太规范,导致代码最后格式混乱,也浪费了大量的时间。

当然这次课程实践最重要的收获就是我们完整模拟了一次软件开发的流程,从最开始的需求分析,到最后的测试,用户手册的编写都全程参与。这是一次宝贵食物经验,使我们软件开发的认识不再仅仅停留于课本,二十经由自己的有了深刻的体会。

更多相关推荐:
软件工程总结

1.软件危机的定义:计算机软件的开发和维护过程中所遇到的一系列严重问题。出现的问题:a.如何开发软件,已满足对软件日益增长的需求b.如何维护数量不断膨胀的已有软件特征:软件具有长期性和症状不明显2.软件工程:指…

软件工程总结

1何谓科学,何谓工程?(第一章)科学是反映自然、社会、思维的发展与变化规律的知识体系。科学(研究)是以发现为核心的人类活动,探索事物的本质和运动规律,追求真理,认识世界,回答“为什么”,体现非物质形态财富。工程…

软件工程总结

一个软件从开始计划起,到废弃不用止,称为软件生命周期。一般来说,软年生命周期包括计划、开发、运行三个时期,每一个时期又可分为若干个更小的阶段:1.可行性研究。这个阶段主要是确定软件的开发目标及其可行性,给出其在…

软件工程总结

软件工程过程:是为获得软件产品,在软件工具的支持下由软件工程师完成的一系列软件工程活动。针对不同类型的软件产品,同一软件开发机构也可能采用多个不同的软件工程过程。是把输入转化为输出的一组彼此相关的资源和活动。从…

软件工程总结1

Personally,Ithinkthesoftwaredevelopmentprocesstoachievespecifictoeachstepoftheworktocompletewhatisveryfle…

软件工程总结

软件工程软件:计算机程序,方法,规则和相关文档资料及在计算机上运行所需的必要的数据。软件=程序+数据+文档资料软件的特点:1软件是一种逻辑产品2软件没有明显的制造过程3软件对硬件和环境的依耐性4软件不存在机械的…

软件工程总结

软件工程总结第一章:1.软件的定义:(1)在运行中提供所希望的功能和性能的指令集(即程序)(2)使程序能够正确运行的数据结构(3)描述程序研制过程和方法所使用的文档2.软件的特点:(1)软件是一种逻辑实体,而不…

软件工程课程设计心得总结

软件工程课程设计个人总结学期就快要结束了到了最后一周居然还有软件工程课程设计还要考试真的有点忙啊不管怎样还是好好干吧把对工程的理论研究学习成果用于实践也是一种检验学习成果和提升工程能力的有效手段嘛工作内容安排软...

软件工程实训(java)总结报告

华东交通大学软件学院软件工程实训总结报告华东交通大学软件学院20xx年6周软件工程实训总结报告专业班级09软件电气4班学号20xx2110080402学生姓名xx指导教师xx所在项目远程实验室管理系统项目经理x...

软件工程总结样本

软件工程学习总结一软件工程概念和意义软件工程的概念软件工程是开发运行维护和修复的系统方法它的三要素是方法工具和过程软件工程的意义软件工程的作用就是将软件设计和开发作为一项工程对待采用严格的设计开发规范将软件产业...

软件工程知识总结

1软件是能够完成预定功能和性能的可执行指令使得程序能够适当的操作信息的数据结构描述程序的操作和使用的文档软件的特点是逻辑产品非物理产品由开发或工程化而形成无明显的制造过程存在退化问题必须维护软件2软件发展历史程...

十.项目开发总结报告 (软件工程模板)

十项目开发总结报告十项目开发总结报告1引言111编写目的112项目背景113定义114参考资料22开发结果221产品222主要功能及性能223所用工时224所用机时225进度226费用33评价331生产率评价3...

软件工程总结(52篇)