软件工程概论知识点
软件工程导论知识总结

软件工程导论第一章:软件工程学概论1. 软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2. 概括的说,软件危机包括两方面问题:如何开发软件已满足日益增长的需求;如何维护数量不断膨胀的已有软件。
3. 软件危机的典型表现:对软件开发成本和进度的估计常常很不准确;用户对“已完成的”软件系统不满意的现象经常发生;软件的质量往往靠不住;软件常常是不可维护的;软件通常没有适当的文档资料;软件成本在计算机系统总成本中所占的比例逐年上升;软件开发生产率提高的速度,远远跟不上计算机应用迅速不及深入的趋势。
4. 产生软件危机的原因:在软件开发和维护的过程中存在这么多严重的问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
5. 在实践过称中或多或少的采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。
6. 软件不同与硬件,他是计算机系统中的逻辑部件而不是物理部件。
7. 软件不同于一般程序,他的一个显著特点是估摸庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
8. 软件本身独有的特点确实给开发和维护带来一些客观困难。
9. 对用户要求没有完整的认识就匆忙着手编写程序是软件开发功臣失败的主要原因之一。
10. 一个软件从定义、开发、使用和维护,直到最终被遗弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。
11. 软件是程序、数据及相关文档的完整集合。
其中,程序是能够完成预定功能和性能的可执的指令序列;数据是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。
12. 软件工程是指导计算机软件开发和维护的一门工程学科。
13. 软件工程是:把系统的、规范的、可度量的途径应用与软件开发、运行和维护过程,也就是吧工程应用与软件;研究前面所提到的途径。
14. 软件工程的本质特性:软件工程关注与大型程序的构造;软件工程的中心课题是控制复杂性;软件经常变化;开发软件的效率非常重要;和谐的合作是开发软件的关键;软件必须有效地支持他的用户;在软件工程领域中通常由具有一种文化背景的人体另一种具有文化背景的人创造产品。
软件工程概论 知识点

第一章软件工程概论1.1软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
1.2.软件工程1、软件工程的定义:指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理技术和方法进行软件的开发和维护,把经过时间考虑而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护.2、软件工程的基本原理:1) 用分阶段的生命周期计划严格管理2) 坚持进行阶段评审3) 实行严格的产品控制4) 采纳现代程序设计技术5) 结果应能清楚地审查6) 开发小组的人员应少而精7) 承认不断改进软件工程实践的必要性3. 软件工程的方法学通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学。
软件工程三个要素:工具、方法、过程。
1.3 软件生命周期A,可行性分析与开发项计划:主要确定软件的开发目标及其可行性。
B,需求分析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。
C,设计(概要设计和详细设计):主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。
D,,编码:将软件设计的结果转换成计算机可运行的程序代码。
E,测试:在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。
F,维护:在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求.1.4软件过程1.传统瀑布模型:是一种整体开发模型,程序的物理实现集中在开发阶段的后期,用户在最后才能看到自己的产品。
2.快速原型模型:在用户不能给出完整、准确的需求说明等情况下,可以根据用户的一组基本需求,快速建造一个原型(可运行的软件),然后进行评估,进一步精化、调整原型,使其满足用户的要求,也使开发者对将要做的事情有更好的理解。
软件工程概论知识点

软件工程概论知识点软件工程是研究和应用计算机科学原理、方法和工具来开发和维护高质量的软件系统的工程学科。
它涉及到软件开发的整个生命周期,从需求分析到设计、编码、测试、部署和维护。
以下是软件工程概论的一些重要知识点。
1. 软件开发生命周期软件开发生命周期是软件工程中重要的概念,它包含了软件开发的各个阶段和活动。
常见的软件开发生命周期模型包括瀑布模型、迭代模型、螺旋模型等。
每个模型包括不同的阶段,如需求分析、设计、编码、测试、部署和维护等。
了解软件开发生命周期有助于理解软件开发过程中的活动和任务。
2. 软件需求工程软件需求工程是软件开发的第一步,它涉及到收集、分析、定义和记录软件系统的需求。
需求工程包括需求获取、需求分析、需求规格和需求验证等过程。
通过需求工程,软件开发团队可以确保对用户需求的准确理解,为软件系统的设计和开发提供清晰的目标和指导。
3. 软件设计原则软件设计是软件开发的关键环节,它决定了软件系统的结构、功能和性能。
软件设计原则是指导软件设计过程的一些基本原则,如单一职责原则、开闭原则、里氏替换原则、依赖倒置原则等。
遵循这些原则可以提高软件系统的可维护性、可扩展性和可重用性。
4. 软件开发方法和工具软件开发方法是根据软件开发生命周期的需求,结合特定的软件开发模型,选择合适的方法和工具来开发软件系统。
常见的软件开发方法包括敏捷开发、结构化开发和面向对象开发等。
软件开发工具包括集成开发环境、版本控制工具、测试工具等。
5. 软件质量保证软件质量保证是确保软件系统满足用户需求和规定标准的一系列活动。
软件质量保证包括软件测试、代码审查、性能优化和配置管理等。
通过软件质量保证,可以降低软件系统的缺陷率,提高软件的可靠性和可用性。
6. 软件项目管理软件项目管理是指对软件项目进行规划、组织、协调和控制的一系列活动。
软件项目管理包括项目计划、需求管理、进度管理、风险管理和团队管理等。
有效的软件项目管理可以提高软件项目的成功率和开发效率。
软件工程概论知识点汇总

软件工程概论知识点汇总目录: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. 软件开发生命周期模型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.软件工程概述1.1 软件工程定义1.2 软件工程的重要性1.3 软件生命周期2.需求分析与规格说明2.1 需求分析过程2.2 需求获取方法2.3 需求规格说明的要素2.4 需求跟踪与变更管理3.软件设计3.1 软件设计原则3.2 结构化设计方法3.3 面向对象设计方法3.4 数据库设计3.5 用户界面设计4.软件开发4.1 编码规范4.2 编程语言选择4.3 软件构建工具4.4 软件测试4.5 版本控制5.软件项目管理5.1 项目计划与进度管理 5.2 软件开发过程模型 5.3 团队协作与沟通5.4 风险管理6.质量保证与软件维护6.1 质量保证方法6.2 软件维护类型6.3 软件维护活动6.4 软件退役与替换附件:________本文档涉及的附件(请附上相关文档、图表等)法律名词及注释:________1.软件工程:________指将系统化的、规范化的、可量化的方法应用于软件的开发、运行和维护的工程学科。
2.需求分析:________确定用户对软件系统需要的功能、性能和约束等方面的要求,并以此为基础进行系统的分析和设计。
3.软件设计:________根据需求分析的结果,制定软件系统的总体结构和各组成部分的详细设计方案。
4.软件开发:________根据软件设计的方案,进行编码和调试,最终可执行的软件系统。
5.软件项目管理:________对整个软件项目进行计划、协调、控制和有效地管理,确保项目顺利完成。
6.质量保证:________通过不同的方法和技术,提高软件产品的质量,确保其满足用户的需求和要求。
7.软件维护:________对已投入使用的软件进行修复性、适应性、完善性和预防性等各方面的修改和改进。
软件工程知识点

软件工程知识点1. 软件工程概述软件工程是一门研究和应用工程原则、方法和工具来开发和维护高质量软件系统的学科。
它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试、部署和维护。
2. 软件生命周期软件生命周期定义了软件开发过程中的各个阶段,包括需求定义、系统设计、详细设计、编码、测试、部署和维护等。
每个阶段都有特定的任务和交付物,通过严格遵循软件生命周期来管理项目,可以提高软件开发的质量和效率。
3. 软件需求分析软件需求分析是确定软件系统所需功能和性能的过程。
它包括对用户需求进行调查、分析和规范化,以便从中获得详细的系统需求。
4. 软件设计软件设计是根据需求分析的结果,确定软件系统的结构和组成部分的过程。
它包括软件架构设计、模块设计、数据结构设计等。
5. 软件编码软件编码是将设计好的软件系统转化为可执行的计算机程序的过程。
在编码过程中,开发人员需要遵循相应的编程规范和标准,以确保代码的可读性和可维护性。
6. 软件测试软件测试是为了发现和修复软件中的错误和缺陷。
测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层级和类型,旨在确保软件功能的正确性和稳定性。
7. 软件部署软件部署是将软件安装和配置到用户的计算机系统中的过程。
在部署过程中,需要注意安装环境、配置文件和用户权限等问题,确保软件能够正常运行。
8. 软件维护软件维护是为了修复软件中的错误、改进功能以及适应新的需求而进行的修改和更新。
维护过程中包括问题分析、修改设计、修改代码、测试和发布等环节。
9. 软件质量保证软件质量保证是通过制定和执行软件质量标准、流程和方法,以确保软件开发过程中的质量问题被及时发现和解决的一系列活动。
包括代码审查、测试自动化、性能测试等。
10. 软件项目管理软件项目管理是对软件开发项目进行规划、组织、监控和控制的活动。
它包括项目需求管理、进度管理、资源管理、风险管理等方面,以确保软件项目按时、按质量要求完成。
软件工程知识点总结

软件工程(简要知识点)软件生命周 期:软件定义 软件开发问题定义(确定题目) 可行性研究 需求分析 概要设计 系统设计 详细设计系统实现编码和单元测试 综合测试运行维护:主要任务是使软件持久地满足用户的需要一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 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、单元测试:又称模块测试。
每个程序模块完成一个相对独立的子功能,所以 可以对该模块进行单独的测试。
由于每个模块都有清晰定义的功能,所以通常 比较容易设计相应的测试方案,以检验每个模块的正确性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程概论知识点总结第一章软件定义:是计算机系统中及硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。
软件特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。
软件分类。
(1) 系统软件 (2) 应用软件 (3) 支撑软件 (4) 可复用软件软件危机的原因:1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作的计划很难制定。
2)软件人员及用户的交流存在障碍,除了知识背景的差异,缺少合适的交流方法和需求描述工具也是重要的一个原因。
3)软件开发过程不规范,缺少方法论和规范的指导,软件难以维护。
4)随着软件规模的增大,其复杂性往往会呈指数级升高。
5)缺少有效的软件评测手段,提交用户的软件质量差软件工程的定义:1.指导软件开发和维护的工程性学科,它以计算机科学理论和其他相关学科的理论为指导,采用工程化的概念、原理技术和方法进行软件的开发和维护,把经过时间考虑而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以较少的代价获得高质量的软件并维护2.软件工程的目标:运用先进的软件开发技术和管理方法来提高软件的质量和生产率,也就是要以较短周期、较低的成本生产出高质量的软件产品,并最终实现软件的工业化生产。
3.软件的生存周期:软件孕育、诞生、成长、成熟、衰亡的生存过程。
由软件定义、软件开发和运行维护三个时期组成。
软件定义:解决“做什么”的问题;软件开发:解决“如何做”的问题,分为概要设计、详细设计、编码和测试四个阶段;维护:使软件持久的满足用户的需求。
4.开发过程中的典型文档a.软件需求规格说明书:描述将要开发的软件做什么。
b.项目计划:描述将要完成的任务及其顺序,并估计所需要的时间及工作量。
c.软件测试计划:描述如何测试软件,确保软件应实现规定的功能,并达到预期的性能。
d.软件设计说明书:描述软件的结构,包括概要设计及详细设计。
e.用户手册:描述如何使用软件各阶段基本任务:问题定义及可行性研究、需求分析、软件设计、程序编码和单元测试、集成测试和系统测试。
5.软件生存期模型:瀑布模型。
优点:强迫开发人员规范化方法、严格规定每个阶段必须提交的文档、要求每个阶段交出的所有产品必须经过验证。
缺点:完全依赖书面规格说明,可能会导致产品及用户需求有差异、只适用于项目开始时需求已确定的情况。
需求分析、规格说明、设计、编码、综合测试、维护快速原型模型。
优点:易于满足用户真实需求、已通过及用户的交互验证,能正确描述用户需求、产品开发基本上按线性顺序、规格文档说明正确描述了用户需求,后期错误率和返工率很低、开发人员建立原型系统时学到的东西有助于减少后期的错误率、快速开发有助于节约成本,原型的用途是获取用户的正真需求。
增量模型。
优点:较短时间内能提交有用产品、逐步增加产品有助于用户适应学习、项目失败风险较低、优先级最高的服务首先交付,则系统核心服务接受最多测试,一般不会失败。
注意:新的构件加入系统时必须不破坏已开发出的产品、体系结构必须开放,易于向其中加入新构件。
螺旋模型。
四个象限:目标设定、风险估计及弱化、开发及验证、计划。
优点有利于已有软件的重用,也有助于把软件质量作为开发的一个重要目标、减少了过多测试或测试不足带来的风险、维护和开发之间没有本质区别。
缺点:此模型为风险驱动,要求开发人员必须具有丰富的风险评估经验,否则会意识不到风险的出现导致失败。
6.统一过程的6个核心工作流:业务建模、需求、分析及设计、实现、测试、部署7.统一过程的4个阶段:初始阶段、细化阶段、构造阶段、移交阶段.a.主要关注项目计划和风险评估,其目的是确定是否值得开发目标系统。
b.细化阶段关心定义系统的总体框架,目标是:细化初始需求,细化体系结构,监控风险并细化他们的优先级,细化业务案例以及制定项目管理计划。
c.构造阶段是建立系统,构造系统的第一个具有操作性的版本,以能够交付给客户进行β测试版本结束。
d.移交阶段包含β测试时期,以发布完完整的系统而终止,其目标是确保系统真正满足客户的需求。
第二章1.软件工程方法学:软件生命周期全过程中使用的一整套技术的集合成为方法学,也称为范型。
三要素:方法、工具、过程2.传统方法的特点:传统方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地逐步完成每个阶段的任务。
每一个阶段的开始和结束都有严格的标准,对于任何两个相邻的阶段而言,前一个阶段的结束标准就是后一阶段的开始标准。
(2)面向对象方法的特点:面向对象方法是将数据和对数据的操作紧密地结合起来的方法,其出发点和基本原则是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识问题和解决问题的方法及过程,适用于大型、复杂及交互性比较强的系统3.形式化方法学:是一种基于形式化数学变换的软件开发方法,它可将系统的规格说明转换为可执行的程序。
特点:软件需求规格说明书被细化为用数学记号表达的详细形式化规格说明;设计、实现和单元测试等开发过程由一个变换开发过程代替,通过一系列变换将形式化的规格说明细化成为程序。
面向对象=对象+类+继承+消息通信,面向对象程序的基本组成单位是类,核心是对象。
面向对象的开发方法:Booch方法,Rumbaugh方法,Coad和Yourdon方法,Jacobson(OSSE)方法,Wirfs-Brock方法4.类.现实生活中的对象经过抽象,映射为程序中的对象。
对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class)。
封装。
面向对象的封装特性及其抽象特性密切相关。
封装是一种信息隐蔽技术,就是利用抽象数据类型将数据和基于数据的操作封装在一起。
用户只能看到对象的封装界面信息,对象的内部细节对用户是隐蔽的。
封装的定义是:(1) 清楚的边界,所有对象的内部信息被限定在这个边界内;(2) 接口,即对象向外界提供的方法,外界可以通过这些方法及对象进行交互;(3) 受保护的内部实现,即软件对象功能的实现细节,实现细节不能从类外访问。
5.UML的特点:a.统一标准。
b.面向对象。
c.可视化,表达能力强大。
d.独立于过程。
e.容易掌握使用。
f.及编程语言的关系6.软件工具是指能支持软件生存周期中某一阶段(如系统定义、需求分析、设计、编码、测试或维护等)的需要而使用的软件工具。
软件工具的发展:50年代末期出现了程序设计语言,60年代末提出软件工程的概念,80年代中期提出了软件过程的新概念,如今,软件工具重视用户界面的设计,不断地采用新理论和新技术第三章软件需求分析阶段的任务:需求获取、需求分析、需求定义和需求验证。
结构化分析方法:是一种面向数据流进行需求分析的方法。
结构化设计方法的分类:一类是根据系统的数据流进行设计,称为面向数据流的设计,或称过程驱动的设计;另一类是根据系统的数据结构进行设计,称为面向数据结构的设计,或称数据驱动的设计。
需求获取是软件生存期中决定性的一步,涉及客户、用户及开发方。
需求获取的问题:系统的目标或范围问题、需求不准确性问题、需求的易变问题需求获取的任务:发现和分析问题,并分析问题的原因和结果的关系、及用户进行各种方式的交流,并使用调查研究方法收集信息、按照数据过程和接口观察问题的不同侧面、将获取的需求文档化,形式有用例、决策表、决策树等。
需求获取的原则:深入浅出、以流程为主线。
需求获取的过程:开发高层的业务模型、定义项目范围和高层需求、识别用户类和用户代表、获取具体的需求、确定目标系统的业务工作流、需求整理及总结(功能需求、性能需求、环境需求、可靠性需求、安全保密需求、用户界面需求、资源使用需求、软件成本消耗及开发进度需求)。
获取具体的需求:及用户进行交流、现有产品或竞争产品的描述文档、系统需求规格说明、当前系统的问题报告和改进要求、市场调查和用户问卷调查、观察用户如何工作。
软件需求分析阶段的任务:需求获取、需求分析(完整性、正确性、合理性、可行性、充分性)、需求定义、需求验证。
数据字典:以词条的方式定义在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义包括数据流、加工、数据文件、数据元素,以及数据源点和数据汇点。
数据字典精确地、严格地定义了每一个及系统相关的数据元素。
、第四章结构化设计方法是在模块化、自顶向下逐步细化及结构华程序设计技术基础之上发展起来的。
结构化设计方法可以分为两类,一类是根据系统的数据流进行设计,称为面向数据流设计或称过程驱动设计;另一类是根据系统的数据结构进行设计,成为面向数据结构设计,或称数据驱动设计。
软件设计过程包括一套原理、概念和实践,可以指导高质量的系统或产品开发。
软件设计的原则:分而治之、模块独立性(耦合和内聚)、提高抽象层次、复用性设计、灵活性性设计(降低耦合提高内聚、建立抽象、不要将代码写死、抛出异常、使用并创建可复用代码)结构化设计(立方体图)分为概要设计(体系结构设计、接口设计、数据设计)和详细设计(过程设计)模块的4个类型:传入模块、传出模块、变换模块、协调模块接口设计概述:模块或软件构件间的接口设计、软件及其他软硬件系统之间的接口设计、软件及人之间的交互设计。
程序流程图(程序框图)特点:直观、清晰、易于学习和掌握,5种基本控制结构:顺序型、选择型、先判定、后判定、多情况。
任何复杂的程序流程图都是由者个基本类型嵌套而成。
第五章机器语言(二进制代码)、汇编语言(更直观、符号指令及机器指令相对应)、高级程序设计语言(用途广泛、有大量软件库,ALGLOL,FORTRAN,COBOL,Basic,Pascal,C,C++,Lisp,Prolog,Ada)、第四代语言(面向问题、非过程化程度高)4GL缺点:整体能力不如3GL,只能面向专项应用、抽象级别较高,系统运行开销大效率低、缺乏统一的工业标准,品种繁多差异大、主要基于数据库应用的领域,不宜于科学计算、实时系统和系统软件开发。
4GL分类:查询语言和报表生成器、图形语言、应用生成器、形式化规格说明语言。
第六章软件测试是在软件投入生产性运行之前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量控制的关键步骤。
软件测试的对象:需求分析、概要设计、详细设计及程序编码等阶段所得的文档资料,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序。
确认是一系列的活动和过程,目的在于证实在一个恰当的外部环境中软件的逻辑正确性,分为静态确认和动态确认。
验证是试图证明在软件生存期各个阶段以及阶段间的逻辑协调性、完备性和正确性。
确认及测试都属于软件测试。
黑盒测试:已知产品的功能设计规格,可以通过测试证明每个实现了的功能是否满足要求(根据软件的外部特性)用列设计:a.等价类划分;b.边界值分析。