软件工程_Note

第1章_软件工程概述

软件工程是一门工程学。

软件开发过程中存在周期长、成本高、质量低等问题。

软件危机是软件工程产生的背景。

1.1_软件危机

政府、教育、金融、制造业、媒体、航空航天、生命科学等处处有软件系统。

软件系统越来越复杂,软件的高性能计算和事务处理能力倍受依赖。

  1. 软件开发的特性
  • 难以描述性:软件需求来源广泛,不完整,存在二义性。没有统一的描述规范。
  • 缺乏可见性:难以衡量软件开发的质量和进度。
  • 具有复杂性:软件规模增加,程序的复杂性呈指数上升。
  • 具有变化性:业务规则变化,软件环境变化。
  • 具有风险性:风险源自用户,项目,技术和商业风险。软件重开发代价巨大。
  • 具有强合作性:规模大,复杂度高,需要更多人分工协作,短时间开发出高质量产品。
  1. 软件危机
  • 缺乏计划性:进度安排与成本估计不准确。易造成项目超时、成本超支。
  • 软件需求获取不充分、不准确:不恰当的需求采集和分析方法。软件产品不能满足用户实际需求。
  • 缺乏团队开发的合作、协调能力:大、中型软件需要按照一定标准进行团队分工协作。
  • 缺乏良好的软件质量评测手段:软件错误发现不及时,软件质量得不到保证。
  • 软件的可维护性差:缺乏统一的开发规范,缺乏完整的、规范的软件文档。
  • 软件的可复用性差:存在大量重复性劳动,软件开发效率低。
  • 软件开发过程不规范:项目大幅度返工,边建边改。
  • 缺乏自动化的工具来协助开发:手工方式进行建模与测试开发效率低。
  • 缺乏变更管理措施:需求、设计方案与代码经常变更。无序的变更导致项目混乱。
  • 缺乏风险管理手段:大规模复杂软件需要有效的识别、评估、应对和监控源自项目、技术和商业的风险。

1.2_软件工程概念

软件工程的定义:软件工程是以质量为核心,为了经济地开发满足客户需求的软件而研究、建立和应用的系统化的、有规则的、可度量的和可控制的工程原则、方法,涉及软件过程、项目管理、开发方法、开发工具,甚至企业文化等各方面。

  • 以质量为中心:软件工程的核心目标是保证和提高软件质量。
  • 经济性:指在软件开发中生产出满足预算、按期交付的软件。
  • 满足客户需求:软件产品必须提供用户所需的功能。
  • 研究、建立和应用:软件工程的方法理论、模式、框架等并列为标准并应用到实践当中。
  • 系统化:将软件过程、项目管理、开发方法、软件度量、开发工具等相关知识有机地组织在一起。
  • 有规则:软件工程具有一定的标准和规范。
  • 可度量:软件规模、复杂性、可使用性、可靠性、生产率、成本是被度量的因素。
  • 可控制:需求获取、系统分析、系统设计、系统实现、系统测试和部署等活动应处于受控状态。
  • 软件过程:将用户需求转化为软件系统所进行的一系列活动的集合。
  • 项目管理:涉及人力资源管理、项目计划、风险管理、项目跟踪、质量保证、配置管理等。
  • 开发方法:结构化传统软件工程方法、面向对象的软件工程方法。
  • 开发工具:自动化工具辅助需求分析、优化软件设计、加快代码实现速度、提高软件测试水平。
  • 企业文化:企业文化会逐步潜移默化地融入项目团队,影响软件开发效率和质量。

1.3_项目案例

网上商城系统www.dcse.neu.edu.cn功能、性能、代码数量、复杂度。

扫描二维码关注公众号,回复: 3428221 查看本文章
  1. 系统主要功能:商品销售
  • 列举商品类别、提供搜索功能。
  • 显示商品列表、商品具体信息。
  • 实现用户登录验证、注册新用户、维护用户信息等功能。
  • 管理购物车。
  • 实现结账处理。
  • 查询订货情况。
  • 统计销售记录。
  1. 系统需要解决的问题:相关非技术问题
  • 项目开发的起点。
  • 技术的选择及其优缺点(最先进技术、团队最熟悉的技术、用户最期待的技术)。
  • 系统开发所需时间。
  • 系统开发所需人力及其分工。
  • 项目的开发计划。
  • 是否需要需求分析。
  • 需求是否清晰完整,是否需要需求分析文档,文档编写的规范。
  • 代码编写前的设计方案和模型,设计方案所遵循的原则。
  • 人机交互界面的设计。
  • 实现功能的先后顺序及其优先级。
  • 系统开发的风险识别、评估、监控、应对方案。
  • 系统的可扩展性,需求增加、技术变更。
  • 是否有可复用的构件或框架。
  • 系统设计中是否有可参考的设计模式。
  • 系统开发过程中的编码规范。
  • 应对需求变更的最小化项目变更策略。
  • 测试工作的起点,测试方法,测试工具。
  • 系统开发所采用的过程模型。开发过程的控制。需求分析、系统设计、编码、测试、部署。
  • 软件质量的度量。
  • 项目延期的应对策略。

第1章_软件工程概述_总结

软件开发周期长、质量低、成本高。

软件工程以质量为核心。研究、建立、并应用系统化、有规则、可度量、可控制的工程原则和方法。

第1章_软件工程概述_习题

1.1_软件开发的特点。

1.2_软件危机是什么。软件危机的表现。软件危机的解决方法。

1.3_软件工程是什么。

1.4_软件的开发方法有哪些。

1.5_项目管理有哪些方面。

1.6_软件工程工具的作用。

第2章_软件开发过程和活动

软件开发的团队成员需按照一定的步骤,有序地,协作开发软件。

2.1_过程概念

软件开发过程的一系列活动:

基本活动:问题定义、可行性研究、需求分析、系统设计、代码编写、系统测试、软件部署、软件交付。

管理活动:风险管理、开发计划、项目跟踪、质量保证、软件配置管理。

软件过程由开发和维护软件及其相关产品的一系列活动构成,这些活动从不同方面定义了软件开发过程中的步骤、交付物、涉众及其职责等流程要素。

软件开发过程黑箱:

客户需求:启动软件开发。

开发资源:员工和工具(人力、物力)。

开发控制:预算、计划、标准控制软件开发的费用、进度、质量。

产品输出:软件程序代码、用户需求规约文档、系统设计文档、测试报告、用户说明书。

猜你喜欢

转载自blog.csdn.net/sun2014moon/article/details/82924345
今日推荐