研究报告主要包括哪些内容?

可行性研究报告的主要内容如下:

(1)引言:说明撰写本文档的目的;项目的名称和背景;本文件中使用的技术术语和参考文献。

(2)可行性研究前提:可行性研究前提。说明开发项目的功能、性能和基本要求;实现的目标;各种限制;可行性研究方法和决定可行性的主要因素。

(3)现有系统分析:说明现有系统的处理流程和数据流程;工作量;各种费用;所需专业技术人员的数量;所需的各种设备;现有制度有什么问题?

(4)建议系统的技术可行性分析:建议系统的简要说明;处理流程和数据流程;与现有系统相比的优势;采用拟议系统对用户的影响;对各种设备、现有软件、开发环境和运行环境的影响;对支出的影响;技术可行性评估。

(5)拟建系统的经济可行性分析:说明拟建系统的各项支出和效益;收入投资比率;投资回收周期。

(6)社会因素可行性分析:说明法律因素,分析合同责任、专利侵权、著作权侵权等问题;说明用户使用的可行性,是否符合用户行政管理、工作制度、人员素质的要求。

(7)其他备选方案:逐一说明其他备选方案,并说明未被推荐的原因。

(8)结论:说明项目能否开发;需要什么条件才能发展;项目目标有什么变化等。

【解析】做软件可行性研究的目的是确定软件项目是否可以开发,是否值得开发,是否可以用最少的成本在最短的时间内解决问题。报告分为八个基本内容。

2.系统设计的内容是什么?

解决方法:在系统设计阶段,要从顶层开始,然后细化。系统设计决定了整体的结构和风格,为后期设计阶段更详细的策略设计提供了基础。

(1)系统分解。系统的主要组成部分称为子系统,它既不是对象,也不是函数,而是类、关联、操作、时间和约束的集合。一次分解的子系统数量不能太多,最低的子系统称为一个模块。

(2)确定并发性。分析模型、现实世界和硬件中的许多对象是并发的。系统设计的一个重要目标是确定哪些对象必须同时动作,哪些对象不是。后者可以放在一起,集成到单个控制线或任务中。

(3)处理器和任务分配。每个并发子系统必须分配给单个硬件单元,可以是通用处理器,也可以是特定的功能单元,并且必须完成以下任务:估计性能需求和资源需求,选择实现子系统的硬件和软件,将软件子系统分配给每个处理器,以满足性能需求并最小化处理器之间的通信,决定实现每个子系统的每个物理单元的连接。

(4)数据存储管理。系统内部数据和外部数据的存储和管理是一项重要的任务。通常,每个数据存储都可以结合数据结构、文件和数据库,不同的数据存储应该在成本、访问时间、容量和可靠性之间进行折衷。

(5)全球资源的处理。必须确定全球资源,必须制定获取全球资源的战略。全局资源包括:物理资源,如处理器和驱动器;空间,如磁盘空间和工作站屏幕;逻辑名称,如对象标识符、类名、文件名等。

如果资源是物理对象,可以通过建立协议来访问并发系统,实现自主控制;如果一个资源是一个逻辑实体,比如一个对象标识符,那么在共享环境中就有可能发生访问冲突。例如,独立的事务可能同时使用相同的对象标识符,那么每个全局资源必须有一个保护对象,并且该保护对象控制对该资源的访问。

(6)选择软件控制机制。分析模型中的所有交互都表示为对象之间的事件。系统设计必须从多种方法中选择一种方法来实现软件控制。

(7)人机界面的设计。设计中的大部分工作都与稳态行为有关,但必须考虑用户对系统交互界面的使用。

【解析】系统设计是解决问题和建立解决方案的高级策略。必须找出解决这个问题的基本方法。系统的高层结构包括子系统的分解、其固有的并发性、子系统对硬件和软件的分配、数据存储管理、资源协调、软件控制实现、人机交互界面。

3.什么是软件危机?软件危机有哪些表现?这是什么原因呢?

解决方法:在软件开发的第二阶段末期,由于计算机硬件技术的进步,计算机的运行速度、容量和可靠性得到了显著提高,生产成本显著降低,为计算机的广泛应用创造了条件。一些复杂的大型软件开发项目被提出,但是软件开发技术的进步已经不能满足发展的需要。软件开发中遇到的问题得不到解决,使得问题越积越多,形成尖锐的矛盾,从而导致软件危机。

软件危机表现在以下四个方面:

(1)经常超预算,完工时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,很难制定一个开发计划。主观盲目制定计划,实施与实际情况差距较大,使得发展资金一次次突破。由于低估了工作量和开发难度,进度无法按时完成,开发时间一再拖延。

(2)开发的软件不能满足用户的要求。在开发初期,对用户的需求没有清晰的理解,无法清晰的表达出来。开发工作开始后,软件人员与用户未能及时交换意见,使得一些问题得不到及时解决,导致开发出的软件不能满足用户的要求,从而导致开发失败。

(3)开发的软件可维护性差。在开发过程中没有一致认可的规范。软件开发人员按照自己的风格工作,在开发过程中没有完整规范的文档。发现问题就乱修改。程序结构不好,运行中发现的错误很难修改,导致可维护性差。

(4)开发的软件可靠性差。由于在开发过程中没有保证软件质量的制度和措施,在软件测试中没有严格、充分、完整的测试,提交给用户的软件质量较差,运行中暴露出大量问题。

软件危机的原因是:

(1)软件的规模越来越大,结构越来越复杂。

(2)软件开发管理困难且复杂。

(3)软件开发的成本在增加。

(4)软件开发技术落后。

(5)落后的生产方式。

(6)开发工具落后,生产力提升缓慢。

因为软件危机的出现,人们开始用工程的思想来开发软件,从此软件生产进入了软件工程时代。

4.软件质量保证要做好哪些方面?

解决方案:软件质量保证是软件工程管理的重要组成部分,在软件质量保证中应做好以下几个方面的工作:

(1)采用技术手段和工具。为了执行开发过程,质量保证活动必须采用技术手段和工具,尤其是软件开发环境。

(2)组织正式的技术评审。在软件开发的每个阶段结束时,应该组织一次正式的技术评审。国家标准要求各单位采取审查、文件审查、设计审查、审核和测试等具体手段来保证质量。

(3)加强软件测试。软件测试是质量保证的重要手段,因为测试可以发现软件中大多数潜在的错误。

(4)执行软件工程规范(标准)。用户可以制定自己的软件工程规范(标准),但标准一旦确定,就要执行。

(5)控制软件的变化。软件的修改和变更往往会导致潜在的错误,因此必须严格控制软件的修改和变更。

(6)测量软件质量。即跟踪软件质量,及时记录和报告软件质量。

软件质量保证是为用户和社会提供满意的高质量产品,保证软件产品从诞生到消亡各个阶段的质量的活动,是软件工程管理中的重要内容。