Skip to content

Latest commit

 

History

History
120 lines (108 loc) · 7.71 KB

se2019.md

File metadata and controls

120 lines (108 loc) · 7.71 KB

软件工程 2019

加入班级博客【所有作业都通过该博客系统提交,请务必严格遵守作业截止时间】

程序员的基本功

如何编写程序?

  • 代码规范和风格 —— 缩进、命名、注释等
  • 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

需求分析与设计

代码的结构、特性和描述方法

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