2019软件工程-个人项目作业

2020软件工程-结对项目作业

1. 项目简介

github链接

项目 | 内容

2. PSP时间花费

PSP2.1 Personal SoftWare Process Stages 预计耗时 实际耗时
Planning 计划 120 60
Estimte 估计这个任务需要多少时间 1800 1700
Development 开发 1100 1000
Analysis 需求分析 0 0
Desing Spaec 生成设计文档 100 40
Design Review 设计复审 100 10
Coding Standard 代码规范 0 0
Design 具体设计 60 40
Coding 具体编码 1100 180
Code Review 代码复审 60 60
Test 测试 180 180
Reporting 报告 100 120
Test Report 测试报告 0 0
Size Measurement 计算工作量 5 0
Postmortem & Process Improvement 事后总结 60 50
- 合计 1800 1700

3. 接口设计

经过查阅资料和学习, 我了解到在接口设计中有常用的一些原则, 本次作业的设计中, 我们用到了这些原则。

  • 单一职责原则

    Single Responsibility Principle: There shuld never be more than one reason for class to change

    单一职责原则要求一个接口, 一个功能, 如果在private 方法和public接口中, 改动过多, 那么容易引起错误。 在结对编程的设计中, 计算模块里我们尽量保证一个函数只做一个事情, 比如Line Circle Point分出三个类, 每个求交点的函数只处理一种类型等。

  • 里氏替换原则

    Liskov Substitution Principle: Functions that use pointers or references to base classed must be able to use objecsts of derived classes without knowing it

    这一法则是多态的体现, 所有父指针的使用点都可以用子指针, 这要求了子类只扩展父类, 但是不可以用在覆写父类函数的时候让函数的应用范围减少。 在最初的版本中, 我们采用了Line Circle继承父类的方式实现, 后来发现这种继承影响性能, 就放弃了继承。

  • 依赖倒置原则

    依赖倒转原则是TDD测试驱动开发的体现, 要求高层模块不依赖特定的底层模块, 而是依赖其抽象, 这要求编程者提前想好接口。

  • 接口隔离原则

    clients should not be forced to depend upon interfacess that they don't use

    保证接口单一, 不要过于臃肿, 在计算模块和UI模块的对接时, 我们尽量细化接口, 让模块的每个按钮对应了刚好一个接口, 同时接口之间的功能达到了隔离。

  • 迪米特法则

    law of Demeter: least knowledge

    loose coupling: Loose coupling means they mostly independent

    这一原则要求两个类之间要低耦合, 达到loose coupling, 一个类不需要知道另一个类是怎么实现的, 更不需要因为一个类内部代码的修改二更改自己的方法。 在我们的结对编程中, 为了实现接口的高效对接, 对于接口进行和抽象和封装

5. UML图

7. Design By Contract

10. 界面模块设计

11. 界面模块与计算模块的对接

12. 描述结对的过程

13. 结对编程优缺点

posted @ 2020-03-07 17:03  edward-crazy  阅读(258)  评论(2编辑  收藏  举报