软件设计师知识点总结一、软件工程1.1软件工程基础知识软件生命周期:软件的生存期划分为制定计划、需求分析、设计、编程实现、测试、运行维护等几个阶段,称为软件生命周期。软件开发模型常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型。瀑布模型(WaterfallModel):缺点:瀑布模型缺乏灵活性,无法通过开发活动澄清本来不够明确的活动。因此,当用户需求比较明确时才使用此模型。演化模型(EvolutionaryModel):也称为快速原型模型。快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。螺旋模型(SpiralModel):将瀑布模型和演化模型相结合,综合了瀑布模型和演化模型的优点,并增加了风险分析。包含4个方面活动:制定计划:风险分析:实施工程:客户评价:喷泉模型(WaterFountainModel):主要用于描述面向对象的开发过程。喷泉一词体现了面向对象开发过程的迭代和无间隙特征。即允许开发活动交叉、迭代地进行。迭代:模型中的开发活动常常需要重复多次,在迭代过程中不断完善软件系统。无间隙:指在开发活动(如分析、设计、编码)之间不存在明显的边界。V模型(VModel):该模型强调测试过程应如何与分析、设计等过程相关联。增量模型(IncrementalModel):好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。构件:是由多种相互作用的模块所形成的提供特定功能的代码片段构成.软件开发方法软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。包括:结构化的方法、Jackson方法、面向对象开发方法结构化方法的指导思想是自顶向下、逐层分解,基本原则是功能的分解与抽象。Jackson方法:是面向数据结构的开发方法,包括JSP(JacksonStructureprogramming)和JSD(JacksonSystemDevelopment)面向对象方法:是以对象为最基本的元素,对象也是分析问题和解决问题的核心。开发方法包括:面向对象分析、面向对象设计、面向对象实现。面向对象开发方法有Booch方法、Coad方法和OMT方法等。为了统一各种面向对象方法的术语、概念和模型,1997年推出了统一建模语言——UML(UnifiedModelingLanguage),它有标准的建模语言,通过统一的语义和符号表示。软件项目管理软件项目管理包括:成本估计、风险分析、进度管理、人员管理。成本估算方法:有自顶向下估算法、专家估算法……。成本估算模型:IBM模型、Putnam模型、COCOMO模型。风险分析包括4种风险评估活动:风险识别:建立风险概念的尺度。试图系统化确定对项目计划(估算、进度、资源分配)的威胁。(一个方法是建立风险条目检查表。该风险表可以用于识别风险,并使得人们集中来识别下列常见的、已知的及可预测的风险)风险预测:描述风险引起的后果。确定风险发生的可能性或概率以及如果风险发生了所产生的后果。风险评估:估计风险影响的大小。风险控制:确定风险估计的正确性。辅助项目组建立处理风险的策略。进度管理:就是对软件开发进度的合理安排,它是如期完成软件项目的重要保证,也是合理分配资源的重要保证。进度安排的常用描述方法有:甘特图(Gantt图)、计划评审技术图(PERT图)、关键路径法(CPM图)CPM和PERT的区别是:CPM是以经验数据为基础来确定各项工作的时间,而PERT则把各项工作的时间作为随机变量来处理。所以,前者往往被称为肯定型网络计划技术,而后者往往被称为非肯定型网络计划技术。前者是以缩短时间、提高投资效益为目的,而后者则能指出缩短时间、节约费用的关键所在。软件过程管理软件过程:人们用于开发和维护软件及其相关产品(项目计划、设计文档、代码、测试用例、用户手册等)的一系列活动、包括软件工程活动和软件管理活动,其中必然涉及相关的方法和技术。※软件能力成熟度模型(CMM)※统一软件开发过程(RUP)※极限编程(XP)软件能力成熟度模型(CapabilityMaturityModel,简称CMM)软件过程能力----描述(开发组织和项目组)通过遵循其软件过程能够实现预期结果的程度。软件能力成熟度----—个特定软件过程...