[Midterm1]Software Development Lifecycle
这门课(Computer Science III)的目的是什么?
- 创造高质量软件系统(high quality software system)的方法论(methology)
- 高质量软件系统的性质:
- 正确性 correctness
- 高效 efficiency
- 易用 ease of use (by other programmers in the case of frameworks)
- 可靠和鲁棒(误) 强壮 reliability/robustness
- 可维护 maintainability
- 可修改 modifiability
- 扩展性 extensibility / scalability
- K-locs(1,000行源代码) 是一种衡量软件规模的一个度量衡
- 下图是阿富汗政府的政府软件系统(可见政府效率是多么的低下):
- 软件开生命发周期(Software Development Lifecycle)
- 当一个软件越大,那么它就越难实现
- 程序的复杂度增加
- 团队的复杂对增加(人员增多导致的开发效率降低,详见人月神话)
- Lifecycle:
分别是:需求分析-> 设计和文档 -> 评价设计 -> 撸代码 -> 测试 -> 投入运行
- 软件集成
- 在大型软件开发中广泛应用
- 功能分成多个部分分别开发,最终凝聚一起
- 软件维护
- 持续开发
- 监视和升级上线软件
- 软件开发生命周期的其他模型:
- 敏捷开发(Agile Programming)
- 极限编程(Extreme Programming)
- 结对编程(Pair Programming)
- e.g.
• Waterfall Model: - 1. Requirements Analysis
- 2. Design
- 3. Evaluate Design
- 4. Code
- 5. Test, Debug, & Profile Components
- 6. Integrate
- 7. Test, Debug, & Profile Whole Program
- 8. Deploy
- 9. Maintain
- 软件开发工作:
- 程序员 = 在软件开发环节中最花费时间的一个部分
- 除此之外你应该了解如何设计,Coding,测试,debug一个软件
- 除了代码猴子之外你还可以做的工作
- 软件设计师
- Database, Network, Security Administrater
- 软件测试人员
- 项目leader
- 项目经理
- 文档开发人员
- 创始人/CEO
- 除了代码猴子之外你还可以做的工作
- 先设计,再开发
- 这不是一项简单的工作
- 主要用UML来设计程序
- 你无法设计一个系统除非你真的深入了解所需要的技术
- designs cannot be created without testing
- 当一个软件越大,那么它就越难实现
- 软件框架:
- 什么是软件框架(framework)?
- 框架(framework)是许多classes的集合
- 可定制的基础功能由多组classes
- 不通的classes合作实现某个技术
- e.g. 多媒体,Web框架,数据库(database)
- 用来创建新的应用软件或者其他框架(framework)
- e.g. Java用来创建GUI界面开发的框架:JavaFX
- 不通的classes合作实现某个技术
- 框架应用流程:
- 常见的Java 框架(Framework):[1]
- Spring MVC
- Structs
- Apache Axis
- Apache Xerces
- Hibernate
- JDOM
- Java Applet
- Apache Velocity
- Apache ORO
- JAX-WS
- 什么是软件框架(framework)?
引用页面:
[1] "Top Ten Java Frameworks Observed in Customer Applications", http://www.veracode.com/blog/2012/01/top-ten-java-frameworks-observed-in-customer-applications