软件工程教案学习笔记
软件工程学习笔记

软件工程学习笔记一、引言软件工程是指通过系统化、规范化和数量化的方法来开发、运行和维护软件的一门学科。
在当今日益发展的科技领域中,软件工程无疑扮演着至关重要的角色。
本文将从软件工程的基本概念、原理和方法入手,对软件工程学习进行详尽的笔记整理。
二、软件工程的基本概念软件工程的基本概念包括软件、软件生命周期和软件过程。
1.软件:软件是指对计算机指令和数据的组织,以及在计算机上执行这些指令的所有程序和数据的总称。
它是计算机系统中不可见的部分,以代码形式存在。
2.软件生命周期:软件生命周期是指软件从诞生到退役的整个过程,包括需求分析、设计、编码、测试、发布和维护等阶段。
3.软件过程:软件过程是指完成软件开发的一系列活动和任务的集合。
常见的软件过程模型包括瀑布模型、迭代模型和敏捷模型等。
三、软件工程的原理软件工程的原理是软件工程学科中的基本理论和法则,包括模块化原理、结构化原理和信息隐藏原理等。
1.模块化原理:将一个大型复杂的系统划分成若干个相对独立且易于管理的模块,以降低开发的复杂度。
2.结构化原理:通过模块化、顺序、选择和重复四种控制结构来组织和设计程序,以提高代码的可读性和可维护性。
3.信息隐藏原理:将系统中的细节和模块之间的关系隐藏起来,只对外提供简洁的接口,以便于模块的替换和重用。
四、软件工程的方法软件工程的方法主要包括软件需求分析、软件设计、软件测试和软件维护等。
下面对每个方法进行简要介绍。
1.软件需求分析:通过与用户的沟通和交流,收集并分析用户的需求,明确软件系统的功能和性能要求。
2.软件设计:在软件需求分析的基础上,进行软件结构、算法和数据结构的设计,确保软件系统具备可靠性和可扩展性。
3.软件测试:通过测试用例和测试技术,验证软件系统的正确性、健壮性和可靠性。
4.软件维护:及时修复软件中的缺陷和问题,更新和改进软件功能,以满足用户的需求。
五、软件工程的工具软件工程的工具是指用于支持软件开发过程的各种工具和技术,包括集成开发环境(IDE)、版本控制系统、测试工具和项目管理工具等。
软件工程笔记

软件工程笔记软件工程是一门关于构建和维护软件系统的学科。
在这门学科中,我们需要掌握一系列的原理和方法,以确保软件的质量和可靠性。
本文将对软件工程的基本概念和常用工具进行笔记总结,帮助读者更好地理解并应用软件工程的知识。
一、软件生命周期软件开发的过程可以被看作是一个生命周期,其中包含了多个阶段。
常见的软件生命周期模型有瀑布模型、迭代模型和敏捷模型等。
1. 瀑布模型瀑布模型是最经典的软件开发模型之一,它将软件开发过程划分为需求分析、设计、编码、测试和维护五个阶段。
开发团队需逐个完成这些阶段,且每个阶段的结果是固定的,即前一阶段的输出作为后一阶段的输入。
2. 迭代模型迭代模型是在瀑布模型基础上发展而来的一种软件开发模型。
该模型将整个开发过程划分为多个迭代周期,每个迭代都包含需求分析、设计、编码、测试和维护等阶段。
每个迭代的输出可作为下一次迭代的输入,以此循环进行。
3. 敏捷模型敏捷模型强调快速迭代和反馈,鼓励团队协作和灵活性。
开发团队通过短周期的迭代,不断交付可用的软件版本,并根据用户反馈进行调整和改进。
敏捷开发方法有Scrum、XP等。
二、需求工程需求工程是软件工程的重要环节,它包括需求获取、需求分析、需求规格和需求验证等过程。
1. 需求获取需求获取是指通过各种技术手段和方法,从用户、领域专家和相关文档中获取软件系统的需求信息。
常用的需求获取技术包括访谈、问卷调查、原型设计和场景分析等。
2. 需求分析需求分析是对获取的需求进行理解和分类的过程。
分析人员需要识别出用户的需求,确定需求的优先级和约束条件,并将其转化为可操作的规格说明。
3. 需求规格需求规格是将需求写入规范文档的过程。
通常采用的规格化方法有自然语言、用例和面向对象建模等。
4. 需求验证需求验证是确保规格所描述的需求能够满足用户期望的过程。
常用的验证方法包括检查列表、原型演示和用户评审等。
三、软件设计软件设计是将需求转化为软件结构和组件的过程。
自考软件工程02333 笔记

自考软件工程02333 笔记一、概述软件工程作为一门新兴的学科,旨在指导和管理软件开发过程中的各种活动,以便按时、按质、按成本地完成软件工程项目。
本课程通过系统地介绍软件工程的基本理论、基本方法、基本技术和实践应用,以培养学生的软件工程思维和实际操作能力。
二、课程要求1. 了解软件工程的基本概念、基本原理和基本方法;2. 掌握软件工程项目的开发过程和管理过程;3. 掌握软件工程开发过程中的基本工具和技术;4. 了解软件工程应用领域的发展趋势与前沿技术。
三、课程内容1. 软件工程概述软件工程的定义、历史、发展、意义、主要任务等;2. 软件生命周期软件生命周期模型、活动、任务、文档、质量保证;3. 需求工程需求获取、需求分析、需求规格说明、需求验证等;4. 软件设计结构化设计、面向对象设计、界面设计、数据库设计等;5. 软件构建编码规范、程序设计、测试、集成等;6. 软件测试测试基本概念、测试方法、测试工具、测试用例设计等;7. 软件维护软件维护的类型、需求、过程、技术等;8. 软件质量管理质量计划、质量保证、缺陷管理、度量与分析等;9. 项目管理项目计划、进度管理、成本管理、风险管理等;10. 软件工程发展趋势软件工程的前沿技术、新兴趋势及应用领域。
四、学习方法1. 认真听课,理清教学内容;2. 多做习题,巩固理论知识;3. 积极参与讨论,提升理论水平;4. 关注实践应用,培养实际操作能力;5. 及时总结,形成完整的软件工程知识体系。
五、考试重点1. 考试内容:对软件工程的基本概念、基本原理、基本方法和实践应用的掌握程度;2. 考试形式:闭卷考试,以选择题、简答题、计算题形式出题;3. 考试要求:理论与实践相结合,注重分析和解决实际问题的能力。
六、学习建议1. 认真学习课本内容,了解软件工程的基本理论和方法;2. 多参加实验课和讨论班,加强理论与实践的结合;3. 多做习题,熟悉考试题型和内容要点;4. 关注软件工程的发展趋势,了解前沿技术和新兴应用。
软件工程复习笔记整理

软件工程复习笔记整理1.软件工程三要素:方法、工具(case、VSS)、过程2.软件危机:①定义:软件开发和维护过程中遇到的一系列严重问题,包括两个方面:如何开发软件以满足不断增长、日趋复杂的需求;如何维护数量不断膨胀的软件产品。
②产生原因:与软件本身特点有关;软件开发与维护方法不正确3.软件=程序+数据+文档4.软件工程:① 软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。
② 特点:强调规范化、文档化5.软件生命周期:软件生命周期即软件定义、运行、维护,最终到废弃的整个过程。
软件定义:问题定义、可行性研究、需求分析运行阶段:总体设计、详细设计、编码及测试、综合测试维护阶段:持续满足用户需求6.软件过程:为了获得高质量软件所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
① 瀑布模型:适用范围:需求明确、一般不会更改的软件开发特点:阶段间具有顺序性、依赖性;推迟实现(物理上);质量保证(严格的文档要求以及文档评审)②快速原型模型:适用范围:需求不明确的软件开发特点:快速建立原型;线性顺序开发③增量模型:适用范围:特点:分批逐步向客户提交产品;技术要求高;本身自相矛盾。
④螺旋模型:适用范围:内部开发的大规模软件项目特点:风险驱动7.可行性研究(一个简单的需求调研过程),包括技术可行性、经济可行性和操作可行性。
8.需求分析:需求分类:大致分为功能性需求和非功能性需求;其中非功能性需求包括:性能需求、可靠性需求、出错处理、接口需求、约束、逆向需求以及将来可能提出的需求。
9.数据流图和ER图:参考作业储蓄系统10.数据字典:①定义:包括四个方面,数据流、数据流分量、数据存储、处理。
②用途:分析阶段的工具11.概要设计的任务:确定模块以及模块之间的关系。
12.内聚与耦合:进行结构化设计的有力工具① 耦合:对一个软件结构不同模块间互联程度的度量,其强弱程度取决于模块间接口的复杂程度,是影响软件复杂度的一个重要因素。
软件工程笔记分享

软件工程笔记分享
- 软件工程的定义:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
- 软件工程的目标:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可维护性、可复用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。
- 软件生命周期:软件生命周期是指从软件定义、开发、使用、维护到退役的整个过程。
- 软件开发过程模型:瀑布模型、迭代模型、敏捷开发模型等。
- 软件需求分析:确定软件系统需要完成的功能和性能要求。
- 软件设计:设计软件系统的架构、模块、接口和数据结构。
- 软件编码:编写代码实现软件系统的功能。
- 软件测试:验证软件系统是否满足需求和设计要求。
- 软件维护:对软件系统进行修改、完善和升级。
软件工程是一门涉及多个学科领域的交叉学科,需要掌握计算机科学、数学、工程学等方面的知识。
在软件开发过程中,需要遵循软件工程的原则和方法,以确保软件系统的质量和可靠性。
软件工程课堂笔记简版

? ②优缺点:
? 优点:能在较短时间内向用户提交可完成部分工作的产品。用户有较充裕的时间学习和适应新产
品。易于保证核心功能正确。可以基于早期版本来获取需求。项目完全失败的风险小。可以为那些 创新的功能开拓市场。规避了资源缺乏的风险。
? 缺点:把用户需求转化为功能递增的不同版本可能比较难。以确定所有版本共需的公用模块。
? CH01 软件和软件工程 ? 1. 软件的特点:软件是设计开发的,而不是传统意义上生产制造的; 软件不会磨损,但是会退化;
多数软件仍是根据实际顾客需求定制的; 在软件设计中,大规模的复用才刚刚开始。
? 2. IEEE对软件工程的定义:将系统化的、规范的、可量化的方法应用于软件的开发、运行和维护, 即将工程化方法应用于软件;上述方法 的研究。
? 6.协同开发模型 :定义一系列事件,触发软件工作活动、动作或者任务的状态转换。更适合于 client/server 应用。定义一个过程网络活动代替一个事件的序列。
? 7. 各种模型的比较:
? 8.统一过程(UP——Unified Process): ? ①宗旨:用例驱动,以架构为核心,迭代并且增量。
增量)
?
形成关于一个发布版本的基本承诺
?
在第一个版本发布之后,XP 团队计算项目的速度。
?
对待开发的故事排序方法:所有选定故事在几周内尽快实现;具有最高权值的故事移到进度
表前 面先实现;高风险故事将首先实现。
?
项目速度:第一个发行版本中实现的客户故事个数。用于后续发行版本的发布日期和进度安
排,
? 调整软件发型内容和最终交付日期。
? 现实:这本宝典也许的确已经存在,但不能保证它已在实际中采用、反映了软件工程的现状、可以 适 应不同应用环境、在缩短交付时间的同时还关注保证产品的质量等等。
《软件工程》学习笔记八

主 题:《软件工程》学习笔记内 容:《软件工程》学习笔记八——维护1软件维护的概念1.1软件维护的定义在软件运行/维护阶段对软件产品进行的修改就是所谓的维护。
维护的类型有三种:l改正性维护在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。
这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。
为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。
l适应性维护在使用过程中,外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。
为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。
l完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。
为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
这种情况下进行的维护活动叫做完善性维护。
实践表明,在几种维护活动中,完善性维护所占的比重最大。
即大部分维护工作是改变和加强软件,而不是纠错。
完善性维护不一定是救火式的紧急维修,而可以是有计划、有预谋的一种再开发活动。
事实证明,来自用户要求扩充、加强软件功能、性能的维护活动约占整个维护工作的50%。
其它--预防性维护预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。
预防性维护定义为:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。
在整个软件维护阶段所花费的全部工作量中,完善性维护占了几乎一半的工作量。
软件维护活动所花费的工作占整个生存期工作量的70%以上,这是由于在漫长的软件运行过程中需要不断对软件进行修改,以改正新发现的错误、适应新的环境和用户新的要求,这些修改需要花费很多精力和时间,而且有时会引入新的错误。
关系说明:三类维护占总维护比例维护在软件生存期所占比例1.2软件维护的特点1)影响软件维护的因素在软件的维护过程中,需要花费大量的工作量,从而直接影响了软件维护的成本。
软件工程教案

软件工程教案软件工程教案(一)一、教学目标1.知识目标:理解软件工程的基本概念、原理和方法。
2.能力目标:能够运用软件工程方法进行项目规划和开发,掌握常见的软件开发工具。
3.情感态度和价值观:培养学生对软件工程的热爱和兴趣,使其认识到软件工程对社会和经济发展的重要性。
二、教学内容1.软件工程的定义和重要性。
2.软件开发生命周期。
3.需求分析、设计、编码、测试和维护的软件开发阶段。
4.常见的软件开发工具。
三、教学难点与重点难点:理解软件开发生命周期的各个阶段及其关系。
重点:需求分析和设计阶段。
四、教具和多媒体资源1.黑板或白板。
2.投影仪和PPT。
3.软件工程实例展示。
五、教学方法1.激活学生的前知:回顾软件开发的基本概念和流程。
2.教学策略:讲解、示范、小组讨论和案例分析。
3.学生活动:分组进行案例分析和讨论。
六、教学过程1.导入:故事导入,介绍一个成功的软件开发案例,强调软件工程的重要性。
2.讲授新课:详细讲解软件工程的定义、原理和方法,以及软件开发生命周期的各个阶段。
3.巩固练习:提供几个软件开发案例,让学生进行需求分析和设计。
4.归纳小结:回顾本节课的重点和难点,总结软件工程的基本概念和方法。
七、评价与反馈1.设计评价策略:小组报告和口头反馈。
2.为学生提供反馈,指导改进:根据学生的报告和讨论,指出问题并给予建议。
八、作业布置1.阅读教材中关于软件工程的章节。
2.选择一个实际项目,进行需求分析和设计,写出报告。
3.收集关于软件工程的最新动态或新闻,进行阅读和理解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章软件工程概述1.软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据和其相关文档的完整集合2.程序:是按照事先设计的功能和性能要求执行的指令序列(Instructions)3.数据:是使程序能够正确操纵信息的数据结构(Data Structures)4.文档:是与程序开发,维护和使用相关的图文资料(Documents)5.软件工程:是用科学知识和技术原理来定义、开发、维护软件的一门学科,它是涉及计算机科学、工程科学、数学、管理学等领域的一门综合性的交叉学科6.软件工程的目标:是从技术和管理上采取多种措施,组织实施软件工程项目来建造一个大型软件系统,并最终希望能够得倒项目的成功7.软件工程的内容:软件工程研究的主要内容是指软件开发技术(软件开发方法、过程、工具和环境)和软件开发管理(软件开发管理学、经济学、心里学)两个方面8.软件工程要素:方法、工具和过程9.软件工程的生命周期:是指一个软件从提出开发要求开始到该软件爆废为止的整个时期,其包括了系统分析、系统设计、工程实施和软件维护四个阶段10.软件生存周期阶段划分原则:各阶段任务应尽可能独立,同一阶段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂度,简化管理,有利于软件工程项目的开发与管理。
11.软件生存周期的活动:包括工程调研、可行性研究、需求分析、总体设计、详细设计、编码、测试、调试、试运行和维护等活动12.按照工程化阶段思想进行划分:软件工程生存周期可被划分为:前期工程(工程调研,可行性研究,需求分析)、设计工程(总体设计,数据库设计,应用模型设计,详细设计)、数据工程(数据预处理,数据采集,数据处理)、工程实施(编制,测试,调试,试运行)、维护工程(数据库维护,软硬件维护)5个阶段13.软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型,如:瀑布模型,增量模型,螺旋模型,喷泉模型,智能模型等14.瀑布模型:是将软件生存周期各活动规定为依线性顺序连接的若干阶段的模型,包括可行性研究,需求分析,总体设计,详细设计,编码,测试和维护,是以文档为驱动的,适合于需求很明确的软件工程项目的开发15.瀑布模型的特点和缺点:特点:强调每个阶段的严格性,强点以里程碑开发原则为基础,是一种整体开发模型,适合于功能和性能明确、完整、无重大变化的软件工程项目的开发。
缺点:不支持演化,缺乏应对软件需求变化的机制,缺乏灵活性,使最终产品将难于维护。
16.增量模型:是在需求难以完善明确的情况下,由快速分析而构造一个小型的原型系统,满足用户某些需求后,使用户在使用过程中受其启发,逐步确定各种需求的开发模型。
17.螺旋模型:是瀑布模型和增量模型的结合,加入了两种忽略的风险分析,将软件开发过程分为几个螺旋周期,每个周期大致和瀑布模型相符,因此它是以风险驱动的开发模型18.喷泉模型:强调迭代和无缝隙特性,是一种面向对象的开发模型。
习题1.软件的主要特点有哪些?软件的特点主要有:(1)抽象性,从表现形式上看,软件是一种逻辑实体,而不是具体的物理实体(2)从生产上看,软件的生产和硬件不同,它的开发过程没有明显的制造过程,大多数软件仍是定制(3)从维护机制上看,在软件的运行和使用期间,没有硬件那样的机械磨损和老化问题(4)从使用要求上看,一般情况下,软件产品不允许有误差2.软件开发过程中存在哪些问题?产生这些问题的原因是什么?开发过程中存在的问题有:(1)经费预算经常突破,完成时间一拖在拖(2)开发的软件不能满足用户需求(3)开发的软件可维护性差(4)开发的软件可靠性差(5)部分应用领域的软件开发需要的数据工程量特别大,尤其是数据采集的工作量十分大(6)软件需求和软件生产的矛盾日益加剧,突出表现在软件生产率低(7)软件的可重用性差产生这些问题的原因是:(1)软件规模越来越大、结构越来越复杂(2)软件开发的管理困难,可靠性无法保证(3)软件开发费用不断增加(4)软件开发技术落后(5)生产方式落后(6)开发工具落后,生产率提高缓慢3.软件工程的生存周期包含那几个阶段?每个阶段的主要任务是什么?软件工程的生存周期包括以下几个阶段:(1)前期工程阶段:包括工程调研,可行性分析,需求分析(2)设计工程阶段:包括总体设计,数据库设计,应用模型设计,详细设计(3)数据工程阶段:包括数据预处理,数据采集,数据处理(4)工程实施阶段:包括编制,测试,调试,试运行(5)维护工程阶段:包括数据库维护,硬件维护等4.常见的软件生存周期模型有哪几种?请简要加以介绍。
常见的软件生存周期模型有:瀑布模型、增量模型、螺旋模型、喷泉模型(1)瀑布模型:是将软件生存周期个活动规定为依线性顺序连接的若干阶段的模型,一般可包括可行性研究,需求分析,总体设计,详细设计,编码,测试和维护,她规定了由前向后,互相衔接的固定次序,如同瀑布流水,逐级下落,他是以文档驱动的模型,适合于需求很明确的软件工程项目开发(2)增量模型:是先开发一个系统原型,完成部分主要功能,然后展示给用户并征求其意见,然后逐步完善,最终得倒满意的产品(3)螺旋模型:螺旋模型是将瀑布模型和增量模型结合起来,并增加了两种忽略的风险分析,弥补了这两种模型的不足,螺旋模型把开发过程分成了几个螺旋周期,每个周期内部大致和瀑布模型相符合,螺旋模型是风险驱动的模型(4)喷泉模型:喷泉模型是一种体现了迭代和无缝隙特性的开发模型,由于迭代相关功能可以随时加入演进的软件系统,无缝隙是指软件分析、设计和编码之间没有明显的边界第二章软件工程的可行性研究1.现状调研的方式:面谈、电话、访谈、参观、问卷,索取有关资料等方式2.调查的内容:通常可分为机构组织模式、日常操作、数据、专业人员、软件和硬件6大类3.调研结果报告应该包括:机构运作的逻辑数据流图、软件功能加入后的各种产品、硬件资源表、软件资源表、专业人员清单、数据功能参照表、数据来源清单、部门功能清单4.可行性研究的目的:是用最小的代价在尽可能短的时间内确定该软件工程项目是否能够开发,是否值得去开发,它可从社会可行性、技术可行性和经济可行性、方案抉择四大方面进行分析5.可行性研究的步骤:确定项目的规模和目标、研究正在运行的系统、建立新系统的高层逻辑模型、导出和评价各种选择方案、推荐可行的方案、编写可行性研究报告6.成本效益分析的目的:是从经济角度评价开发一个新的软件工程项目是否可行7.成本消息的分类及衡量方法:有形效益可以用货币的时间价值、投资回收期、纯收入等指标进行衡量,无形效益主要从性质上和心理上进行衡量8.制定项目计划的原则:遵循软件系统开发个阶段的已有经验、项目开发计划应具有足够的灵活性、建立软件开发各阶段的评审制度习题1.现状调查可采用的方式有哪几种?各有什么又缺点?可采用的方法、优缺点以及使用场合如下:(1)参观:优点是直观全面,缺点是对人员要求较高、不够灵活并且计划性差,适合于开始阶段(2)面谈:优点是详细具体,缺点是因人而异,适合于参观之后或问卷之后(3)电话访谈:优点是方便易行,缺点是视觉效果差,适合于辅助性补充(4)问卷:优点是灵活、计划性强,缺点是内容受到限制,适合于参观之后(5)索取有关资料,加以学习理解2.为什么要进行可行性研究?理论上只要资源时间不加以限制,任何软件项目都是可行的,然而由于资源缺乏和交付时间限制的困扰,使得计算机系统的开发变得比较困难。
因此,尽早进行软件项目的可行性做出细致而谨慎的评估是十分必要的,如果在问题定义阶段及早发现将来在软件开发过程中可能遇到的问题,并及早做出决定,可以避免大量的人力、财力和时间上的浪费。
3.研究软件工程项目的可行性应从那几个方面入手?可从以下4方面进行软件工程项目的可行性研究(1)技术可行性:对开发项目的功能、性能和限制条件进行分析,确定在现有的资源条件下,技术风险有多大,能否实现等,其内容应包括开发的风险、资源的有效性、技术(2)经济可行性:进行开发成本的估算以及效益的评估,要确定是否值得投入开发(3)社会可行性:研究要开发的项目是否存在侵害和妨碍等责任问题,要开发项目的运行方式在用户组织内部是否行得通,现有管理制度,人力素质和操作方式是否可行(4)方案抉择:对软件系统开发的不同方案进行比较评估、衡量比较,最终选择一个方案。
4.软件工程的可行性研究应遵从的步骤有哪些?简要叙述各步骤的主要工作内容。
典型的可行性研究的步骤如下:(1)确定软件的规模和目标:通过调查分析,对项目的规模和目标进行定义和确认(2)研究正在运行的系统:描绘现有系统高层系统流程图(3)建立新系统的高层逻辑模型:根据对现有系的分析,逐渐明确新系统的功能、处理流程、以及所受的约束,然后用建模工具(数据流图、数据字典)进行模型建立。
(4)导处和评价各种选择方案:系统分析员在建立了系统的高层逻辑模型后,要从技术角度出发,提出是想高层逻辑模型的不同方案,然后根据技术可行性、经济可行性、社会可行性对各种选择方案进行评估,去掉行不通方案,留下的就是可行的方案(5)推荐可行的方案:根据以上的可行性研究的结果,应该决定项目是否值得去开发,若值得开发,那么可行的解决方案是什么,并说明该方案可行的原因和理由(6)编写可行性研究报告:将以上的研究结构编写成相应的文档,即可行性研究报告,并提请用户或使用部门审查,从而决定该项目是否进行开,是否接受可行的实施方案5.度量经济效益的方法有哪几种?软件的经济效益是指因使用新系统而增加的收入加上使用新系统可以节省运行费用。
度量的方法有以下几种:(1)货币的时间价值(2)投资回收期(3)纯收入6.简要回答如何制定软件工程项目开发计划?制定软件工程项目的开发计划是指根据软件系统的任务和目标,把在开发过程中各项工作的负责人员、开发进度、所需经费预算,以及所需软件、硬件条件等问题做出的安排记载下来,以便开展和检查该软件工程项目的开发工作,制定软件工程项目开发计划的方法如下:(1)根据系统工程和软件系统的的构成特性,对软件系统进行分解,分为若干具有一定独立性的工作任务(2)对开发任务进行分类,确定各项任务的性质(3)确定各项任务需要投入的资源,包括软硬件、人员、资金和其他设备设施(4)组合不同任务,编制形成项目开发计划,可以用Petri图或甘特图的形式将各阶段的时间和资源有机的组织起来7.如何推算软件工程各阶段的时间?确定软件工程每个阶段的合理时间是软件工程项目开发计划编制的关键之一,确定每个阶段的时间没有一个明确的方法,主要是通过经验法推算,所以具有较大的误差,在运用经验是主要考虑以下几个方面:(1)各阶段的工作量的比例:根据软件开发人员对该类系统的熟悉程度和能力,确定各阶段的一个大概工作量比例(2)确定各阶段的人员数量:对软件开发人员的能力,熟练程度进行考察,然后分配任务,以确定人员数量(3)确定软硬件,设备设施等资源能够获得的时间(4)对各种资源合理配置后,取时间最长者为阶段时间第三章软件工程的需求1.需求分析:是软件开发人员在准确理解用户的要求,并进行仔细调查研究的基础上,将用户的非形式需求陈述转化为完整的需求定义,再由需求定义转化为相应的形式化功能规格说明的过程2.需求分析的必要性:问题的复杂性、交流障碍、不完备性和不一致性、需求的易变性3.需求分析的原则:需求分析必须能够表达和理解问题的数据域(数据流,数据内容,数据结构)和功能域(三个数据域的控制信息)、需求分析要把一个复杂的问题按照功能分解逐层细化、需求建模(建模可以帮助系统分析人员更好的理解软件系统的数据、功能和行为)4.需求分析注意事项:(1)确定详细的需求,否则金费就算不准(2)在编写需求规格书之前,应明确所要解决的我问题(3)立即确定需求,并记录下该需求的背景(4)一旦在需求规格说明书中发现了问题,要立即改正(5)确定需求的优先次序(6)不要进行系统设计的工作(7)对复杂的软件系统,要从多角度进行需求分析(8)注重形式化的方法,但不放弃自然语言,一般先用自然语言描述,然后给出其形式化模型(9)不应该存在“待确定”条款,如果有需要说明何时由谁来解决该问题5.需求的类型:(1)功能性需求:主要说明了系统各功能部件与环境之间的相互作用的本质,即拟开发软件在职能能上实际应做到什么(2)非功能性需求:包括过程需求,产品需求,外部需求6.需求分析方法:常用的需求分析方法有结构化需求分析方法(SA)和面向对象需求分析方法(OOA)结构化需求分析方法:它是面向数据流进行需求分析的方法,适合于数据处理类型系统,就是用抽象模型的概念、按照系统内部数据传递变换的关系,自顶向下逐层分解,直到满足功能需求为止,它主要使用数据流图、数据字典、判断表、判断树、结构化设计语言等分析工具)面向对象的需求分析方法:7.数据流图:是指从数据传递和加工的角度,以图形的方式刻画从数据从输入到输出的传递变换过程。