软件工程(双语)复习提纲
软件工程复习提纲.doc

《软件工程》考试复习提纲第一章1、软件工程定义;软件工程是用工程、科学与数学的原则与方法研制、维护计算机软件的有关技术与管理方法。
2、软件危机定义;3、软件工程三要素;方法、工具和过程4、软件生存周期各阶段名称;软件定义、软件开发、软件使川与维护退役5、软件开发各个模型的特点;以软件需求完全确定为前捉的瀑布模型(具有因果关系)只能提供基木需求时采用的渐进式开发模型:原型模型、螺旋模型(风险分析)以形式化开发方法为基础的变换模型基于四代技术的模型(独立于具体的处理机)组合模型可行性研究包括经济可行性、技术可行性、法律可行性、还有开发方案的可行性输入-处理-输出结构是系统建模的基础,它将基于计算机的系统转换成一个信息变换模型第四章需求分析可分为问题分析、需求描述、需求评审三个阶段1、需求分析的任务与原则;任务:1.对问题的识别和理解;2.对需求信息的综合和分析;3.写出软件需求规格说明文档;4.需求分析工作的复审。
2、问题抽象、问题分解与多视点分析;(需要掌握的技术)第五章『—1、数据流图定义,数据流图的画法,基本数据流图的符号;_______ ------ 数据流图就是用来刻曲数据流和转换的信息系统建模技术的。
实体转换数据流数据源顶级1级2级数据对象的属性:命名性属性、描述性属性、引用性属性2、实体关系图的定义与应法:表示数据对彖及其关系的图形语言机制。
数据对象川长方形表示,关系用菱形表示。
数据字典中数据条目包括的内容:名称类型列表简要说明解析性说明补充说明3、基于数据流的分析方法;结构图:用来刻画H标软件系统的结构。
活动图:用來刻画目标软件系统的功能视点。
状态图:用來刻画口标软件系统的行为视点。
第六章1、面向对彖的概念与思想;对彖、类、属性、操作等概念;(1)客观世界屮的应川问题都是市实体及其相互关系构成的。
可以将客观卅:界屮与应川问题有关的实体及其属性抽象为问题空间屮的对象。
(2)对象:是现实世界中个体或事物的抽象表示,是英属性和相关操作的封装。
软件的工程(双语)复习提纲

Chapter 1 An Introduction to Software Engineering *What is software?-Computer programs and associated documentation and Data-Two fundamental types of software product: generic products and customized products*What is software engineering?-Software engineering is an engineering discipline which is concerned with all aspects of software production*What is the difference between software engineering and computer science?-Computer science is concerned with theory and fundamentals;-software engineering is concerned with the practicalities of developing and delivering useful software*What is a software process?-A set of activities whose goal is the development or evolution of software-Generic activities in all software processes are:•Specification 、Development 、Validation 、EvolutionChapter 4 Software Process*Software process-Software processes are the activities involved in producing and evolving a software system.-A structured set of activities required to develop a software system: specification; design and implementation; validation; evolution.-General process activities are specification, design and implementation, validation and evolution.*Software process models-Software process models are abstract representations of these processes.-Generic process models describe the organisation of softwareprocesses. Examples include the waterfall model, evolutionary development and component-based software engineering.-waterfall model is only appropriate when the requirements are well-understood and changes-The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites-There are two fundamental types of evolutionary development: exploratory development and throw-away prototyping-Exploratory development should start with well-understood requirements and add new features as proposed by the customer-Throw-away prototyping should start with poorly understood requirements to clarify what is really needed.- Evolutionary development is mostly used for small or medium-size interactive systems and short-lifetime systems*Iterative process models describe the software process as a cycle ofactivitiesChapter 5 Project management*Primary project management activities:-Proposal writing.-Project planning and scheduling.-Project costing.-Project monitoring and reviews.-Personnel selection and evaluation.-Report writing and presentations.*Project planning-Milestones are the end-point of a process activity.-Deliverables are project results delivered to customers.*Project scheduling-Organize tasks concurrently to make optimal use of workforce.-Minimize task dependencies to avoid delays caused by one task waiting for another to complete.-Graphical notations used to illustrate the project schedule: bar charts and activity networks-Activity charts show task dependencies and the critical path.-Bar charts show schedule against calendar time.Task durations and dependenciesstartT2M3T6Fin ishT10M7T5T7M2T4M5T84/7/038 d ays4/8/0315 d a ys25/8/037 d ays5/9/0310 d a ys19/9/0315 d a ys11/8/0325 d ays10 d ays20 d ays5 d ays25/7/0315 d ays25/7/0318/7/0310 d a ysT1M1T3T9M6T11M8T12M4Activity networkActivity bar chart (Gantt chart)Staff allocation vs. time chart chart*Risk management-Three related categories of risk: project risks, product risks, business risks-Project risks affect schedule or resources;-Product risks affect the quality or performance of the software being developed;-Business risks affect the organisation developing or procuring the software-The process of risk management involves several stages: Risk identification, Risk analysis, Risk planning, Risk monitoring.-Risk identification: Identify project, product and business risks;-Risk analysis: Assess the likelihood and consequences of these risks;-Risk planning: Draw up plans to avoid or minimise the effects of the risk;-Risk monitoring: Monitor the risks throughout the project;The risk management processChapter 6 Software Requirements*Types of requirement:-Functional and non-functional requirements-User requirements and system requirements*Functional and non-functional requirements-Functional requirements•Statements of services the system should provide, how the system should react to particular inputs and how the systemshould behave in particular situations.-Non-functional requirements•Constraints on the services or functions offered by the system such as timing constraints, constraints on thedevelopment process, standards, etc.-The types of non-functional requirement are: productrequirements, organisational requirements, externalrequirements.-Functional requirements set out services the system should provide.-Non-functional requirements constrain the system being developed or the development process.*In principle, requirements should be both complete and consistent.-Complete•They should include descriptions of all facilities required.-Consistent•There should be no conflicts or contradictions in the descriptions of the system facilities.Chapter 7 Requirements Engineering Processes*The requirements engineering process includes- Feasibility study, requirements elicitation and analysis, requirements specification and requirements management.Chapter 8 System Model*Different models present the system from different perspectives •External perspective showing the system’s context or environment;•Behavioural perspective showing the behaviour of the system;•Structural perspective showing the system or data architecture.*Two types of behavioural model are:•Data flow models that show how data is processed as it moves through the system;•State machine models that show the systems response toevents.Chapter 11 Architectural Design*Architecture and system characteristics-performance•Localise critical operations and minimise communications.Use large rather than fine-grain components.-security•Use a layered architecture with critical assets in the inner layers.-safety•Localise safety-critical features in a small number of sub-systems.-Availability•Include redundant components and mechanisms for fault tolerance.-Maintainability•Use fine-grain, replaceable components, avoid data shareChapter 12 Distributed Systems Architectures*Distributed systems architectures-Client-server architectures•Distributed services which are called on by clients. Servers that provide services are treated differently from clients thatuse services.-Distributed object architectures•No distinction between clients and servers. Any object on the system may provide and use services from other objects.*Middleware is usually off-the-shelf rather than specially written software.*Layered application architecture-Presentation layer•Concerned with presenting the results of a computation to system users and with collecting user inputs.-Application processing layer•Concerned with providing application specific functionalitye.g., in a banking system, banking functions such as openaccount, close account, etc.-Data management layer•Concerned with managing the system databases.*Thin and fat clients-Thin-client model•In a thin-client model, all of the application processing and data management is carried out on the server. The client issimply responsible for running the presentation software.-Fat-client model•In this model, the server is only responsible for data management. The software on the client implements theapplication logic and the interactions with the system user.* Three-tier architecturesA 3-tier C/S architecture*P2P architectural models-Peer to peer architectures are decentralised architectures where there is no distinction between clients and servers.-The logical network architecture•Decentralised architectures;•Semi-centralised architectures.Decentralised p2p architectureSemi-centralised p2p architectureChapter 13 Application architectures*Important classes of application are data processing systems, transaction processing systems, event processing systems and languageprocessing system.*Data processing systems operate in batch mode and have an input-process-output structure.Chapter 14 Object-oriented Design*Objects and object classes-Objects are entities in a software system which represent instances of real-world and system entities.-Objects are members of classes that define attribute types and operations.-Object classes are templates for objects. They may be used to create objects.-Object classes may inherit attributes and services from other object classes.*Use-case models are used to represent each interaction with the system.Chapter 16 User interface design*Human factors in interface design-Limited short-term memory•People can instantaneously remember about 7 items of information. If you present more than this, they are moreliable to make mistakes.-People make mistakes•When people make mistakes and systems go wrong, inappropriate alarms and messages can increase stress andhence the likelihood of more mistakes.-People are different•People have a wide range of physical capabilities. Designers should not just design for their own capabilities.-People have different interaction preferences•Some like pictures, some like text.*User interface design principles*MVC approaches (Information presentation,pp.370)* How to design UI (Information presentation, pp. 375)Figure **.1 An input text box used by a nurseFigure **.2 system and user-oriented error messages*The UI design process-The 3 core activities in this process are:•User analysis. Understand what the users will do with the system;•System prototyping. Develop a series of prototypes for experiment;•Interface evaluation. Experiment with these prototypes with users.*Some evaluation of a user interface design should be carried out to assess its suitability.Attribute DescriptionLearnability How long does it take a new user to become producthe system?实用标准文案精彩文档。
软件工程(双语)(最全)word资料

软件工程(双语)(最全)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日软件工程专业介绍培养目标:本专业培养适应社会发展需求,德、智、体、美全面发展,具有扎实的计算机应用理论和知识基础,掌握软件工程领域的前沿技术和软件开发方法,具有较强的实践能力和创新精神,具备较强的软件项目的系统分析、设计、开发和测试能力,能够按照工程化的原则和方法从事软件项目开发和管理的应用型人才。
《软件工程》复习提纲

《软件工程》复习提纲一一、、 授授课课的的主主要要内内容容11.. 基基本本概概念念((11)) 有有关关““软软件件工工程程””的的基基本本概概念念11))软软件件工工程程的的诞诞生生那是1968……22))软软件件危危机机计计算算机机软软件件开开发发和和软软件件维维护护过过程程中中所所遇遇到到的的一一系系列列严严重重问问题题统统称称为为““软软件件危危机机””。
概括地说,软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。
33))软软件件包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件(计算机)。
文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。
软软件件由由计计算算机机程程序序,,数数据据结结构构和和文文档档组组成成。
计算机程序执行特定的功能;数据结构是程序运行所需的数据;文档是描述程序开发、使用和维护的资料。
44)) 软软件件工工程程的的概概念念采采用用工工程程学学的的原原理理来来管管理理和和从从事事软软件件的的开开发发和和软软件件维维护护,,称称为为软软件件工工程程。
(工程学:系统化、规范化、数量化)55))软软件件质质量量的的基基本本概概念念(a )软件质量的定义与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体。
具体来说:1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。
(b )软件质量特性(1)功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。
(2)可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。
(3)易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
(4)效 率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。
(5)维护性:软件产品可被修改的能力。
软件工程复习提纲(20160615)

软件工程复习提纲Chapter11.开发文档都有哪些?用图来表示它们之间的关系。
2.说明软件工程研究的内容.3.软件工程的7条基本原理有何现实意义。
4.怎样理解ISO9000的文档体系?质量手册、程序文件、质量记录三者有何联系和区别?5.怎样理解CMMI,如何用CMMI去管理软件企业?6.是否存在这一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO9000模式只适用于搞应用软件的企业?如果是,为什么,如果不是,又为什么?7.软件工程与信息系统工程有何异同?8.怎样理解元数据?Chapter21.为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?2.简述瀑布模型、增量模型、迭代模型、原型模型的优缺点。
3.软件公司的ISO9000或CMM管理体系与软件开发模型有关吗,为什么?4.你对“生存周期模型裁剪指南"有什么看法?5.“图书馆信息系统”的开发选用什么开发模型合适?Chapter31.立项的具体表现形式是什么?2.立项建议书的编制者为什么主要是软件公司的市场销售人员,而不是开发人员?3.什么叫风险分析,技能风险与技术风险有何区别?3.合同、任务书、立项建议书三者有何异同?有何关系?4.对软件项目和产品的“功能、性能、接口"三项指标如何理解?Chapter41.需求分析的目的是什么,需求分析的难点在哪里?2.需求分析的理论基础有哪几条?3.为什么说需求分析是面向流程的?4.解释术语:元数据、实体、中间数据.5.用户需求报告与需求规格书有何差异?6.需求描述有哪几种工具?你喜欢哪一种,为什么?1.简述软件策划的步骤.2.简述软件策划的方法。
3.简述对软件工作产品规模进行量化估计的方法。
4.软件工作产品和软件产品有何异同?5.名称解释:直接人工、直接费用、间接成本、制造费用、管理费用、不可预见费用。
6.怎样理解软件中的度量,它有何作用?Chapter61.概要设计说明书和详细设计说明书有何区别?2.怎么理解“软件概要设计是系统总体结构设计或系统架构设计”?3.模块实现设计包括哪些内容?4.为什么软件设计要遵守“抽象、分解与模块化、低耦合高内聚、封装、接口和实现分离”的设计原理?Chapter71.简述UML的优缺点。
软件工程双语 讲义 大纲模式

《软件工程(双语)》参考教材:《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加上本国投在国外的资本和劳务的收入再减去外国投在本国的资本和劳务的收入。
软件工程双语教学大纲

《软件工程》(双语)教学大纲课程编号:06301525 课程性质:必修课程名称:软件工程概论学时/ 学分:48/2.5英文名称:Software Engineering 考核方式:开卷考试选用教材:《Software Engineering –A Practitioner’sApproach》Fifth Edition, R.S.Pressman, McGraw Hill,清华大学出版社影印大纲执笔人:顾春华先修课程:高级语言程序设计、数据库原理大纲审核人:适用专业:计算机科学与技术一、教学基本目标《软件工程》是计算机科学与技术专业本科生的一门的专业基础课,旨在使学生掌握软件工程的基本概念、原理和方法,从软件开发技术、软件工程管理和软件工程环境等几个方面了解如何将系统的、规范化的和可以度量的工程方法运用于软件开发和维护中。
要求学生通过本门课的学习,掌握结构化方法、面向对象方法等软件开发技术,初步了解软件复用的概念及基于构件的开发方法,同时对软件工程管理和环境等内容有一个总体的了解。
二、教学基本内容第一章绪论(Introduction)本章主要介绍软件的基本概念、软件危机、软件工程学的范畴、传统软件工程和面向对象软件工程以及软件工程的应用。
重点掌握:学习软件工程的意义,软件工程的范畴。
第二章软件生存期和软件开发模型(Software Lifecycle and Software Development Model) 本章从叙述软件生存周期开始,介绍了传统的软件开发模型(瀑布模型、快速原型模型)、软件演化模型(增量模型、螺旋模型)、面向对象过程模型(构件集成模型)、基于形式化方法的软件开发模型(转换模型、净室模型)等。
重点掌握:各种软件开发模型的内容,不同开发模型的特点比较。
第三章软件需求分析(Software Requirement Analysis )需求分析是软件生存周期中的一个重要阶段,本章在介绍了软件需求分析的任务、步骤后,分别按结构化和面向对象两类方法,给出了需求分析模型和它们的描述工具,并结合实例进一步阐述了结构化分析和面向对象分析的过程。
软件工程复习提纲(附答案)

软件工程复习提纲(附答案)软件工程第一章软件工程介绍1、软件的特性:P3软件是设计开发的,而不是传统意义上的生产制造;软件不会磨损;大多数软件仍是根据实际的客户需求制定的。
2、计算机软件的七大分类:P5系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
3、遗留系统发生系统演化的原因:P6软件需要修改其适应性,从而可以满足新的计算环境或技术的需求软件必须根据新的业务需求进行升级软件必须扩展以具有与更多现代系统和数据库的协作能力软件架构必须进行改建以适应多样化的网络环境4、软件神话:管理者,用户,从业者P135、软件的定义:P3软件是:指令的集合,通过执行这些指令可以满足预期的特征,功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。
第二章过程综述1、软件工程的三个要素:工具,过程,方法P8过程:软件过程将各个技术层次结合在一起,并实施合理地,及时地开发计算机软件方法:为建造软件提供技术上的解决方法。
工具:为过程和方法提供自动化或半自动化的支持。
2、通用软件过程框架:沟通,策划,建模,构建,部署P9沟通:这个框架活动包含了与客户之间大量的交流和协作,还包括需求获取以及其他相关活动策划:指为后续的软件工程工作制定计划。
建模:它包括创建模型和设计两方面。
创建模型有助于客户和开发人员更好得理解软件需求;设计可以实现它。
构建:它包括编码和测试。
部署:软件交付到用户,用户对其进行评测并给出意见3、能力成熟度模型:P22第0级:不完全级;第1级:已执行级;第2级:已管理级;第3级:已定义级;第4级:已定量管理级;第5级:优化级;第三章过程模型1、简述惯例框架包含的主要活动:P19沟通、策划、建模、构建、部署2、简述瀑布模型所包含的主要框架活动:P24沟通、策划、建模、构建、部署3、简述瀑布模型在实际运用中所面临的问题(缺点):P24实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Chapter 1 An Introduction to Software Engineering *What is software?-Computer programs and associated documentation and Data-Two fundamental types of software product: generic products and customized products*What is software engineering?-Software engineering is an engineering discipline which is concerned with all aspects of software production*What is the difference between software engineering and computer science?-Computer science is concerned with theory and fundamentals;-software engineering is concerned with the practicalities of developing and delivering useful software *What is a software process?-A set of activities whose goal is the development or evolution of software-Generic activities in all software processes are:•Specification 、Development 、Validation 、EvolutionChapter 4 Software Process*Software process-Software processes are the activities involved in producing and evolving a software system.-A structured set of activities required to develop a software system:specification;designand implementation;validation;evolution.-General process activities are specification, design and implementation, validation and evolution.*Software process models-Software process models are abstract representations of these processes.-Generic process models describe the organisation of software processes. Examples include the waterfall model, evolutionary development and component-based software engineering.-The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites-There are two fundamental types of evolutionary development: exploratory development and throw-away prototyping-Exploratory development should start with well-understood requirements and add new features as proposed by the customer-Throw-away prototyping should start with poorly understood requirements to clarify what is really needed.- Evolutionary development is mostly used for small or medium-size interactive systems and short-lifetime systems*Iterative process models describe the software process as a cycle of activitiesChapter 5 Project management*Primary project management activities:-Proposal writing.-Project planning and scheduling.-Project costing.-Project monitoring and reviews.-Personnel selection and evaluation.-Report writing and presentations.*Project planning-Milestones are the end-point of a process activity.-Deliverables are project results delivered to customers.*Project scheduling-Organize tasks concurrently to make optimal use of workforce.-Minimize task dependencies to avoid delays caused by one task waiting for another to complete.-Graphical notations used to illustrate the project schedule: bar charts and activity networks -Activity charts show task dependencies and the critical path.-Bar charts show schedule against calendar time.Task durations and dependenciesstartT2M3T6Fin ishT10M7T5T7M2T4M5T84/7/038 d ays 4/8/0315 d a ys 25/8/037 d ays 5/9/0310 d a ys19/9/0315 d a ys 11/8/0325 d ays 10 d ays 20 d ays 5 d ays 25/7/0315 d ays 25/7/0318/7/0310 d a ys T1M1T3T9M6T11M8T12M4Activity network4/711/718/725/71/88/815/822/829/85/912/919/9T 4T 1T 2M1T 7T 3M5T 8M3M2T 6T 5M4T 9M7T 10M6T 11M8T 12StartFin is hActivity bar chart(Gantt chart)Staff allocation vs. time chart chart*Risk management-Three related categories of risk:project risks, product risks, business risks-Project risks affect schedule or resources;-Product risks affect the quality or performance of the software being developed;-Business risks affect the organisation developing or procuring the software-The process of risk management involves several stages: Risk identification, Risk analysis, Risk planning, Risk monitoring.-Risk identification: Identify project, product and business risks;-Risk analysis: Assess the likelihood and consequences of these risks;-Risk planning: Draw up plans to avoid or minimise the effects of the risk;-Risk monitoring: Monitor the risks throughout the project;The risk management processChapter 6 Software Requirements-Functional and non-functional requirements-User requirements and system requirements*Functional and non-functional requirements-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.-Non-functional requirements•Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.-The types of non-functional requirement are: product requirements, organisational requirements, external requirements.-Functional requirements set out services the system should provide.-Non-functional requirements constrain the system being developed or the development process.*In principle, requirements should be both complete and consistent.-Complete•They should include descriptions of all facilities required.-Consistent•There should be no conflicts or contradictions in the descriptions of the system facilities.Chapter 7 Requirements Engineering Processes*The requirements engineering process includes- Feasibility study, requirements elicitation and analysis, requirements specification and requirements management.Chapter 8 System Model*Different models present the system from different perspectives•External perspective showing the system’s context or environment;•Behavioural perspective showing the behaviour of the system;•Structural perspective showing the system or data architecture.*Two types of behavioural model are:•Data flow models that show how data is processed as it moves through the system;•State machine models that show the systems response to events.Chapter 11 Architectural Design*Architecture and system characteristics-performance•Localise critical operations and minimise communications. Use large rather than fine-grain components.-security•Use a layered architecture with critical assets in the inner layers.-safety•Localise safety-critical features in a small number of sub-systems.-Availability•Include redundant components and mechanisms for fault tolerance.-Maintainability•Use fine-grain, replaceable components, avoid data shareChapter 12 Distributed Systems Architectures*Distributed systems architectures-Client-server architectures•Distributed services which are called on by clients. Servers that provide services are treated differently from clients that use services.-Distributed object architectures•No distinction between clients and servers. Any object on the system may provide and use services from other objects.*Middleware is usually off-the-shelf rather than specially written software.*Layered application architecture-Presentation layer•Concerned with presenting the results of a computation to system users and with collecting user inputs.-Application processing layer•Concerned with providing application specific functionality e.g., in a banking system, banking functions such as open account, close account, etc.-Data management layer•Concerned with managing the system databases.*Thin and fat clients-Thin-client model•In a thin-client model, all of the application processing and data management is carried out on the server. The client is simply responsible for running the presentation software.-Fat-client model•In this model, the server is only responsible for data management. The software on the client implements the application logic and the interactions with the system user.* Three-tier architecturesA 3-tier C/S architecture*P2P architectural models-Peer to peer architectures are decentralised architectures where there is no distinction between clients and servers.-The logical network architecture•Decentralised architectures;•Semi-centralised architectures.Decentralised p2p architectureSemi-centralised p2p architectureChapter 13 Application architectures*Important classes of application are data processing systems, transaction processing systems, event processing systems and language processing system.*Data processing systems operate in batch mode and have an input-process-output structure.Chapter 14 Object-oriented Design*Objects and object classes-Objects are entities in a software system which represent instances of real-world and system entities.-Objects are members of classes that define attribute types and operations.-Object classes are templates for objects. They may be used to create objects.-Object classes may inherit attributes and services from other object classes.*Use-case models are used to represent each interaction with the system.Chapter 16 User interface design*Human factors in interface design-Limited short-term memory•People can instantaneously remember about 7 items of information. If you present more than this, they are more liable to make mistakes.-People make mistakes•When people make mistakes and systems go wrong, inappropriate alarms and messages can increase stress and hence the likelihood of more mistakes.-People are different•People have a wide range of physical capabilities. Designers should not just design for their own capabilities.-People have different interaction preferences•Some like pictures, some like text.*User interface design principles*MVC approaches (Information presentation, pp.370)Figure: the MVC model of user interaction * How to design UI (Information presentation, pp. 375)Figure **.1 An input text box used by a nurseFigure **.2 system and user-oriented error messages*The UI design process-The 3 core activities in this process are:•User analysis. Understand what the users will do with the system;•System prototyping. Develop a series of prototypes for experiment;•Interface evaluation. Experiment with these prototypes with users.*Some evaluation of a user interface design should be carried out to assess its suitability.Attribute DescriptionLearnability How long does it take a new user to become producthe system?Speed of operation How well does the system response match the usepractice?Robustness How tolerant is the system of user error?Recoverability How good is the system at recovering from user erroAdaptability How closely is the system tied to a single model of w精品文档word文档可以编辑!谢谢下载!。