1.什么事软件工程?软件的生命周期包括哪六个阶段

2.系统实施的依据

3.软件体系结构的发展历史

什么事软件工程?软件的生命周期包括哪六个阶段

构建系统树的三种方法-电脑系统建构

软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。

在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件、嵌入式系统、人机界面、办公套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业、农业、银行、航空、部门等。这些应用促进了经济和社会的发展,提高人们的工作效率,同时提升了生活质量。

软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员、软件设计师、系统架构师、程序员、测试员等等。人们也常常用程序员来泛指各种软件工程师。

定义:

创立与使用健全的工程原则,以便经济地获得可靠且高效率的软件。

应用系统化,遵从原则,可被计量的方法来发展、操作及维护软件;也就是把工程应用到软件上。

与开发、管理及更新软件产品有关的理论、方法及工具。

一种知识或学科,目标是生产品质良好、准时交货、符合预算,并满足用户所需的软件。

实际应用科学知识在设计、建构电脑程式,与相伴而来所产生的文件,以及后续的操作和维护上。

使用与系统化生产和维护软件产品有关之技术与管理的知识,使软件开发与修改可在有限的时间与费用下进行。

建造由工程师团队所开发之大型软件系统有关的知识学科。

对软件分析、设计、实施及维护的一种系统化方法。

系统化地应用工具和技术于开发以计算机为主的应用。

软件工程是关于设计和开发优质软件。

SDLC 有很多种(瀑布,V,螺旋等等),不是所有的都有六个周期

瀑布 SDLC 是六个阶段:需求分析,设计,实现,测试 (确认), 集成,和维护

软件工程方面的资料我建议找英文的

系统实施的依据

系统实施的具体依据是()。

A . 系统功能结构图

B . 系统设计说明书

C . 系统环境配置方案

D . 系统使用说明书

答案:A

系统实施是指在系统概要设计和详细设计以后的系统实现与交付过程。它分两个阶段。第一阶段是系统技术实现过程和对这个过程的管理,包括建立编程标准、程序设计、测试、建构和发行,这都是交付前的工作。实施阶段交付物包括软件、数据和文档资料,最终发行的软件是交付物的核心,用户手册等其他交付物也必不可少。第二阶段是用户转化阶段,即系统发行后交付用户使用的过程,包括用户培训、业务流程重组实施、系统转换、运行和维护。这主要是系统实施的用户化过程。这一阶段的交付物主要是用户实施方案,包括培训方案、重组实施方案、转换方案、运行和维护方案,维护记录与修改报告等。第一阶段在开发团队完成,它着重于技术实现,完成的系统完全覆盖需求规格,达到系统目标和指标,即从技术角度实现系统,满足用户需要;第二阶段着重于管理,在用户端完成。虽然侧重点不同,目标都是为系统成功实施,给用户一个好系统,让用户用好这个系统。

软件体系结构的发展历史

与最初的大型中央主机相适应,最初的软件结构体系也是Mainframe结构,该结构下客户、数据和程序被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐在应用中被淘汰。在80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户(PC机)和服务器(Mainframe或Server)之间分担;请求通常被关系型数据库处理,PC机在接受到被处理的数据后实现显示和业务逻辑;系统支持模块化开发,通常有GUI界面。Client/Server结构因为其灵活性得到了极其广泛的应用。但对于大型软件系统而言,这种结构在系统的部署和扩展性方面还是存在着不足。

Internet的发展给传统应用软件的开发带来了深刻的影响。基于Internet和Web的软件和应用系统无疑需要更为开放和灵活的体系结构。随着越来越多的商业系统被搬上Internet,一种新的、更具生命力的体系结构被广泛用,这就是为我们所知的“三层/多层计算”。

。客户层(client tier) 用户接口和用户请求的发出地,典型应用是网络浏览器和胖客户(如Ja程序)

。服务器层(server tier) 典型应用是Web服务器和运行业务代码的应用程序服务器

。数据层(data tier) 典型应用是关系型数据库和其他后端(back-end)数据, 如 Oracle和SAP、 R/3等

三层体系结构中,客户(请求信息)、程序(处理请求)和数据(被操作)被物理地隔离。三层结构是个更灵活的体系结构,它把显示逻辑从业务逻辑中分离出来,这就意味着业务代码是独立的,可以不关心怎样显示和在哪里显示。业务逻辑层现在处于中间层,不需要关心由哪种类型的客户来显示数据,也可以与后端系统保持相对独立性,有利于系统扩展。三层结构具有更好的移植性,可以跨不同类型的平台工作,允许用户请求在多个服务器间进行负载平衡。三层结构中安全性也更易于实现,因为应用程序已经同客户隔离。应用程序服务器是三层/多层体系结构的组成部分,应用程序服务器位于中间层。

如图所示,应用程序服务器运行于浏览器和数据之间,一个简单的实例是,顾客从浏览器中输入一个定单,web服务器将该请求发送给应用程序服务器,由应用程序服务器执行处理逻辑,并且获取或更新后端用户数据。

兴起

六十年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。软件危机的程度日益加剧,现有的软件工程方法对此显得力不从心。对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说明比起对计算的算法和数据结构的选择已经变得明显重要得多。在此种背景下,人们认识到软件体系结构的重要性,并认为对软件体系结构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的最有希望的途径。自从软件系统首次被分成许多模块,模块之间有相互作用,组合起来有整体的属性,就具有了体系结构。好的开发者常常会使用一些体系结构模式作为软件系统结构设计策略,但他们并没有规范地、明确地表达出来,这样就无法将他们的知识与别人交流。软件体系结构是设计抽象的进一步发展,满足了更好地理解软件系统,更方便地开发更大、更复杂的软件系统的需要。

事实上,软件总是有体系结构的,不存在没有体系结构的软件。体系结构(Architecture)一词在英文里就是建筑的意思。把软件比作一座楼房,从整体上讲,是因为它有基础、主体和装饰,即操作系统之上的基础设施软件、实现计算逻辑的主体应用程序、方便使用的用户界面程序。从细节上来看每一个程序也是有结构的。早期的结构化程序就是以语句组成模块,模块的聚集和嵌套形成层层调用的程序结构,也就是体系结构。结构化程序的程序(表达)结构和(计算的)逻辑结构的一致性及自顶向下开发方法自然而然地形成了体系结构。由于结构化程序设计时代程序规模不大,通过强调结构化程序设计方法学,自顶向下、逐步求精,并注意模块的耦合性就可以得到相对良好的结构,所以,并未特别研究软件体系结构。

我们可以作个简单的比喻,结构化程序设计时代是以砖、瓦、灰、沙、石、预制梁、柱、屋面板盖平房和小楼,而面向对象时代以整面墙、整间房、一层楼梯的预制件盖高楼大厦。构件怎样搭配才合理?体系结构怎样构造容易?重要构件有了更改后,如何保证整栋高楼不倒?每种应用领域需要什么构件(医院、工厂、旅馆)?有哪些实用、美观、强度、造价合理的构件骨架使建造出来的建筑(即体系结构)更能满足用户的需求?如同土木工程进入到现代建筑学一样,软件也从传统的软件工程进入到现代面向对象的软件工程,研究整个软件系统的体系结构,寻求建构最快、成本最低、质量最好的构造过程。

软件体系结构虽脱胎于软件工程,但其形成同时借鉴了计算机体系结构和网络体系结构中很多宝贵的思想和方法,最近几年软件体系结构研究已完全独立于软件工程的研究,成为计算机科学的一个最新的研究方向和独立学科分支。软件体系结构研究的主要内容涉及软件体系结构描述、软件体系结构风格、软件体系结构评价和软件体系结构的形式化方法等。解决好软件的重用、质量和维护问题,是研究软件体系结构的根本目的。