版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、What Is Software?什么是软件?:Software is corresponding and related to hardware, both are components of computer system. Its a integrated collection which includes Programs, Data and Documents.软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。Program is serious of instructions that perform according to initially
2、 designed function and performance requirement;程序是按事先设计的功能和性能要求执行的指令序列Documents are text and graphic materials that are related to program developing, maintaining and using. 文档是与程序开发、维护和使用有关的图文材料 Phenomena of Software Crisis 软件危机的表现Cost and schedule of developing can not be estimated accurately. 对软件
3、开发成本和进度的估计常常很不准确User are always unsatisfied with delivered software system. 用户对“已完成的”软件系统不满意的现象经常发生Quality of software are usually poor. 软件产品的质量往往靠不住Software can hardly be maintained. 软件常常是不可维护的There is always no proper document of software. 软件通常没有适当的文档资料Proportion of software cost in computer syste
4、m are increasing. 软件成本在计算机系统总成本中所占的比例逐年上升The progress of software productivity can not catch up with trend of pervasively using of computer. 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势Reason of Software Crisis 软件危机的原因Some are because of characters of Software 自身性质的原因Logicality of software 逻辑特性Complexity of sof
5、tware 复杂性Large scale of software 大规模特性Some are because of wrong developing and maintaining method 过程的原因(开发和维护方法错误的原因)Neglecting the importance of requirement analysis 忽视需求分析Consider developing to be writing program and making it run 认为开发就是写程序并使之运行Despising of maintaining of software 轻视软件的维护Tools :in
6、strument or automated system for accomplishing something in a better way. 工具:为较好完成一件事情的设备或自动化系统。procedures :recipe for combination of tools and techniques, produce a particular product.过程:将技术和工具结合的方法,来生产一个特定的产品。paradigms :style of doing something规范:做某事的样式。Software engineers use tools, techniques(met
7、hod), procedures, and paradigms to enhance the quality of their software products. Their aim is to use efficient and productive approaches to generate effective solutions to problems. 软件工程师使用工具、技术(方法)、过程、规范来改进软件产品的质量。他们的目标就是使用高效的高产的途径产生解决问题的有效方案。 软件质量要素:正确性(Correctness) :程序满足规格说明及完成用户目标的程度可靠性(Reliab
8、ility) :能够防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力有效性(Efficiency):软件系统能充分地利用计算机的时间资源和空间资源的程度完整性(Integrity):控制未被授权人员访问程序和数据的程度可用性(Usability):学习使用软件的难易程度, 包括: 操作软件, 为软件准备输入数据, 结实软件输出结果可维护性(Maintainability):软件产品交付用户使用后, 能够对它进行修改的难易程度可测试性(Testability):测试程序使之具有预定功能所需的工作量适应性(Flexibility):改变一个操作程序所
9、需的工作量可移植性(Portability):软件从一个计算机系统或环境搬到另一个计算机系统或环境的难易程度可重用性(Reusability):软部件可以在多种场合应用的程度互用性(Interoperability):两个或多个系统交换信息并相互使用已交换信息的能力Who Does Software Engineering? 谁来做软件工程? 客户(Customer)is the company, organization, or person who is paying for the software system to be developed.花钱开发软件系统的公司、组织或个人; 开发
10、者(Developer)is the company, organization , or person who is building the Software system for the customer. 为客户构建软件系统的公司、组织或个人; 用户(User)is the person or people who will actually use the system.最终使用该系统的人员。The elements of system(系统元素):Activities(活动):is something that happens in a system发生在系统中的某个事件。Obje
11、cts or entities(对象):the elements involved in the activities 活动中涉及的元素。Relationships(关系):we match the entities with their activities.实体与活动间的匹配。System Boundary(系统边界):what is included in the project and what is not.项目中包括什么不包括什么。A system (系统)is a collection of things: a set of entities, a set of activiti
12、es, a description of the relationships among entities and activities, and definition of the boundary of the system.。系统是一组事务的集合:实体的集合、活动的集合、实体和活动之间关系的描述以及系统边界的定义。Key factors altering software engineering practice (Wasserman) 改变软件工程实践的7个关键因素1.Criticality of time-to-market for commercial products商业产品推向
13、市场的时间的重要性2.Shift in the economics of computing: lower hardware costs and greater development and maintenance cost计算行业经济的变化趋势:硬件费用越来越低,而开发、维护费用越来越高3.Availability of powerful desktop computing功能强大的桌面计算的出现4.Extensive local-and wide-area networking网络的延伸5.Availability and adoption of object-oriented tech
14、nology面向对象技术的出现和应用6.Graphical user interfaces using windows, icons, menus, and pointers 使用窗口、图标、菜单和指针的用户界面7.Unpredictability of the waterfall model of software development软件开发瀑布模型的不可预知性。 ways to partition the system into units:五种把系统分解成单元的方法:Modular decomposition 模块化分解Data-oriented decomposition 面向数据
15、的分解Event-oriented decomposition 面向事件的分解Outside-in design 从外到内的设计Object-oriented design 面向对象的设计What is Process? 什么是过程?:A Series of steps involving activities, constraints, and resources that produce an intended output of some kind.一系列涉及到活动、约束和资源的步骤,他们产生某种类型的有目的的输出。Process Characteristics 过程的特征(7项)1.T
16、he process prescribes all of the major process activities 规定了所有主要过程活动2.Process uses resources, subject to a set of constraints(such as schedule),and produces intermediate and final products 使用资源、服从于一组约束(比如进度约束),产生中间结果和最终产品。3.The process may be composed of subprocesses that are linked in some way. Th
17、e process may be defined as a hierarchy of processes, organized so that each subprocess has its own process model 可由子过程组成,这些子过程用某种方式链接起来。过程可以定义为分层的过程等级结构,以便每个子过程具有自己的过程模型。4.Each process activity has entry and exit criteria,so that we know when the activity begins and ends. 每个具有活动有入口和出口标准,这样可以知道活动何时开
18、始及何时结束。5.The activities are organized in a sequence, so that it is clear when one activity is performed relative to the other activities. 活动以一定顺序组织,因此,一个活动相对于其他活动何时完成是是很清楚的。6.Every process has a set of guiding principles that explain the goals of each activity 每个过程具有一系列的指导原则,以解释每个活动的目标7.Constraints
19、or controls may apply to an activity, resource or product 约束与控制可以应用到任何活动、资源或产品中。Software Lifecycle:The software development process is sometimes called the software life cycle。软件开发过程有时被称为软件生命周期维护阶段的关键任务是:通过各种必要的维护活动使软件系统持久地满足用户的需要。通常的4种维护Why software process modeling? 为什么建立软件过程模型?Writes down a descr
20、iption of development process, forms a common understanding of the activities, resources, and constraints involved in software development. 形成对软件开发中涉及到的活动、资源和约束的共同理解。Helps the development team find inconsistencies, redundancies, and omissions in the process and in its constituent parts. 有助于开发小组发现过程及
21、其组织成分中的不一致、冗余和遗漏。The model reflects the goals of development, such as building high-quality software finding faults early in development, and meeting required budget and schedule constraints. 反映开发的目标(如构建高质量软件、早期发现错误、满足预算和开发进度)。 Every process should be tailored for the special situation in which it w
22、ill be used.根据每个过程将被使用的特殊情况对其进行裁剪。Typical process models 典型的过程模型Waterfall model 瀑布模型Prototyping 原型化模型V-model V-模型Operational specification 操作说明模型Transformational model 变换模型Phased development: increments and iteration 阶段化开发:增量和迭代模型Spiral model 螺旋模型Characters of Waterfall modeln One development stage
23、should be completed before the next begins.n Include stages of requirements analysis, system design, program design, coding, unit & integration testing, acceptance testing, operation & maintenancen Steps dont goes backward.Merits of Waterfall modeln Has been used to prescribe software develo
24、pment activities in a variety of contexts.n Is very useful in helping developers lay out what they need to do.n Easy to explain to customers who are not familiar with software developmentn It makes explicit which intermediate products are necessary in order to begin the next stage.n More complex mod
25、els are really just embellishments of the waterfall.Shortage of Waterfall modeln Does not reflect the way code is really developed, software is usually developed with a great deal of iteration.n The model imposes a project management structure on system development.n Fail to treat software as a prob
26、lem-solving process.n The model was derived from the hardware world.What is project management? 什么是项目管理:The application of knowledge, skills, tools, and techniques to project activities in order to meet or exceed stake holder needs and expectations 。将知识、技能、工具、技术应用于项目活动以满足或超过预期的需求。有效的项目管理集中于三个P 上Peop
27、le:项目参与者、项目负责人、软件项目组、协调和通讯Problem:软件范围、问题分解Project Schedule describes the software development cycle for a particular project by enumerating the phases or stages of a project and breaking each into discrete tasks or activities to be done. 项目进度描述了针对特定项目的软件开发周期,列举了项目的各个阶段,把每个阶段划分成要完成的离散任务或活动The schedu
28、le is a timeline that shows when activities will begin and end, and when the related development products will be ready. 进度是一个时间的限期,它表明活动将于何时开始何时结束、相关的开发产品何时准备就绪。Project deliverables项目可交付品Documents文档Demonstrations of function功能演示Demonstrations of subsystems子系统演示Demonstrations of accuracy正确性演示Demonst
29、rations of reliability, performance or security可靠性、安全性或性能演示Activity( 活动):A part of a project that takes place over a period of time项目的一个部分,发生在一段时间内。Milestone(里程碑 ) : completion of an activity - a particular point in time一个活动的完成。是某一特定时刻。描述活动的4个参数:Precursor( 前驱 ): event or set of events that must occu
30、r in order for an activity to start 在活动开始之前必须发生的一个或一组事件,它描述了活动开始的一组条件。Duration( 持续时间): length of time needed to complete an activity 完成一个活动需要的时间长度Due date(截至日期): date by which an activity must be completed 活动必须完成的日期Endpoint(终点): Milestones or deliverables里程碑或交付品 活动图Real time: is the estimated amount
31、 of time required for the activity to be completed.available time: is the amount of time available in the schedule for the activitys completion.Slack time= available time real time (空闲时间 可用时间 实际时间) = latest start time - earliest start time (空闲时间 最晚开始时间 最早开始时间)Critical Path Method (CPM关键路径法)Project o
32、rganization项目组织Chief Programmer Team 核心程序员组:On a chief programmer team, one person is totally responsible for a systems design and development. 核心程序员组由一个人总体负责系统的设计和开发Egoless approach无私编程 :Instead of a single point of responsibility, an egoless approach holds everyone equally responsible.不是把责任放在单个人身上
33、,而是让每个人平等地担负责任。怎样选择合适的组织结构? Projects with a high degree of certainty, stability, uniformity, and repetition can be accomplished more effectively by a hierarchical organizational structure such as the chief programmer team. 在有着高确定性、稳定性、均匀性和重复性的项目中,核心程序员组这样的等级组织结构会更有效。When there is much uncertainty in
34、volved in a project, a more democratic approach may be better. 当项目涉及大量的不确定性时,更为民主的方法可能更好。工作量和成本估计软件成本包括:-包括维护在内的硬件和软件费用;-工作成本(支付给软件开发人员的费用);-应用的方法、过程所形成的一部分成本;-使用的工具;-差旅费;工作量估计技术1.Expert judgment 专家判断2.Algorithmic methods 算法方法3.Machine-Learning Method 机器学习方法Risk management 风险管理Risk(风险): is an unwant
35、ed event that has negative consequences.不希望反生的具有负面影响的事件。Risk Management(风险管理): is to understand and control the risks on projects.了解和控制项目中的风险。Risk impact(风险后果 ): the loss associated with the event与该事件有关的损失Risk probability(风险概率): the likelihood that the event will occur事件发生的可能性Risk control(风险控制): the
36、 degree to which we can change the outcome我们能改变结果的程度Risk exposure(风险成本(暴露量)= (risk probability风险概率) x (risk impact风险后果)Three strategies for risk reduction 降低风险的3种策略avoiding the risk(避免风险): change requirements for performance or functionality 通过改变性能或功能需求。transferring the risk(转移风险):by allocating risk
37、s to other system or buy insurance to cover any financial loss should the become a reality. 通过把风险分配到其他系统中,或者购买保险以便在风险成为事实时能弥补经济上的损失assuming the risk(假设风险会发生): by accepting it and controlling it with the projects resources 用项目资源承受和控制风险risk leverage(风险杠杆) = difference in risk exposure divided by cost
38、of reducing the riskProject plan 项目计划:We write a document called a project plan .the plan puts in writing the customers needs, as well as what hope to do meet them.包含了顾客的需要以及我们要做些什么来满足这些需求的文档叫项目计划Project plan contents 项目计划的内容1.project scope 项目范围2.project schedule 项目进度3.project team organization 项目小组
39、组织结构 4.technical description of the proposed system 项目的技术描述5.project standards, procedures and proposed techniques and tools 项目标准、过程和建议的技术及工具6.quality assurance plan 质量保证计划7.configuration management plan 配置管理计划8.documentation plan 文档计划9.data management plan 数据管理计划10.resource management plan 资源管理计划11
40、.test plan 测试计划12.training plan 培训计划13.security plan 安全计划14.risk management plan 风险管理计划15.maintenance plan 维护计划Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the systems purpose。需求是系统的特征,或为了实现系统目标系统能做什么的一个描述。Three kinds of requir
41、ements把需求按必要程度分三类:1.those that absolutely must be met 绝对需要满足的需求2.those that are highly desirable but not necessary 想要但并非必须的需求3.those that are possible but could be eliminated 可以接受但也可以排除的需求Requirements definition(需求定义): complete listing of what the customer expects the system to do 完整地列出顾客希望系统做的每一件事R
42、equirements specification(需求规格说明): restates the definition in technical terms so that the designer can start on the design 用技术术语重申需求定义以便系统设计员能开始设计Configuration management(配置管理): supports direct correspondence between the two documents支持两个文档间直接对应There must be a direct correspondence between each requ
43、irement of the definition document and those of the specification document. it is here that the configuration management methods used throughout the life cycle begin. 每个需求的定义文档和详细说明文档之间有直接的对应关系。生命周期开始之后正是从此处开始一直都使用配置管理方法。Configuration management配置管理:Set of procedures that track一组跟踪以下内容的过程1.requireme
44、nts that define what the system should do 定义系统应该做什么需求2.design modules that are generated from requirements 从需求中得出设计模块3.program code that implements the design 实现设计的程序代码4.tests that verify the functionality of the system 验证系统功能的测试5.documents that describe the system 描述系统的文档需求定义和详细说明文档描述了系统如何与环境交互的所有事
45、情。包括:Physical environment物理环境Interfaces 接口(界面)Users and human factors用户与人的因素Functionality功能性Documentation文档Data数据Resources资源Security安全性Quality assurance质量保证Functional vs. non-functional requirements 功能性需求与非功能性需求n Functional: describes an interaction between the system and its environmentn Examples:n
46、 System shall communicate with external system X.n What conditions must be met for a message to be sentn Non-functional: describes a restriction or constraint that limits our choices for constructing a solutionn Examples:n Paychecks distributed no more than 4 hours after initial data are read.n Syst
47、em limits access to senior managers.关于需求的完整性Requirement is Completed: if all possible states, state changes, inputs, products, and constraints are described by some requirement. 需求是完整的:如果某些需求描述了所有可能的状态,以及状态的变化、输入、过程和约束。A system description is externally complete: if the description constrains all th
48、e proper ties to the environment desired by the customer.系统描述是外部完整的:如果描述包含的所有关系都与顾客想要的环境相关时。A system description is internally complete: if there are no undefined references among the requirements.系统描述是内部完整的:需求之间没有未定义的引用。requirements validation 需求确认n Requirements validation is the process of determi
49、ning that specification is consistent with the requirements definition; validation makes sure that the requirements will meet the customers needs. 需求确认就是判断规格说明是否与需求定义一致的过程;确认就是保证需求满足了顾客的需要。n 从哪些方面确认需求现实性有效性一致性完整性what is design什么是设计?:Design is the creative process to transform the problem into a solu
50、tion. 设计是将问题转化成解决方案的创造性的活动Design is the description of a solution. 是对解决方案的描述Two stages of design:设计的两个阶段Conceptual Design 概念设计Technical Design 技术设计Conceptual design 概念设计:Tells the customer what the system will do. 告诉顾客系统将要做什么。Technical design技术设计: Description is a technical picture of the system spe
51、cification. Tells the programmers what the system will do系统规格说明的技术性描述。告诉程序员系统将做什么。Includes:包括major hardware components and their function. 主要硬件组件和功能;hierarchy and function of software components. 软件组件的层次和功能;data structures. 数据结构;data flow. 数据流Five ways to create designs五种创建设计的方法Modular decomposition
52、 模块分解:将功能分配给组件。Data-oriented decomposition 面向数据的分解:基于外部数据结构。Event-oriented decomposition 面向事件的分解:基于系统必须处理的事件和事件改变系统的状态信息。Outside-in design 由外而内的设计:基于系统的用户输入(属黑盒方法)。Object-oriented design OO设计:确定对象的类和它们之间的相互关系。模块:the results of decomposition form composite parts called modules or components. 分解结果形成的组
53、成部分称模块或组件E-R图数据流图面向数据流的设计方法变换分析:把具有变换流特点的数据流图按预先确定的模式映射成软件结构的一系列步骤的总称。第1步 复查基本系统模型。第2步 复查并精化数据流图。第3步 确定数据流图具有变换特性还是事务特性。第4步 确定输入流和输出流的边界,从而孤立出变换中心。 第5步 完成“第一级分解(first level factoring)”。分解就是分配控制的过程。分解出模块:Cm, Ca, Ct, Ce,其中: Cm:协调下述从属的控制功能;Ca:输入信息处理控制模块,协调对所有输入数据的接收;Ct:变换中心控制模块,管理对内部形式的数据的所有操作;Ce:输出信息处
54、理控制模块,协调输出信息的产生过程。 第6步 完成“第二级分解”。即把数据流图中的每个处理映射成软件结构中一个适当的模块。第7步 使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。事务分析由事务流映射成的软件结构包括一个接收分支和一个发送分支;映射接收分支:从事务中心的边界开始,把沿着接收流通路的处理映射成模块;发送分支的结构包含一个调度模块,它控制下层的所有活动模块;把数据流图中的每个活动流通路映射成与它的流特征相对应的结构。软件体系结构(Software Architecture):The software architecture of a system is the str
55、ucture or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.系统的软件体系结构是一种软件设计活动的工作产品。是对子系统、软件系统构件以及它们之间相互关系的描述。常用的设计风格:Pipes and filters 管道和过滤器;Object-oriented design OO 设计;Implicit invocation 隐含调用;Layering 分层;Repositories 仓库;Interpreters 解释器;Process control 过程控制;Client-server 客户机/服务器。度量标准:模块的独立程度可以由coupling and cohesion 内聚和耦合度量。耦合衡量不同模块彼此间互相依
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国自考(教育学)模拟试卷19
- 2026年高考化学考前20天冲刺讲义(四)(原卷版)
- 2026届山东省临沂平邑县联考中考语文考前最后一卷含解析
- 会计实习的总结
- 六年级《老人与海鸥》教学设计
- 六年级数学数和数的运算家庭练习题
- 企业托管协议书(9篇)
- 2026 学龄前自闭症社交距离认知课件
- 2026年财产分割协议标准法律
- 河南四市2025-2026学年高三5月质量检测(许济平洛四模)物理+答案
- 6.3 社会主义市场经济体制(教学设计) 2025-2026学年统编版道德与法治八年级下册
- 风湿免疫科临床常用评分量表
- 2026年及未来5年市场数据中国电化学工作站行业发展监测及投资战略咨询报告
- 江苏省南京市2025届中考化学试卷(含答案)
- 检察职能党课:法律监督
- DB35-T 2262-2025 海峡两岸共通 美人茶加工技术规程
- DB5134-T 14-2021 美丽乡村 农村人居环境整治规范
- 矿井供电设计毕业论文
- 《医学免疫学》 课件 第1-7章 免疫学概述- 细胞因子
- 大学校医笔试试题及答案
- 雨课堂在线学堂《社会研究方法》作业单元考核答案
评论
0/150
提交评论