210 likes | 645 Views
Introduction to Advanced Software Engineering. 中国科学技术大学软件学院 孟宁. http://teamtrac.ustcsz.edu.cn/wiki/ASE2012Fall. 2012年09月. Introduction.
E N D
IntroductiontoAdvanced Software Engineering 中国科学技术大学软件学院 孟宁 http://teamtrac.ustcsz.edu.cn/wiki/ASE2012Fall 2012年09月
Introduction • 高级软件工程课程是要研究软件项目的计划、组织、管理和系统分析、设计等具体实践之上的思想和方法问题,可以说软件工程是源于实践而又高于实践。相对于学习一门技术( 编程语言、网络技术等)或做具体项目而言,软件工程更抽象一些。具体来讲,本课程将会涉及以下内容但又不限于以下内容: 问题解决方法论:分析与综合、抽象、分层架构、系统化、系统边界及系统间关系; 软件生命周期:瀑布模型、V模型、螺旋模型、RUP和敏捷方法等; 软件开发过程:需求挖掘、架构设计、模块设计、设计模式、代码规范、测试方法和维护等 图形化描述方法训练:UML、方框图等 工作量评估和项目管理:工作分解结构WBS、甘特图、软件工程师的性格特征分析、项目成本核算 项目管理工具:Subversion,git,Trac,TeamPal(Redmine) etc. 软件测试技术;
Textbook • Textbook • 软件工程 - 理论与实践(第四版 影印版) Software Engineering: Theory and Practice (Fourth Edition),Shari Lawrence Pfleeger,Joanne M. Atlee ,高等教育出版社 • 软件工程 - 理论与实践(第四版) Software Engineering: Theory and Practice (Fourth Edition),Shari Lawrence Pfleeger,Joanne M. Atlee,杨卫东译,人民邮电出版社 • References • 软件工程—实践者的研究方法(Software Engineering-A Practitioner’s Approach); (美) Roger S. Pressman 著; 机械工业出版社ISBN:7-111-07282-0 • Other references
Course Contents • Introduction • Chapter 1: Why Software Engineering? • Chapter 2: Modeling the Process and Life-Cycle • Chapter 3: Planning and Managing the Project • Chapter 4: Capturing the Requirements • Chapter 5: Designing the Architecture • Chapter 6: Designing the Modules • Chapter 7: Writing the Programs • Chapter 8: Testing the Programs • Chapter 9: Testing the System • Chapter 10: Delivering the System • Chapter 11: Maintaining the System • Chapter 12: Evaluating Products, Processes and Resources • Chapter 13: Improving Predictions, Products, Processes and Resources • Chapter 14: The Future of Software Engineering
Problem-solving • Analysis vs. Synthesis • Error,fault,failure and exception • System Approach(System-thinking) • People involved
Software Life-Cycle • Waterfall model • V model • Prototyping model • Phased development: increments and iteration • Spiral model • RUP:用例驱动,以架构为中心,迭代且增量。 • The Manifesto for Agile Software Development
Planning and Managing the Project • Milestones and activities • Work Breakdown Structure • Activity Graphs - Critical Path Method (CPM) • Gantt Chart • Work Styles • Project Organization: Chief Programmer Team & egoless approach • Effort Estimation • Risk Management
Capturing the Requirements • Why Are Requirements Important? • Means of Eliciting Requirements • Types of Requirements • Making Requirements Testable • Need to prioritize requirements • UML Diagrams • Prototyping Requirements • Prototyping vs. Modeling • Requirements Documentation
Software Architecture • Decomposition and Views • Architectural Styles and Strategies • Client-Server • Publish-Subscribe • Layering • Documenting Software Architectures
Design Technology • Design Principles • Modularity(coupling and cohesion) • Interfaces • Inheritance, object composition, and polymorphism • Design Patterns • Strategy Pattern • Observer Pattern
Coding • Programming Guidelines • Localize input and output • Include pseudocode • Data Structure:recursive • Documentation
Software Quality Assurance • The Quality of the Process • Review Technology • Testing vs. Proving • Configuration Management • banchmark test/Alpha test/Beta test
Miscellaneous • Lehman’s System Types • Reverse engineering • Technology transfer
About Teachers • 孟宁 • Office:明德楼A302室(答疑接待时间上课周周一上午11:00-11:30) • TEL:0512-68839302 • E-mail:mengning@ustc.edu.cn • http://staff.ustc.edu.cn/~mengning • 李璐 • Office:亲民楼303 • E-mail:liluzq@mail.ustc.edu.cn • 孙明明 • Office:亲民楼310 • E-mail:mmsun@mail.ustc.edu.cn
Course Rules • 课前读书+课上讨论+课堂考试 • 关键问题的讲解 • 课后实验作业提交到信息化平台-教辅系统http://enroll.sse.ustc.edu.cn/sseweb/Login.aspx • 逾期提交作业记0分, • 鼓励大家互相交流讨论,但严禁抄袭、拷贝,一旦发现并确认为抄袭,抄袭与被抄袭者同样本门课程记0分。
About your score • 课堂考试4次*10% • 实验作业3-5次*5-10% • 结课闭卷考试占20%左右 • 平时表现占10%左右 • 课堂优异表现+ • 课前读书、课上提问-
谢谢大家! • References • [1]软件工程 - 理论与实践(第四版 影印版) Software Engineering: Theory and Practice (Fourth Edition),Shari Lawrence Pfleeger,Joanne M. Atlee ,高等教育出版社 • [2]软件工程 - 理论与实践(第四版) Software Engineering: Theory and Practice (Fourth Edition),Shari Lawrence Pfleeger,Joanne M. Atlee,杨卫东译,人民邮电出版社 • [3]软件工程—实践者的研究方法(Software Engineering-A Practitioner’s Approach); (美) Roger S. Pressman 著; 机械工业出版社ISBN:7-111-07282-0 • [4]http://teamtrac.ustcsz.edu.cn/wiki/ASE2012Fall