软件工程设计概述

1.软件工程学科的产生背景

1.现实背景(直接原因):
“软件工程”,这一概念在1968召开的一个当时被称为“软件危机”的会议上被提出,当时单个程序开发技术已不能扩展从应用到大型的、复杂的系统中。这是当是的现实背景,使得软件学科这一领域有迫切的需求发展起来,刻不容缓。
2本质因素:
当时阶段软件急速发展,从而建立了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增,之前的“软件作坊”已经不能够满足更多的软件需求,软件学科也应运而生。
2.产生软件危机的原因
软件主观原因
1.逻辑部件不具有直观可见性;
2.规模日趋庞大,开发和管理十分复杂。
错误的软件开发与维护方法

  1. 忽视软件的需求分析;
  2. 轻视文档的重要性;
  3. 忽略软件维护。
    3.软件工程学科解决软件危机问题的策略与途径
    技术层面上
    (1) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克那在计算机系统早期发展阶段形成的一-些错误概念和作法。
    (2) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件集合成一个整体,形成一个很好的软件开发环境。总之为 了解决软件危机,既要有技术措施一再加强。
    (3)建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本 、改进软件产品质量、提高软件生产率水平的目标。软件工程学从硬件工程和其他人类工程中吸收了许多成功的经验,明确提出了软件生命周期的模型,发展了许多软件开发与维护阶段适用的技术和方法,并应用于软件工程实践,取得良好的效果。
    (4) 在软件开发过程中人们开始研制和使用软件工具,用以辅助进行软件项目管理与技术生产,人们还将软件生命周期各阶段使用的软件工具有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程的集成化软件支援环境。
    管理层面上:
    (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努大作到良好的组织,严格的管理,相互友好的协作。
    总结:软件危机解决的成效,人工智能与软件工程的结合成为80年代末期活跃的研究领域。基于程序变换、自动生成和可重用软件等软件新技术研究也已取得一定的进展,把程序设计自动化的进程向前推进一步。在软件工程理论的指导下,发达国家已经建立起较为完备的软件工业化生产体系,形成了强大的软件生产能力 。软件标准化与可重用性得到了工业界的高度重视,在避免重用劳动,缓解软件危机方面起到了重要作用。
    4软件工程学研究内容
    (一)软件工程理论: 主要研究软件工程形式化方法、软件自动生成与演化、软件建模分析与验证、软件行为学等。
    软件工程学科简介
    采用工程的概念、原理、技术和方法来开发和维护软件,将经得住时间考验而证明正确的管理技术和当前能够得到的技术方法结合起来,来主导软件的开发和维护。
    软件工程强调规范化文本化。
    (二)软件工程技术:主要研究需求工程、 软件方法学、软件规范语言、软件体系结构、软件测试与质量保证、软件再工程、基于模型和逻辑推理的软件验证方法、软件工程环境与开发工具、面向领域的软件工程方法与技术等。
    软件工程框架
    软件工程的原则维:开发模型、设计方法、支持过程、管理过程
    软件工程目标维:可用、正确、合算性。
    软件工程活动维:需求、设计、实现、确认、支持。
    软件工程的本质特征
    软件工程关注于大型软件的改造
    软件工程的中心课题是控制复杂性
    软件经常变化
    开发软件的效率十分重要
    和谐的合作是开发软件的关键
    软件必须有效的支持它的用户
    由具有一种文化背景的人替具有另一种文化背景的人创造产品
    是用哪种软件工程方法和技术主要取决于要开发的应用类型

(三)软件工程管理:主要研究软件配置管理、 软件过程技术、软件项目管理、软件度量方法与技术等。
软件发展趋势:
遗留软件将继续发挥作用
软件应用范围将继续扩大,成为信息社会的基础设施
网络化发展软件应是发展重点
软件的可靠性和安全性日趋重要
工业化生产是必经之路
实行严格产品控制
采用现代的程序设计技术
结果能审查清楚
开发小组的人员应该少而精
承认不断改进软件工程实践的必要性
软件的生存周期:
软件生存周期方法学的基本思想
从时间角度对软件开发和维护复杂问题进行分解,把软件生命的漫长周期进行分解,
每个阶段有相应的任务
优点:
各阶段任务相对独立,便与分工合作,降低开发工作的难度;便于科学管理与组织,保证了产品的质量,提高了可维护性。
阶段划分基本任务;
定义时期: 问题定义、可行性研究、需求分析
开发时期:总体设计、详细设计、编码、单元测试
维护时期:软件维护
软件工程的基本原理
分阶段的生命周期分阶段的生命周期进行管理
坚持进行阶段评审

(四)软件服务工程: 主要研究软件服务的理论、方法,技术与应用,软件工程过程服务、面向服务的计算及服务工程
软件工程方法学:方法、工具和过程
面向对象的方法学;
开发软件的方法过程尽可能接近人类认识实践解决问题的方法和过程,从而使描述问题的问题空间与实现解法再解空间上尽可能的一致;
把对象作为融入了数据及在数据上的操作行为的统一软件构建
按父类子类的关系,把若干个相关类组成一个层次结构的系统;
对象之间能通过发送消息互相联系

全部评论

相关推荐

点赞 评论 收藏
分享
10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务