软件工程 实践者的研究方法 PPT

合集下载

《软件工程-实践者的研究方法》chapter_17.ppt

《软件工程-实践者的研究方法》chapter_17.ppt

2
What Are These Changes?
changes in business requirements
changes in technical requirements
changes in user requirements
other documents
Project Plan
software models
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
Bersoff, et al, 1980
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
4
Baselines
The IEEE (IEEE Std. No. 610.12-1990) defines a baseline as:
• A specification or product that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures.

《软件工程-实践者的研究方法》chapter_20_cn_项目估算PPT精品文档29页

《软件工程-实践者的研究方法》chapter_20_cn_项目估算PPT精品文档29页

2005
5
了解范围...
理解客户需求 理解业务上下文 理解项目边界 理解用户的动机 理解改变发生的可能路径 理解…….
即使你已经理解了,还是不能保证任何事情!
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s
har dware
environment
network resources
proj ect
OTS components
reusable software
new components
full -experi ence components
par t.-experience components
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s
Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001,
2005
1
项目计划任务集合——I
构造项目范围 确定可行性 分析风险
见25章
确定需要的资源
Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001,

《软件工程-实践者的研究方法》chapter_17_cn_软件配置管理PPT精品文档23页

《软件工程-实践者的研究方法》chapter_17_cn_软件配置管理PPT精品文档23页
Bus ines s Cont ent
u se -case s an aly sis m o d e l
sce n ario -b ase d d iag ram s f lo w -o rie n t e d d iag ram s class-b ase d d iag ram s b e h av io ral d iag ram s d e sig n m o d e l arch it e ct u ral d iag ram s in t e rf ace d iag ram s co m p o n e n t -le v e l d iag ram s t e ch n ical m e t rics
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s
Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001,
Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001,
2005
9
SCM 库
SCM中心库是一组机制和数据结构,使软件团队能够 用一种更有效地方法管理变更。
已经通过正式评审和批准的规格说明或产品,它可以作为 进一步开发的基础,并且只有通过正式的变更控制规程才 能修改它。

软件工程 实践者的研究方法 PPT

软件工程 实践者的研究方法 PPT

Need to process
Class A{ Private: int attribute; Public: A(){attribute=2;} Will changing the world int f(){return attribute;} }
Need teamwork
return attribute;
Tasks of software development

All software construction involves essential tasks, the fashioning of the complex conceptual structures that compose the abstract software entity


(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)中各种方法的研究。
软件工程经典论文推荐: /teaching/courses/seoc1/2005_2006/resources/

参考资料




Course overview

考核

作业

软件工程实践者的研究方法讲义.ppt

软件工程实践者的研究方法讲义.ppt
❖在开始估算之前,首先要对范围陈述中 描述的功能进行评估,在某些情况下,还 要进行细化,以提供更多的细节。由于成 本和进度的估算都是面向功能的,因此某 种程度上的功能分解常常是有用的。性能 方面的考虑包括处理时间和响应时间的需 求。约束条件则标识了外部硬件、可用存 储,或其他现有系统对软件的限制。
软件范围和可行性
对估算的观察
❖估算的风险取决于对资源、成本及进 度的定量估算中存在的不确定性。如 果对项目范围不太了解,或者项目需 求经常改变,不确定性和估算风险就 会非常高。计划人员,尤其是客户, 都应该认识到经常改变软件需求意味 着在成本和进度上的不稳定性。
项目策划过程
❖软件项目策划的目标是提供一个能使管理 人员对资源、成本及进度做出合理估算的 框架。此外,估算应该尝试定义“最好的 情况”和“最坏的情况”,使项目的结果 能够限制在一定范围内。项目计划是在计 划任务中创建的,尽管它具有与生俱来的 不确定性,软件团队还是要根据它着手开 发。因此,随着项目的进展,必须不断地 对计划进行调整和更新。
估算
❖ 如果有经验并遵循系统化的方法,使用 可靠的历史数据进行估算,利用至少两种 不同的方法创建估算数据点,制定现实的 进度表并随着项目的进展不断进行调整, 则可以确信已经为项目做了最好的估算。
估算
❖软件项目管理从一组统称为项目策划的活 动开始。在项目可以开始前,项目经理和 软件团队必须估算将要完成的工作、所需 的资源,以及从开始到完成所需要的时间。 这些活动一旦完成,软件团队就要制定项 目进度计划。在项目进度计划中,要定义 软件工程任务及里程碑,确定每一项任务 的负责人,详细指明对项目进展影响很大 的任务间的相互依赖关系。
估算
❖软件项目经理——利用从共利益者和软件工程 师那里获得的信息以及从以往项目收集的软件度 量数据。 ❖估算首先要描述产品的范围。然后,将问题分 解为一组较小的问题,再以历史数据和经验为指 南,对每个小问题进行估算。在进行最终的估算 之前,要考虑问题的复杂度和风险。 ❖工作产品是生成一个简单的表,描述要完成的 任务、要实现的功能,以及完成每一项所需的成 本、工作量和时间。

《软件工程-实践者的研究方法》chapter_07.ppt

《软件工程-实践者的研究方法》chapter_07.ppt
the design must be a readable, understandable guide for those who generate code and for those who test and subsequently support the software.
the design should provide a complete picture of the software, addressing the data, functional, and behavioral domains from an implementation perspective.
be ha v i or a l element s
state diagrams sequence diagrams
Com pone nt Le v e l De sign
Int e rfa c e De sign Arc hit e c t ura l De sign
D a t a / Cla ss D e sig n
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.
Design Model
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill, 2009) Slides copyright 2009 by Roger Pressman.

软件工程——实践者的研究方法

软件工程——实践者的研究方法
·到底什么是计算机软件?
·为什么我们不断努力要建造高质量的基于计算机的系统?
·我们如何对计算机软件的应用领域分类?
·关于软件仍存在什么样的神话?
·什么是软件过程?
·是否存在一般性的方法评价一个过程的质量?
·软件开发中可以应用什么过程模型?
·线性过程和迭代过程有何区别?
·它们的优点和缺点是什么?
·在软件工程中可以建议什么更高级的过程模型?
本书的第4版试图成为正逐步走向成熟的软件工程学科的一个指南。和前面三版一样,第4版的主要读者群仍然是学生和实践者,而且在写作风格上我们力图仍然保持前面各版的格式和风格。本书的基本目标仍然是:作为产业界专业人员的指南以及作为高年级大学生和一年级研究生的软件工程的全面导论。
我们在第4版中并不仅仅简单地修订了原稿,为适应本领域快速的增长我们完全重新组织了书中的内容,并着重讨论了新的重要的软件工程方法,还全面地修订了从早期版本保留的章节,加入了12章新内容,以提供对当代趋势和技术的完整讨论。加入了很多新例子、思考题,每一章中还增补了推荐阅读文献及其他信息搜索地址,包括数百个新的出版站点以及超过160个WWW信息站地。
译者序
20世纪末发生在我们这个星球上的最大变化之一无疑是席卷全球的信息技术(IT)革命,人们将这场革命视为21世纪——知识经济时代的前奏曲。在这场IT革命中,软件无疑扮演了极其重要的角色。软件产业作为一个独立形态的产业,正在全球经济中占据越来越举足轻重的地位。而软件工程正是软件产业健康发展的关键技术之一。
但是,在本书的早期版本中很多讨论的问题仍然存在,很多个人和公司仍然在随意地开发软件,很多专业人员和学生不知道现代方法,最终,我们生产的软件仍然存在大量质量问题。此外,关于软件工程方法的真实性质的争论仍在继续。然而,今天软件工程已成为研究的热点,人们对它的态度已有很大变化,它的发展也很明显,但是,要使软件工程最终发展成为一个完全成熟的学科还需sman博士主要从事的是航空航天应用中高级工程和制造的CAD/CAM系统的开发,他也从事科学及系统程序设计方面的工作。

软件工程(PPT)

软件工程(PPT)

开 发 阶 段
编码
测试
维护阶段
运行维护
变化是永恒的
• 变化是软件工程中一个永恒的主题,没有一成不 变的软件系统,也没有一成不变的用户和市场。
– 通过管理需求来限制外在的变化对开发的影响。 – 通过控制变化来限制内在的变化对开发的影响。
• 用滚雪球似的多回合的开发模式,先粗后精,先加功能后专注质量的 改进,积小胜为大胜。 – Alpha版,功能上基本完整,但在质量上和性能上很成问题, 几乎不能正常使用。 – Beta版,基本上可用,质量上和性能虽有大的提高,但乃有待 改进。可有选择地发给用户试用,提供反馈意见。 – 正式版,可用但不完美,有少量的问题有待进一步的改进。可 以大批量地卖给用户在实际中使用。 • 使用版本控制软件管理源代码,跟踪历史变化,并减少开发人员之间 的相互影响。
软件生存周期(Software Life Cycle)
• 软件产品或软件系统从设计、投入使用到被淘 汰的全过程。
① 可行性研究与计划 ② 需求分析 ③ 总体设计 上游 ④ 详细设计 ⑤ 实现 ⑥ 集成测试 ⑦ 确认测试 下游 ⑧ 使用和维护 (根据国标《计算机软件开发规范》)
软件开发模型 • 软件开发模型是软件开发全部过程、活 动和任务的结构框架。它能直观表达软 件开发全过程,明确规定要完成的主要 活动、任务和开发策略。
● 参考书籍 4.《人件》
作者: Tom DeMarco和Timothy Lister 清华大学出版社
第一部分
概念与基础
人类最早的计算器—算盘
中国人传统的一项重要发明, 在阿拉伯数字出现前是世界 广为使用的计算工具,迄今 已两千六百年多年的历史了。
世界上第一台计算机--微分计算机和解析机

《软件工程-实践者的研究方法》chapter_21.ppt

《软件工程-实践者的研究方法》chapter_21.ppt

(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
2
Scheduling Principles
compartmentalization—define distinct tasks
interdependency—indicate task interrelationship
falling behind schedule and a lack of action to correct the problem
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
4
Effort Allocation
40-50% 15-20% 30-40%
“front end” activities
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Rogeivery Time
Ef fort Cost
Impos sible region

软件工程实践者的研究方法讲义(PPT29张)

软件工程实践者的研究方法讲义(PPT29张)

软件风险

一般认为软件风险包含两个特性:

不确定性——风险可能发生也可能不发生; 损失——如果风险发生,就会产生恶性后果或损失。
进行风险分析时,重要的是量化每个风险的不 确定程度和损失程度。为了实现这点,必须考虑 不同类型的风险。 项目风险威胁到项目计划。如果项目风险发生, 就有可能会拖延项目的进度和增加项目的成本。 项目风险是指预算、进度、人员、资源、利益相 关方、需求等方面的潜在问题以及它们对软件项 目的影响。
风险管理
工作产品是风险缓解、监测和管理计划或 一且风险信息表单。 所要分析和管理的风险,应该通过彻底研 究人员、产品、过程和项目来确定。 RMMM计划应该随着项目的进展而修订, 以保证所考虑的风险是近期可能发生的。 风险管理的应急计划应该是符合实际的。

风险管理

首先,风险涉及的是未来将要发生的事情。 今天和昨天的事情已不再关心。问题是: 我们是否能够通过改变今天的行为,而为 一个不同的、充满希望的、更美好的明天 创造机会。其次,风险涉及改变。如思想、 观念、行为、地点的改变……第三,风险 涉及选择,而选择本身就具有不确定性。 [CHA89]
1.高层的软件管理者和客户管理者已经正式承诺支持该项目了吗? 2.最终用户对项目和待开发的系统/产品热心支持吗? 3.软件工程团队及其客户充分理解需求了吗? 4.客户已经完全地参与到需求定义中了吗? 5.最终用户的期望现实吗? 6.项目范围稳定吗? 7.软件工程团队的技能搭配合理吗? 8.项目需求稳定吗? 9.项目团队对将实现的技术有经验吗? 10.项目团队的人员数满足项目需要吗? 11.所有的客户/用户对项目的重要性和待开发的系统/产品的需求有共识 吗?
风险管理

对于软件工程领域中的风险,以上三条概念定义 是显而易见的。未来是我们所关心的——什么样的 风险会导致软件项目彻底失败?改变也是我们所关 心的——客户需求、开发技术、目标环境以及所有 其他与项目相关因素的改变将会对进度安排和总体 成功产生什么影响?最后,我们必须抓住选择机 会——应该采用什么方法及工具?需要多少人员参 与?对质量的要求要达到什么程度才是“足够的”? 当没有办法消除风险,甚至连试图降低该风险也 存在疑问时,这个风险就是真正的风险了。“在弄 清楚软件项目中的”真正风险“之前,识别出所有 对管理者及开发者而言显而易见的风险是很重要的。

《软件工程-实践者的研究方法》chapter_13

《软件工程-实践者的研究方法》chapter_13

Quality control effectiveness. A software team should apply limited resources in a way that has the highest likelihood of achieving a high quality result.
Participates in the development of the project’s software process description.
The SQA group reviews the process description for compliance with organizational policy, internal software standards, externally imposed standards (e.g., ISO-9001), and other parts of the software project plan.
And, of course, most people feel that problems in these areas are caused by other people. (If only they would take the time to do things right.)
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
5
SQA Goals (see Figure 16.1)

软件工程实践者的研究方法 (8)PPT课件

软件工程实践者的研究方法 (8)PPT课件
Chapter 9
Architectural Design
Software Engineering: A Practitioner’s Approach, 7/e
by Roger S. PLeabharlann essman1第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
to establish a conceptual framework and vocabulary for use during the design of software architecture,
to provide detailed guidelines for representing an architectural description
A set of architectural archetypes(原型) should be identified
An archetype is an abstraction (similar to a class) that represents one element of system behavior
3
What Is Architecture?
The software architecture of a program or system is the structure of the system, which comprise software components, the external visible properties of those components, and the relationships among them.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 》

认真听讲 做好笔记

作业

独立完成 准时提交

晚提交的: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?

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:
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
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 …
丁二玉
925 Eryuding@ 83621362-925
You should learned before

计算系统基础

硬件初步(计算机体系结构) 系统软件初步(操作系统、编译) C语言(结构化程序设计) Java语言(面向对象程序设计) 基本的面向对象思想 软件工程初步?

计算与软件工程I




离散数学
Till now you can…

Programming

With c or java

This is Software Engineering ?
Keywords Syntax Semantic Instruction Statement Functions Module Object Object-Oriented
Need to process
Class A{ Private: int attribute; Public: A(){attribute=2;} Will changing the world int f(){return attribute;} }
Need teamwork
return attribute;
Tasks of software development

All software construction involves essential tasks, the fashioning of the complex conceptual structures that compose the abstract software entity

1968年北大西洋公约组织的计算机科学家在联邦德国召开 的国际学术会议上第一次提出了“软件危机”(software crisis)这个名词

软件危机: 指的是在计算机软件的开发和维护过程中所遇到的一 系列严重问题 开发成本超出预算,实际进度比预定计划一再拖延。 用户对“已完成”系统不满意的现象经常发生。 件产品的质量往往靠不住。Bug一大堆,Patch一个接一个。 件的可维护程度非常之低。 软件通常没有适当的文档资料。 软件的成本不断提高。 软件开发生产率的提高赶不上硬件的发展和人们需求的增长

This is only Programming!

Using the abstract software entities

Inherit, Encapsulation, Polymorphism
Objectives of this course

Basics of Software Engineering

Analysis, Design and Creativity
Engineering idea Teamwork Monitor and control

Behavior in engineering manner, not a hero!

Course overview

目标,通过本课程的学习,学生应该能够: 掌握软件工程的基本思想、方法和技术,了解软件工程发展历史, 理解软件生命周期的各个阶段和各种软件开发模型; 建立工程观,了解软件工程的专业范畴,掌握有关职业技能,理解 软件开发的“工程性”; 能够选择合适的系统开发方法,规划一个中等规模软件系统的开发 过程; 理解结构化方法和面向对象方法。掌握基本的结构化或面向对象的 分析与设计技术,能够为一个中等规模系统创建高质量的ERD、 DFD、结构图、UML用例图、类图、顺序图、状态图和构件图。 并初步理解软件工程的复杂性,能够为较复杂问题提供合理的解决 方案,包括问题分析、基本的体系结构构建和设计方案折中与选择 理解软件质量保障方法,包括软件评审和软件测试的基本方法,能 够完成中等规模系统的质量保障; 理解软件项目管理思想,能够为开发一个中等规模系统作出规划, 能够对中等规模软件系统的开发进度进行度量和追踪; 利用软件工程方法提高程序设计技能,树立在宏观软件工程方法下 展开程序设计的理念和习惯

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

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
-------Frederick P. Brooks, Jr., No Silver Bullet, 1986
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?
Ian Sommerville,软件工程(原书第8版),机械工业出版社 Shari Lawrence Pfleeger,Joanne M.Atlee,软件工程(第3版),人民邮电出 版社 软件工程课程网站: /~jsalvage/Summer2007/CS451/index.html 软件工程课程网站: /~turgut/COURSES/EEL6883_SEII_Spr07/ EEL6883_SEII_Spr07_LectureSlides.html
软件工程经典论文推荐: /teaching/courses/seoc1/2005_2006/resources/

参考资料




overview

考核

作业

10% 工作簿管理 40% 50%

实验


期末考试

课程要求


课前预习 课堂

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
Solutions=organization of software entities
knowledge
Centric
Program (Code)
Application (Real World )
相关文档
最新文档