软件的本质特性
不可见性:软件是逻辑实体,不是具体的物理实体;
一致性:软件的开发受计算机系统的限制,对硬件系统有不同程度的依赖;
可变性:易于变更和扩展,因此总是不够“完美”;
复杂性:开发成本昂贵,制约因素很多。
软件开发的最佳实践
最佳实践(Best Practice)是管理学中的一个概念,即那些已经在别处产生显著效果,并
能够适用于此处的优秀实践。
典型例子:设计模式,中国功夫
软件开发的最佳实践:关注软件过程,如果过程是正确的,那么过程的结果(软件产品
或服务)也将是正确的。
软件工程:在给定成本、进度的前提下,开发出满足用户需求的软件产品的方法。
利益相关者:在软件项目中存在利害关系的人。
有两组主要的利益相关者:
客户(用户或系统所有者)。
开发者(分析员、设计员、程序员等)。
软件工程实施的反思
需求引导:调整和优化软件过程化模型,使之适应用户需求的频繁变更;
拥抱变化:接受软件开发潜在风险的事实,从控制变化提升到适应变化、甚至拥抱变化,
使风险在尽可能早的情况下暴露并解决!
以人为本:重新审视软件开发当中人的因素,重视人的综合能力培养、团队的高效协作、
以及人的积极性和士气提升。
Rational 统一软件过程
改进迭代软件过程模型,为之融入 UML 等一系列辅助技术、工具或模板,用以来标准化和
自动化软件开发的一些关键环节,由 Rational 公司(IBM 收购)提出。
RUP 核心元素
统一建模语言 UML
正向/反向工程技术
Rational Rose、ClearCase、ClearQuest 等一系列标准化工具。
敏捷软件开发
以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发,崇尚以人为本、拥抱
变化、简单高效等理念,提倡充分交流、协同实践和简化文档。
软件需求的组成
功能性需求:系统的范围、必要的业务功能、所需的数据结构,等。
非功能性需求:可用性、可复用性、可靠性、性能、效率、适应性,等(P53)
其它隐性的需求。
软件客户:
客户是指直接或间接从产品中获得利益的个人或组织
软件客户的分类
支付、采购或投资软件产品的客户,有义务提供系统的业务需求,形成后继工作的
指导性框架。
使用软件产品的最终用户,可以提供有关软件产品任务及非功能性特性的详细说明,
即用户需求
软件客户的需求观
需求分析是需求分析人员的事情,客户不必、也不应该过多参与;
分析人员或开发人
软件需求分析(张昌利)软件需求分析 来自淘豆网www.taodocs.com转载请标明出处.