中山大学系统分析作业一
系统分析第一次作业
学号:16340074
姓名:何自强
选择1至5题进行作答
软件工程的定义
软件工程定义繁多,先截取两种软件工程定义进行分析说明。
- 维基百科:engineering is the application of engineering to the development of software in a systematic method.
- IEEE standard 620.12:software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, that is, the application of engineering to software, and the study of approaches as in.
对比两种定义,发现两种定义的共同点如下:
- 强调系统化方法
- 强调传统工程学方法在软件开发上的实际应用,而不是独立于其他学科上使用的工程学方法。
解释导致software crisis 本质原因,表现,述说克服软件危机的方法
现在讨论软件危机,
软件危机产生的本质原因
- 软件的大量需求与软件生产力效率之间的矛盾
- 软件系统的复杂性与软件开发方法之间的矛盾
表现
- 软件需求增长得不到满足
- 软件生产高成本,价格昂贵
- 软件生产进度无法控制
- 软件需求定义不准确
- 软件质量不易保证
- 软件可维护性较差
克服软件危机的方法
- 正确认识计算机软件的内涵
- 采用工程项目管理方法实施软件开发的组织管理
-
- 软件开发应该是一种组织良好,管理严密,协同配合的工程活动
- 采用成熟的软件开发技术和方法,开发和使用适合的软件工具
软件生命周期
计算机软件有一个孕育,诞生,成长,成熟,衰亡的生存过程,这样的过程称为软件的生命周期(也称软件生命周期SDLC)。软件生命周期将软件开发过程划分为若干阶段,每个阶段有明确的任务,目标和运行机制,从而使负载的软件开发过程能够得到适合的控制和管理。
软件生命周期一般包含可行性分析与计划,需求分析,设计(概要设计和详细设计),编码实现,测试,运行与维护等活动。这些活动应当以适合的方式分配到不同的阶段去完成。
SWEBok的15个知识域
- software requirements:软件需求
- software design:软件设计
- software construction:软件构建
- software testing:软件测试
- software maintenance:软件维护
- software configuration management:软件配置管理
- software engineering management:软件工程管理
- software engineering process:软件工程流程
- software engineering models and methods:软件工程模型与方法
- software quality:软件质量
- software engineering professional practice:软件工程专业化实践
- software engineering economics:软件工程经济学
- computing foundations:计算机学术组织
- mathematical foundations:数学组织
- engineering foundations:系统学组织
CMMI的五个级别
- initial:无序,有时甚至是混乱的,队过程几乎没有定义。
- managed:建立基本项目管理过程来跟踪费用,进度和功能特性。
- defined:将软件管理与工程两方面的过程文档化,标准化,并综合成组织的标准软件过程。
- quantitatively managed:分析对软件过程和产品质量的详细度量数据,对软件过程和产品有定量的理解与控制。
- optimizing:过程的量化反馈与先进的新思想,新技术促进过程不断优化
Comment