软件工程之软件设计

英雄是随着历史的时代产生的,软工也不例外。软件工程这一门学科主要是为了解决当代软件危机而诞生的, 学习软件工程的视频过后,终于让我揭开了它的神秘面纱,让我对软工设计有了一个初步的认识,软工设计从大体上来说主要包括两大部分,概要设计和详细设计。下面我简单的介绍一下软件设计。

1.软件的组成及定义:

软件是计算机系统中与硬件相互依存的另一部分,是包括程序、 数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据为进行通信、解释和处理而使用的信息的形式化表现形式。 文档是与程序开发、维护和使用有关的图文材料。

2.概要设计与详细设计:

概要设计知识确定模块和模块的层次,详细设计描述算法,数据结构,接口。形象的来说概要设计是先改一个房子,详细设计是对房子进行装修。

3.图片

4.图解

(1).设计任务:划分元素,设计结构,编写文档。编写文档以及不断的阶段性审查是在整个过程中不断完善的,它有利于软件的开发和维护。

总体的设计步骤:制定并选择优秀的方案,然后根据方案设计结构,数据库,进行阶段性的测试与审查,最后形成有关文档。在设计阶段这里主要讲的是结构的设计,结构的设计方法包括变换分析和事物分析。

(2).变换分析PK实务分析

变换分析设计是一个顺序结构,由输入、变换和输出三部分组成,其工作过程有3步:取得数据、变换数据和给出数据。事务分析设计是将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行。

共同点:把数据流图转换成软件结构。

不同点:数据流图到软件结构的映射方法不同。变换分析设计适用于具有明显变换特征的数据流图,事务分析设计适用于具有明显事务特征的数据流图。

(3)模块的独立性

在设计过程中我们不断的提高模块的独立性,模块的独立性是有模块化,抽象,还有信息独立共同组成的,它的评价标准是高内聚,低耦合,高扇入,低扇出。在这方面我们还需要把握个“度”,不能一味的遵循这几个原则就忽略其整体结构的优化性了。

在软件的设计过程中我们为什么提高模块的独立性哪?因为独立的模块比较容易开发,测试,维护。在整个软件生命周期中,软件的测试与维护工作投资比重很大。

5 小结

有了优秀的软件设计过程,工程人员在开发软件的时候才能不断满足客户的需要,才能不断的减少软件开发与维护的投入。遵循软件开发过程,不断延长软件的生命周期。

时间: 2024-12-14 07:30:42

软件工程之软件设计的相关文章

为什么结构化编程、面向对象编程、软件工程、架构设计最后没有成为软件领域的银弹

为什么结构化编程.面向对象编程.软件工程.架构设计最后没有成为软件领域的银弹? 从计算机语言开始讲,一步一步的概述和讲解,最终会有一个结论,大家往后看,即可明白. 1.机器语言(1940年之前) 机器语言,直接使用二进制码0和1来表示机器可以识别的指令和数据. 比如0100011111000010101,请问你知道是什么意思吗?反正我是不知道. 当然了,不可否认的是机器语言是最底层与CPU直接交互. 机器语言之所以没有流行下来,原因三个方面: (1)太难读了; (2)太难写了; (3)太难改了(

13商软 《软件工程》课程设计

广州商学院 计算机系 系(部) 2015 — 2016 学年第(1)学期 <软件工程>课程设计 一.课程简介及基本要求 软件工程是一门指导软件开发和维护的工程学科,主要内容包括:软件项目管理.结构化分析和设计.面向对象的分析和设计.用户界面设计.软件测试.软件维护.软件配置管理等等. 本课程要求学生完成软件工程课程的学习后,以小组为单位,完成一个小型软件项目的开发.通过上机实践加深学生对软件工程知识的理解和综合应用,熟悉并掌握一般系统软件的设计方法和过程,掌握软件开发的传统方法和最新方法.初步

130242014045 林承晖 实验报告一 软件设计的网络支持环境

实验报告一 课程  软件系统设计与体系结构   实验名称   软件设计的网络支持环境     第      页 专业___软件工程_____  班级_ 2班____  学号____130242014045___   姓名  林承晖 实验日期:  2017  年 09  月 14  日 --    年   月   日 一.实验目的 了解主流软件体系结构与设计技术网站,不断丰富软件体系结构和软件设计技术最新知识的学习方法. 二.实验内容 1.概念理解 (1)请根据你的理解和看法,给出'软件体系结构'

软件设计过程经验谈 之 如何做好领域模型设计

经常听到领导教诲,开发的同事应该要往前走一步,去做产品?去做售前?这也是一种方式,只不过是一大步.个人觉得,在迈出这一大步之前,需要先走出一小步:从写好代码到做好设计. 下图是按照软件工程的通用做法,梳理出的标准设计指南,已经非常清晰地定义了软件设计的阶段和活动,产物规约,文档要求以及需要配合的培训.比较适合于人朋规模大.产品化程度高.外包服务模式.按照这个标准的设计指南,把每一阶段的事情做好,这是标准的开发方法论的实践指导. 有人会说,现在是移动互联网的时代,我们的产品开发要求短.频.快地上线

实验与思考:软件设计的网络支持环境

实验报告 课程  软件体系结构    实验名称 实验与思考:软件设计的网络支持环境                             第      页 专业__软件工程__  班级__2班_ _  学号_130242014058_   姓名 吴伟铭 实验日期:    年   月   日   报告退发 (订正 . 重做) 一.实验目的 1.复习软件工程的重要概念,熟悉软件体系结构与软件设计技术的基本概念与内容. 2.通过因特网(Internet)搜索与浏览,了解网络环境中主流软件体系结构与设

软件设计杂谈

\ disclaimer: 本文所讲的设计,非UI/UE的设计,单单指软件代码/功能本身在技术上的设计.UI/UE的主题请出门右转找特赞(Tezign). 在如今这个Lean/Agile横扫一切的年代,设计似乎有了被边缘化的倾向,做事的周期如此之快,似乎已容不下人们更多的思考.MVP(Minimal Viable Produce)在很多团队里演化成一个形而上的图腾,于是工程师们找到了一个完美的借口:我先做个MVP,设计的事,以后再说. 如果纯属个人玩票,有个点子,hack out还说得过去:但要

一些软件设计原则【转载】

本文一定要转,总结得非常好, 设计必读. 转自陈皓老师的 <一些软件设计的原则>,根据自己的理解调整了下顺序,少部分字句做了修改. 一个好的程序员通常由其操作技能.知识水平,经验层力和能力四个方面组成.在这里想和大家说说设计中的一些原则,我认为这些东西属于长期经验总结出来的知识.这些原则,每一个程序员都应该了解.但是请不要教条主义,在使用的时候还是要多多考虑实际情况.其实,下面这些原则,不单单只是软件开发,可以推广到其它生产活动中,甚至我们的生活中. 根本设计原则 根本设计原则是我认为的最最基

极客时间-左耳听风-程序员攻略-软件设计

程序员练级攻略:软件设计 编程范式 学习编程范式可以让你明白编程的本质和各种语言的编程方式.因此,我推荐以下一些资料,以帮助你系统化地学习和理解. 极客时间的<编程范式游记>系列文章,目录如下. 编程范式游记(1)- 起源 编程范式游记(2)- 泛型编程 编程范式游记(3)- 类型系统和泛型的本质 编程范式游记(4)- 函数式编程 编程范式游记(5)- 修饰器模式 编程范式游记(6)- 面向对象编程 编程范式游记(7)- 基于原型的编程范式 编程范式游记(8)- Go 语言的委托模式 编程范式

软件设计与实现总结

本周学习了<软件设计与实现>的章节,了解了一些常用的分析和设计方法和开发阶段的一些管理方法: 1.分析和设计方法: 写软件就是为了解决用户的需求,所以我们首先了解用户需求即需求分析. 方法:(1)以文字为主的文档(2)以图形为主的构造模型(3)数学语言(4)类+代码(5)源代码+注释 2.从Spec到实现 (1)估计开发任务所需时间(2)分析需求(3)生成设计文档(4)和同事审核文档(5)编写代码(6)代码复审,代码重构 3.开发人员的标准工作流程(附图片) BTV测试又称冒烟测试 4.开发阶