软件工程笔记完整版
软件工程笔记(完整版)

第一章软件工程概述1. 软件危机(software crisis) :是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
即“两低一高” 问题:质量低、效率低、成本高。
软件危机也成为“软件萧条(depression)”或"软件困扰(aflication) ”2. 软件危机主要表现1) 开发成本和进度估计不准2) 用户对“已完成的”软件系统不满意3) 软件质量往往靠不住4) 软件常常是不可维护的5) 软件通常没有适当的文档资料6) 软件成本逐年上升7) 软件开发生产率滞后于硬件和计算机应用普及的趋势3. 产生软件危机的原因1) 与软件本身的特点有关a. 软件不同于硬件,是逻辑部件而不是物理部件缺乏可见性难于测试管理和控制开发过程困难不会因使用时间过长而被“用坏” 难以维护b. 软件不同于一般程序,规模庞大,而且程序复杂性随着程序规模的增加而呈指数上升2) 和软件开发与维护的方法不正确有关a. 对软件开发和维护有关的错误认识和作法忽视软件需求分析的重要性认为软件开发就是写程序轻视软件维护b. 对软件开发过程与方法的认识与应用软件开发要经历一个漫长的时期(编程占10-20%) 程序仅是完成软件配置的一个组成部分软件开发方法要有利于软件维护4. 软件的特点(1) 软件是无形的( intangible )(2) 软件副本的大批量生产轻而易举(3) 软件业是劳动密集型的(4) 一个没有经过充分训练的软件开发人员很容易编写出难以理解和修改的软件(5) 软件本身很容易修改。
但由于它的复杂性,又很难正确地修改。
(6) 软件不像其他的工业产品那样会因使用而磨损,随着反复修改,它的设计会逐渐退化5. 消除软件危机的途径1) 对计算机软件的正确认识2) 认识到软件开发不是个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目3) 推广使用成功的软件开发技术和方法4)开发和使用更好的软件开发工具总之,为了消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
软件工程笔记

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

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

第一章:软件工程概述1.软件特点软件是计算机系统中的逻辑成分,具有无形性。
其主要内容包括:程序、配臵文件、系统文档、用户文档等。
2.软件分类(1)按功能划分:系统软件、支撑软件、应用软件。
(2)按工作方式划分:实时处理软件、分时处理软件、交互式软件、批处理软件。
(3)按规模划分:微型软件、小型软件、中型软件、大型软件。
(4)按服务对象划分:通用软件、定制软件。
3.软件发展阶段(1)程序设计时代(20世纪50年代)。
(2)程序系统时代(20世纪60年代)。
(3)软件工程时代(20世纪70年代起)。
4.软件危机(1)危机现象:开发成本与进度估计不准确,产品与用户要求不一致,产品质量可靠性差,文档不完整不一致,产品可维护性差,生产率低。
(2)危机原因:软件的不可见性,系统规模庞大,生产工程化程度低,对用户需求关心不够,对维护不够重视,开发工具自动化程度低。
5.软件工程软件工程是一门关于软件开发与维护的工程学科,它涉及软件生产的各个方面,能够为经济、高效地开发高质量的软件产品提供最有效的支持。
(1)工程方法:结构化方法、JSD方法、面向对象方法。
(2)软件工具:具有自动化特征的软件开发集成支撑环境。
(3)工程过程:在软件工具支持下的一系列工程活动,基本活动是软件定义、软件开发、软件验证、软件维护。
(4)工程管理:项目规划,项目资源调配,软件产品控制。
(5)工程原则:分阶段生命周期计划,阶段评审制度,严格的产品控制,采用先进的技术,成果能清楚地审查,开发队伍精练,不断改进工程实践。
(6)工程目标:开发成本较低,软件功能能满足用户需求,软件性能较好,软件可靠性高,软件易于使用、维护与移植,能按时完成开发任务并及时交付使用。
(7)工程文化:包括工程价值、工程思想和工程行为三个方面的内容。
第二章:软件工程过程模型1.软件生命周期如同任何事物都有一个发生、发展、成熟直至衰亡的全过程一样,软件系统或软件产品也有一个定义、开发、运行维护直至被淘汰这样的全过程,我们把软件将要经历的这个全过程称为软件的生命周期。
软件工程学习笔记

第一章一、软件的特点1、软件:计算机程序及其说明程序的各种文档2、程序:是计算机任务的处理对象和处理规则的描述3、文档:是有关计算机程序功能、设计、编制、使用的文字或图形资料4、软件的特点:1)软件是一种逻辑产品2)软件产品的生产主要是研制3)软件产品不会用坏,不存在磨损、消耗问题4)软件产品的生产主要是脑力劳动5)软件费用不断增加,软件成本相当昂贵二、软件生产有几个阶段,各有何特征1、程序设计时代生产方式:个体手工劳动工具:机器语言、汇编语言开发方法:追求程序运行效率硬件特征:价格贵、存储容量小、运行可靠性差软件特征:只有程序、程序设计概念,不重视程序设计方法2、程序系统时代生产方式:作坊式的小集团合作生产生产工具:高级语言开发方法:个人技巧,开始提出结构法方法硬件特征:速度、容量、工作可靠跃居第一明显提高软件特征:程序员数量猛增加,导致软件危机出现。
3、软件工程时代生产方式:工程化的生产生产工具:数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件硬件特征:向超高速、大容量、微型化以及网络化方向发展三、什么是软件危机,其产生的原因是什么?1、软件危机软件发展到第二阶段末期,一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术进步一直不能满足发展的要求。
在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
2、软件危机的表现1)经费预算经常突破2)开发的软件不能满足用户的要求3)开发的软件可维护性差4)软件的软件可靠性差3、原因1)软件的规模越来越大,结构越来越复杂2)软件开发管理困难而复杂3)软件开发费用不断增加4)软件开发技术落后5)生产方式落后6)开发工具落后四、什么是软件工程,其目标和内容是什么?1、软件工程用科学知识和技术原理来定义、开发、维护软件的一门学科2、目标建造一个大型软件系统,一般有以下几个目标1)付出较低的开发成本2)达到软件要求的功能3)取得较好的软件性能4)开发的软件易于移植5)需要较低的维护费用6)能按时完成开发任务及时交付使用7)开发的软件可靠性高3、内容软件开发技术:主要研究软件开发方法、软件开发过程、软件开发工具和环境软件开发管理:软件管理学、软件经济学、软件必理学4、面临的问题1)软件的费用2)软件的可靠性3)软件的维护4)软件的生产率5)软件的重用五、什么是软件的生存周期,它有哪几个活动1、软件的生存周期一个软件从提出开发要求开始直到该软件报废为止的整个日期。
软件工程知识点总结

软件工程〔简要知识点〕一、. 软件过程五个模型比照〔瀑布模型、快速原型、增量、螺旋、喷泉模型〕二、可行性研究: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、集成测试:在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试完毕之后还要进展集成测试。
这个步骤着重测试模块间的接口,子功能的组合是否到达了预期要求的功能,全程数据构造是否有问题等。
软件工程知识点总结

软件工程(简要知识点)软件生命周 期:软件定义 软件开发问题定义(确定题目) 可行性研究 需求分析 概要设计 系统设计 详细设计系统实现编码和单元测试 综合测试运行维护:主要任务是使软件持久地满足用户的需要一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 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章软件工程基本观念1.1 软件工程的目标与常用模型1.2 软件开发的基本策略1.2.1 复用软件复用可以表述为:构造新的软件系统可以不必每次从零开始,直接使用已有(稳定)的软构件,即可组装(或合理修改)成新的系统。
1.2.2 分而治之分而治之是指把一个复杂的问题分解成若干个简单的子问题,然后逐个解决。
诸如软件的体系结构设计,模块化设计等都是分而治之的表象。
1.2.3 优化-折衷软件的优化是指优化软件的各个质量因素,比如提高软件运行速度,提高对内存资源的利用率,改善用户界面效果,使三维图形的真实感更强等等。
但是软件优化比较复杂,当所有因素不能都得到优化的时候,就需要“折衷”策略。
软件中的“折衷”策略是指通过协调各个质量因素,实现整体质量的最优。
在保证其他质量因素不变差的前提下,使某些质量因素变得更好。
第2章程序员与程序经理2.1 了解程序员2.2了解程序经理好的程序经理应具备以下品质:1)技术水平是程序员当中的最高级别2)能做最多且最难的工作3)有人格魅力程序员升为经理后一定要保持编程的习惯。
2.4 软件团队建设技术级别和管理级别都划分为四个等级:第3章项目计划与质量管理在可行性分析之后,项目计划与质量管理将贯穿需求分析,系统设计,程序设计,测试,维护等软件工程环节。
软件的高质量是“设计”出来的,不是“管”出来的。
3.1 项目计划只有知己知彼才能做出合理的项目计划。
“知己”是指了解有多少可用资源,包括:人;可复用的软构件;软硬件环境。
“知彼”是指了解项目的规模,难度与时间限制。
3.2 零缺陷质量管理的理念“零缺陷”质量管理有两个核心内容:高目标;可执行的规范。
3.3 软件的质量因素3.4 质量检查质量检查应该在每个实践环节(里程碑)都执行。
检查工作要预防被检查者弄虚作假。
检查工作要有科学的评审方式。
第4章可行性分析与需求分析可行性分析是要决定“做还是不做”。
需求分析是要决定“做什么,不做什么”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.第一章软件工程概述1.软件危机 (software crisis):是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
即“两低一高”问题:质量低、效率低、成本高。
软件危机也成为“软件萧条(depression)”或“软件困扰(afflication)”2.软件危机主要表现1)开发成本和进度估计不准2)用户对“已完成的”软件系统不满意3)软件质量往往靠不住4)软件常常是不可维护的5)软件通常没有适当的文档资料6)软件成本逐年上升7)软件开发生产率滞后于硬件和计算机应用普及的趋势3.产生软件危机的原因1)与软件本身的特点有关a. 软件不同于硬件,是逻辑部件而不是物理部件缺乏可见性难于测试管理和控制开发过程困难不会因使用时间过长而被“用坏”难以维护b.软件不同于一般程序,规模庞大,而且程序复杂性随着程序规模的增加而呈指数上升 2)和软件开发与维护的方法不正确有关a.对软件开发和维护有关的错误认识和作法忽视软件需求分析的重要性认为软件开发就是写程序轻视软件维护b. 对软件开发过程与方法的认识与应用软件开发要经历一个漫长的时期(编程占10-20%)程序仅是完成软件配置的一个组成部分软件开发方法要有利于软件维护4.软件的特点(1)软件是无形的(intangible)(2)软件副本的大批量生产轻而易举(3)软件业是劳动密集型的(4)一个没有经过充分训练的软件开发人员很容易编写出难以理解和修改的软件(5)软件本身很容易修改。
但由于它的复杂性,又很难正确地修改。
(6)软件不像其他的工业产品那样会因使用而磨损,随着反复修改,它的设计会逐渐退化5.消除软件危机的途径1)对计算机软件的正确认识2)认识到软件开发不是个体劳动的神秘技巧,而是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目3)推广使用成功的软件开发技术和方法教育资料..4)开发和使用更好的软件开发工具总之, 为了消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
6.对“工程”的理解:大事情,施工的过程,工程学科。
施工的过程:分析?设计?实现?维护7.软件的概念经典定义:软件 = 程序 + 文档 + 数据软件是计算机程序及其有关的数据和文档的完整集合。
计算机程序是能够完成功能的可执行的指令序列数据是程序能适当处理的信息,具有适当的数据结构软件文档是开发、使用和维护程序所需要的图文资料8.软件工程的概念概括地说,软件工程是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
目标:项目成功(BFC,Better、Faster、Cheaper)9.软件工程的本质特征(1)软件工程关注于大型程序的构造(2)软件工程的中心课题是控制复杂性(3)软件经常变化(4)开发软件的效率非常重要(5)和谐地合作是开发软件的关键(6)软件必须有效地支持它的用户(7)在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品10.软件工程的基本原理(1)用分阶段的生命周期计划进行严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性11.软件工程方法学通常把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称为范型(paradigm)。
1)传统方法学(结构化方法学):SA,SD,SP,ST2)面向对象方法学:OOA,OOD,OOP,OOTS:结构化,structuredOO:面向对象,Object OrientedA:分析,AnalysisD:设计,DesignP:编程,ProgrammingT:测试,Test教育资料..12.软件工程方法学三要素,这就是方法、工具和过程。
其中:1)方法是完成软件开发任务的技术方法,回答“如何做”的问题;2)工具是为方法的运用提供自动的或半自动的软件支撑环境;3)过程规定了完成各项任务的工作阶段、工作内容、产品、验收的步骤和完成准则。
第二章软件过程1.过程(process):ISO9000把过程定义为,把输入转化为输出的一组彼此相关的资源和活动。
2.软件过程(Software Process): 是为了获得高质量软件所需要完成的一系列任务的框架(Framework),它规定了完成各项任务的工作步骤。
3.软件生命周期软件生命周期由软件定义、软件开发、和运行维护三个时期组成,每个时期又可进一步划分成若干个阶段。
(三个时期八个阶段)三个时期八个阶段:三个时期:软件定义、软件开发、运行维护八个阶段:(1)问题定义 (2).可行性研究 (3).需求分析 (4).概要设计 (5).详细设计 (6).编码和单元测试 (7).综合测试 (8).软件维护4.软件开发模型(在课本的14—33页,了解一下)1)瀑布模型 (Waterfall)2)快速原型模型Prototype3)增量模型(Incremental Models)4)喷泉模型5)螺旋模型6)统一过程(rational unified process,RUP)7)敏捷过程8)极限编程(extreme programming,XP)9)能力成熟模型(capability maturity model,CMM)第三章结构化的分析(SA)1.需求分析:发现、求精、建模、规格说明、复审的过程。
发现:获取需求,完备、正确、有效求精:细节建模:形式化描述规格说明:详述复审:批准2.需求分析的准则1)必须理解和表示问题的信息域,根据这条准则应该建立数据模型。
2)必须定义软件应完成的功能,这条准则要求建立功能模型。
3)必须表示作为外部事件结果的软件行为,这条准则要求建立行为模型。
4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。
教育资料..3.需求获取的方法1)访谈正式的:事先准备好的非正式的访谈:开放的,头脑风暴,情景分析2)面向数据流自顶向下求精3)简易的应用规格说明技术4)快速建立软件原型4.分析建模结构化分析实质上是一种创建模型的活动。
通过需求分析而建立的模型必须达到下述的三个基本目标:描述用户的需求。
为软件设计工作奠定基础。
定义一组需求,一旦开发出软件产品之后,就可以用这组需求为标准来验收该产品。
5.模型(Model):是为了理解事物而对事物作出的一种抽象,是对事物的书面上的无歧义文字或图形的描述.5.1.模型是对问题的简化。
5.2.要从多个角度认识事物。
6.分析模型:数据模型(实体联系图)、功能模型(数据流图)、行为模型(状态转换图)。
需求分析成果:软件需求规格说明7.)要求会画(P41,ER联系图(图,entity-relationship diagram)-8.实体)数据模型的主要成分:数据对象,数据对象的属性,数据对象彼此间相互连接的1(关系数据对象:对软件必须理解的复合信息的抽象。
教育资料..属性:定义了数据对象的性质。
联系:数据对象彼此之间相互连接的方式称为联系,也称为关系。
类型:一对一联系、一对多联系、多对多联系。
联系也可以有属性。
)实体-联系图的符号表示:(2实体属性联系9.数据流图(DFD,Data Flow Diagram):描绘信息流和数据从输入移动到输出的过程中所经受的变换(书本P43—47,要会画)10.数据字典(DD:,Data Dictionary):是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合(书本P49—51,要会画)11.状态转换图(SD,State Diagram):通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
用于建立行为模型。
状态:是任何可以被观察到的系统行为模式。
状态规定了系统对事件的响应方式事件:是在某个特定时刻发生的事情,是引起系统做动作或(和)转换状态的控制信息。
(书本P47—49)教育资料..结构化设计第四章性能DFD设计过程功能将来分析环境ERD DDSTD 接口数据(五大需求)架构数据(四大设计) DS 内存 DB 数据外存 fileC/S,B/S 架构构件之间的接口四大设计接口接口人—机Process过程Procedure(步骤)三型两化行为模型功能模型三型数据模型系统化两化层次化如何设计:必须依据原理、原则、规则、准则模块:是由边界元素限定的相邻的程序元素的序列,而且有一个整体标识符来代表它。
把这就是把程序划分成可独立命名且独立访问的模块,每个模块完成一个子功能,模块化:些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
一组相邻元素)(1)一个边界(2 ))(3一个名字(标识符IDWhy模块化?降低复杂度1)有利于团队分工协作)2How to 模块化? 5模块化Meyer 标准教育资料..模块可分解性(降低复杂性)1))模块可组装性(可重用,reuse2)) (模块可理解性易于维护3))模块连续性(副作用小)4 )模块保护性(屏蔽异常)5 abstract):抽出事物的本质特征,而暂时不考虑它们的细节抽象(找共性,略特性抓主要,略次要有效降低模块数量逐步求精:为了集中精力解决主要问题而尽量推迟对问题细节的考虑。
大小粗细Miller法则:一个人在任何时候都只能把精力集中在7±2个知识块上。
7±2全局变量信息隐藏局部变量块内:高内聚,一个模块只做一件事模块独立参数少块间:低耦合,KIS(keep it simple)类型简单结构化设计原理:1)模块化2)抽象3)信息隐藏4)逐步求精启发原则:1)改进软件结构提高模块独立性2)模块规模应该适中(LOC<30)LOC:lines of code note>code3)深度、宽度、扇出和扇入都应当适中(7±2原则)4)模块的作用域应该在控制域之内5)力争降低模块接口的复杂度(接口KIS)6)设计单出口单入口的模块7)模块的功能应该可以预测设计结果描述工具:建模工具软件工具工具建模工具开发工具IPO图(Input Process Output):描述模块(总体)教育资料..C/S,B/S ,层次架构表示: = HIPO图层次图 + IPO图 P76)结构图:(提出的结构图是进行软件结构设计的另一个有力工具Yourdon 面向设计流的设计方法三种设计方法面向数据结构的设计方法面向对象的设计方法设计优化:无有好优精人—机界面设计问题MI CUI GUI AUI MMI1.系统响应时间(长度、易变性)集成式(内含,开始就设计在软件中)2.用户帮助措施嵌入式/附加式(联机文档)1)完备性2)选择性(menu, F1 , help)3)如何显示帮助信息4)返回/退出(ESC escape , 按钮)平面5)怎样组织帮助信息层次结构(导航)Web页(超链接)3.出错信息处理1)可理解性2)建设性3)警示性4)视听性5)友好性4.命令交互UI设计的重要性:1)用户评价产品的依据2)占总设计量的50%以上3)涉及到美学、人—机工程学、心理学4)UI工程师成为一种岗位UI设计原则:以人为本、人性化、美、方便和谐美一致对称教育资料..人—机界面设计过程:用户界面设计是一个迭代的过程 UML建模(的状态图)powerpoint,dreamvever)建立原型(试用评估界面设计指南(看看微软的界面设计)1)一般交互2)信息显示3)数据输入结构化方法学SA SD SP ST1965GOTO语 1968 (书本P89)1972如果一个程序的代码块仅仅通过顺序、选择和循环这三种控制结构进行连接,并且每一个代码块只有一个入口和一个出口,则称这个程序是结构化的。