加入班级博客【所有作业都通过该博客系统提交,请务必严格遵守作业截止时间】
- 键盘练习 —— 输入速度、快捷键等
- 能够熟练操作的工具集 —— VSCode/Vim、正则表达式等
- 代码规范和风格 —— 缩进、命名、注释等
- Writing_the_Programs.pdf
- 测试驱动开发TDD —— 单元测试
- Coding_Exercise.pdf
- 分解任务Work Breakdown
- 写程序就是在不同抽象层级上分解任务,以决定任务的执行次序、执行条件和循环执行。
- 1)确定程序的功能目标,定义接口给出程序的典型的输入和输出,并给出测试用例;
- 2)为了完成功能目标在最高抽象层级上通过顺序、分支和循环组织需要完成的子程序;
- 3)为每一个子程序定义接口,添加异常处理,goto 1)。
- 软件工程(C编码实践篇)https://mooc.study.163.com/course/1000002006 课程主要实验都在Linux环境(使用自己的linux环境或实验楼)下演示,如果您之前从来没有接触过Linux系统或者不熟悉Linux Shell的基本命令,请您参考http://www.cnblogs.com/laov/p/3541414.html
- 业务理解与分析
- The Agile Unified Process:From Analysis to Design
- 需求工程
- 需求挖掘
- 原型方法
- Capturing_the_Requirements.pdf
- OO & UML
- Designing_the_Modules.pdf
- 期中回顾
- 案例研究:socket相关代码
- socket接口的设计特点
- 原生socket编程
- 外部接口本地化
- 外观模式
- 案例研究:menu
- 案例研究:未来的图书是什么样的?
- e-book作为纸质图书的电子化,固守着纸质载体的空间顺序图文特点,结合互联网之后出现了慕课、付费阅读、在线课程等新的形态;
- 互联网条件下提供了虚拟高维空间链接和多媒体交互性,以游戏、多媒体交互式课件为典型代表;
- 从作者和读者两个角度看,未来的图书会是什么样的?
- 案例研究:socket相关代码
- 架构风格
- 代码结构视图
- Designing the Architecture Designing_the_Architecture.ppt Designing_the_Architecture-continue.ppt
- Most design work is routine design, solve problem by reusing and adapting solutions from similar problems
- Some design problems have no existing solutions,Designers must decompose to isolate key problems
- architectural views:
Decomposition view
Dependencies view
Generalization view
Execution view
Implementation view
Deployment view
Work-assignment view
- Architectural Styles and Strategies
- Achieving Quality Attributes
Modifiability
Performance
Security
Reliability
Robustness
Usability
Business goals
- 软件的生命周期
- 软件开发过程
- Planning and Managing the Project - 1-2-3-4
- Delivering the System
- Considering the Audience in Training and Documentation
- Maintaining the System
- Software does not degrade or require periodic maintenance,However, software is continually evolving,so Maintenance process can be difficult.
- The more a system is linked to the real world, the more likely it will change and the more difficult it will be to maintain
- Impact analysis builds and tracks links among the requirements, design, code, and test cases
- Software rejuvenation involves redocumenting, restructuring, reverse engineering, and reengineering
- The Future of Software Engineering
- 软件工程各阶段的目标
- User Experience
- Concrete Requirement
- Clear/Unambiguous Specification
- Loosely Coupled、Functional Cohesion、Hierarchy of Abstraction
- Readable Solid Code
- Test Thoroughness
- Why-Software-Engineering