“瞬时事件-软件工程清华大学课件”
这篇资料是关于软件工程的课程内容,特别是涉及到软件设计中的关联模型和解决软件危机的方法。在软件工程中,关联是建模的重要部分,它反映了不同对象之间的关系。以下是具体内容的详细说明:
1. **瞬时事件**:在软件建模中,瞬时事件是指一个短暂的动作,它不应该被用作关联的描述。例如,ATM读取现金兑换卡是一个瞬时动作,不适合作为持久的关联表示。在建模时,应避免将这类瞬时行为视为长期的关系。
2. **三元关联**:三元关联是指涉及三个或更多对象之间的关系。这种关联可以被分解为两个二元关联来简化模型。例如,“柜员输入针对帐户的事务”可以分解为“柜员输入事务”和“事务修改帐户”,这样可以使模型更加清晰,便于理解和维护。
3. **派生关联**:派生关联是指可以通过其他关联推导出来的冗余关系。去除这些关联可以减少模型的复杂性。如“分行计算机维护帐户”这个关联,实际上可以由“分行保管帐户”和“事务修改帐户”这两个关联替代。
软件工程学起源于应对所谓的**软件危机**,这是在60年代至70年代期间,由于软件开发和维护过程中出现的一系列严重问题。这些问题包括:
1. **成本和进度估算不准确**:软件项目经常超出预算和预定的时间表。
2. **用户满意度低**:完成的软件系统往往不能满足用户的需求。
3. **质量问题**:软件产品的可靠性不足。
4. **不可维护性**:软件难以进行后续的修改和升级。
5. **缺乏文档**:软件文档的缺失使得理解和维护软件变得困难。
6. **成本占比增加**:软件成本在计算机系统总成本中的比例持续上升。
7. **开发效率滞后**:软件开发速度无法跟上计算机应用的发展。
软件危机的产生原因主要是由于软件本身的特性(如复杂性、易变性)以及不正确的开发和维护方法。解决软件危机的途径包括:
1. **采用成功的开发技术和方法**:不断学习和实践新的开发技术,提高软件质量。
2. **开发和使用更好的软件工具**:利用自动化工具提高开发效率和软件质量。
3. **实施良好的组织管理**:通过有效的项目管理,确保软件开发的顺利进行。
软件工程学是应对软件危机而诞生的学科,它专注于应用工程原理和技术来研究软件开发和维护。而程序设计方法学则侧重于数学方法,研究程序设计的理论和实践。两者共同推进了软件开发的科学化和规范化。