软件工程 实践者的研究方法 PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
认真听讲 做好笔记
作业
独立完成 准时提交
晚提交的:1天扣10%;3天扣30%;一周扣50%;>一周0分
雷同者取消课程成绩 复习 分层次拓展 严格要求
课外
考试
Main Contents
1. 2. 3.
4.
5. 6.
Introduction What is software? What is SE (Software Engineering)? SE .vs. CS (Computer Science)? Contents of SE How to learn SE?
Need to process
Class A{ Private: int attribute; Public: A(){attribute=2;} Will changing the world int f(){return attribute;} }
Need teamwork
return attribute;
-------Frederick P. Brooks, Jr., No Silver Bullet, 1986
Main Contents
1. 2. 3.
4.
5. 6.
Introduction What is softwaHale Waihona Puke Baidue? What is SE (Software Engineering)? SE .vs. CS (Computer Science)? Contents of SE How to learn SE?
软件工程经典论文推荐: http://www.inf.ed.ac.uk/teaching/courses/seoc1/2005_2006/resources/
参考资料
Course overview
考核
作业
10% 工作簿管理 40% 50%
实验
期末考试
课程要求
课前预习 课堂
Based on your capability of programming Base on the knowledge you have learned
abstract software entities
Functions/Object/Module/Object-Oriented
Do Software, not Program
Main Contents
1. 2. 3.
4.
5. 6.
Introduction What is software? What is SE (Software Engineering)? SE .vs. CS (Computer Science)? Contents of SE How to learn SE?
Solutions=organization of software entities
knowledge
Centric
Program (Code)
Application (Real World )
Knowledge Centric
Need to find
A -attribute : int = 2 +f() : int
2. What is software?
Your thoughts here!
Software
In the first, software is not separated
Before 1960’s
instruction
Machine
Software
When software is produced, it are tools
Course overview
教学内容包括:
软件的工程基础 软件工程的专业范畴 软件工程的发展历史和从业知识。 软件需求基础 软件设计基础 软件构造基础 软件质量基础 软件演化基础 软件项目管理基础
Course overview
资料
教材
课件 《软件工程——实践者的研究方法》
1968年北大西洋公约组织的计算机科学家在联邦德国召开 的国际学术会议上第一次提出了“软件危机”(software crisis)这个名词
软件危机: 指的是在计算机软件的开发和维护过程中所遇到的一 系列严重问题 开发成本超出预算,实际进度比预定计划一再拖延。 用户对“已完成”系统不满意的现象经常发生。 件产品的质量往往靠不住。Bug一大堆,Patch一个接一个。 件的可维护程度非常之低。 软件通常没有适当的文档资料。 软件的成本不断提高。 软件开发生产率的提高赶不上硬件的发展和人们需求的增长
计算与软件工程I
离散数学
Till now you can…
Programming
With c or java
This is Software Engineering ?
Keywords Syntax Semantic Instruction Statement Functions Module Object Object-Oriented
Analysis, Design and Creativity
Engineering idea Teamwork Monitor and control
Behavior in engineering manner, not a hero!
Course overview
目标,通过本课程的学习,学生应该能够: 掌握软件工程的基本思想、方法和技术,了解软件工程发展历史, 理解软件生命周期的各个阶段和各种软件开发模型; 建立工程观,了解软件工程的专业范畴,掌握有关职业技能,理解 软件开发的“工程性”; 能够选择合适的系统开发方法,规划一个中等规模软件系统的开发 过程; 理解结构化方法和面向对象方法。掌握基本的结构化或面向对象的 分析与设计技术,能够为一个中等规模系统创建高质量的ERD、 DFD、结构图、UML用例图、类图、顺序图、状态图和构件图。 并初步理解软件工程的复杂性,能够为较复杂问题提供合理的解决 方案,包括问题分析、基本的体系结构构建和设计方案折中与选择 理解软件质量保障方法,包括软件评审和软件测试的基本方法,能 够完成中等规模系统的质量保障; 理解软件项目管理思想,能够为开发一个中等规模系统作出规划, 能够对中等规模软件系统的开发进度进行度量和追踪; 利用软件工程方法提高程序设计技能,树立在宏观软件工程方法下 展开程序设计的理念和习惯
Software = programs + documents + data
+
Code
Software
About now, software is simulation more than tool
Knowledge is carried on software Software = programs + documents + data + knowledge
(1)The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2)The study of approaches as in (1) (1)应用系统化的、学科化的、定量的方法,来 开发、运行和维护软件,即,将工程应用到软件。 (2)对(1)中各种方法的研究。
This is only Programming!
Using the abstract software entities
Inherit, Encapsulation, Polymorphism
Objectives of this course
Basics of Software Engineering
Only programmers can’t deal with software development well
If we still produce software only with programming, badly things will happen.
Software needed to be engineered
Software is much more complex than Program
As simulation of the world, software must simulative to the real world mostly and can solve problems of the real world The real world is complex So …
Analysis, Design and Creativity
And accidental tasks, the representation of these abstract entities in programming languages and the mapping of these onto machine languages within space and speed constraints.
Computing and SE II
Introduction and Overview
Er-Yu Ding 2009-9 Software Institute, NJU
Recommend paper
《Prospects for an engineering discipline of software》 《 what knowledge is important to a software professional 》
1969年的后续会议中提出了“软件工程”的发展之路 Software engineering is about managing the complexity!
3. What is SE ?
Your thoughts here!
What is Software Engineering?
As defined in IEEE Standard 610.12:
Ian Sommerville,软件工程(原书第8版),机械工业出版社 Shari Lawrence Pfleeger,Joanne M.Atlee,软件工程(第3版),人民邮电出 版社 软件工程课程网站: http://www.cs.drexel.edu/~jsalvage/Summer2007/CS451/index.html 软件工程课程网站: http://www.cs.ucf.edu/~turgut/COURSES/EEL6883_SEII_Spr07/ EEL6883_SEII_Spr07_LectureSlides.html
丁二玉
925 Eryuding@software.nju.edu.cn 83621362-925
You should learned before
计算系统基础
硬件初步(计算机体系结构) 系统软件初步(操作系统、编译) C语言(结构化程序设计) Java语言(面向对象程序设计) 基本的面向对象思想 软件工程初步?
Tasks of software development
All software construction involves essential tasks, the fashioning of the complex conceptual structures that compose the abstract software entity
Software is complex
Problems are complex Solutions are complex
They don’t know the problems and solutions And none can tell them the knowledge clearly