软件构造
北言栾生
这个作者很懒,什么都没留下…
展开
-
[HITSC]哈工大2020春软件构造Lab4实验报告
1 实验目标概述本次实验重点训练学生面向健壮性和正确性的编程技能,利用错误和异常处理、断言与防御式编程技术、日志/断点等调试技术、黑盒测试编程技术,使程序可在不同的健壮性/正确性需求下能恰当的处理各种例外与错误情况,在出错后可优雅的退出或继续执行,发现错误之后可有效的定位错误并做出修改。实验针对 Lab 3 中写好的 ADT 代码和基于该 ADT 的三个应用的代码,使用以下技术进行改造,提高其健壮性和正确性:错误处理异常处理Assertion 和防御式编程日志调试技术原创 2020-08-02 18:04:28 · 562 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造Lab3实验报告
1 实验目标概述本次实验覆盖课程第 3、4、5 章的内容,目标是编写具有可复用性和可维护性的软件,主要使用以下软件构造技术:子类型、泛型、多态、重写、重载继承、代理、组合常见的 OO 设计模式语法驱动的编程、正则表达式基于状态的编程API 设计、API 复用2 实验环境配置简要陈述你配置本次实验所需环境的过程,必要时可以给出屏幕截图。特别是要记录配置过程中遇到的问题和困难,以及如何解决的。3 实验过程3.1 待开发的三个应用场景应用场景:航班管理、高铁原创 2020-08-02 18:04:13 · 598 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造Lab2实验报告
文章目录1. 实验目标概述2. 实验环境配置3. 实验过程3.1. Poetic Walks3.1.1. Get the code and prepare Git repository3.1.2. Problem 1: Test Graph3.1.3. Problem 2: Implement Graph \1. 实验目标概述本次实验训练抽象数据类型(ADT)的设计、规约、测试,并使用面向对象编程(OOP)技术实现 ADT。具体来说:针对给定的应用问题,从问题描述中识别所需的 ADT;设计原创 2020-08-02 18:03:57 · 755 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造Lab1实验报告
文章目录1. 实验目标概述2. 实验环境配置3. 实验过程3.1. Magic Squares3.1.1. isLegalMagicSquare()3.1.2 generateMagicSquare()3.2. Turtle GraphicsProblem 1: Clone and importProblem 3: Turtle graphics and drawSquareProblem 5: Drawing polygonsProblem 6: Calculating BearingsProblem 7原创 2020-08-02 18:03:42 · 893 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造复习笔记 (7)
Chapter 7: Concurrent and Distributed Programming7.1 Concurrency1. 并发2. 进程、线程基础Java多线程开发3. 交错执行与竞争时间分片线程之间共享内存产生竞争条件消息传递产生竞争条件交错带来的测试问题主动影响线程之间的交错关系7.2 Thread Safety1. 实现线程安全的四种策略Strategy 1: ConfinementStrategy 2: ImmutabilityStrategy 3: Using Threadsafe D原创 2020-06-29 23:10:40 · 1073 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造复习笔记 (6)
Chapter 6: Software Construction for Robustness6.1 Robustness and Correctness6.2 Error and Exception Handling1. Java中的错误和异常2. 异常Checked and unchecked exceptions抛出异常处理checked exceptionsfinallyLSP中的异常3. 一张图总结6.3 Assertions and Defensive Programming1. 断言2. 防御原创 2020-06-29 23:10:27 · 974 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造复习笔记 (5)
Chapter 5: Maintainability-Oriented Software Construction Approaches5.1 Metrics and Construction Principles for Maintainability1. 可维护性的指标2. 模块化设计原则3. SOLID设计原则单一责任原则(SRP)开放-封闭原则(OCP)替换原则(LSP)依赖转置原则(DIP)接口隔离原则(ISP)5.2 Design Patterns for Maintainability1. F原创 2020-06-29 20:09:29 · 1417 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造复习笔记 (4)
Chapter 4: Reusability-Oriented Software Construction Approaches4.1 Metrics, Morphology and External Observations of Reusability1. 面向复用编程2. 复用的层面源代码层面的复用模块层面的复用库层面的复用架构层面的复用4.2 Construction for Reuse1. Liskov替换原则(LSP)子类型多态LSP协变逆变类型擦除(泛型中的LSP)2. 组合与委托四种委派方原创 2020-06-28 18:51:00 · 1353 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造复习笔记 (3)
Chapter 3: Abstract Data Type (ADT) and Object-Oriented Programming (OOP)在设计中,最重要的原则就是隔离,将ADT和client、将method和client通过spec都隔离开,确保内部的变化不会影响到client,而client也不知道我的内部的实现,这样的目的是为了便于未来的升级和维护,也可以最大限度的减少恶意者的攻击。3.1 Data Type and Type Checking1. 编程语言的数据类型 在Java中原创 2020-06-27 23:06:32 · 1864 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造复习笔记 (2)
Chapter 2: Process and Tools of Software Construction2.1 Software Lifecycle and Configuration Management本节的重点在版本控制工具git的基础使用1. 基本知识软件开发生命周期(SDLC):从无到有,从有到好传统软件过程模型:基本类型有线性过程(Linear)和迭代过程(Iterative),目前存在的模型有瀑布过程(waterfall),增量过程(incremental),V字模型(V-原创 2020-06-26 23:16:05 · 1138 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造复习笔记 (1)
Chapter 1: Views and Quality Objectives of Software Construction1.1 Multi-Dimensional Views of Software Construction1. 软件构造过程中的多维度视图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zK7FTZ6p-1593094250660)(E:\资料\2020春\软件构造\note\image-20200622213646295.png)]Momen原创 2020-06-25 22:41:31 · 1683 阅读 · 0 评论 -
[HITSC]哈工大2020春软件构造Lab3+Lab4实验总结
今天完成了Lab4的验收,由于Lab4是在Lab3的基础上的,所以我打算把这两个实验放在一起看一看这两个实验。Lab3的目的是写一个航班的管理程序,以及尽可能多的可以为其他应用复用代码(我选择的其他两个应用为高铁车次管理应用和计划项管理应用)。这个实验给我最大的体会是:为了复用,就要尽可能地把所有的功能分割,把不相关的独立地作为一个ADT,然后通过委派机制,让对应的ADT去实现,而关联度小的功能就通过传参的方式把需要的数据传递给功能实现ADT的对应方法,本身的ADT只保留最核心的必不可少的功能。总之就是一原创 2020-06-02 23:30:20 · 898 阅读 · 0 评论