软件工程(双语)复习提纲
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 software processes. 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 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*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 system shouldbehave 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, closeaccount, 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 simplyresponsible 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 applicationlogic 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 tomake mistakes.-People make mistakes•When people make mistakes and systems go wrong, inappropriate alarms and messages can increase stress and hence thelikelihood 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 erro Adaptability How closely is the system tied to a single model of w。
软件工程复习(英文)
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。
软件工程(双语)7.1
弱耦合
非直接 耦合
模块1
模块2
数据耦合 模块3
特征耦合(参数表 传递数据结构)
模块4
公共耦合
A
L
B
C
N
D
第7章 面向对象设计
软件设计概述 面向对象设计建模 系统架构设计 系统元素设计 面向对象设计示例
1. 软件设计概述
软件设计的概念
模块与构件 抽象与细化 信息隐藏 软件复用
软件设计的任务
把分析阶段产生的分析模型转换为用适当手段表示 的软件设计模型
软件设计一般都包括数据设计、体系结构设计、接 口设计和过程设计等
内聚
弱强123 Nhomakorabea4 5 67
低内聚
中内聚
高内聚
内聚 cohesion
1.偶然性内聚 coincidental cohesion 2.逻辑性内聚 logical cohesion 3.时间性内聚 temporal cohesion 4.过程性内聚 procedural cohesion 5.通讯性内聚 communicational cohesion 6.顺序性内聚 sequential cohesion 7.功能性内聚 functional cohesion
C为问题的复杂度,E为解题需要的工作量
软 件
最小成本区
总成本
开
M
发
接口成本
工
作
量
模块成本
模块数
模块独立性(module independence)
内聚(cohesion)
模块内部各成分之间
耦合(coupling)
一个模块与其它模块之间
模块的独立性高
软件的工程(双语)复习提纲
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?实用标准文案精彩文档。
软件工程复习提纲
软件质量的度量分类 成本-效应分析
第七章
掌握:
第11章
掌握: 软件质量保证的概念 软件质量保证的主要任务 软件配置管理的概念
1
2
演化模型 什么是演化模型? 首先针对一个不能完整定义需求的软件开发一个核心系统,然后用户使用该系统,提出精化系统郑家系统能力的需求,再根据用户反馈,实施开发的迭代过程。 特征: 多次迭代,每次迭代过程,需求分析→设计→编码→测试→集成。 优缺点:减少了软件需求不明确而该开发带来的风险性,但费时费力。 适用范围:适合于需求不能完整定义的某些项目。 螺旋模型 什么是螺旋模型? 将瀑布模型和演化模型结合起来,在此基础引入增加了风险分析。 特征:加入了风险分析。 优缺点:减少了软件开发的风险,但成本高,过程复杂。 适用范围:适合于大型软件的开发。
商务风商业计划书
CLICK HERE TO ADD A TITLECຫໍສະໝຸດ NTENTS目录壹
贰
叁
第五章
掌握: 结构化程序设计的思想 程序设计语言的选择因素 第六章
软件工程双语导论考试必备
1.Software is not just a program or programs but also includes documentation. Essential software product attributes are maintainability, dependability, security, efficiency, and acceptability.(软件产品不仅是程序,还包括相关文档。
软件产品的基本属性是:可维护性、可靠性、信息安全性、效率以及可接受性)2.The software process includes all of the activities involved in software development. The high level activities of specification, development, validation, and evolution are part of all software processes.(软件过程包括开发软件产品过程中的所有活动。
软件过程中的活动主要有:软件描述、开发、有效性验证和进化。
)3.The fundamental notions of software engineering are universally applicable to all types of system development. These fundamentals include software processes, dependability, security, requirements, and reuse.(软件工程的基本概念普遍适用于所有类型的系统开发。
这些基本概念包括软件过程、可靠性、信息安全性、需求以及复用。
)4.Software engineers have responsibilities to the engineering profession and society. They should not simply be concerned with technical issues.(软件工程人员对软件工程行业和整个社会负有责任,不应该只关心技术问题。
《软件工程》复习提纲
《软件工程》复习提纲一一、、 授授课课的的主主要要内内容容11.. 基基本本概概念念((11)) 有有关关““软软件件工工程程””的的基基本本概概念念11))软软件件工工程程的的诞诞生生那是1968……22))软软件件危危机机计计算算机机软软件件开开发发和和软软件件维维护护过过程程中中所所遇遇到到的的一一系系列列严严重重问问题题统统称称为为““软软件件危危机机””。
概括地说,软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。
33))软软件件包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件(计算机)。
文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。
软软件件由由计计算算机机程程序序,,数数据据结结构构和和文文档档组组成成。
计算机程序执行特定的功能;数据结构是程序运行所需的数据;文档是描述程序开发、使用和维护的资料。
44)) 软软件件工工程程的的概概念念采采用用工工程程学学的的原原理理来来管管理理和和从从事事软软件件的的开开发发和和软软件件维维护护,,称称为为软软件件工工程程。
(工程学:系统化、规范化、数量化)55))软软件件质质量量的的基基本本概概念念(a )软件质量的定义与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体。
具体来说:1)软件产品中能满足给定需求的性质和特性的总体;2)软件具有所期望的各种属性的组合程度。
(b )软件质量特性(1)功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力。
(2)可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。
(3)易用性:在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
(4)效 率:在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。
(5)维护性:软件产品可被修改的能力。
《软件工程》复习提纲
《软件⼯程》复习提纲注:下⽂中的例题仅供复习⽤,请不要当成考题来背。
1.软件危机主要体现在哪些⽅⾯?(1.1)P2例题:软件⼯程的出现主要是由于( C )。
A.程序设计⽅法学的影响B.其它⼯程科学的影响C. 软件危机的出现 D.计算机的发展软件危机主要表现在那些⽅⾯?答:软件危机主要表现在:1)对软件开发成本和进度的估算很不准确2)⽤户很不满意3)质量很不可靠4)没有适当的⽂档5)软件成本⽐重上升6)供不应求:软件开发⽣产率跟不上计算机应⽤迅速深⼊的趋势2.什么是瀑布模型,RUP模型,快速原型模型,螺旋模型,喷泉模型?(2.2-2.6,)P14起软件开发中常采⽤的结构化⽣命周期⽅法,由于其特征⽽⼀般称其为( A )A、瀑布模型B、对象模型C、螺旋模型D、层次模型瀑布模型的存在问题是(B)A.⽤户容易参与开发 B.缺乏灵活性C.⽤户与开发者易沟通 D.适⽤可变需求名词解释瀑布模型将软件⽣存周期各个活动规定为依线性顺序连接的若⼲阶段的模型叫瀑布模型。
书P34/2 对⽐瀑布模型、原型模型、增量模型和螺旋模型答:瀑布模型:主要体现了分阶段、有控制的思想。
活动间强调按顺序,⽂档化;存在的问题过于理想化,每⼀步的⼯作必须完整准确,否则⽆法进⾏下⼀步⼯作。
原型模型:需求分析⼊⼿快速、表达直观、容易交流。
重点解决瀑布模型的需求分析⼊⼿难的问题。
增量模型:对于需求复杂的系统,采⽤分块开发、逐步集成的开发策略。
增量体现了演进迭代思想,每⼀块就是⼀个增量。
每个增量是⼀次迭代。
增量模型的新版本叫做“极限编程(XP)”螺旋模型:融合了上述3种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。
但是,风险分析的正确性是左右软件演进的关键因素。
3.增量模型和ER模型有什么特点?2.4+3.4 P17+P42在E-R 模型中,包含以下基本成分( C )。
A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、对象、属性、操作ER模型有什么特点?答:ER模型⽐较接近⼈的思维⽅式。
软件工程双语 讲义 大纲模式
《软件工程(双语)》参考教材:《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实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。
