软件工程概论基础概念
- 格式:docx
- 大小:466.81 KB
- 文档页数:18
软件工程基础知识概述第一章:软件工程的定义和发展历程软件工程是一门涉及软件开发以及管理的综合学科。
它的出现是为了解决软件开发中遇到的问题和挑战。
在职业领域中,软件工程师使用科学的方法来开发、维护和管理软件。
第二章:软件开发生命周期软件开发生命周期是指软件的构建和维护过程中的各个阶段。
常见的软件开发生命周期模型包括瀑布模型、迭代模型和敏捷开发等。
瀑布模型是最早被提出并广泛应用的一种软件开发流程模型,包括需求分析、系统设计、编码、测试和维护等阶段。
第三章:软件需求分析软件需求分析是软件开发过程中的第一步,它的目的是通过调查和研究用户需求,明确软件产品需要具备的功能和性能要求。
需求分析包括需求获取、需求分析和需求规格说明等步骤,通过使用工具和技术,如面谈、问卷和原型设计等,来获取和分析用户需求。
第四章:软件设计软件设计是软件开发过程中的重要一环,它的目标是将需求转化为可实现的软件系统。
软件设计可以从结构设计、数据设计和接口设计等多个层面进行,通过使用工具和技术,如UML、设计模式和构件式设计等,来实现模块化、可复用和高内聚低耦合的设计。
第五章:软件编码软件编码是将设计好的软件系统转化为计算机可执行的程序代码的过程。
软件编码需要使用一种编程语言,如Java、C++和Python等,通过准确理解设计要求,编写高质量、易于理解和可维护的代码。
第六章:软件测试软件测试是保证软件质量的重要手段。
它的目标是发现和修复软件中的缺陷和错误。
常见的软件测试方法包括单元测试、集成测试和系统测试等。
为了提高测试效率和测试覆盖率,软件工程师可以使用自动化测试工具和技术,如JUnit和Selenium等。
第七章:软件项目管理软件项目管理是指在软件开发过程中对项目进行规划、组织、指导和控制的活动。
它涉及到项目范围、进度、成本和质量等方面的管理。
为了提高软件项目管理的效果,可以采用项目管理方法和工具,如WBS、PERT和甘特图等。
软件工程概论知识点软件工程是研究和应用计算机科学原理、方法和工具来开发和维护高质量的软件系统的工程学科。
它涉及到软件开发的整个生命周期,从需求分析到设计、编码、测试、部署和维护。
以下是软件工程概论的一些重要知识点。
1. 软件开发生命周期软件开发生命周期是软件工程中重要的概念,它包含了软件开发的各个阶段和活动。
常见的软件开发生命周期模型包括瀑布模型、迭代模型、螺旋模型等。
每个模型包括不同的阶段,如需求分析、设计、编码、测试、部署和维护等。
了解软件开发生命周期有助于理解软件开发过程中的活动和任务。
2. 软件需求工程软件需求工程是软件开发的第一步,它涉及到收集、分析、定义和记录软件系统的需求。
需求工程包括需求获取、需求分析、需求规格和需求验证等过程。
通过需求工程,软件开发团队可以确保对用户需求的准确理解,为软件系统的设计和开发提供清晰的目标和指导。
3. 软件设计原则软件设计是软件开发的关键环节,它决定了软件系统的结构、功能和性能。
软件设计原则是指导软件设计过程的一些基本原则,如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则等。
遵循这些原则可以提高软件系统的可维护性、可扩展性和可重用性。
4. 软件开发方法和工具软件开发方法是根据软件开发生命周期的需求,结合特定的软件开发模型,选择合适的方法和工具来开发软件系统。
常见的软件开发方法包括敏捷开发、结构化开发和面向对象开发等。
软件开发工具包括集成开发环境、版本控制工具、测试工具等。
5. 软件质量保证软件质量保证是确保软件系统满足用户需求和规定标准的一系列活动。
软件质量保证包括软件测试、代码审查、性能优化和配置管理等。
通过软件质量保证,可以降低软件系统的缺陷率,提高软件的可靠性和可用性。
6. 软件项目管理软件项目管理是指对软件项目进行规划、组织、协调和控制的一系列活动。
软件项目管理包括项目计划、需求管理、进度管理、风险管理和团队管理等。
有效的软件项目管理可以提高软件项目的成功率和开发效率。
软件的概念:软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。
(它是包括程序,数据及其相关文档的完整集合。
)软件= 程序+数据+文档程序= 算法+数据结构软件危机:指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。
软件危机主要包括的问题(两方面):①如何开发软件,以满足对软件日益增长的需求。
②如何维护数量不断膨胀的已有软件。
软件工程:① 把系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程应用于软件中。
②对① 中提到的各种方法的研究。
软件工程包括“管理”和“技术”两方面内容:管理——对人、财、物的合理使用和配置;技术——指软件开发中采用的方法、工具和过程。
软件工程方法学三要素:工具、方法和过程。
软件工程目标:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可追踪性、可移植性、可互操作性并满足用户需求的软件产品。
软件工程原则:在软件开发过程中,为了达到软件开发目标,必须遵循下列原则:1.抽象2.信息隐藏3.模块化4.局部化5.一致性6.完整性7.可验证性软件生命周期:软件产品从形成概念开始,经过开发、运行和维护直到退役的全过程称为软件生命(存)周期。
软件生命周期组成:包括软件定义、软件开发、软件运行与维护三部分。
软件过程:1.为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
2.软件过程是软件工程三要素之一。
3.通常用软件生命周期模型来描述。
软件生命周期模型,又称软件开发模型/软件过程模型/软件工程范型。
指软件项目从需求定义直至软件经使用后废弃为止,跨越整个生存周期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。
瀑布模型优点:可强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段的所有产品都必须经过质量保证小组的仔细验证。
软件工程概论知识点汇总目录:1.引言2.软件工程概述2.1 软件工程的定义2.2 软件工程的目标2.3 软件工程的原则2.4 软件工程的生命周期模型3.软件需求工程3.1 需求获取与分析3.2 需求规格说明3.3 需求确认与验证4.软件设计与实现4.1 软件设计基本概念4.2 软件设计方法与原则4.3软件编码与测试5.软件项目管理5.1 软件项目组织与分工5.2 软件项目计划与调度5.3 软件项目沟通与协作5.4软件项目风险与质量管理6.软件维护与软件配置管理6.1软件维护的类型与过程6.2 软件配置管理的基本概念与方法7.软件工程的质量保证7.1 软件质量的概念与评估7.2 软件测试与评审7.3 软件度量与分析7.4 软件过程改进与评估8.软件工程的伦理与法律8.1 软件伦理与职业道德8.2 软件知识产权与版权保护8.3 软件法律与合同9.总结1.引言引言部分需要对软件工程概论进行简要介绍,包括软件工程的定义、应用范围等。
2.软件工程概述2.1 软件工程的定义详细介绍软件工程的定义,并与传统工程进行比较。
2.2 软件工程的目标明确软件工程的目标,包括提高软件质量、提高开发效率等。
2.3 软件工程的原则介绍软件工程的基本原则,如模块化、可维护性等。
2.4软件工程的生命周期模型详细介绍软件工程的生命周期模型,如瀑布模型、敏捷开发模型等,并对比分析其优缺点。
3.软件需求工程3.1需求获取与分析介绍需求获取的方法和技术,包括面谈、问卷调查等,然后介绍需求分析的方法和技术,如数据流图、用例图等。
3.2需求规格说明介绍需求规格说明的内容和格式要求,包括功能需求、性能需求等。
3.3需求确认与验证介绍需求确认与验证的方法和技术,如原型验证、软件测试等。
4.软件设计与实现4.1 软件设计基本概念介绍软件设计的基本概念,如模块化、层次化等。
4.2 软件设计方法与原则介绍常用的软件设计方法和原则,如面向对象设计、设计模式等。
软件工程的基本概念软件工程是一门涉及软件开发、管理和维护的学科,它通过系统化的方法和工具来提高软件的质量、效率和可维护性。
软件工程的基本概念包括需求分析、设计、构建、测试和维护等过程。
本文将详细介绍这些基本概念,并探讨其在软件开发中的重要性。
1. 需求分析需求分析是软件工程的起点,它旨在明确软件开发的目标和功能。
在需求分析阶段,软件工程师与客户密切合作,了解并记录客户的需求和期望。
这些需求通常以用例、用户故事或需求规格说明书的形式进行记录。
需求分析的目标是确保开发团队对需求的理解一致,以便后续的设计和开发能够按照客户的期望进行。
2. 设计在需求分析的基础上,软件工程师开始进行设计。
设计阶段的主要任务是将需求转化为软件系统的架构和模块组织结构。
设计通常包括系统架构设计、模块设计和界面设计等。
通过设计,软件工程师可以更好地理解系统的功能和结构,并为后续的开发和测试提供指导。
3. 构建构建是软件工程的核心阶段,它涉及将设计转化为可执行的代码。
在构建阶段,开发团队根据设计规范,使用编程语言和开发工具编写代码。
构建的目标是实现需求分析和设计阶段所确定的功能,并遵循良好的编码规范和软件工程的最佳实践。
4. 测试测试是确保软件质量的关键过程。
在测试阶段,测试工程师执行一系列测试用例,以验证软件的功能和性能。
测试可以分为单元测试、集成测试和系统测试等不同层次。
通过测试,可以发现和修复潜在的错误,确保软件能够满足用户的需求和期望。
5. 维护软件的维护是软件工程生命周期的最后一个阶段。
在软件投入使用后,软件工程师需要及时响应用户的反馈和需求变更,并进行修复和优化。
维护的目标是确保软件持续可用、稳定和安全。
通过上述基本概念和过程,软件工程师可以在软件开发的不同阶段进行有效的工作和协作。
这种系统化的方法和工具可以提高开发效率、减少错误,并确保软件具备良好的质量和可维护性。
需要注意的是,软件工程不仅仅包括以上的基本概念,还涉及项目管理、团队合作、工具和技术选型等方面。
软件工程概论知识点汇总软件工程概论知识点汇总第一章软件工程概述1. 软件工程定义及概念2. 软件工程的历史发展3. 软件开发生命周期模型a. 瀑布模型b. 迭代模型c. 增量模型d. 螺旋模型e. 敏捷开发模型第二章需求分析与管理1. 需求工程的基本概念2. 需求获取与分析方法3. 需求规格说明书4. 需求变更与配置管理第三章软件设计与架构1. 结构化设计方法2. 面向对象设计方法3. 设计模式及应用4. 软件架构设计与选择第四章软件编码与测试1. 编码规范与风格2. 测试方法与策略3. 单元测试与集成测试4. 软件质量保证与评估第五章软件项目管理1. 软件项目组织与人力资源管理2. 软件项目计划与进度管理3. 风险管理与配置管理4. 软件项目质量管理第六章软件维护与演化1. 软件维护的类型与阶段2. 软件维护的过程与方法3. 软件重构与演化第七章软件工程的理论与方法1. 软件需求建模方法2. 软件设计原则与方法3. 软件度量与评估方法4. 软件工程的形式化方法第八章软件工程的伦理与职业道德1. 软件工程的伦理问题2. 软件工程师的职业道德要求3. 软件工程师的专业素养与发展本文档涉及附件:________本文所涉及的法律名词及注释:________1.著作权法:________保护软件的著作权,禁止未经授权的复制、修改、发布等行为。
2.商标法:________保护软件的商标权,禁止他人未经授权使用相同或相似的商标。
3.专利法:________保护软件的发明专利权,禁止他人未经授权使用相同或相似的发明。
4.合同法:________规定软件开发过程中的合同签订与履行等事项。
软件工程概论软件工程是一个涉及软件开发、维护和管理的学科,它强调系统化的方法和标准化的过程,旨在提高软件的质量和效率。
本文将介绍软件工程的基本概念、重要原则和发展趋势,以及软件工程师的职责和技能要求。
一、软件工程的概念与意义软件工程是一门应用科学,它研究如何以系统化、规范化和可重复的方式开发和维护软件。
与传统的工程学科一样,软件工程通过运用各种工程原则和方法,使软件开发生命周期中的每个阶段都能得到有效管理和控制。
软件工程的意义在于提高软件质量和效率,减少开发成本和时间投入,同时满足用户需求,并保证软件的可靠性和安全性。
二、软件工程的原则与方法1. 需求分析:软件工程过程的第一步是准确理解和规范用户需求。
通过与用户的交流和分析,软件工程师能够明确软件的功能和特性,为后续开发阶段提供有力的指导。
2. 设计与建模:设计是软件工程的核心环节,它包括系统架构设计、模块设计和数据库设计等。
通过合理的设计和建模,软件工程师能够确保软件的可扩展性、灵活性和可维护性。
3. 编码与测试:编码是将设计的结果转化为可执行的程序代码,测试则是验证程序的正确性和稳定性。
软件工程师应该遵循规范的编程实践和测试方法,确保代码的质量和可靠性。
4. 配置管理:配置管理是软件工程中的重要过程,它涉及到对软件配置项的标识、控制和变更管理等。
通过配置管理,软件工程师能够管理软件的版本、变更和发布,确保软件的可追溯性和一致性。
5. 迭代与持续改进:软件工程是一个不断迭代和改进的过程。
软件工程师应该通过持续的监控和评估,发现软件开发过程中存在的问题和改进的空间,并及时调整和优化。
三、软件工程的发展趋势1. 敏捷开发:敏捷开发是一种反传统的软件开发方法,强调团队合作、迭代开发和快速反馈。
相比传统的瀑布模型,敏捷开发更加注重灵活性和快速交付,适应了快速变化的市场需求。
2. 云计算与大数据:随着云计算和大数据技术的发展,软件工程也面临着新的挑战和机遇。
软件工程概论知识点汇总软件工程概论知识点汇总1. 软件工程概述软件工程是一门关注软件开发的学科,它涉及到软件的设计、开发、测试、维护等方面。
软件工程的目标是通过系统化的方法来开发和维护高质量的软件产品。
2. 软件开发周期软件开发周期通常包括以下阶段:需求分析:明确定义软件系统的需求和功能。
设计:设计软件系统的结构、模块和接口。
编码:根据设计文档编写程序代码。
测试:对软件进行测试以确保其正确性和稳定性。
部署:将软件部署到目标系统中。
维护:修复软件中的漏洞和缺陷,并进行功能扩展。
3. 软件工程的原则软件工程遵循以下原则:模块化:将软件系统划分为独立的模块,每个模块负责不同的功能。
可重用性:设计和开发具有可重用性的模块,以提高开发效率和软件质量。
可测试性:设计易于测试的软件模块,以便及早发现和修复问题。
可维护性:设计易于维护的软件系统,以便快速修复问题和实现功能变更。
可扩展性:设计支持功能扩展和修改的软件架构。
4. 软件工程的方法和模型软件工程采用多种方法和模型来组织和管理软件开发过程:瀑布模型:将软件开发过程划分为顺序的阶段,每个阶段有特定的输出和目标。
增量模型:将软件开发过程分为多个增量,每个增量都是一个完整的小型软件系统。
原型模型:通过快速构建原型来获取用户反馈,并不断迭代改进软件系统。
敏捷方法:强调快速迭代和响应变化,通过小团队合作开发高质量的软件。
5. 软件测试软件测试是确保软件系统质量和正确性的重要过程。
常见的软件测试方法包括:单元测试:对软件的最小单元进行测试,例如函数和方法。
集成测试:测试不同模块之间的交互和兼容性。
系统测试:对整个软件系统进行全面的测试。
验证和验证测试:验证软件是否满足用户需求和规格,验证软件是否正确实现。
性能测试:测试软件在不同负载下的性能和响应时间。
6. 软件项目管理软件项目管理涉及到以下方面:项目计划:制定项目计划,明确项目的目标、范围、时间和资源。
项目组织:建立项目团队和分配任务,确保项目成员之间的协作和沟通。
软件的概念:软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。
(它是包括程序,数据及其相关文档的完整集合。
)软件= 程序+数据+文档程序= 算法+数据结构软件危机:指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。
软件危机主要包括的问题(两方面):①如何开发软件,以满足对软件日益增长的需求。
②如何维护数量不断膨胀的已有软件。
软件工程:① 把系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程应用于软件中。
②对① 中提到的各种方法的研究。
软件工程包括“管理”和“技术”两方面内容:管理——对人、财、物的合理使用和配置;技术——指软件开发中采用的方法、工具和过程。
软件工程方法学三要素:工具、方法和过程。
软件工程目标:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可追踪性、可移植性、可互操作性并满足用户需求的软件产品。
软件工程原则:在软件开发过程中,为了达到软件开发目标,必须遵循下列原则:1.抽象2.信息隐藏3.模块化4.局部化5.一致性6.完整性7.可验证性软件生命周期:软件产品从形成概念开始,经过开发、运行和维护直到退役的全过程称为软件生命(存)周期。
软件生命周期组成:包括软件定义、软件开发、软件运行与维护三部分。
软件过程:1.为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
2.软件过程是软件工程三要素之一。
3.通常用软件生命周期模型来描述。
软件生命周期模型,又称软件开发模型/软件过程模型/软件工程范型。
指软件项目从需求定义直至软件经使用后废弃为止,跨越整个生存周期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。
瀑布模型优点:可强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段的所有产品都必须经过质量保证小组的仔细验证。
缺点:无法解决软件需求不明确或不准确的问题;可能导致最终开发的产品不能真正满足用户需要。
瀑布模型比较适合开发需求明确的软件。
螺旋模型特点:螺旋模型的每一个周期都包括计划(需求定义)、风险分析、工程实现和评审4 个阶段。
优点:强调可选方案和约束条件,有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;维护是一个周期,与开发并没有本质区别。
缺点:需要开发人员具有相当丰富的风险评估经验和专门知识;进行风险分析的费用可能较大。
适合大型软件开发可行性研究的目的:用最小的代价在尽可能短的时间内确定问题是否能够并且值得解决。
可行性研究包括:经济可行性的研究:成本效益分析,评估项目开发成本,估算开发成本是否超过项目预期利润。
技术可行性研究:根据客户提出的系统功能,性能及实现系统的各项约束条件,从技术的角度研究实现系统的可行性。
法律可行性研究:研究在系统开发过程中可能涉及的各种合同,侵权,责任及各种与法律相抵触的问题。
开发方案的选择性研究:提出并评价实现系统的各种开发方案,从中选出一种。
操作可行性的研究:用户能否在特定的软件运行环境下使用这个数据流图(简称DFD,是SA (Structured Analysis)方法中用于表示系统逻辑模型的一种工具。
)以图形的方式描绘数据在系统中流动(数据流)和处理(数据转换)的过程。
画数据流图的步骤1:首先画系统的输入输出,即先画顶层数据流图。
>顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据流、输出数据流。
>顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。
下图为库房管理系统的顶层图。
画数据流图的步骤2:对用户需求的文字描述进行语法分析,确定主要功能,画出1 层数据流图。
注意:>其中的名词和名词短语构成潜在的外部实体、数据源或数据流,动词构成潜在的处理功能。
>一般将层号从1 开始编号,采用自顶向下,由外向内的原则。
画1层数据流图时,分解顶层流图的系统为若干子系统,决定每个子系统间的数据接口和活动关系。
画数据流图的步骤3:采用通常的功能分解方法,按照“强内聚,松耦合”原则对功能进行精化,形成下一层数据流图。
不再分解的加工称为基本加工。
数据字典定义:数据字典(Data Dictionary,简称DD)就是用来定义数据流图中的各个成分的具体含义的。
数据字典有以下四类条目:数据流、数据项(数据分量或数据元素)、数据存储、基本加工(转换或处理)。
需求分析的任务:1 、确定对系统的综合要求2 、分析系统的数据要求3 、导出系统的逻辑模型4 、修正系统开发计划需求分析的内容:问题分析,需求描述,需求评审。
初步需求获取技术:1. 访谈与会议2. 考察用户软件或其子系统业务流程3. 用户和开发人员共同组成联合小组需求分析方法:1、功能分析方法将系统看做若干功能模块的集合,每个功能又可以分解为若干子功能,子功能还可继续分解,分解的结果已经是系统的雏形。
2、结构化分析方法以数据为基础,从问题空间到某种表示的映射方法,由数据流图表示。
3、信息建模法从数据的角度对现实世界建立模型。
大型信息系统经常借助模型来设计分析系统。
4、面向对象的分析方法其关键是识别问题域内的对象,分析它们之间的关系,并建立三类模型:对象模型,动态模型和功能模型。
实体—关系图:是描述系统所有数据对象的组成和属性,描述数据对象之间关系的图形语言。
实体—关系图三种基本元素:数据对象;对象间的关系;属性。
绘制实体---关系图步骤:1 、在需求收集的过程中,列出应用软件或业务过程涉及到的所有“事物”,将其演化成数据对象;2 、一次考虑一个对象,定义这个对象和其他对象之间是否存在连接;3 、如果存在连接,应创建一个或多个关系;4 、对每一个关系,确定其关联类型;5 、重复步骤(2 )到步骤(4 ) ,直到定义了所有关系;6 、定义每个实体的属性;7 、复审实体关系图;8 、重复步骤(1 )到(7 ) ,直到数据建模完成。
软件设计的两个阶段:第一阶段:概要设计(总体设计),是根据需求确定软件和数据的总体框架。
第二阶段:详细设计(过程设计),是将其进一步精化成软件的算法表示和数据结构。
抽象:认识复杂事物和现象时,抽出事物本质的共同特性而暂不考虑它们的细节。
抽象的步骤:(1)在最高抽象级别上,用面向问题域的语言叙述“问题”,概括“问题解”的形式。
(2)不断地具体化,不断地用面向过程的语言描述问题。
(3)在最低的抽象级别上给出可直接实现的“问题解”,即程序。
信息隐藏:模块应该设计得使其所含信息(过程和数据)对于那些不需要这些信息的模块不可访问。
局部化:将一些关系密切的软件元素物理地放得彼此靠近。
耦合性(coupling ):是对软件系统结构中,各模块间相互联系紧密程度的一种度量。
模块间耦合强度:内聚性(cohesion):指一个模块内部各个元素彼此结合的紧密程度的度量。
软件的深度(Depth):软件结构中模块的层数。
宽度(Width):软件结构内同一层的模块总数的最大值。
(跨度)模块的“扇出率”(Fan—out):该模块直接控制的其他模块(直属下级)数。
(控制在7 以内)模块的“扇入率”(Fan—in):能直接控制该模块的模块数。
(有多少上级模块调用它)用SD方法将数据流图转换为软件结构的五个步骤:(1)确定信息流的类型;(2)划定流界;(3)将数据流图映射为程序结构;(4)提取层次控制结构;(5)通过设计复审和启发式策略精化结构。
信息流的类型:信息流分为变换流和事务流两种类型。
变换分析的步骤:步骤一:复审基本系统模型。
步骤二:复审和精化软件数据流图。
步骤三:确定DFD为变换流还是事务流。
步骤四:划定输入流和输出流边界,孤立变换中心。
步骤五:执行“一级分解”,导出具有三个层次的程序结构。
步骤六:执行“二级分解”。
步骤七:采用启发式设计策略,精化所得程序结构雏形,改良软件质量。
事务分析法的七个步骤:步骤一:复审基本系统模型;步骤二:复审并精化软件数据流图;步骤三:确定数据流图的特性;/前三步与变换分析法相同/步骤四:找出数条动作路径的公共源头,即为事务中心,确定由事务中心发出的每一动作路径的数据流特性。
步骤五:把数据流图映射为事务处理型的程序结构。
步骤六:分解并精化事务结构以及每条动作路径所对应的结构。
步骤七:使用启发式设计策略,精化所得程序结构雏形,改良软件质量。
过程设计的主要任务:为每个模块确定采用的算法。
确定每一模块使用的数据结构。
确定模块接口的细节。
为每一个模块设计出一组测试用例。
结构(化)程序设计定义:采用自顶向下逐步求精的设计方法和单入口单出口的控制构件。
用户界面应具备的特性:1.可使用性如:使用简单、界面中所用术语应该标准化,并保持一致性;拥有He lp 功能;较快的系统响应速度和较低的系统开销;具有容错能力。
2.灵活性能满足不同用户的要求;可以制定和修改界面方式;能提供各类的系统响应信息,如反馈、提示、帮助、报错等;与其他软件系统应有标准的界面。
3.复杂性在完成预定功能的前提下,用户界面越简单越好。
4.可靠性用户界面能保证用户正确、可靠地使用系统,保证有关程序和数据的安全性。
四代人机界面的风格:最早,是命令和询问方式。
第二代界面是简单的菜单式。
第三代界面是面向窗口的点选界面。
第四代界面可同时执行多个任务。
人机界面的设计过程可分为下面几个步骤:(1)创建系统功能的外部模型;(2)确定为完成此系统功能人和计算机应分别完成的任务;(3)考虑界面设计中的典型问题;(4)借助CASE工具构造界面原型;(5)真正实现设计模型;(6)评估界面质量。
人机界面设计问题:①系统响应时间②用户帮助信息③出错信息处理④命令交互编码(Coding)的概念:把软件设计翻译成计算机可以理解的形式——用某种程序设计语言书写的程序。
影响编码质量的因素:包括编程语言、编程准则和编程风格。
程序设计语言的分类:第一代语言指机器语言和汇编语言。
第二代语言包括Fortran、Cobol、Algol 60 和Basic 等。
第三代语言可细分为三类:通用高级语言、面向对象的语言和专用语言。
第四代语言使用最广的是数据库查询语言。
好的编程风格应遵循的规则:节俭化,模块化,简单化,结构化,文档化,格式化。
测试的定义:是为了发现错误而执行的程序的过程。
测试用例:通常把测试数据和预期的输出结果称为测试用例。
黑盒测试:已知产品应该具有的功能,通过测试检验每个功能是否都能正常使用;白盒测试:已知产品内部工作过程,通过测试检验产品内部动作是否按照产品规格说明的规定正常进行。
基本路径测试的步骤:Step1 根据程序的逻辑结构画出流程图;Step2 根据流程图画出流图;Step3 确定复杂性度量V(G);Step4 确定基本路径的集合;Step5 对每条基本路径设计测试用例。