




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Software engineeringFrom: /zh-cn/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8BSoftware engineering is the study of the use of engineering methods to build and maintain effective, practical and high-quality software disciplines. It involves the programming language, database, software development tools, system platform, standards, design patterns and so on. In modern society, the software used in many ways. Typical software such as email, embedded systems, human-machine interface, office packages, operating systems, compilers, databases, games. Meanwhile, almost all the various sectors of computer software applications, such as industry, agriculture, banking, aviation and government departments. These applications facilitate the economic and social development, improve peoples working efficiency, while improving the quality of life. Software engineers is to create software applications of people collectively, according to which software engineers can be divided into different areas of system analysts, software designers, system architects, programmers, testers and so on. It is also often used to refer to a variety of software engineers, programmers. Origin In view of difficulties encountered in software development, North Atlantic Treaty Organization (NATO) in 1968 organized the first Conference on Software Engineering, and will be presented at the software engineering to define the knowledge required for software development, and suggested that software development the activities of similar projects should be. Software Engineering has formally proposed since 1968, this time to accumulate a large number of research results, widely lot of technical practice, academia and industry through the joint efforts of software engineering is gradually developing into a professional discipline. Definitioncreation and use of sound engineering principles in order to obtain reliable and economically efficient software. application of systematic, follow the principle can be measured approach to development, operation and maintenance of software; that is to be applied to software engineering. The development, management and updating software products related to theories, methods and tools. A knowledge or discipline (discipline), aims to produce good quality, punctual delivery, within budget and meet users need software. the practical application of scientific knowledge in the design, build computer programs, and the accompanying documents produced, and the subsequent operation and maintenance. Use systematic production and maintenance of software products related to technology and management expertise to enable software development and changes in the limited time and under cost. Construction team of engineers developed the knowledge of large software systems disciplines. the software analysis, design, implementation and maintenance of a systematic method. the systematic application of tools and techniques in the development of computer-based applications. Software Engineering and Computer Science Software development in the end is a science or an engineering, this is a question to be debated for a long time. In fact, both the two characteristics of software development. But this does not mean that they can be confused with each other. Many people think that software engineering, computer science and information science-based as in the traditional sense of the physical and chemical engineering as. In the U.S., about 40% of software engineers with a degree in computer science. Elsewhere in the world, this ratio is also similar. They will not necessarily use every day knowledge of computer science, but every day they use the software engineering knowledge. For example, Peter McBreen that software engineering means higher degree of rigor and proven processes, not suitable for all types of software development stage. Peter McBreen in the book Software Craftsmanship: The New Imperative put forward the so-called craftsmanship of the argument, consider that a key factor in the success of software development, is to develop the skills, not manufacturing software process. Software engineering and computer programming Software engineering exists in a variety of applications exist in all aspects of software development. The program design typically include program design and coding of the iterative process, it is a stage of software development. Software engineering, software project seeks to provide guidance in all aspects, from feasibility analysis software until the software after completion of maintenance work. Software engineering that software development and marketing activities are closely related. Such as software sales, user training, hardware and software associated with installation. Software engineering methodology that should not be an independent programmer from the team and to develop, and the program of preparation can not be divorced from the software requirements, design, and customer interests. Software engineering design of industrial development is the embodiment of a computer program. Software crisis Software engineering, rooted in the 20th century to the rise of 60,70 and 80 years of software crisis. At that time, many of the software have been a tragic final outcome. Many of the software development time significantly beyond the planned schedule. Some projects led to the loss of property, and even some of the software led to casualties. While software developers have found it increasingly difficult for software development. OS 360 operating system is considered to be a typical case. Until now, it is still used in the IBM360 series host. This experience for decades, even extremely complex software projects do not have a set of programs included in the original design of work systems. OS 360 is the first large software project, which uses about 1,000 programmers. Fred Brooks in his subsequent masterpiece, The Mythical Man Month (The Mythical Man-Month) in the once admitted that in his management of the project, he made a million dollar mistake. Property losses: software error may result in significant property damage. European Ariane rocket explosion is one of the most painful lesson. Casualties: As computer software is widely used, including hospitals and other industries closely related to life. Therefore, the software error might also result in personal injury or death. Was used extensively in software engineering is the Therac-25 case of accidents. In 1985 between June and January 1987, six known medical errors from the Therac-25 to exceed the dose leads to death or severe radiation burns.In industry, some embedded systems do not lead to the normal operation of the machine, which will push some people into the woods. Methodology There are many ways software engineering aspects of meaning. Including project management, analysis, design, program preparation, testing and quality control. Software design methods can be distinguished as the heavyweight and lightweight methods. Heavyweight methods produce large amounts of official documentation. Heavyweight development methodologies, including the famous ISO 9000, CMM, and the Unified Process (RUP). Lightweight development process is not an official document of the large number of requirements. Lightweight methods, including well-known Extreme Programming (XP) and agile process (Agile Processes). According to the new methodology in this article, heavyweight method presented is a defensive posture. In the application of the heavyweight methods software organizations, due to a software project manager with little or no involvement in program design, can not grasp the item from the details of the progress of the project which will have a fear, constantly had to ask the programmer to write a lot of software development documentation. The lightweight methods are presented aggressive attitude, which is from the XP method is particularly emphasized four criteria - communication, simplicity, feedback and courage to be reflected on. There are some people that the heavyweight method is suitable for large software team (dozens or more) use, and lightweight methods for small software team (a few people, a dozen people) to use. Of course, on the heavyweight and lightweight method of approach has many advantages and disadvantages of debate, and various methods are constantly evolving. Some methodologists think that people should be strictly followed in the development and implementation of these methods. But some people do not have the conditions to implement these methods. In fact, the method by which software development depends on many factors, but subject to environmental constraints. Software development process Software development process, with the subsequent development of technology evolution and improvement. From the early waterfall (Waterfall) development model to the subsequent emergence of the spiral iterative (Spiral) development, which recently began the rise of agile development methodologies (Agile), they showed a different era in the development process for software industry different awareness and understanding of different types of projects for the method. Note distinction between software development process and software process improvement important difference between. Such as ISO 15504, ISO 9000, CMM, CMMI such terms are elaborated in the framework of software process improvement, they provide a series of standards and policies to guide software organizations how to improve the quality of the software development process, the ability of software organizations, and not give a specific definition of the development process. Development of software engineering Agile Development (Agile Development) is considered an important software engineering development. It stressed that software development should be able to possible future changes and uncertainties of a comprehensive response. Agile development is considered a lightweight approach. In the lightweight approach should be the most prestigious Extreme Programming (Extreme Programming, referred to as XP). Correspond with the lightweight approach is the heavyweight method exists. Heavyweight approach emphasizes the development process as the center, rather than people-centered. Examples of methods such as heavyweight CMM / PSP / TSP. Aspect-oriented programming (Aspect Oriented Programming, referred to as the AOP) is considered to software engineering in recent years, another important development. This aspect refers to the completion of a function of a collection of objects and functions. In this regard the contents related to generic programming (Generic Programming) and templates. 软件工程From: /zh-cn/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公包、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,提高人们的工作效率,同时提升了生活质量。软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员、软件设计师、系统架构师、程序员、测试员等等。人们也常常用程序员来泛指各种软件工程师。由来 鉴于软件开发时所遭遇困境,北大西洋公约组织(NATO)在1968年举办了首次软件工程学术会议,并于会中提出“软件工程”来界定软件开发所需相关知识,并建议“软件开发应该是类似工程的活动”。软件工程自1968年正式提出至今,这段时间累积了大量的研究成果,广泛地进行大量的技术实践,借由学术界和产业界的共同努力,软件工程正逐渐发展成为一门专业学科。定义创立与使用健全的工程原则,以便经济地获得可靠且高效率的软件.应用系统化,遵从原则,可被计量的方法来发展、操作及维护软件;也就是把工程应用到软件上。与开发、管理及更新软件产品有关的理论、方法及工具。一种知识或学科(discipline),目标是生产品质良好、准时交货、符合预算,并满足用户所需的软件。实际应用科学知识在设计、建构电脑程序,与相伴而来所产生的文件,以及后续的操作和维护上。使用与系统化生产和维护软件产品有关之技术与管理的知识,使软件开发与修改可在有限的时间与费用下进行。建造由工程师团队所开发之大型软件系统有关的知识学科。 对软件分析、设计、实施及维护的一种系统化方法。系统化地应用工具和技术于开发以计算机为主的应用。软件工程与计算机科学 软件的开发到底是一门科学还是一门工程,这是一个被争论了很久的问题。实际上,软件开发兼有两者的特点。但是这并不意味着它们可以被互相混淆。很多人认为软件工程基于计算机科学和信息科学就如传统意义上的工程学之于物理和化学一样。在美国,大约40%的软件工程师具有计算机科学的学位。在世界其他地方,这个比例也差不多。他们并不一定会每天使用计算机科学方面的知识,但是他们每天都会使用软件工程方面的知识。 例如 Peter McBreen 认为,软件“工程”意味着更高程度的严谨性与经过验证的流程,并不适合现阶段各类型的软件开发。Peter McBreen 在著作Software Craftsmanship: The New Imperative提出了所谓“craftsmanship”的说法,认为现阶段软件开发成功的关键因素,是开发者的技能,而不是“manufacturing”软件的流程。软件工程与计算机程序设计软件工程存在于各种应用中,存在于软件开发的各个方面。而程序设计通常包含了程序设计和编码的反复迭代的过程,它是软件开发的一个阶段。软件工程力图对软件项目的各个方面作出指导,从软件的可行性分析直到软件完成以后的维护工作。软件工程认为软件开发与各种市场活动密切相关。比如软件的销售,用户培训,与之相关的软件和硬件安装等。软件工程的方法学认为一个独立的程序员不应当脱离团队而进行开发,同时程序的编写不能够脱离软件的需求,设计,以及客户的利益。软件工程的发展是计算机程序设计工业化的体现。软件危机软件工程的兴起要根源于20世纪60,70和80年代的软件危机。在那个时代,很多的软件最后都得到了一个悲惨的结局。很多的软件项目开发时间大大超出了规划的时间表。一些项目导致了财产的流失,甚至某些软件导致了人员伤亡。同时软件开发人员也发现软件开发的难度越来越大。OS 360操作系统被认为是一个典型的案例。到现在为止,它仍然被使用在IBM360系列主机中。这个经历了数十年,极度复杂的软件项目甚至产生了一套不包括在原始设计方案之中的工作系统。OS 360是第一个超大型的软件项目,它使用了1000人左右的程序员。Fred Brooks在随后他的大作人月神话(The Mythical Man-Month)中曾经承认,在他管理这个项目的时候,他犯了一个价值数百万美元的错误。财产的损失:软件的错误可能导致巨大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基础强化四川省西昌市7年级上册期末测试卷专题攻克试卷(含答案详解)
- 2025年神经内科典型脑卒中抢救处理测验题(含答案及解析)
- 2025年心血管科高血压患者运动处方定制考试题答案及解析
- 2025年神经外科垂体瘤经鼻蝶入路术后尿崩症处理考试题(含答案及解析)
- 考点解析江西省德兴市中考数学真题分类(数据分析)汇编专项测试试卷(详解版)
- 废钢加工工理论知识考核试卷及答案
- 镁冶炼工效率提升考核试卷及答案
- 渔网具装配工质量管控考核试卷及答案
- 微型企业面试题库(考点梳理)附答案详解
- 管模维修工岗前考核试卷及答案
- 2025年科研项目经理专业知识考试题目答案解析
- 2025秋数学(新)人教五年级(上)第1课时 小数乘整数
- 2024年全国工会财务知识大赛备赛试题库500(含答案)
- 2025年军事专业基础知识考核试题及答案
- 《采购4 0 采购系统升级 降本 增效实用指南 第2版 》读书笔记思维导图PPT模板下载
- 介入诊疗质量安全计划与指标
- 99S203 消防水泵接合器安装图集
- 苗圃规章制度范本
- 响水县粮食购销总公司大有粮库粮食烘干设备招标采购
- 北京银行基于云技术的开发测试环境建设实践
- Q∕SY 1866-2016 成品油交接计量规范
评论
0/150
提交评论