软件工程基础教程(英文版)
- 格式:ppt
- 大小:1.33 MB
- 文档页数:68
1.Which question no longer concerns the modern softwareengineer? (a)现如今的软件工程师不再考虑以下哪个问题?a. Why does computer hardware cost so much? 计算机硬件为什么如此昂贵b。
Why does software take a long time to finish?c。
Why does it cost so much to develop a piece of software?d. Why can’t software errors be removed from productsprior to delivery?2.Software deteriorates rather than wears out because(c)软件通常是变坏而不是磨损的原因是a。
Software suffers from exposure to hostile environmentsb。
Defects are more likely to arise after software has been used oftenc. Multiple change requests introduce errors in component interactions在组件交互中需求发生变化导致错误d. Software spare parts become harder to order3.Most software continues to be custom built because(d)大多数软件产品是定制的原因是a。
Component reuse is common in the software worldb. Reusable components are too expensive to usec. Software is easier to build without using someone else’s components.d. Off the shelf software components are not commonly available 现成的软件组件不常用4.The nature of software applications can be characterized by their information(d)软件应用的本质可以被特色化,通过他们信息的a. complexityb。
软件工程(双语)(最全)word资料软件工程(双语)Software Engineering课程编号:B0301101S学分: 3开课学院:计算机学院课内学时:48课程类别:专业基础课课程性质:必修一、课程的性质和目的Curriculum nature:The course is professional required course of Software Engineering Major.Object:The Software Engineering is the basis course of computer and related sciences. It is an engineering discipline where software engineers use methods and theory from computer science and apply it cost-effectively to solve difficult problems. This course presents a broad perspective on software engineering, such as software lifecycle, qualities of software, design, specification and verification of software, programming environments and tools, structural oriented programming and object oriented programming. Furthermore, the quality management, process improvement, software change, configuration management are also discussed.二、课程教学内容及基本要求(一)课程教学内容及知识模块顺序KNOWLEDGE UNIT 1: INTRO TO SOFTWARE ENGINEERING (2h)(1)Knowledge point 1 The Evolving Role of Software(2)Knowledge point 2 The Nature of Software(3)Knowledge point 3 Legacy SoftwareBasic requirement: Understand the basic conception of software engineering, master the Nature of software, master the definition of software engineering.KNOWLEDGE UNIT 2: A GENERIC VIEW OF PROCESS (4h)(1)Knowledge point 1 A Layered Technology(2)Knowledge point 2 A Process Framework(3)Knowledge point 3 The Capability Maturity Model IntegrationBasic requirement: Understand the conception of software processes, master the basic processes of software analyze,design, implement and test, understand the definition of CMMI.KNOWLEDGE UNIT 3: PROCESS MODELS (2h)(1)Knowledge point 1 Prescriptive Models(2)Knowledge point 2 Waterfall Model(3)Knowledge point 3 Incremental Process, Evolutionary Process(4)Knowledge point 4 Unified Process, Agile ProcessBasic requirement: Understand the various process models, such as waterfall model, Unified Process and Agile Process.KNOWLEDGE UNIT 4: REQUIREMENTS ENGINEERING (4h)(1)Knowledge point 1 Bridge to Design and Construction(2)Knowledge point 2 Requirements Engineering Tasks(3)Knowledge point 3 Initiating the Requirements Engineering Process(4)Knowledge point 4 Eliciting RequirementsBasic requirement: Master the steps of requirements engineering process, understand the role of abridge to design.KNOWLEDGE UNIT 5: THE ANAL YSIS MODEL (6h)(1)Knowledge point 1 Requirements Analysis Modeling(2)Knowledge point 2 Data, functional and Behavioral(3)Knowledge point 3 Flow-Oriented Modeling(4)Knowledge point 4 Object-Oriented ModelingBasic requirement: Master the conception and method of requirement analyze, understand the user requirement and system requirement, master the main content of Flow-Oriented and Object-Oriented Modeling.KNOWLEDGE UNIT 6: DESIGN ENGINEERING (4h)(1)Knowledge point 1 Design Process and Design Quality(2)Knowledge point 2 Design Concepts(3)Knowledge point 3 Design Model(4)Knowledge point 4 Design PatternBasic requirement: Master the steps of design engineering process, understand the role of a bridge to construction, understand the conception of design pattern.KNOWLEDGE UNIT 7: ARCHITECTURAL DESIGN (4h)(1)Knowledge point 1 Software Architecture(2)Knowledge point 2 Data Design(3)Knowledge point 3 Architectural Design(4)Knowledge point 4 Mapping Data Flow into a Software ArchitectureBasic requirement: Master the Structural Design method, including data flow diagram, data dictionary, and control models, understand the software design specification.KNOWLEDGE UNIT 8: COMPONENT-LEVEL DESIGN (6h)(1)Knowledge point 1 Designing Class-Based Components(2)Knowledge point 2 Conducting Component-Level Design(3)Knowledge point 3 Designing Conventional ComponentsBasic requirement: Understand the conception of components, Master the modular decomposition KNOWLEDGE UNIT 9: TESTING STRA TEGIES (4h)(1)Knowledge point 1 Software Testing Strategic(2)Knowledge point 2 Test Strategies for Conventional Software(3)Knowledge point 3 Test Strategies for Object-Oriented Software(4)Knowledge point 4 Validation Testing(5)Knowledge point 5 System TestingBasic requirement: Understand the basic definition of verification and validation, Master the steps of software testing process, Master the conventional software test strategies, understand the Object-Oriented Software test strategies.KNOWLEDGE UNIT 10: TESTING TACTICS (6h)(1)Knowledge point 1 Software Testing Fundamentals(2)Knowledge point 2 Black-Box and White-Box Testing(3)Knowledge point 3 Object-Oriented Testing MethodsBasic requirement: Understand the basis of software testing fundamentals, master the main contents of unit testing and integration testing, master the design of black-box and white-box testing. KNOWLEDGE UNIT 11: QUALITY MANAGEMENT (2h)(1)Knowledge point 1 Software Quality(2)Knowledge point 2 Software Quality Assurance(3)Knowledge point 3Software ReliabilityBasic requirement: Understand the definition of software Quality Management, master the basic method of software quality control.KNOWLEDGE UNIT 12: CHANGE MANAGEMENT (4h)(1)Knowledge point 1 Software Configuration Management(2)Knowledge point 2 SCM Process(3)Knowledge point 3 Version ControlBasic requirement: Understand the basic requirements of software change, understand the definition of software configuration management, master the version control.(二)课程的重点、难点及解决办法Curriculum focuses on the establishment of the basis theory of software engineering,and it is difficulty to design a suitable practical activity for the most students in software development process, making it better able to establish the basic theory and methods of software engineering. Therefore, students are organized in small groups as a unit. Teachers and students jointly build a development issue, gradually expand the development of practice activities, and use classroom-style assessment. The teach model can initiative to mobilize the students as possible.三、实验实践环节及基本要求1.实验实践教学环节在本课程中的作用及要求(实验教学大纲单独编写)The experimental practices of this course need to complete the software development process the main part of the three major activities and a supporting framework, including requirements analysis, software design, unit test and software configuration management. These experiments content is all software development activities have to be resolved, can be well reflected in software engineering theory, software development process needs of the technology practice.2.实验项目(具体要求见实验教学大纲)Experiment 1: Designing and Writing Software Requirements Specification (2h)Experiment 2: Designing and Writing Software Design Specification (2h)Experiment 3: Software Unit Testing (2h)Experiment 4: Software Configuration management (2h)四、本课程与其它课程的联系与分工The prep course of this course is data structure. This course is a follow-up to other professional courses on the basis of software engineering major.五、对学生能力培养的要求Through the course of study, students can establish the basic theories and methods of software engineering, master a certain requirement analysis, software design, development and testing capabilities, and master the basic theory of teamwork developed.六、课程学时分配Total 48 hours, including lectures 40 hours, experiments 8 hours. The main contents and distribution of course see the course hour’s allocation table.七、建议教材和教学参考书目1.教材《Software Engineering: A Practitioner’s Approach(英文精编版,第6版)》, Roger S. Pressman, 机械工业出版社,20202.主要参考书[1]《Software Engineering (8th Edition)》,Ian Sommerville,机械工业出版社,2020.[2]《软件工程(第8版)》,程成,陈霞,机械工业出版社,2020.[3]《软件工程:实践者的研究方法(本科教学版)》Roger S. Pressman,机械工业出版社,2020八、课程考核The course use close examination pattern. The academic performance mainly results from the final examination and the usual performance, which accounted for 70% of the final examination, usually performance accounted for 30%. Usually performance is mainly decided by working projects of the courses, supplemented by after-school work and attendance.九、说明In the teaching process, it is need to the divided students into a group of 3-6 people. They need to complete a software development project collaboratively with courses progress.执笔人:宗平审核人:陈志教学院长:孙力娟编写完成时间:2009年10月20日软件工程专业介绍培养目标:本专业培养适应社会发展需求,德、智、体、美全面发展,具有扎实的计算机应用理论和知识基础,掌握软件工程领域的前沿技术和软件开发方法,具有较强的实践能力和创新精神,具备较强的软件项目的系统分析、设计、开发和测试能力,能够按照工程化的原则和方法从事软件项目开发和管理的应用型人才。
软工学习资料推荐软件工程(Software Engineering)是一门研究和应用如何以系统化和规范化的方法去构建、运行、维护和管理软件的学科。
对于软件工程学习者来说,掌握优质的学习资料是非常重要的,它们可以帮助我们深入了解软件工程的理论和实践,提升我们的编程能力和项目管理技巧。
本文将向广大软工学习者推荐一些值得阅读的软工学习资料。
一、软件工程导论1. 《软件工程导论》(Introduction to Software Engineering)- Ian Sommerville这本书是软件工程学习的经典教材,已经成为了许多大学软工专业的教材之一。
作者通过清晰简洁的语言,详细介绍了软件工程的各个方面,包括软件开发过程、需求分析、软件设计、软件测试等。
它不仅适合软件工程专业的学生,也适合其他对软工感兴趣的读者。
2. 《软件工程:实践者的研究方法》(Software Engineering: A Practitioner's Approach)- Roger S. PressmanPressman的这本书是软件工程领域的经典著作之一,对软件开发的整个过程进行了深入的介绍和剖析。
书中包含丰富的案例和实践经验,让读者能够更好地理解软件工程中的实际问题和解决方法。
二、软件需求工程1. 《软件需求工程》(Software Requirements Engineering)- Karl Wiegers、Joy Beatty这本书主要介绍了软件需求工程的理论和实践。
作者通过大量的示例和案例,详细讲解了如何正确地进行需求分析和需求管理,以及如何定义和验证软件需求。
对于从事软件需求工程的工程师和项目经理而言,这本书是一本不可或缺的好资料。
2. 《需求工程:基础》(Requirements Engineering: Fundamentals)- Klaus Pohl、Chris Rupp本书系统地介绍了需求工程的基本概念和方法,帮助读者全面理解需求工程的整个过程。
《软件工程(双语)》参考教材:《Software engineering》8th Edition Ian Sommervile,Pearson Education, 机械工业出版社,2006参考书目:1、Software Engineering Theory and Practice(Second Edition影印版), Shari Lawrence Pfleeger,Pearson Education, 20012、《软件工程》第四版张海藩清华大学出版社,20073、软件工程,王忠群主编中国科学技术大学出版社 2009-11-14、Software engineering : a practitioner's approach / Roger S. Pressman. 6th ed. Pressman, Roger S. China Machine Press, 2008说明:斜体部分是可选讲授内容, 带星号的习题为可选。
Chapter 1(1) Introduction●Getting started with software engineering1.1Objectives1.To introduce software engineering and to explain its importance2.To set out the answers to key questions about software engineering3.To introduce ethical and professional issues and to explain why they are of concern tosoftware engineers1.2Topics covered1.FAQs about software engineering2.Professional and ethical responsibility1.3Importance of Software engineering●The economies of ALL developed nations are dependent on software.●More and more systems are software controlled●Expenditure on software represents a significant fraction of GNP (gross National product) inall developed countries.( GNP与GDP的关系是:GNP等于GDP加上本国投在国外的资本和劳务的收入再减去外国投在本国的资本和劳务的收入。
Unit Four Software Engineering 软件过程Text A Software processes软件过程A software process is a set of activities that leads to the production of a software product.一个软件过程是一组引发软件产品生产的活动。
These activities may involve the development of software from scratch in a standard programming language like Java or C.这些活动刻画了软件使用像Java或C这样的标准编程语言从头开始的一步步的开发过程。
Increasingly, however,new software is developed by extending and modifying existing systems and by configuring and integrating off-the-shelf software or system components.然而,现在越来越多的软件是通过在旧软件基础上修改或通过配置和集成现成软件或系统组件而形成。
Software processes are complex and, like all intellectual and creative processes, rely on people making decisions and judgements.软件过程是复杂的,像所有智力过程一样,它依赖于人的判断。
Because of the need for judgement and creativity, attempts to automate software processes have met with limited success.因而需要判断和创造力,软件过程自动化的尝试只获得了有限的成功。
软件工程英语文档:Documents软件工具:Software Tools工具箱:Tool Box集成工具:Integrated Tool软件工程环境:Software Engineering Environment传统:Conventional经典:Classical解空间:Solution Domain问题空间:Problem Domain清晰第一,效率第二Clarity the first,Efficiency the next。
设计先于编码Design before coding使程序的结构适合于问题的结构Make the program fit the problem开发伴随复用,开发为了复用Development with reuse, Development for reuse。
靠度量来管理:Management by Measurement软件度量学:Software Metrics软件经济学:Software Economics软件计划WHY软件分析WHAT软件实现HOW软件生存周期过程的开发标准Standard for Developing Software Life Cycle Process软件开发模型:Software Development Model编码员:Coder瀑布模型:Waterfall Model快速原型模型:Rapid Prototype Model 增量模型:Incremental Model线性思维:Linear Thinking演化模型:Evolutionary Model螺旋模型:Spiral Model对象:Object类:Class继承:Inheritance聚集:Aggregation消息:Message面向对象=对象Object+分类Classification+继承Inheritance+消息通信Communication with Messages 构件集成模型:Component Integration Model转换模型:Transformational Model净室软件工程:Cleanroom Software Engineering净室模型:Cleanroom Model软件需求规格说明书:Software Requirement Specification ,SRS分析模型:Analysis Model便利的应用规约技术:Facilitated Application Specification Techniques ,FAST结构化语言:Structured Language判定树:Decision Tree基数:Cardinality事件轨迹:Event Trace对象-关系Object—Relationsship结构化分析:SA(Structured Analysis)由顶向下,逐步细化Top-Down Stepwise Refinement面向对象分析:Object-Oriented Analysis包含:Contains临近:Is Next To传到:Transmits to来自:Acquires from管理:Manages 控制:Controls组成:Is Composed of细化:Refinement抽象:Abstraction模块:Module策略:Strategy信息隐藏:Information Hiding数据封装:Data Encapsulation抽象数据类型:Abstract Data type模块化设计:Modular Design分解:Decomposition模块性:Modularity单模块软件:Monolithic Software模块独立性:Module Independence内聚:Cohesion偶然性内聚:Coincidental Cohesion逻辑性内聚:Logical Cohesion时间性内聚:Temporal Cohesion过程性内聚: Procedural Cohesion通信性内聚:Communicational Cohesion顺序性内聚:Sequential Cohesion功能性内聚:Functional Cohesion非直接偶合:No Direct Coupling数据偶合:Data Coupling特征偶合:Stamp Coupling控制偶合:Control Coupling外部偶合:External Coupling公共偶合:Common Coupling内容偶合: Content Coupling由底向上设计:Bottom-Up Design自顶向下设计:Top-Down Design正式复审:Formal Review非正式复审:Informal Review走查,排练:Walk-Through会审:Inspection映射:Mapping传入路径:Afferent path传出路径:Efferent path变换中心:Transform Center接受路径:Reception path动作路径:Action path事务中心:Transaction Center分支分解:Factoring of Brandches瓮形:oval-shaped一个模块的控制域:Scope of Control 一个模块的作用域:Scope of Effect 结构化程序设计:Structured Programming通心面程序:Bowl of Spaghetti流程图:Flow Diagram编码:Coding方框图:Block DiagramPDL (Pidgin):Program Design Language伪代码:Pseudo CodeJSD:Jackson System Development对象建模技术:Object Modeling Technique基础设施:Infrastructure控制线程:Thread of Control保护者对象:Guardian Object协议:protocolUML:Unified Modeling Language OMG:Object Management Group统一方法:Unified Method关联:Association泛化:Generalization依赖:Dependency结点:Node接口:Interface包:Package注释: Note特化:Specialization元元模型:Meta—Meta Model用户模型:User Model静态图:Static Diagram动态图:Dynamic Diagram用例视图:Use Case View逻辑视图:Logical View并发视图:Concurrent View构件视图:Component View实现模型视图:Implementation Model View部署视图:Deployment View航向:Navigability重数:Multiplicity共享聚集:Shared Aggregation组合:Composition泛化:Generalization简单消息:Simple Message同步消息:Synchronous Message异步消息:Asynchronous Message事件说明:Event_Signature守卫条件:Guard_Condition动作表达式:Action_Expression 发送子句:Send_Clause时序图:Sequence Diagram协作图:Collaboration Diagram前缀:Predecessor循环子句:Iteration-Clause活动图:Activity Diagram构件图:Component Diagram配置图:Deployment Diagram建模过程指导(RUP):Rational Unified Process可执行代码:Executalbe Codes实现:Implementation编码风格:Coding Style标准:Classical控制流的直线性:Linearity of Control Flow程序风格设计要素:先求正确后求快 Make it right before you make it faster.先求清楚后求快 Make it clear before you make it faster.求快不忘保持程序正确 Keep it right when you make it faster.保持程序简单以求快 Keep it simpleto make it faster。