




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程概述部分FAQs about software engineeringl What is Software? Computer programs and associated documentation such as requirements, design models and user manuals(指南).Software products may be developed for a particular customer or may be developed for a general market.Generic products 通用软件产品Bespoke (custom) products 制定软件产品Characteristics 1: Software is developed or engineered; But it is not manufactured in the classical sense. (That means we can copy your product when you finish the phase of building up.) Characteristic 2: Software doesnt “wear out”l What is Software Engineering?Software engineering is an engineering discipline(工程学科) that is concerned with all aspects of software production.Software engineers should adopt a systematic and organised (系统的,有组织的)approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.resources :People(most important)ToolsMethodProcessl What is the difference between SE(software engineering) and CS(computer science)?Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering (交付)useful software.l What is the difference between software engineering and system engineering?system engineering is concerned with all aspects of computer-based systems development, including hardware software and process engineering(处理工程). software engineering is a part of this process.l What is software process?A set of activities whose goal is the development or evolution of software.Generic activities in all software processes are:Specification(描述) - what the system should do and its development constraintsDevelopment(开发) - production of the software systemValidation(有效性验证) - checking that the software is what the customer wantsEvolution (进化)- changing the software in response to changing demands.l What is software process model?A simplified representation(表示形式) of a software process, presented from a specific perspective.software process model:Workflow perspective - sequence of activities;Data-flow perspective - information flow;Role/action perspective - who does what.软件过程部分l Generic process models Waterfall;(瀑布型)Separate and distinct phases of specification and development.(使用单独的过程阶段表现)问题:1.Inflexible (One phase has to be complete before moving onto the next phase.)2.Transfer of risks(风险转移)适用:mostly used for large systems engineering projects where a system is developed at several sites Evolutionary development;(进化式)Specification, development and validation are interleaved(交替,先快速开发再不断修改).Exploratory development (探索式): to work with customersThrow-away prototyping(抛弃式): start with poorly understood requirements to clarify what is really needed问题:1 Lack of process visibility(过程不可见)2 Systems are often poorly structured适用:For small or medium-size interactive systems Component-based software engineering. (基于组件 CBSE)The system is assembled from existing components.(集成已存在的可复用的组件)软件复用reuse: people working on the project know of designs or code which is similar to that required.l Process iteration软件迭代:(Iteration can be applied to any of the generic process models.)两个过程模型专门为过程反复设计的Two (related) approaches: Incremental delivery(增量式开发);the development and delivery is broken down into increments(增量) The highest priority requirements are included in early incrementsOnce the development of an increment is finished,corresponding system functionality is available Spiral development(螺旋式开发).Each loop (循环)in the spiral represents a phase in the process. Risks are explicitly assessed and resolved throughout the process.l Four fundamental process activities: Software specification Software design and implementation Software validation Software evolution Software specification(描述) Software design and implementation(设计和实现) Software validation(有效性验证)Verification and validation (V & V) V & V must be applied at each stage in the software process.Has two principal objectives:The discovery of defects in a system;The assessment of whether or not the system is useful and useable in an operational situationVerification: Are we building the product right”.The software should conform to its specification.Validation: Are we building the right product”.The software should do what the user really requires. Software evolution(进化)软件项目管理部分l Software project managementConcerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organisations developing and procuring the software.l Milestones Vs. Deliverables Milestones are the end-point of a process activity.(里程碑)Deliverables are project results delivered to customers.(可交付的文档)软件过程被分解为一系列想关的基本活动,每个基本活动都有相应的输出结果。里程碑不是要交给客户的东西。而可交付的文档是要交付给客户的项目成果,要在项目的描述、设计等阶段结束时交付。例如需求过程:可交付的文档是:需求描述l Critical PathLongest of all paths through the projectl WBS软件需求部分l Software Requirement Vs. Software Requirement Engineering Requirement:It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification. Description of system services and constraints to a detail mathematical function.Requirements engineering:The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed.The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process.l 软件需求类型用户需求 (user requirement)Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers.系统需求 (system requirement)A structured document setting out detailed descriptions of the systems functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.系统需求包括:功能性需求(Functional requirements)Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.Functional user requirements may be high-level statements of what the system should do Functional system requirements should describe the system services in detail.非功能性需求(non-functional requirements)constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.需求工程过程(从可行性分析到需求文档,这部分包括很多细致的内容,请参考教材和ppt)Requirements engineering process:Feasibility studies A feasibility study decides whether or not the proposed system is worthwhile. A short focused study that checks If the system contributes to organisational objectives; If the system can be engineered using current technology and within budget; If the system can be integrated with other systems that are used.Elicitation and analysis Sometimes called requirements elicitation or requirements discovery. Involves technical staff working with customers to find out about the application domain, the services that the system should provide and the systems operational constraints. May involve end-users, managers, engineers involved in maintenance, domain experts, trade unions, etc. These are called stakeholders.Requirements validation Concerned with demonstrating that the requirements define the system that the customer really wants. Requirements error costs are high so validation is very important Fixing a requirements error after delivery may cost up to 100 times the cost of fixing an implementation error.Requirements management Requirements management is the process of managing changing requirements during the requirements engineering process and system development. Requirements are inevitably incomplete and inconsistent New requirements emerge during the process as business needs change and a better understanding of the system is developed; Different viewpoints have different requirements and these are often contradictory.Review Questions for you!l What is Software Requirement?l Who does it?l Why is it important?l What are the steps?l What is the work products (artifacts)?l How do I ensure that Ive done it right?l What are the CASE for our requirement analysis?软件体系架构设计部分l Software Architecture Vs. Architecture StyleThe design process for identifying the sub-systems making up a system and the framework for sub-system control and communication is architectural design.The output of this design process is a description of the software architecture. 软件设计部分Software Design:Design is what virtually every engineer wants to do. It is the place where creatively rules- customers requirements, business needs, and technical considerations all come together in the formulation of a product or system. Design Principles: Abstraction 抽象抽象是控制复杂性的基本策略。“抽象” 要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。 Modularity模块性 Information Hiding 信息隐藏 Functional Independence 功能独立Coupling耦合单元模块之间One module is referenced by other modulesData transported from one module to the others耦合度是对软件结构中模块间关联程度的一种度量。耦合的强弱取决于模块间接口的复杂性、进入或调用模块的位置以及通过界面传送数据的多少等。与内聚度正好相反,在设计软件时应追求尽可能松散耦合的系统。因为对这类系统中任一模块的设计、测试和维护相对独立。由于模块间联系较少,错误在模块间传播的可能性也随之变小。模块间的耦合程度直接影响系统的可理解性、可测试性、可靠性和可维护性。耦合度也可以分为七级Lower couplingNo-direct Coupling无联系耦合:如果两模块中任一个都不依赖于对方能独立工作,则称这两模块为(nodirect coupling),这类耦合度最低。Data CouplingStamp Coupling:特征耦合:介于数据耦合和控制耦合之间的一种耦合印记耦合:将数据结构作为参数进行传递Control Coupling:控制耦合:传递标志如果两模块间通过参数交换信息,此时若传递的信息中含有控制信息,则耦合度上升为控制耦合。控制耦合通常会增加系统的复杂性,有时适当分解模块可消除控制耦合。External coupling外部耦合:一些模块都与一个外部环境相关,则这些模块具有外部耦合Common Coupling公共耦合:当若干模块通过全局的数据环境相互作用时,它们之间存在公共耦合。Content Coupling内容耦合:一模块直接访问另一模块的内部信息 (程序代码或数据)模块代码重叠Cohesion内聚单元模块内Cohesion refers to cohesion degree of related elements inside a module. It is extension of information hiding 它标志一个模块内部各成分彼此结合的紧密程度。 内聚度按其高低程度可分为七级,内聚度越高越好。Coincidental Cohesion (偶然内聚)是指一个模块内各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散。 常见的偶然性内聚情形是,当程序员写完一个程序后发现有一组语句多处出现,于是为节省内存便将这组语句单独组成一个模块。Logical Cohesion (逻辑内聚)如果一个模块完成的诸任务逻辑上相关,则称之为逻辑性内聚(logical cohesion)把几种相关功能(逻辑上相似 的功能)组合在一模块内,每次调用由传给模块的参数确定执行哪种功能。属于低内聚设计 逻辑内聚与控制耦合存在矛盾 逻辑内聚增加了控制耦合Classical Cohesion (时间内聚)如果一个模块包含的诸任务必须在同一时间段内执行(例如一个初始化模块),则称之为时间性内聚.举例:初始化模块,结束模块Procedural Cohesion (过程内聚)模块成份彼此相关,并按照一定顺序执行(中度内聚)Communication Cohesion(通信内聚)模块的通信性内聚度是指,模块中各成分都将对数据结构的同一区域进行操作,以达到通信的目的。Functional Cohesion(功能内聚)如果模块内所有成分形成一个整体,完成单个功能,则称功能内聚,功能内聚是最高程度的内聚形式。例如,一个模块仅完成一个矩阵的输出,就是一个具有功能性内聚的模块。软件测试部分software Testing quality controlSoftware Testing Process:l 相关测试概念: Unit Test(单元测试)单一模块和代码的测试Unit Testing is a kind of testing for software basis elementsUnit Testing is the earliest testing activity based on code-running, and it is the lowest level testingThe Objective of Unit Testing Verify the code meet with design Trace the implementation of requirement and design Find out the errors in the design Find out the errors introduced by programming Integrated T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢结构施工队伍管理方案
- 2025年橡胶板行业研究报告及未来行业发展趋势预测
- 2025年搅拌棒行业研究报告及未来行业发展趋势预测
- 2025年电脑连接线行业研究报告及未来行业发展趋势预测
- 神东煤炭公司公开招聘连采司机理论考试试题(附答案)
- 2025年全国工会知识竞赛试题(含答案)
- 2025年其他互联网平台行业研究报告及未来行业发展趋势预测
- 2025年紧固件行业研究报告及未来行业发展趋势预测
- 2025年台灯行业研究报告及未来行业发展趋势预测
- 食品安全师试题及参考答案
- 2025年继电保护实操考试题带答案
- 2025办公室租赁合同简易范本下载
- 定向增发业务培训
- 2025年初级美容师理论知识复习资料试题及答案
- 2025年重庆市面向社会公开选拔社区专职工作者后备库人选考试(综合知识)历年参考题库含答案详解(5套)
- 2025-2026学年人教鄂教版(2024)小学科学三年级上册(全册)教学设计(附目录P137)
- 《全球哮喘管理和预防策略(GINA 2025)》解读
- 餐饮店长转正汇报
- 2025年贵州省中考语文试卷(含答案与解析)
- 2025年广东省中考语文试卷(含答案解析)
- 2025年昆山校医考试题库
评论
0/150
提交评论