软件工程之系统建模

1、系统工程:

软件工程由系统工程演变而来,要了解软件工程应先了解系统工程。系统工程一般通过自顶向下、自底向上的方法,用层次结构来来分析整个系统。在系统工程层次图中自顶向下依次是全局视图(业务或产品域)——领域视图(关注全局中感兴趣领域)——要素视图(关注领域中系统要素)——详细视图(关注系统要素的组成要素),可以有很多层次,是个金字塔结构。

2、系统建模:

对于一个系统模型要定义在所考虑视图中满足需要的过程,描述过程行为和该行为所依据的假设,明确定义模型的外在和内在输入,描述有助于工程师理解视图的全部联系。

       系统建模中的制约因素:假设、简化、限制(确定系统边界)、约束、偏好。

基于计算机的系统:组织在一起通过处理信息来实现预定目标的要素集合或排列。

3、业务过程工程:

在实际软件工程中主要包含两种过程工程:业务过程工程和产品工程。

业务过程工程:定义一个能有效利用信息进行业务活动的体系。为一个组织(如企业)建立实施计算架构的总体计划提供一种方法。业务过程工程必须设计三种架构:

数据架构:为业务或业务功能的信息需求提供了框架,单独建立的框架模块是被业务所用到的数据对象。一个数据对象包括用于定义不同侧面的属性集、质量、特征或数据描述符。

应用架构:包含那些为了某些业务目的而在数据架构范围内进行转换的系统要素。一般是指执行转换的程序,也可包括人员角色和尚未实现自动化的业务规程。

技术基础设施:为数据架构和应用架构提供基础的软件、硬件设施。

业务过程工程层次图(自顶向下):信息战略规划(实体:组织,对应系统工程中的全局视图)——业务区域分析(实体:业务区域,对应系统工程中的领域视图)——业务系统设计(实体:信息系统,对应系统工程中的要素视图)——构建和集成(实体:软件构件,对应系统工程的详细视图)。软件工程师主要工作在业务系统设计、构建和集成两个层次。

4、产品工程:

       将用户期望的以定义的一组能力转变成真实产品。

       产品工程层次图(自顶向下):需求工程(实体:完整产品,对应全局视图)——构件工程(实体:软硬件,对应领域视图)——分析和设计建模(实体:数据、行为、功能,对应要素视图)——构建和集成(实体:程序构件,对应详细视图)。软件工程师主要工作在分析和设计建模、构建和集成两个层次。

5、软件工程中的系统建模:

       Haltey-pirbhai建模:将所有系统要素分派到五个模板处理过程中——用户界面、输入、系统功能和控制、输出、维护和自检。

       辅助图形:系统环境图和系统流图。

       系统环境图(SCD):确定系统所使用信息的所有外部生产者、信息外部消费者、所有通过接口交流或者执行维护和自检的实体,建立待实现系统和系统操作环境之间的边界。

       系统流图(SFD):展示主要子系统和重要信息流,子系统从SCD图中导出,流经SCD区域的信息流用于指导系统工程是制作系统流图。系统流图可分为很多层次,初始系统流图成为SFD层次的顶层节点。

6UML系统建模:

       通过多种UML视图(用例图、活动图、类图、部署图)来表示对系统的理解。

转载于:https://www.cnblogs.com/outofthink/archive/2012/02/05/2338878.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361700.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

采访田飞师兄有感 ——by 李皈颖

来MSRA后一个月了,终于迎来了现代软件工程,开课第一天,殷老师(也是我的“馒头”)要求我们去采访一下前任师兄,了解一下他们的感受。我们组联合采访了陈凯师兄,但是因为我忘记了,所以…

不要在facelets中重复表情

您是否曾经在JSF中看到过像这样的重复EL表达式&#xff1f; <h:inputText value"#{oneBean.name}" rendered"#{anotherBean.showPerson}"/> <h:inputText value"#{oneBean.birthday}" rendered"#{anotherBean.showPerson}"/…

模态对话框和全选反选

一、目标 制作一个表格&#xff0c;第一行分别为选择、主机名和端口增加一个按钮&#xff0c;名称为添加点击添加按钮&#xff0c;出现一个半透明的遮罩层&#xff0c;遮罩层中间有个弹出框弹出框中有两个输入框&#xff0c;分别为主机名和端口&#xff0c;还有两个按钮&#…

(转)iReaper for wp7正式发布

原文地址&#xff1a;http://www.cnblogs.com/AlexCheng/archive/2012/02/06/2339968.htmliReaper for windows phone 7今天正式发布了。有windows phone 7手机的朋友可以通过手机在线收听收看webcast中文课程。只要你有网络任何时间任何地点都可以学习微软技术&#xff0c;为您…

Neo4j:Cypher –避免热切

当心渴望的管道 尽管我喜欢Cypher的LOAD CSV命令使它容易地将数据获取到Neo4j中的方法&#xff0c;但它目前打破了最不惊奇的规则&#xff0c;因为它急切地在所有行中加载某些查询&#xff0c;即使是那些使用定期提交的查询。 这是我的同事Michael在第二篇博客文章中指出的&a…

一步步构建大型网站架构 [转]

来源: itivy 原文链接 之前我简单向大家介绍了各个知名大型网站的架构&#xff0c;MySpace的五个里程碑、Flickr的架构、YouTube的架构、PlentyOfFish的架构、WikiPedia的架构。这几个都很典型&#xff0c;我们可以从中获取很多有关网站架构方面的知识&#xff0c;看了之后你…

img、列表和table标签

一、img图片 <body><a href"https://www.fmtxt.com"><img src"images/1.jpg" title"哆啦A梦" style"height: 200px; width: 200px " alt"哆啦A梦"/></a></body>1. 放在 a 标签中&#xff0c…

使用Arquillian测试安全的EJB

从历史上讲&#xff0c;很难对安全的EJB进行测试。 到目前为止&#xff0c;我一直在使用诸如用Arquillian 在WildFly 8.1.x上测试安全的EJB文章中描述的JBossLoginContextFactory等专有技术来测试安全的EJB。 在本年度Devoxx中 &#xff0c; Apache TomEE项目&#xff08;轻量…

Java基础笔记之数据类型

一、数据类型 &#xff08;一&#xff09;8种基本数据类型(内置数据类型\C#中为值类型) 字符长度&#xff1a;1byte 8 bit;布尔&#xff1a;可认为是 1byte (8 bit);字符&#xff1a;char&#xff1a;2/16整型:short: 2/16int: 4/32long: 16/64浮点型:float: 8/32double: 16/6…

SSTI模板注入基础(Flask+Jinja2)

文章目录 一、前置知识1.1 模板引擎1.2 渲染 二、SSTI模板注入2.1 原理2.2 沙箱逃逸沙箱逃逸payload讲解其他重要payload 2.3 过滤绕过点.被过滤下划线_被过滤单双引号 "被过滤中括号[]被过滤关键字被过滤 三、PasecaCTF-2019-Web-Flask SSTI参考文献 一、前置知识 1.1 模…

JQuery 样式设置、追加、移除与切换

有了JQuery&#xff0c;元素的样式操作会变得相当简易。下面我们来看看如何使用JQuery来实现元素样式的获取、设置、追加、删除以及其它一些操作。 获取与设置样式 获取class和设置class都可以使用attr()方法来完成。例如使用attr()方法来获取p元素的class&#xff0c;JQuery代…

关于Java的十件事

那么&#xff0c;您从一开始就一直在使用Java&#xff1f; 还记得曾经被称为“ Oak”的日子&#xff0c;OO仍然是热门话题&#xff0c;C 人士认为Java没有机会&#xff0c;Applet还是一件事吗&#xff1f; 我敢打赌&#xff0c;您至少不了解以下一半内容。 让我们从本周开始&a…

JQuery DataTables Selected Row

获取单行选中的值 $(#MonitoringTypeTable tbody).on(click, tr, function () {if ($(this).hasClass(selected)) {$(this).removeClass(selected);}else {dataTable.$(tr.selected).removeClass(selected);$(this).addClass(selected);var data dataTable.rows(.selected).da…

JSP9大内置对象

JSP9大内置对象 JSP9个内置对象&#xff1a;out对象 用于输出各种数据reuest对象 封装了来自客户端的各种信息response对象 封装了服务器的响应信息exception对象 封装了程序运行过程中发生的异常和错误信息config对象 封装了应用程序的配置信息page对象 指向了当前JSP程序本身…

【转】SQL Server中行列转换 Pivot UnPivot

PIVOT用于将列值旋转为列名&#xff08;即行转列&#xff09;&#xff0c;在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是&#xff1a;PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法&#xff1a; table_source PIVOT( 聚合函数&#xff08;value_col…

ExecutorService – 10个提示和技巧

从Java 5开始就已经存在ExecutorService抽象。在这里我们谈论的是2004。 提醒一下&#xff1a;Java 5和6不再受支持&#xff0c;Java 7 将不在半年之内 。 之所以提出这一点&#xff0c;是因为许多Java程序员仍然不完全了解ExecutorService工作方式。 有很多地方可以学习&#…

.NET学习杂记

1..NET中一个组件可以是一个类,如:public class MyClass{public string GetMessage( ){return "Hello";}}2.组件开发尽量使用接口使用接口可以在基本不影响客户代码的清况下对级件进行更新.使用接口需要尽可能地利用封装性,尽量不要显露组件的内部如何实现.封装是实…

.net c# 序列化和反序列

所谓的序列化就是是将对象转换为容易传输的格式的过程&#xff0c;一般情况下转化打流文件&#xff0c;放入内存或者IO文件中。例如&#xff0c;可以序列化一个对象&#xff0c;然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象&#xff0c;或者和其它应用程序共享…

注释,无处不在的注释

十年前的2004年 &#xff0c; Java 1.5开始提供注释。 很难想象没有此功能的代码。 实际上&#xff0c;首先引入了注释&#xff0c;以减轻开发人员编写繁琐的样板代码的痛苦&#xff0c;并使代码更具可读性。 考虑一下J2EE 1.4&#xff08;没有可用的注释&#xff09;和Java EE…

ajax长链接--拉实现

很多时候需要用在网页上实时显示数据&#xff0c;这个时候一般要用到长链接技术。最简单的实现就是ajax轮询&#xff0c;也就是拉的方式。 下面是一个简单的例子&#xff1a;在网页上实时显示服务器时间。 后端WebService代码&#xff1a; /// <summary>/// ServerTime 的…