项目管理之路(1)——项目管理
摘要:项目管理涉及对人员,过程和在软件从初始概念演化为可运行的实现的过程中发生的事件的计划和监控。管理涉及的范围有效的软件项目管理集中于四个P上,即People,Product,Process,Project。人员,产品,过程,项目。(1)人员SEI有个人员管理能力成熟度模型,PM-CMM。在人员管理上达到较高成熟度的组织,更有可能完成有效的工程实践。(2)产品在制定项目计划之前,应该首先确定产品的目标和范围,考虑可选的解决方案,识别技术和管理上的限制。确定产品的目标范围,要标识出产品的主要数据,功能和行为特征,且最重要的是应该以量化的方式界定这些特征。了解了产品的目标和范围后,开始考虑备选的解决方
阅读全文
软件工程之路(11)——软件测试策略
摘要:软件测试的目的是为了发现软件设计和实现过程中的疏忽所造成的错误。测试是可以事先计划并可以系统的进行一系列活动。软件测试的策略性方法软件测试策略为开发人员提供了测试模板,且具备以下特征:为完成有效的测试,软件团队应该进行有效的,正式的技术评审。通过评审,许多错误可以在测试开始之前排除;测试开始于构件层,然后向外延伸到整个基于计算机系统的集成;不同的测试技术适用于不同的时间点;测试由软件开发人员和(对大型项目而言)独立的测试组执行;测试和调度是不同的活动,但任何测试策略中都必须包括调试。(1)验证与确认软件测试是通常所讲的更广泛主题——验证与确认,Verification and Validati
阅读全文
软件工程之路(8)——体系结构设计
摘要:软件体系结构定义:一个程序和计算系统软件体系结构是指系统的一个或多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。体系结构不是可运行软件,而是一种表达,使工程师能:分析设计在满足规定需求方面的有效性;设计变更相对容易的阶段,考虑体系结构可能的选择方案;降低与软件构造相关联的风险。体系结构重要有三个关键原因:软件体系结构的表示有助于对计算机系统开发感兴趣的各方开展交流;体系结构突出了早期设计决策,这些决策对随后的所有软件工程工作有深远的影响,同时对系统作为一个可运行实体的最后成功有重要作用;体系结构构建了了一个相对小的,易于理解的模型,该模型描述了系统如何构成以及其构件如
阅读全文
软件工程之路(7)——设计工程
摘要:分析模型关注于说明必需的数据,功能和行为。设计创建了软件的表达式模型,提供了软件数据结构,体系结构,接口和构件的细节,这些都是实现系统所必需的。设计工程的目标是创作出坚固、适用和赏心悦目的模型或设计表示。坚固是指程序应该不含任何妨碍其功能的缺陷;适用性表示程序符合开发的目标;赏心悦目是要求使用程序的体验应该是愉快的。设计师的做法须是先实现多样化再聚合。多样化指要获取多种方案和设计的原始资料,包括目录、教科书和头脑中的构件、构件方案和知道。把各种信息汇聚在一起后,从中挑选出能够满足需求工程和分析模型中所定义的需求的元素。然后进行取舍,进行聚合,使之成为构件的某种特定配置,便得到最终产品。多样性和
阅读全文
软件工程之路(6)——构建分析模型
摘要:为了确认软件需求,需要从不同视角检验需求。分析建模从多个维度表现需求,增加了查明错误、消除不一致性、发现遗漏的几率。通过使用不同格式的图表为信息、功能和行为需求建模。基于场景的建模从用户角度表现系统;面向流的建模在说明数据对象如何通过处理函数进行转换方面提供了指示;基于类的建模定义了对象、属性和关系;行为建模描述了系统状态、类和事件在这些类上的影响。创建了模型的雏形后,就可以不断改进,并分析评估其清晰性,完整性和一致性。最终的分析模型将由所有共利益者确认。需求分析需求分析产生软件操作特征的规格说明,指明软件和其他系统元素的接口,建立软件必须满足的约束。需求分析让软件工程师细化在前期需求工程工作
阅读全文
软件工程之路(5)——需求工程
摘要:需求工程,Requirement Engineering,RE,帮助软件工程师更好的理解他们将要解决的问题,其中所包含的一系统任务有助于理解软件如何影响业务,客户想要什么以及最终用户将如何和软件交互。软件工程中摘取了一段有效需求实践的书籍的前言,大概情况是这样的:在项目后期,客户突然说,所做是并不是他想要的。有这样一种现象:开发人员并不是很清楚的了解用户的需要,并不很透彻的理解客户的需求,就迫切的投入到编写工作。而且认为:随着编写的过程的开展,事件就会变得清晰;软件的早期版本发布上线后,项目的共利益者才能更好的理解需求;需求工程是不必要的,是浪费时间;只要开发一个可运行的程序即可,其它都是次要
阅读全文
软件工程之路(4)——系统工程
摘要:系统,见得多了。什么都叫系统。意识中有对系统这个词有模糊的认识,但真要描述系统的含义还不能用言语表达出来。软件工程中,在韦氏字典中给出系统的定义:1,相互联系以形成单一或有机整体的事务集合或排列;2,事实、原理、规则等集合按照一种顺序分类排列,来展现连接各个部分的逻辑计划;3,分类或排列的方法或计划;4,完成某件事的有效途径,方法,规程……基于计算机的系统定义为:组织在一起通过处理信息来实现预定目标的要素集合或排列。基于计算机的系统利用各种各样的系统要素:软件:计算机程序、数据结构和相关工作产品,用以实现逻辑方法,规程和控制。硬件:提供计算能力的电子设备,支持数据流的互连设备,支持外部功能的机
阅读全文
软件工程之路(3)——软件工程实践
摘要:看到实践这个词,明白这是什么意思。实践就是实行的意思吧。对软件工程实践也有个模糊的概念。但还要想弄清这个实践是什么意思。上百度百科查出来一段:实践是人类自觉自我的一切行为。内在意识本体与生命本体的矛盾是推动人类自我解放的根本矛盾,其外在化为人类个体及组织、阶级通过生产关系联系的整体对于自然及个体间或者集体关系、阶级关系形成的解放活动。实践只有在自觉的意识下才是人性的、人格的。真是复杂的哲学啊!在软件工程中的实践给出的概念:实践是软件计划和开发时需要考虑的方方面面,包括概念、原则、方法和工具等。它表达了一些细节——需要考虑的技术问题以及怎样实现软件过程中的东西,即实际构造高质量软件所必需的东西。
阅读全文
软件工程之路(2)——过程模型
摘要:过程是软件工程的基础。过程构成了软件项目管理控制的基础,建立一个环境以便于技术方法的采用,工作产品的产生,里程碑的建立,质量的保证,正常变更的正确管理。过程框架定义了定义了若干小的框架活动,为完整的软件开发过程建立了基础。框架中的每个活动都由一组工程动作,每个动作包括一系列的的任务并产生一个工作产品,每个工作任务完成一部分软件工程动作所定义的工作。惯例过程模型惯例过程模型定义包含活动,动作,任务,里程碑和工作产品在内的明确集合,是高质量软件开发所必需的。这些过程模型虽然不是完美的,但是确实为软件工程工作提供了有用的路线图。惯例,规定了一套过程元素——框架活动,软件工作动作,任务,工作产品,质量
阅读全文
软件工程之路(1)——软件工程定义和过程
摘要:自己做软件开发(或许说IT行业更准确一些),已经6年了。如果要让我自己给软件一个定义,我只能按自己的理解来描述了:首先,软件是一个产品,它由各种语言开发实现特定的自动化功能或自动化功能集,由计算机或其它终端承载和执行,满足现实世界中的各种自动化应用,还包括使用的文档。因为没有系统的学习过软件工程,对软件的概念很不定,或者自己用语言表达不出或表达的肤浅。软件与硬件的对比1 软件是设计开发的,不是传统意义上生产制造的2 软件不会磨损,但会退化以时间为变量的硬件失效率称为浴缸曲线:硬件在早具有相对较高的失效率,但缺陷被纠正后,失效率也降低,且在一段时间内保持平稳。随着时间的推移,因为震动,灰尘,不当
阅读全文