考试相关
知识点概述
软件危机
软件危机的概念
在计算机软件的开发和维护过程中所遇到的一系列严重问题
软件和程序的关系与区别
软件的概念:软件是包括程序,数据及其相关文档的完整集合
程序是能够完成预定功能和性能的可执行的指令序列
数据是使程序能够适当地处理信息的数据结构
文档是开发、使用和维护程序所需要的图文资料
软件工程
软件具有的本质特性
1.软件工程关注于大型程序的构造
2.软件工程的中心课题是控制复杂性
3.软件经常变化
4.开发软件的效率非常重要
5.和谐地合作是开发软件的关键
6.必须有效地支持它的用户
7.两种背景的人创造产品这个特性与前两个特性紧密相关
软件过程三要素:方法、工具、过程
软件工程方法学包括传统方法学和面向对象方法学
传统方法学:也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用
特点:传统方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。 每个阶段的开始和结束都有严格标准,对于任何两个相邻的阶段而言,前一阶段的结束标准就是后一阶段的开始标准
在每一个阶段结束之前都必须进行正式严格的技术审查和管理复审。 审查的一条主要标准就是每个阶段都应该交出“最新式的”(即和所开发的软件完全一致的)高质量的文档资料,从而保证在软件开发工程结束时有一个完整准确的软件配置交付使用
面向对象方法学:与传统方法相反,面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法
四个要点
1.把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件
2.把所有对象都划分成类(class)
3.按照父类与子类的关系,把若干个相关类组成一个层次结构的系统
4.对象彼此间仅能通过发送消息互相联系
优点:降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。 面向对象方法特有的继承性和多态性,进一步提高了面向对象软件的可重用性
软件生命周期
软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每个时期又进一步划分成若干个阶段
软件定义时期的任务是: 确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完成
软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
软件开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现
软件维护时期的主要任务是使软件持久地满足用户的需要
八个阶段
每个阶段的参与角色
问题定义:用户、系统分析员
可行性研究:系统分析员
需求分析:用户、系统分析员
总体设计:软件工程师、用户
详细设计:软件工程师(不确定)
编码和单元测试:程序员
综合测试:程序员、用户