(知识点快速复习)软件工程方法与实践
(软件工程理论、方法与实践)第16章净室软件工程

设计评审
对设计结果进行评 审,确保设计的合 理性和可行性。
测试评审
对测试结果进行评 审,确保软件的稳 定性和性能。
净室软件工程的过程管理
01
项目管理
制定项目计划,分配资源,监控项 目进度,确保项目按时完成。
配置管理
管理软件配置项,控制变更,保证 软件版本的正确性和一致性。
03
02
质量管理
制定质量标准和质量保证计划,确 保软件质量符合要求。
降低开发成本
净室软件工程强调早期的错误检测和预防,这有助 于降低开发成本和减少后期维护的复杂性。
通过净室软件工程的方法和工具,可以显著 提高软件的质量和可靠性,减少故障和缺陷 。
促进创新
净室软件工程鼓励采用创新的方法和技术, 有助于推动软件行业的持续发展和进步。
THANKS
感谢观看
在医疗影像管理系统的开发中,净室软件工程确保了系 统的稳定性和安全性,使得医生能够快速、准确地获取 患者的影像信息,提高诊断的准确性和效率。
净室软件工程在敏捷开发中的应用
• 净室软件工程与敏捷开发方法相 结合,能够充分发挥两者的优势 。敏捷开发强调快速迭代和用户 反馈,而净室方法则关注高质量 和安全性。这种结合使得开发团 队能够在保证质量的前提下,快 速响应需求变化。
风险管理
识别、评估和管理项目风险,降低 项目失败的风险。
04
03
CATALOGUE
净室软件工程的关键技术
需求工程
需求调研
通过深入了解用户需求,明确软件系统的功能和性能 要求。
需求分析
对收集到的需求进行整理、Hale Waihona Puke 类和评估,形成完整的 需求规格说明书。
需求变更管理
软件工程的实践与方法

软件工程的实践与方法软件工程是一门涉及软件开发和维护的学科,它关注如何以系统化的方法来构建和管理软件项目。
在这篇文章中,我将介绍一些软件工程实践和方法,以帮助开发人员更好地处理软件项目。
1. 需求分析在软件工程中,需求分析是项目成功的关键。
开发人员必须准确理解用户的需求,这样才能为用户构建出满足需求的软件系统。
在进行需求分析时,可以使用UML(统一建模语言)工具来进行需求建模和详细规划。
2. 设计与架构软件设计是指将需求转化为系统结构和组件的过程。
在设计阶段,开发人员需要考虑如何将系统划分为不同的模块,并确定模块之间的接口和依赖关系。
此外,合理的软件架构对于项目的成功也是至关重要的。
开发人员可以使用面向对象设计原则和设计模式来辅助设计和构建高质量的软件系统。
3. 编码与实现在软件工程实践中,编码是将设计转化为计算机程序的过程。
开发人员通常会使用一种编程语言(如Java、Python等)来实现软件系统。
在编码过程中,应遵循代码规范和最佳实践,以确保代码的可读性、可维护性和可扩展性。
4. 测试与调试软件测试是确认软件系统是否符合规格要求的过程。
测试过程应包括单元测试、集成测试和系统测试等多个阶段。
开发人员可以使用测试框架和工具来自动化测试流程,并确保软件的正常功能和性能。
5. 配置管理配置管理是管理和控制软件版本和变更的过程。
开发人员应使用版本控制工具(如Git、SVN等)来跟踪代码的变化,并确保开发团队的协作和代码的稳定性。
6. 项目管理与协作在软件工程实践中,项目管理和协作是确保项目按时交付和满足质量要求的关键环节。
开发团队可以使用项目管理工具(如JIRA、Trello 等)来安排任务、跟踪进度和协同工作。
7. 文档与知识管理在软件开发过程中,文档和知识管理是记录和共享知识的重要手段。
开发人员应编写清晰、准确的文档,以便于项目的后续维护和团队成员的交流。
总结:软件工程实践与方法涵盖了软件项目的各个方面,包括需求分析、设计、编码、测试、配置管理、项目管理、文档管理等。
软件工程知识点总结

软件工程(简要知识点)一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型)二、可行性研究:1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。
2、四个方面:技术、经济、操作可行性、法律3、数据流图四种成分:1、源点/终点2、处理3、数据存储4、数据流三、需求分析:1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。
2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。
3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N 、M:N )四、总体设计:1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。
2. 系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构)3.模块独立:内聚和耦合4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统 问题定义(确定题目)可行性研究需求分析 概要设计详细设计编码和单元测试 综合测试系统设计 系统实现 软件定义 软件开发 运行维护:主要任务是使软件持久地满足用户的需要软件生命周期:5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度6.面向数据流的设计方法:变换流和事务流五、详细设计:1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树)七、测试:1、单元测试:又称模块测试。
每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。
由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。
2、集成测试:在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。
软件工程方法与实践

软件工程方法与实践软件工程是一门研究如何以系统性、规范化和可靠的方式来开发、维护和测试软件的学科。
软件工程方法与实践则强调如何运用各种方法和实践来解决软件工程中的问题,并提高软件开发过程的效率和质量。
本文将介绍几种常见的软件工程方法与实践,包括敏捷开发、DevOps、持续集成和测试驱动开发。
一、敏捷开发敏捷开发是一种以团队协作、快速响应变化为核心的软件开发方法。
它强调在开发过程中及时响应客户需求的变化,并通过频繁交付可用软件来获取反馈。
敏捷开发的方法论有很多,其中最流行的是Scrum和XP(极限编程)。
Scrum是一种迭代和增量式开发方法,通过将开发过程划分为一系列的迭代周期(称为“冲刺”),每个冲刺都包含需求分析、计划、开发和测试等环节,以实现快速交付价值。
XP是一种注重代码质量和团队协作的开发方法。
它强调测试驱动开发、持续集成和小步快跑的开发方式,并鼓励开发人员和客户之间的密切合作。
二、DevOpsDevOps是一种将开发(Development)和运维(Operations)紧密结合起来的开发方法。
它的目标是通过自动化和流程优化来提高软件开发和运维的效率和质量。
DevOps的核心实践包括持续集成、持续交付和持续部署。
持续集成通过自动化构建、测试和部署流程,可以快速发现和修复软件中的问题。
持续交付和持续部署则进一步推动了软件交付的频率和可靠性。
三、持续集成持续集成是一种软件开发实践,要求开发人员经常将代码集成到共享存储库中,并通过自动化构建、自动化测试和自动化部署来验证和发布软件。
持续集成的核心理念是“早期和频繁地集成”。
开发人员在日常工作中,需要不断地将自己的代码与主线代码进行整合,以便及时发现和解决冲突和问题。
持续集成还可以通过自动化测试来确保代码的质量。
开发人员可以编写各种类型的测试用例,如单元测试和集成测试,通过自动化工具进行执行和验证。
四、测试驱动开发测试驱动开发(TDD)是一种通过编写测试用例先行的开发方法。
软件工程中的需求工程方法与实践经验总结

软件工程中的需求工程方法与实践经验总结需求工程是软件工程中非常重要的一环,它涉及到软件开发的前期阶段,主要是指明软件系统需要解决的问题、需求和期望。
在软件工程领域,需要使用一些方法和技术来收集、分析和规范需求,以确保软件开发过程的质量和成功。
本文将总结一些常用的需求工程方法和实践经验,帮助读者更好地理解和应用于实际项目中。
一、需求获取与收集需求获取与收集是需求工程的起点,它是通过各种手段和技术来获取用户需求,包括用户访谈、问卷调查、场景描述、头脑风暴等。
需求获取的核心目标是准确理解用户的期望和需求,建立起与用户的有效沟通。
在实践中,可以通过以下方法来优化需求获取和收集的结果:1.与用户密切合作:软件开发团队应与最终用户密切合作,了解他们的需求、期望和痛点。
开发团队应该在项目初期与用户建立沟通渠道,定期更新需求,并及时解决用户的问题和反馈。
2.多种需求获取手段:可以结合使用多种需求获取手段,例如用户访谈、观察、头脑风暴等多种方法,以便获取全面、准确的需求信息。
不同的手段可以互相补充,从而提高需求获取的效果。
3.需求合理化:对于获取到的需求,需要进行合理化和整合,以去除冲突、不明确或不实际的需求。
在需求合理化过程中,开发团队需要与用户协商和沟通,确保最终的需求符合用户期望。
二、需求分析与规范需求分析是将用户需求转化为可执行的软件需求规格说明书或原型的过程。
它主要包括需求分解、需求组合、需求约束等环节。
以下是一些使用的需求分析和规范方法和经验:1.分阶段进行需求分析:将大型项目的需求分析过程分阶段进行,可以减少分析的复杂性,提高分析和规范的质量。
可以先进行整体的需求分析,然后逐步细化为模块或子系统的需求分析。
2.采用合适的需求建模工具:需求建模是将需求表示为可视化的工具,帮助开发团队更好地理解和分析需求。
常用的需求建模工具包括用例图、活动图、时序图等。
选择合适的工具可以更好地组织和规范需求。
3.明确需求优先级:在需求分析和规范过程中,需要根据客户的要求和项目的限制明确需求优先级。
软件工程中的软件需求建模方法与实践技巧

软件工程中的软件需求建模方法与实践技巧软件需求建模是软件工程中最重要的阶段之一,它的目的是准确理解和描述用户对软件系统的需求。
在软件需求建模过程中,我们使用一系列的方法和技巧来收集、分析和描述需求。
本文将介绍一些常用的软件需求建模方法和实践技巧,以帮助软件工程师更好地完成需求分析工作。
一、用例建模方法用例建模是一种以用户的角色和行为为基础的需求建模方法。
它通过描述用户与系统的交互场景来帮助分析和理解系统的需求。
用例建模通常包括以下步骤:1. 识别参与者:确定所有与系统交互的参与者,如用户、管理员等。
2. 确定用例:识别并描述参与者与系统之间的交互场景,即用例。
3. 编写用例描述:使用简洁明确的语言来描述用例场景,包括前提条件、主要步骤和预期结果。
4. 画出用例图:以图形化的方式表示用例和参与者之间的关系。
用例建模方法有助于软件工程师深入了解用户需求,并将其转化为系统功能的规格说明。
同时,通过分析用例,可以发现和解决系统设计中的不足之处。
二、状态图建模方法状态图建模方法用于描述系统的不同状态以及状态之间的转换。
它适用于描述系统中复杂的状态变化。
状态图建模通常包括以下步骤:1. 确定关键对象:识别出与系统状态相关的关键对象。
2. 确定状态:确定对象可能具有的状态。
3. 描述状态之间的转换:使用转换条件和动作来描述状态之间的转换。
4. 画出状态图:以图形化的方式表示关键对象的状态以及状态之间的转换。
状态图建模方法能够帮助软件工程师理清系统的状态变化过程,从而更好地满足用户的需求。
三、数据流图建模方法数据流图建模方法用于描述系统中数据的流动。
通过数据流图,软件工程师可以清楚地了解系统的信息交互流程,并分析数据流向以及数据处理过程。
数据流图建模通常包括以下步骤:1. 确定主要过程:识别出系统的主要过程或功能模块。
2. 定义数据流:确定数据流的来源和去向,以及数据的属性。
3. 描述过程逻辑:定义过程的输入和输出,描述过程的处理逻辑。
软件工程方法与实践

软件工程方法与实践导言软件工程方法与实践是指通过系统性、科学性的方法和实践,来开发、管理和维护软件系统的活动。
随着科技的快速发展和全球信息化的推进,软件工程在各个领域都起到了举足轻重的作用。
本文将从需求分析、设计、编码、测试和维护等方面,介绍一些常用的软件工程方法和实践。
一、需求分析在软件工程中,需求分析是一个非常重要的环节。
它主要目的是了解用户的需求,并将其转化为软件系统的规格说明。
在需求分析过程中,常用的方法有:1. 访谈法:通过与用户直接交流,收集用户的需求和期望。
2. 场景法:通过描述真实场景,分析用户在不同情境下的行为和需求。
3. 问卷调查法:通过设计问卷,向用户发放并收集用户的需求数据。
二、设计设计是软件工程中的一个关键步骤,它是将需求转化为可以实现的软件系统的过程。
在设计阶段,常用的方法有:1. 结构化设计:采用自顶向下或自底向上的设计方法,将软件系统划分为模块,并定义各个模块之间的关系和接口。
2. 面向对象设计:将软件系统中的实体和行为进行抽象,然后基于类、对象和继承等概念进行设计。
3. 原型设计:通过建立原型模型,验证系统的功能和性能,以提前发现和解决问题。
三、编码编码是将设计好的软件系统转化为计算机可执行的代码的过程。
在编码过程中,常用的方法有:1. 结构化编程:采用模块化的编码方式,将整个系统划分为独立的、可测试的模块,并按照既定的接口进行编码。
2. 面向对象编程:根据面向对象设计的结果,将系统中的实体和行为以类、对象和方法的形式进行编码。
3. 持续集成:通过使用版本控制工具,保持代码的可持续集成,确保团队成员的协作和代码的稳定性。
四、测试测试是软件工程中不可或缺的一部分,它是为了评估和改善软件系统的质量。
在测试阶段,常用的方法有:1. 黑盒测试:基于需求规格说明书,独立于具体实现,测试软件系统的功能是否满足用户需求。
2. 白盒测试:基于代码的逻辑结构和内部结构,测试软件系统的异常处理、边界条件和性能等。
软件工程基础知识点总结

软件工程基础知识点总结软件工程是一门关于软件开发过程管理和使用工程原理、方法和技术的学科。
在软件工程领域,有一些基础知识点是非常重要的,下面是对软件工程基础知识点的总结。
1.软件生命周期软件生命周期是指软件从开始到结束的整个过程,包括需求分析、设计、编码、测试、部署、维护等阶段。
软件开发者需要了解整个生命周期,以便能够有效地进行软件开发和管理。
2.需求工程需求工程是软件工程的第一个阶段,包括需求获取、需求分析、需求规格说明等活动。
需求工程的目标是明确软件的功能和非功能需求。
3.软件设计软件设计是软件工程的核心环节,包括结构设计、数据设计、接口设计等。
软件设计的目标是制定一个高效、可靠、易于理解和维护的软件结构。
4.编码与调试编码是将软件设计转化为实际可执行的程序代码的过程。
调试是指在编码过程中发现和修复程序中的错误。
编码和调试是软件工程中非常重要的环节,对于软件的功能和性能起着决定性的作用。
5.软件测试软件测试是为了发现并修复软件中的错误和缺陷。
软件测试包括单元测试、集成测试、系统测试等。
软件测试是提高软件质量和可靠性的关键步骤。
6.软件配置管理软件配置管理是指对软件配置项(源代码、文档、二进制文件等)进行版本控制和配置管理的活动。
软件配置管理可以帮助开发者协同工作、追踪问题和管理变更。
7.软件项目管理软件项目管理包括项目计划、进度跟踪、资源管理、风险管理等活动。
软件项目管理可以帮助开发团队高效地完成软件开发项目,提高项目的成功率。
8.软件工程方法和技术软件工程方法和技术是软件开发过程中使用的工具和方法。
例如面向对象分析和设计、结构化分析和设计、敏捷开发等。
掌握并应用合适的方法和技术可以提高软件开发的效率和质量。
9.软件质量管理软件质量管理是指对软件开发过程和产品质量进行监控和管理的活动。
软件质量管理包括质量计划、质量控制、质量评估等。
软件质量管理可以保证软件开发过程的高效和软件产品的质量。
10.软件工程伦理和职业责任软件工程伦理和职业责任是软件工程领域的重要方面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2017-6-11lei xiao及格万岁1.软件工程的定义:软件工程是一门研究如何用系统化、规范化、数量化等工程化思想和方法去进行软件开发、维护和管理的学科。
2.软件危机的定义:软件开发和维护过程中所遇到的如软件规模越来越大,复杂度不断增加,软件的需求量日益增大等的严重问题我们称之为软件危机。
3.软件工程有哪些基本的思想:a.推迟实现的观点b.逐步求精的观点c.分解与抽象的观点d.信息隐蔽的观点e.质量保证的观点。
4.CMM(Capability Maturity Model)能力成熟度模型,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
5.极限编程(Extreme Programming , XP)是一种软件工程方法学是敏捷软件开发中最富有成效的几种方法学之一。
它的的核心有四个要点:交流、简单、反馈、勇气。
6.软件生命周期模型:通常把软件生命周期中各项开发活动的流程用一个合理的框架——开发模型来规范描述,这就是软件过程模型,或者称为软件生命周期模型。
7.软件需求分类:功能需求、非功能需求和领域需求。
8.结构化分析(Structured Analysis, SA) 结构图(Structure Chart ,SC)。
9.面向对象的一些概念:类是具有相同或相似性质的对象的抽象。
实例是类的具体化。
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
消息是指对象间相互联系和相互作用的方式。
10.数据流类型:变换型数据流、事务型数据流、混合型数据流11.Jackson图:Jackson图是Jackson方法分析和设计最有效的表达手段,用它既可以描述问题的数据结构,也可以描述软件的程序结构。
Jackson图的优点是便于表示层次结构,利于结构自顶向下分解,形象直观,可读性好。
Jackson方法用某种形式的伪码给出程序的过程性描述。
伪码一般采用结构化形式的英语描述,例如,用”select”语句描述选择结构,用”until”或”while”语句描述重复结构。
12.结构化程序设计的三种基本逻辑结构是:顺序结构、选择结构和循环结构。
13.类与类之间的关系:关联、泛化、聚集。
14.软件设计的三类活动:软件设计的第一类活动是软件结构设计,也称为总体设计、概要设计或高层设计。
第二类活动是软件详细设计,也称为(模块)过程设计或底层设计。
第三类活动是设计测试。
15.软件模块化设计的指导思想:分解、抽象、逐步求精、信息隐蔽和模块独立性。
16.软件模块化设计的定义:把一个大型软件系统的全部功能,按照一定的原则合理地划分为若干个模块,每个模块完成一个特定子功能,所有的这些模块以某种结构形式组成一个整体。
17.模块独立性的定义及控制标准:模块独立性是模块化、抽象、信息隐蔽概念的直接结果,也是判断模块化结构是否合理的标准。
模块独立性可以由两个定性标准度量,即模块自身的内聚和模块之间的耦合。
18.内聚性、耦合性和抽象的定义:内聚性是从功能的角度对模块内部聚合能力的量度,耦合性是对一个软件结构内不同模块之间互连程度的度量。
抽象是一种从一般的观点看待事物的方法,它要求我们集中于事物的本质特征(内部状态和运动规律),而非具体细节或具体实现。
19.信息隐蔽定义:每个模块对其他所有模块都隐蔽自己的设计决策,也就是说,模块应该详细说明且精心设计以求在某个模块中包含的信息不被不需要这些信息的其他模块访问。
20.按耦合度从低到高依次有7种耦合方式:a.非直接耦合(独立运行)b.数据耦合(用参数表传递简单数据)c.标记耦合(传递数据结构或者一部分)d.控制耦合(传递的信息包括控制模块的信息)e.外部耦合(模块与软件之外的环境有关)f.公共耦合(多个模块引用同一全局的数据区)g.内容耦合(访问内部数据,代码重叠或者多个入口)。
21.按内聚度从低到高依次有7种内聚种类:a.偶然内聚(模块完成的多个任务,任务之间的关系松散)b.逻辑内聚(模块完成逻辑相关的一组任务)c.瞬时内聚(模块的所有任务必须在同一时间间隔内执行)d.过程内聚(模块的处理元素相关而且按照特定的次序执行)e.通信内聚(模块的所有元素集中在一个数据结构区域上)顺序内聚(模块的处理元素相关,必须顺序执行)f.功能内聚(模块完成单一的功能,各个部分协调工作,而且不可缺少)。
22.结构化设计方法(SD)是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。
23.软件维护类型及对应方向的维护:纠错性维护:对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。
纠错性维护占整个维护工作的21%24.完善性维护:为了满足这些日益增长的新要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性等。
完善性维护所占的比重最大,大约占总维护量的50%以上25.适应性维护:为了适应计算机的飞速发展,使软件适应外部新的硬件和软件环境或者数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)发生的变化,而进行修改软件的过程。
适应性维护占整个维护工作的25%26.预防性维护:为了提高软件的可维护性和可靠性等,主动为以后进一步维护软件打下良好基础的维护活动。
大约占总维护量的5% 编码语言的目的与分类:27.编码的目的是实现人和计算机的通信,指挥计算机按人的操作意图正确工作。
28.程序设计语言是人和计算机之间进行通信的最基本的工具,其特性会影响人的思维和解决问题的方式。
29.分为两大类:低级语言:这两种语言都依赖于相应的计算机硬件。
机器语言属于第一代语言30.汇编语言属于第二代语言高级语言:第三代程序设计语言利用类英语的语句和命令,尽量不再指导计算机如何去完成一项操作,如BASIC、COBOL和FORTRAN等。
第四代程序设计语言比第三代程序设计语言更像英语但过程更弱,与自然语言非常接近,它兼有过程性和非过程性的两重特性,如数据库查询语言、程序生成器等。
31.人机界面设计的任务,就是根据对用户在使用交互式系统时的所作所为,或者是用户想象中的所作所为,或者是他人想象中用户的所作所为的抽象,创建或导出一致的表示界面。
32.面向对象实现主要包括两项工作:(1)把面向对象设计结果翻译成用某种程序语言书写的面向对象程序;(2)测试并调试面向对象的程序。
33.请描述图书馆系统的借书的一个常规场景。
用例名称:借书范围:图书管理图书流通应用级别:用户需求主要参与者:借阅者涉众及其关注点:1)浏览者:希望能够不需要登录系统即可快速地浏览图书和查询信息。
2)借阅者:希望在登录系统后可以借书,能查查询自己信息和借书情况3)普通管理员:希望能够协助借书者完成借书功能,形成借书报表给借阅者查看确认。
前置条件:借书者要登录系统或者验证借书证成功保证:创建借书记录,更新借书信息,形成借书报表。
主成功场景:1)普通管理员扫描借书证。
2)检查是否可以借书3)若可借,则扫描图书4)显示已借书数,显示借书成功…重复(2)-(4)5)借书结束34.请描述银行客户从ATM机上取一笔钱的场景。
答:客户插入银行卡后输入密码。
客户选择“取款”项,屏幕跳出选择取款金额菜单以及一次性可取出的最大金额,客户根据自身需要选择预设金额或者自己输入想要取出的金额。
机器根据客户输入的金额进行出钞,如果余额不足,则屏幕提示客户无法提取相应金额。
客户选择提取较小金额或者选择退出系统,取卡。
否则在正常情况下按客户所需输出相应钞票。
屏幕提示在30秒内取走钞票。
完成交易,客户退出系统,取卡。
35.可行性分析要如何入手?从技术可行性、经济可行性、操作可行性和时间可行性四个方面研究每种方案的可行性。
36.软件工程两大范型分别是什么?他们有什么不同?答:分别是传统的结构化范型和面向对象范型。
结构化范型要么面向行为要么面向数据,但没有既面向数据又面向行为的;而面向对象范型把数据和行为看成同等重要,即将对象视作一个融合了数据及在其上操作的行为的统一的软件组件。
面向对象相对于结构化技术,无论对象的内部细节如何变化,只要对象提供的方法即接口保持不变,则整个软件产品的其他部分就不会受到影响,不需要了解对象内部的变化。
37.结构化分析要创建哪些模型?答:结构化的需求分析模型有数据流模型、状态转换模型、实体—关系模型等。
数据流模型集中在数据的流动和数据转换功能,而不关心数据结构的细节。
实体—关系模型关心的是寻找系统中的数据及其之间的关系,却不关心系统中包含的功能。
系统的行为模型包括两类模型:一类是数据流模型,用来描述系统中的数据处理过程;另一类是状态转换模型,用来描述系统如何对事件做出响应。
38.软件生命周期的定义是什么?它分为几个阶段?分别是什么?答:软件从生到死的过程称之为软件生命周期。
它分为六个阶段,分别是:a.问题的定义及规划b.需求分析c.软件设计d.程序编码e.软件测试f.运行39.什么是瀑布模型?什么是增量模型?它们有什么区别?答:瀑布模型是从上一项活动接受该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容,给出该项活动的工作成果,并作为输出传给下一项活动。
增量模型是在项目的开发过程中以一系列的增量方式开发系统。
他们的主要区别是瀑布模型的开发过程是通过一系列阶段顺序展开的,而在增量模型中,软件被作为一系列的增量组件来设计、实现、集成和测试,每一个组件是由多种相互作用的模块所形成的提供特定功能的代码片段构成。
40.用户需求和系统需求各有什么特点?答:用户需求是从用户角度来描述系统功能和非功能需求,以便让不具备专业技术方面知识的用户能看懂。
用户需求是描述系统的外部行为,用自然语言、图表和直观的图形来叙述。
系统需求是比用户需求更详细的需求描述,是系统实现的基本依据,因此,是一个完全的、一致的系统描述,是软件工程人员系统设计的起点。
系统需求描述可能包括许多不同的模型,如对象模型和数据流模型。
41.需求分析过程主要有哪几个步骤?答:需求分析过程主要有沟通、导出需求、分析与精化、可行性研究、协商与沟通、规格说明、需求验证、变更管理等步骤。
42.数据字典的概念?数据字典包含哪些内容?答:数据字典是分析模型中出现的所有名字的一个集合,还包括有关命名实体的描述。
如果名字是一个复合对象,它还应有对其组成部分的描述。
一般说来,数据字典应该由四类元素的定义组成:数据流、数据流分量、数据存储和处理。
43.结构化分析主要手段有哪些?答:数据流图、数据字典、状态转换图、实体—关系图等44.面向对象模型有哪些?答:面向对象提供了三个基本模型:对象模型、动态模型和功能模型。
45.面向对象模型有哪几个模型,各自的任务和各自的定义?答:面向对象建模技术所建立的三种模型,即对象模型、动态模型和功能模型。