软件工程(钱乐秋)第04章-设计工程
- 格式:ppt
- 大小:976.00 KB
- 文档页数:70
《软件工程》各章课后习题答案软件工程是计算机科学与技术的一门重要学科,旨在研究和应用工程原则和方法来开发高质量的软件系统。
课程中的习题对于加深学生对软件工程理论和实践的理解至关重要。
下面是对《软件工程》各章课后习题的答案,希望能够帮助你更好地掌握软件工程的知识。
第一章:软件工程导论1. 软件工程的定义:答:软件工程是通过应用系统化、规范化和可量化的方法进行软件开发、运行和维护的学科。
2. 软件工程的目标:答:软件工程的目标是提高软件开发的质量、效率和可靠性,使得软件能够满足用户的需求和期望。
3. 软件生命周期模型:答:常见的软件生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
每个模型都有其独特的特点和适用场景。
4. 软件过程模型:答:软件过程模型描述了软件开发过程中的一系列活动和阶段,常见的软件过程模型包括瀑布模型、迭代模型、敏捷模型等。
5. 软件工程的基本原则:答:常见的软件工程基本原则包括分阶段、逐步求精、持续集成、迭代开发、需求优先等。
第二章:软件项目管理1. 软件项目管理的定义:答:软件项目管理是指对软件开发过程中的资源、进度、质量等进行有效管理,以确保软件项目能够按时、按质地完成。
2. 软件项目管理的内容:答:软件项目管理包括项目计划、需求管理、项目进度管理、资源管理、风险管理等方面。
3. 软件项目管理的方法:答:常见的软件项目管理方法包括敏捷项目管理、水平项目管理、里程碑项目管理等。
4. 软件项目管理的工具:答:常用的软件项目管理工具包括甘特图、PERT/CPM网络图、项目管理软件等。
第三章:软件需求分析与规格说明1. 软件需求的定义:答:软件需求是指用户对软件系统的要求和期望,包括功能需求、性能需求、接口需求等方面。
2. 软件需求分析的方法:答:常用的软件需求分析方法包括面向对象分析法、数据流图法、用例分析法等。
3. 软件需求规格说明的格式:答:常见的软件需求规格说明的格式包括自然语言描述、结构化描述、图形描述等。
软件工程第一章概述1、定义: 软件 == 程序 + 数据 + 文档1.数据:程序加工处理的对象。
包括数据的表示、组织与存储。
数据 == 初始化数据 + 测试数据2.文档(document):开发、使用和维护程序所需的图文资料。
文档 == 开发文档 + 管理文档。
3.程序(program):能完成预定功能和性能的指令集合。
4.软件和程序的区别程序只是完整软件产品的一部分。
编写程序只是软件开发过程数据中的一个阶段,一般来说,其工作量仅仅是软件开发全部工作量的10%-20%2、软件的特点:抽象性、可复制性、无折旧、受硬件制约、未完全摆脱手工工艺、开发费用高3、软件按适用范围分:定制软件和通用软件4、计算机软件发展的三个时期1. 早期时代(60年代中期之前)程序设计阶段硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。
2. 第二代(60年代中期-70年代中期)程序系统阶段出现“软件作坊”、产品软件;“个体化”开发方法。
3. 第三代(70年代中期之后)软件工程阶段软件开发成为一门新兴的工程学科——软件工程。
5、解决软件危机的途径1. 技术措施◆消除错误的概念和做法◆使用更好的软件开发方法和开发工具2. 组织管理措施◆软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
6、软件工程定义:软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
7、软件生存周期:软件生存周期一般分为:软件定义(问题定义、可行性研究、需求分析)、软件开发(总体设计、详细设计、编码和单元测试、综合测试)、软件维护等三个时期。
8、能力成熟度模型CMM:CMM(Capability Maturity Model)即能力成熟度模型,用于评价软件机构的软件过程能力成熟度的模型。
软件工程导论第六版课后习题答案完整版首先,感谢您对软件工程导论课后习题答案的需求。
以下是软件工程导论第六版课后习题的完整答案。
第一章:软件工程概述1.1 问题1. 什么是软件工程?答:软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的学科。
1.2 问题1. 什么是软件?答:软件是一系列按照特定顺序组织的计算机数据和指令。
第二章:软件过程模型2.1 问题1. 软件过程模型有哪些类型?答:常见的软件过程模型包括瀑布模型、迭代模型、螺旋模型和敏捷开发模型等。
2.2 问题1. 瀑布模型的特点是什么?答:瀑布模型是一种线性顺序模型,以阶段划分为基础,每个阶段的任务在进入下一个阶段前必须完成。
第三章:需求分析与规格说明3.1 问题1. 软件需求描述包括哪些方面的内容?答:软件需求描述需要包括功能性需求、非功能性需求、用户需求和系统需求等。
3.2 问题1. 什么是需求跟踪?答:需求跟踪是指在软件开发过程中,通过建立需求和软件项目中其他相关工件之间的关联,确保需求的准确实现和变更的有效管理。
第四章:软件设计4.1 问题1. 软件设计的目标是什么?答:软件设计的目标是通过确定软件的整体结构和组成部分,确保软件满足需求并具有良好的可维护性和可重用性。
第五章:软件测试与维护5.1 问题1. 什么是软件测试?答:软件测试是一种评估和改进软件质量的过程,目的是发现错误并提高软件的可靠性和可用性。
5.2 问题1. 什么是软件维护?答:软件维护是指在软件交付后的整个生命周期中对软件进行修改和改进,以满足用户需求和修复错误。
第六章:软件配置管理6.1 问题1. 软件配置管理的目标是什么?答:软件配置管理的目标是确保软件在开发和维护过程中的可控性和可追踪性,以及保持软件配置的稳定性和一致性。
6.2 问题1. 软件版本控制是什么?答:软件版本控制是指对软件的不同版本进行管理,包括版本的创建、检出、合并和更新等操作。
至此,我们完成了软件工程导论第六版课后习题的完整答案。
第一章本章简要阐述了软件开发的本质,即实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。
在此基础上,概括地介绍了实现这一映射的基本途径,即系统建模。
所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构一系统模型。
因此,模型是一个抽象。
该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。
在软件开发领域,系统模型分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。
软件模型又可进一步分为设计模型、实现模型和部署模型等。
总之,正确认识软件开发的本质,认识建模的意义,了解模型概念以及模型分类,直接关系到对软件工程开发逻辑、开发途径有关知识的理解、掌握和正确应用。
正如章首语所言:“正确认识软件开发,是从事软件开发实践和软件工程项目管理的思想基础。
”第二章本章首先介绍了需求的定义,即“一个需求是一个‘要予构造’的陈述,描述了待开发产品(或项)功能上的能力、性能参数或者其他性质”,并指出了需求的5个必备的基本性质:必要的(Necessary),即该需求是用户所要求的;无歧义的(Unambiguous ),即该需求只能用一种方式解释;可测的(Testable),即该需求是可进行测试的;可跟踪的(Trace-able),即该需求可从一个开发阶段跟踪到另一个阶段;可测量的(Measurable ),即该需求是可测量的。
需求的5个基本性质可作为需求发现和评估的基础。
其次,为了更好地理解需求,介绍了需求的分类。
软件需求可以分为功能、性能、外部接口、设计约束和质量属性,并把性能、外部接口、设计约束和质量属性这4类需求统称为非功能需求。
除此之外,还给出了功能需求和非功能需求的基本关系。
然后,介绍了5种常用的需求发现技术:自悟(Introspection )、交谈(Individual in-terview )、观察(Observation )、小组会(Group session)和提炼( Extraction),并指出采用系统化方法,例如,结构化方法和面向对象方法,可使发现的需求基本满足以上5个性质。
第一章绪论1.1 软件工程概念的提出与发展1.2 软件开发的本质1.3 本章小结第二章软件需求与软件需求规约2.1 需求与需求获取2.1.1需求定义2.1.2 需求分类2.1.3 需求发现技术2.2 需求规约2.2.1 需求规约定义2.2.2 需求规约(草案)格式2.2.3 需求规约(规格说明书)的表达2.2.4 需求规约的作用2.3 本章小结第三章结构化方法3.1 结构化需求分析3.1.1 基本术语1.数据流2.数据存储3.数据源和数据谭3.1.2 系统功能模型表示数据流图(Dataflow Diagram)3.1.3 建模过程1.建立系统环境图, 确定系统语境2.自顶向下, 逐步求精, 建立系统的层次数据流图3.定义数据字典数据流条目给出所有数据流的结构定义数据存储条目给出所有数据存储的结构定义数据项条目给出所有数据项的类型定义4.描述加工(1)结构化自然语言(2)判定表(3)判定树3.1.4 应用中注意的问题(1)模型平衡问题(2)信息复杂性控制问题3.1.5 需求验证3.2 结构化设计3.2.1 总体设计1.总体设计的目标及其表示(1)Yourdon提出的模块结构图(2)层次图(3)HIPO图2.总体设计步骤(1)变换型数据流图——变换设计(2)事物型数据流图——事物设计3.模块化及启发式规则(1)模块化1)耦合①内容耦合②公共耦合③控制耦合④标记耦合⑤数据耦合2)内聚①偶然内聚②逻辑内聚③时间内聚④过程内聚⑤通信内聚⑥顺序内聚⑦功能内聚(2)启发式规则1)改进软件结构, 提高模块独立性2)力求模块规模适中3)力求深度、宽度、扇出和扇入适中4)尽力使模块的作用域在其控制域之内5)尽力降低模块接口的复杂度6)力求模块功能可以预测3.2.2 详细设计1.结构化程序设计2.详细设计工具(1)程序流程图(2)盒图(N-S图)(3)PAD图(Problem Analysis Diagram)(4)类程序设计语言IPO图、判定树和判定表等也可以作为详细设计工具3.3 本章小结第四章面向对象方法——UML 4.1 UML术语表4.1.1 表达客观事物的术语1.类与对象1)类的属性(Attribute)2)类的操作3)关于类语义的进一步表达①详细叙述类的职责(Responsibility)②通过类的注解和/或操作的注解, 以结构化文本的形式和/编程语言, 详述注释整个类的语义和/或各个方法③通过类的注解或操作的注解, 以结构化文本形式, 详述注释各个操作的前置条件和后置条件, 甚至注释整个类的不变式④详述类的状态机⑤详述类的内部结构⑥类与其他类的协作4)类在建模中的主要用途①模型化问题域中的概念(词汇)②建立系统的职责分布模型③模型化建模中使用的基本类型2.接口(Interface)(1)采用具有分栏和关键字《interface》的矩形符号来表示(2)采用小圆圈和半圆圈来表示3.协作(Collaboration)4.用况(Use Case)5.主动类(Action Class)6.构件(Component)7.制品(Artifact)8.节点(Node)4.1.2 表达关系的术语1.关联(Association)(1)关联名(Name)(2)导航(3)角色(Role)(4)可见性(5)多重性(Multiplicity)(6)限定符(Qualifier)(7)聚合(Aggregation)(8)组合(Composition)(9)关联类(10)约束①有序(ordered)②无重复对象(set)③有重复对象(bag)④列表(list)或序列(sequence)⑤只读(readonly)2.泛化(Generalization)①完整(Complete)②不完整(Incomplete)③互斥(Disjoint)④重叠(Overlapping)3.细化(Realization)4.依赖①绑定(Bind)②导出(Derive)③允许(Permit)④实例(InstanceOf)⑤实例化(Instantiate)⑥幂类型(Powertype)⑦精化(Refine)⑧使用(Use)可模型化以下各种关系(1)结构关系1)以数据驱动2)以行为驱动(2)继承关系(3)精化关系(4)依赖关系4.1.3 表达组合信息的术语——包1)访问(Access)2)引入(Import)4.2 UML模型表达格式1.类图(Class Diagram)(1)模型化待建系统的概念(词汇), 形成类图的基本元素(2)模型化待建系统的各种关系, 形成该系统的初始类图(3)模型化系统中的协作, 给出该系统的最终类图(4)模型化逻辑数据库模式2.用况图(Use Case Diagram)所包含的内容(1)主题(Subject)(2)用况(Use Case)(3)参与者(Actor)(4)关联、泛化与依赖模型化工作1)关于系统/业务语境的模型化①系统边界的确定②参与者与用况的交互③参与者的语义表达④参与者的结构化处理2)关于系统/业务需求的模型化①确定系统/业务的基本用况②用况的结构化处理③用况的语义表达3.状态图(1)状态1)名字2)进入/退出效应(Effect)①entry②exit③状态内部转移3)do动作或活动4)被延迟的事件(2)事件1)信号(Signal)事件2)调用(Call)事件3)时间事件4)变化事件(3)状态转移①源状态②转移触发器③监护(guard)条件④效应(effect)⑤目标状态实际应用中, 使用状态图的作用①创建一个系统的动态模型②创建一个场景的模型4.顺序图(1)术语解析1)消息2)对象生命线3)聚焦控制(the Focus of Control)(2)控制操作子1)选择执行操作子(Operator for Optional Execution)2)条件执行操作子(Operator for Conditional Execution)3)并发执行操作子(Operator for Parallel Execution)4)迭代执行操作子(Operator for Iterative Execution)4.3 本章小结第五章面向对象方法——RUP5.1 RUP特点1.以用况为驱动2.以体系结构为中心3.迭代增量式开发5.2 核心工作流5.2.1 需求获取1.列出候选需求2.理解系统语境(1)业务用况模型(2)业务对象模型3.捕获系统功能需求(1)活动1: 发现并描述参与者(2)活动2: 发现并描述用况(3)活动3: 确定用况的优先级(Priority)(4)活动4: 精化用况(5)活动5: 构造用户界面原型1)用户界面的逻辑设计2)物理用户界面的设计3)开发用户界面原型并演示为了执行该用况, 用户怎样使用该系统(6)活动6: 用况模型的结构化5.2.2 需求分析1.基本术语(1)分析类(Analysis Class)1)边界类(Boundary Classes)2)实体类(Entity Classes)3)控制类(Control Classes)(2)用况细化(Use Case Realization)(3)分析包(Analysis Package)2.分析模型的表达3.分析的主要活动(1)活动1: 体系结构分析(Architectural Analysis)1)任务1: 标识分析包2)任务2: 处理分析包之间的共性3)任务3: 标识服务包4)任务4: 定义分析包的依赖5)任务5: 标识重要的实体类6)任务6: 标识分析包和重要实体类的公共特性需求(2)活动2: 用况分析1)任务1: 标识分析类①标识实体类②标识边界类③标识控制类2)任务2: 描述分析(类)对象之间的交互(3)活动3: 类的分析1)任务1: 标识责任2)任务2: 标识属性①关于实体类属性的标识②关于边界类属性的标识③关于控制类属性的标识3)任务3: 标识关联和聚合①关于关联的标识②关于聚合的标识③关于泛化的标识(4)活动4: 包的分析4.小结(1)关于分析模型1)分析包2)分析类3)用况细化(2)关于分析模型视角下的体系结构描述(3)用况模型和分析模型比较(4)分析模型对以后工作的影响1)对设计中子系统的影响2)对设计类的影响3)对用况细化[设计]的影响5.2.3 设计1.设计层的术语(1)设计类(Design Class)(2)用况细化[设计](3)设计子系统(4)接口(Interface)2.设计模型、部署模型以及相关视角下的体系结构描述(1)设计模型及其视角下的体系结构描述1)子系统结构2)对体系结构有意义的设计类3)对体系结构有意义的用况细化[设计](2)部署模型及该模型视角下的体系结构描述3设计的主要活动(1)活动1: 体系结构的设计1)任务1: 标识节点和它们的网络配置2)任务2: 标识子系统和它们的接口①标识应用子系统②标识中间件和系统软件子系统③定义子系统依赖④标识子系统接口3)任务3: 标识在体系结构方面有意义的设计类和它们的接口4)任务4: 标识一般性的设计机制①标识处理透明对象分布的设计机制②标识事务管理的设计机制(2)活动2: 用况的设计1)标识参与用况细化的设计类2)标识参与用况细化的子系统和接口(3)活动3: 类的设计1)任务1: 概括描述设计类2)任务2: 标识操作3)任务3: 标识属性4)任务4: 标识关联和聚合5)任务5: 标识泛化6)任务6: 描述方法7)任务7: 描述状态(4)活动4: 子系统的设计1)任务1: 维护子系统依赖2)任务2: 维护子系统所提供的接口3)任务3: 维护子系统内容4.RUP设计小结1)RUP设计的突出特点2)关于RUP的设计方法①给出用于表达设计模型中基本成分的4个术语, 包括子系统, 设计类, 接口, 用况细化[设计]②规约了设计模型的语法, 指导模型的表达③给出了创建设计模型的过程以及相应的指导3)RUP的设计模型①设计子系统和服务子系统②设计类(其中包括一些主动类), 以及他们具有的操作、属性、关系及其实现需求。
精品好资料——————学习推荐淮海工学院计算机工程学院实验报告书课程名:《软件工程》题目:图着色理论在仓库管理系统中的应用——概要设计与详细设计班级:网络122学号:2012122683姓名:叶婷1、实验目的与要求熟悉Visio绘图工具或PowerDesigner系统,并使用Visio或PowerDesigner系统提供的设计绘图工具,如H图、程序流程图、盒图、PAD图等完成软件工程实验项目的概要设计与详细设计文档中的层次图和程序流程图等图形绘制与文档说明。
2、实验内容一、概要设计1.1引言1.1.1编写目的近年来,生产的工业化速度迅速加快,生产的产品数量猛增,给传统的仓库管理方式手工作业带来了很大的负担,今天的仓库作业和库存控制作业已十分多样化,复杂化,靠人工去记忆去处理已十分困难,且出现错误的可能性很大。
如果不能保证正确的进货、验收、质量保证及发货,就会导致浪费时间,产生库存,延迟交货,增加成本,以致失去为客户服务的机会。
本文正是为解决这个问题而作。
本说明书的预期读者为小中型仓库的管理员及客户和采购员。
1.1.2背景本系统是:仓库管理系统。
本项目的任务提出者、开发者都是本人用户:中小型仓库管理员。
软件的计算机网络:任何装有IIS的计算机作为服务器端,其他处在同一网络的计算机作为客户端。
1.1.3定义DFD: Data Flow Diagram 数据流图,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
DD;Data Dictionary 数据字典:是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
1.1.4参考资料1.《软件工程》---钱乐秋,赵文耘,牛军钰编著 ------ 清华大学出版社2.《数据库系统概论》—王珊萨师煊主编 -------高等教育出版社3.《 Java语言程序设计实用教程》董迎红张杰敏编著------ 北京大学出版社4. 可行性研究报告5. 需求分析说明书1.2总体设计1.2.1需求规定本系统软件主要实现的功能是仓库管理员对仓库进行库存的管理,主要包括,对于生产部门送来的货物进行清点,无误后入库,对于销售部门请求的货物进行核实,无误后出库。
软件工程(钱乐秋版)重点软件工程(钱乐秋版)重点1. 软件工程概述软件工程是一门致力于系统化、规范化和可靠化地开发软件的学科和技术。
它涉及软件的开发过程、软件的生命周期管理以及软件项目的管理等方面。
2. 软件生命周期软件生命周期是指一个软件从概念到退役的整个过程。
常见的软件生命周期模型包括瀑布模型、迭代模型和敏捷模型等。
- 瀑布模型:瀑布模型是一种线性的开发过程模型,依次包括需求分析、设计、编码、测试和维护等阶段。
- 迭代模型:迭代模型将软件开发过程划分为多个迭代周期,每个迭代周期包括需求分析、设计、编码、测试和评审等步骤,每个迭代周期都能产生可交付的软件部分。
- 敏捷模型:敏捷模型强调团队合作、迭代开发和及时反馈,通常采用短期迭代的方式进行开发,如Scrum和XP等。
3. 需求工程需求工程是指对软件开发中用户需求的获取、分析、规范和管理的过程。
它包括需求定义、需求分析、需求规格和需求验证等阶段。
- 需求定义:需求定义阶段主要通过与用户和利益相关者进行沟通,明确用户的需求和期望。
- 需求分析:需求分析阶段目的是进一步细化和分解需求,识别出软件系统的功能和性能需求。
- 需求规格:需求规格阶段根据需求分析的结果编写需求文档,明确软件系统的各项需求。
- 需求验证:需求验证阶段通过测试、评审等方法验证需求是否满足用户需求和规范要求。
4. 软件设计软件设计是指在需求分析的基础上,通过对软件系统的结构、构件和算法进行设计,以满足软件需求的过程。
- 结构设计:结构设计主要考虑软件系统的模块划分、模块之间的接口和调用关系等,以及软件系统的整体结构和层次。
- 构件设计:构件设计关注软件系统中各个构件的内部结构和实现方式,主要包括类的设计、函数的设计以及数据结构的设计等。
- 算法设计:算法设计关注软件系统中各种算法的设计和优化,以提高软件系统的性能和效率。
5. 软件测试软件测试是指对软件系统进行验证和验证,以确定其是否满足预先定义的要求和用户需求。
软件工程习题解答第一章概述1.软件产品的特性是什么?a.软件产品是一种逻辑产品。
b.软件产品的生产主是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发完成后,复制就产生了大量软件产品。
c.软件产品不会用坏,不存在磨损、消耗问题。
d.软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,而且碰分是"定做"的。
e.软件费用不断增加,成本相当昂贵。
2.软件产品有几个阶段?各有何特征?阶段 A.程序设计时代(1946-1956) B.程序系统时代(1956-1968) C.软件工程时代(1968-今)生产方式个体手工劳动作坊式小集团合作生产工程化的生产工具机器语言、汇编高级语言数据库、开发工具、开发环境、网络、分布式、面向对象技术开发方法追求编和技巧,追求程序运行效率个人技巧,开始提出结构化方法硬件特征价格贵、存储容量小、运行可靠性差速度、容量、工作可靠性有明显提高,价格降低,销售有爆炸性增长向超高速、大容量、微型化以及网络化方软件特征只有程序、程序设计概念,不重视程序设计方法程序员数量猛增,已意识到软件开发的重要性,开发技术没有新的突破,大量软件开发的需求已提出,开发人员的素质和工程兵的开发技术不适应规模大、结构复杂的软件开发,产生了尖锐矛盾,导致软件危机的产生开发技术有很大进步,但未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机3.什么是软件危机?其产生的原因是什么?软件危机:软件发展第二阶段的末期,由于计算机硬件技术的进步。
一些复杂的、大型的软件开发项目提出来了,但,软件开发技术的进步一直未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
主要表现在以下几个方面:a.经费预算经常突破,完成时间一再拖延。
b.开发的软件不通满足用户要求。
c.开发的软件可维护性差。
d. 开发的软件可靠性差。
软件危机产生的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的:a.软件的规模越来越大,结构越来越复杂。
《软件工程》课程设计大纲一、实验课程性质《软件工程课程设计》是为计算机科学与技术及相关专业的学生开设的一门必修基础课程,是与《软件工程》课程相配套的一门软件开发实务操作课程,是《软件工程》实践性教学的重要环节。
二、实验教学目的通过本课程设计的教学,使学生通过实践深化对《软件工程》理论的理解和掌握,学会运用软件工程方法学分析问题和解决问题的能力,为以后的软件开发打下良好的基础。
三、实验教学内容从以下问题中任选一题,采用软件工程学方法完成该系统开发的问题定义、可行性分析、需求分析、总体设计、详细设计、系统实现和系统测试各阶段的工作,最终完成该系统的开发。
要求写出各阶段的文档并最后形成系统文档,提交目标系统。
1、小型图书管理系统。
该系统具有用户注册、借书还书、图书和读者信息更新、图书查询等功能。
系统应满足如下要求:(1)所有未借出的图书能供读者借阅;在同一时刻,一本书不能即被借出又可供借阅;(2)一个读者一次借出的图书数目不能超过预定值(不同读者的预定值不同)。
系统有两种用户:系统管理员和普通读者。
2、保温系统。
如果主开关处于“加热”状态,保温系统的控制器负责开关锅炉,监视锅炉系统的燃油流量和燃烧状态,进而调节进入房间的热流量。
当室内温度降至(T-2)℃以下,控制器启动锅炉。
这里T使用户设定的理想室温。
锅炉启动过程如下:(1)控制器下过路的马达发信号;(2)控制器监视马达速度,当马达达到正常操作速度时,启动点火并打开油阀;(3) 控制器监视水温,当水温达到预定值时,发信号打开水流循环阀,热水开始在室内循环;(4)如果发生异常情况,燃油流量指示器和广感器向控制器发信号,此时控制器发信号关闭系统;(5)当室内温度达到(T+2)℃时,控制器首先关闭油阀,延迟5s后关闭锅炉马达。
系统应满足如下要求:锅炉停机后重启必须延迟5min;在主开关关闭或油阀关闭5s内应指示锅炉停机。
3、电梯问题。
在M层的建筑物内安装N个电梯,实现这些电梯的控制问题:(1)每个电梯有一些按钮,每个按钮对应一个楼层。
软工第1章:1)P2的§1.1,软件工程的概念和软件的含义2)软件工程框架P2图1.1软工第2章:1)软件开发模型的定义P4第一段2)几种模型的比较:特点、优缺点3)重点模型:演化模型、螺旋模型、喷泉模型(其实这个最重要了,可是96期末考过了,不知道这次考不考)软工第3章:1)需求分析的目标和任务,以及阶段划分P102)P13 人们常用的组织信息的三条基本原则3)P14,什么是结构化方法§3.2的第二段4)如何绘制DFD和加工小说明5)P22-25需求验证正确性的11个方面,只要知道有哪11个方面就可以了软工第4章:1)设计的任务和目标2)结构化设计的阶段3)总体设计的任务4)三种主要表示方式5)数据流图的分类(这个比较重要)6)DFD->MSD(一定要掌握,必考)7)设计准则,其中耦合的概念和分类,内聚的概念和分类8)启发式规则,其中模块独立性,深度,宽度,扇入,扇出的概念9)P52的模块的作用域应在控制域的要求重要(曾经是一年的考研题)软工第5章:1)程序流程图->PAD 2)程序流程图->N-S应该是其中之一,个人认为,王老师比较喜欢PAD,呵呵,不过,好像应该都看,反正不难:)软工第6,7章:都是OO的内容,我就不多说了,因为很多都学过OO的只是要注意,控制信息组织复杂度的概念和控制文档复杂度的概念是什么(前面我都回答过了的)还有就是描述对象类行为的概念——状态(这个非常非常重要)还有一点点差别,就是对象的三个层次上的概念差别面向对象方法的世界观——P64第二段其他的都差不多软工第8章:OSA的三种模型,以及每种模型中的基本概念,分别看各节后的模型小结软工第9章:1)P132的测试定义2)P133的图9.1,软件错误的分类和软件测试技术的分类(§9.2第一段)3)P134-135的控制流程图,路径测试策略,测试路径的选择(一般是大题:选择一个具体程序段的测试用例)4)P138的第二段软工第10章:1)软件过程的分类,以及三大类下的小类,记记就行了2)还有一个重点就是P165的图10.1个人认为,这章不重要,大概看看就行了软工第11章:1)P174的CASE的概念和几种定义,看看,有个印象,觉得不会考这个,如果考的话,因为有印象,也能写出来2)P176的表11-13)P178的图11.24)P179的五级模型的组成部分5)P188的Case工作台分类(7个)6)P193的图11.13(96的期末考题)7)P198的图11.168)P200的图11.17以及下面的Brown中的解释,4层观点9)P202的图11.19以及下面的软件工程环境提供的服务(5个)10)P203的表11-3(96的期末考题)11)P204的表11-4第一章1.软件:计算机系统中的程序及其文档工程:将理论和所学的知识应用于实践的科学软件工程:应用计算机科学、数学及管理科学等原理,开发软件的工程。
清华软件工程:第04章设计工程在软件工程领域,设计工程是至关重要的一个环节。
它就像是建筑施工前的蓝图绘制,决定了整个软件系统的架构、功能模块的划分、数据的流动以及用户体验的方方面面。
设计工程的第一步,往往是对需求的深入理解和分析。
这可不是简单地读一读需求文档就了事,而是要与项目的利益相关者,包括客户、用户、开发团队等进行充分的沟通和交流。
要弄清楚他们真正想要的是什么,他们期望软件能够解决什么样的问题,实现什么样的目标。
只有这样,才能为后续的设计工作奠定坚实的基础。
接下来,就是架构设计。
这就像是给软件系统搭建一个骨架,决定了它的整体结构和组织方式。
一个好的架构应该具有高内聚、低耦合的特点。
高内聚意味着相关的功能和数据应该紧密地组合在一起,形成一个逻辑上独立的模块;低耦合则表示不同的模块之间应该尽量减少相互依赖和影响,以便于独立开发、测试和维护。
比如说,如果我们要设计一个在线购物系统,可能会将用户管理、商品管理、订单管理等功能划分成不同的模块。
每个模块都有自己明确的职责和边界,同时又通过定义清晰的接口与其他模块进行交互。
这样,当我们对某个模块进行修改或升级时,不会对整个系统造成太大的影响。
在架构设计中,还要考虑到系统的可扩展性。
随着业务的发展和用户需求的变化,软件系统可能需要不断地进行功能扩展和升级。
如果在设计之初没有考虑到这一点,那么后期可能会面临大规模的重构甚至重新开发,这将带来巨大的成本和风险。
除了架构设计,界面设计也是设计工程中不可或缺的一部分。
一个好的用户界面应该简洁、直观、易用,能够让用户在最短的时间内完成他们的任务,并且获得良好的体验。
在界面设计中,要充分考虑用户的操作习惯和心理预期,合理布局各种元素,使用清晰明了的图标和文字,提供及时有效的反馈和提示。
比如说,在设计一个手机应用的界面时,要考虑到屏幕尺寸的限制,尽量避免过多的元素堆砌,让用户能够轻松找到他们需要的功能。
同时,要注意色彩的搭配和字体的大小,保证界面的美观和可读性。