实验一 通读教材后提问
大学三年级的第二学期我们开设了软件工程这门课程,开学第一节课通过代老师的精彩讲解,使我对这门课程产生了浓厚的兴趣与学习热情。代老师让我们在课下的学习过程中通读教材《构建之法》,通过对教材的阅读后我觉得这门课程含金量很高,需要下功夫去理解与掌握,通过对教材的阅读我提出了以下三个问题:
1.软件概要设计和软件详细设计有什么区别?
答:概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。
详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
概要设计阶段通常得到软件结构图
详细设计阶段常用的描述方式有:流程图、N-S图、PAD图、伪代码等。
2.一个完整软件开发流程需要哪些步骤?(书上P96页)
答:软件开发一般分为五个阶段:
1.问题的定义及规划
此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性。
2.需求分析
在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。“唯一不变的是变化本身”,同样软件需求也是在软件爱你开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。
3.软件设计
此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。软件设计一般分为总体设计和详细设计。还的软件设计将为软件程序编写打下良好的基础。
4.程序编码
此阶段是将软件设计的结果转化为计算机可运行的程序代码。在程序编码中必定要制定统一、符合标准的编写规范。以保证程序的可读性、易维护性。提高程序的运行效率。
5.软件测试
在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。测试方法主要有白盒测试和黑盒测试。
3.书上P223页提到软件的设计与实现包括哪几个步骤?
第一步,一个对软件的全局观点。系统通过逐步求精使得设计陈述逐渐接近源代码。这里有两个基本步骤,第一步是初步设计(Preliminary design) ,关注于如何将需求转换成数据和软件框架。
第二步是 详细设计(Detail design),关注于将框架逐步求精细化为具体的数据结构和软件的算法表达。发生中的设计行为、数据、算法和程序设计都需要由现代程序所需的界面设计这一清晰的行为来结合起来。界面设计(Interface design) 建立程序布局和人机交互机制。贯穿设计过程的质量由一系列的正式技术评定(formal technical reviews)或设计排演(design walkthroughs)来评价。
4.在团队开发中,每个人的性格也不尽相同,有人喜欢把事情尽早做出来,但也有人喜欢把事情放在后面,拖到最后,出现两极分化这样就会产生冲突、工作进展缓慢、合作不愉快等,那要如何协调和解决这件事,从而保证团队的高度团结和团队开发的效率?(书上P90页第五章团队和流程)