软件设计和软件实现

  1. 软件设计是一个创造性的活动,在此活动中需要基于客户需求识别软件构件及其关系
  2. 软件实现是将设计实现为一个程序的过程

为开发一个系统设计,你需要

  1. 理解并定义上下文模型以及系统的外部交互
  2. 设计系统体系结构
  3. 识别系统中的主要对象
  4. 开发设计模型
  5. 刻画接口

设计模式

设计模式是从Christopher Alexander(Alexander 1979)所提出思想中派生出来的,他认为建筑设计中存在一定的共性模式,这些模式令人喜欢并且有效。

  1. 结构/静态模型,使用静态类及其关系描述系统的静态结构。这个阶段需要描述的重要的关系类型包括泛化(继承)关系、使用/被使用关系、组合关系。
  2. 动态模型,描述了系统的动态结构并展示了所期望的系统对象之间的运行时交互。可以描述的交互包括对象发出的服务请求的序列以及由这些对象交互所触发的状态变化。

模式在复用中的角色

模式和模式语言是描述最佳实践、好的设计的方式,其中捕捉了相关的经验,从而使其他人复用这些经验成为可能。
模式是一种复用其他设计者的知识和经验的方式

适配器模式

  • Client:接口的使用者
  • ClientInterface:用户期望的接口
  • Adaptee:原有的类,需要被适配的类
  • Adaptor:把原有类转换成用户希望的类,也就是ClientInterface的实现。

这种设计模式叫做Adaptor,合理的用到了继承与组合

Adaptor模式的好处?

系统原有的接口转换成目前客户所希望的接口,使得客户和原有系统无需改变可以一起工作

Adaptor可以用在什么地方

系统复杂度增长,开发时间的压缩,以及成本考虑,开发者有很强的动机复用原有代码或者购买商业构件。但是如何将………融入新系统是一个很大问题
用Adaptor模式封装遗留构件

复用(牢记)

  1. 抽象级
  2. 对象级
  3. 构件级
  4. 系统级

软件工程---07.设计与实现相关推荐

  1. 软件工程 软件设计 步骤_好的软件设计特点 软件工程

    软件工程 软件设计 步骤 For good quality software to be produced, the software design must also be of good qual ...

  2. 软件工程课程设计——技术栈【Go+Vue+PGSQL】的人事管理系统

    一.项目架构介绍 项目技术栈:Go+Vue+PGSQL 开发工具:IDEA2021.1 后端开发语言:Go 前端框架:Vue3.0(集成ElementUI组件) 后端框架:Gin.Gorm 数据库:P ...

  3. 软件工程课程设计·SOA架构搭建SSM框架的网上商城系统

    软件工程课程设计·SOA架构搭建SSM框架的网上商城系统 项目简介 本系统利用SSM框架.Dubbo框架.Maven模块化开发等技术开发的一个网上商城项目,主要包括订单系统模块.购物车系统模块.搜索系 ...

  4. 软件测试用例分享ppt,软件工程测试用例设计ppt

    PPT内容 这是一个关于软件工程测试用例设计ppt,主要介绍软件工程测试用例设计的相关内容.欢迎点击下载哦. Next day 问题描述:输入年月日year.month.day,其中年份的有效取值范围 ...

  5. 软件工程测试旅游管理系统,软件工程课程设计---旅游信息管理系统

    软件工程课程设计---旅游信息管理系统 福建农林大学金山学院福建农林大学金山学院 课程设计报告课程设计报告 课程名称 软件工程 课程设计题目 旅游信息管理系统 姓 名 系 信息与机电工程系 专 业 计 ...

  6. 现代软件工程课程设计——“黄金点游戏”课程报告一

    课程报告目录 黄金点游戏 系统需求分析 项目背景 任务概述与功能划分 需求分配 本次功能实现 GDEYE-002 用户信息确认 GDEYE-003 游戏开始 GDEYE-004 输入数字 GDEYE- ...

  7. 软件工程课程设计“作业管理系统”的总结和期望

    目录 一.软件工程课程设计"作业管理系统"的总结和期望 该系统研究的意义 功能概述 web网上作业管理系统的实现 注册与登录功能的实现 作业提交功能实现 教师批改作业的功能实现 总 ...

  8. 软件工程需求设计说明书

    Java即时通聊天程序 设计需求说明书 专业班级: 计本班1202班 项目组成员: 杨宗坤 刘瑞 满亚洲 指导教师: 张利峰 开始日期: 完成日期: 编写目的: 本说明书是在充分理解系统需求分析基础上 ...

  9. 2018年春季软件工程教学设计(初稿)

    关键词:混合式教学,翻转课堂,项目驱动 教学方法: 1.   理论课堂教学采用反转课堂教学法,学生在课前通过软件工程教学视频(来源:中国大学MOOC 江西财经大学 狄国强教授讲授软件工程或由任课教师发 ...

最新文章

  1. 正则表达式(Regular Expressions)
  2. [bzoj2875][Noi2012]随机数生成器
  3. leetcode 738. 单调递增的数字(贪心算法)
  4. 大智慧加密指标源码恢复,指标破解工具
  5. 真实渗透改编--综合渗透 sql注入写马+文件上传+udf提权 安鸾靶场SQL注入学习
  6. WinEdit 的algorithm2e包自定义一个带竖线的模块代码
  7. 小程序跳转页面弹出公众号引导用户关注
  8. javascript 百度地图定位标点,定位详情
  9. Oracle ORA-01653: 无法扩展表空间 (unable to extend table... in tablespace ...)
  10. PAZU WEB打印控件
  11. 回归分析及实际案例:预测鲍鱼年龄
  12. 那些年啊,那些事——一个程序员的奋斗史 ——107
  13. Azure App Service Plan
  14. lisp医院化验系统_lis系统参数(医院实验室信息管理系统).doc
  15. MongoDB、ES、Redis、HBase四种数据库的简单区别
  16. 手机office使用 手机office不登录 手机office不联网 手机office查询功能 【手机word】【手机excel】
  17. ram_style的使用
  18. VScode无法单步调试python
  19. 计算机里桌面选项被误删了,win7电脑桌面便签内容被误删怎么办?该如何恢复?
  20. java实现潜艇大战(期末实训)

热门文章

  1. Java基础知识(数据类型和集合)
  2. java之Hibenate中监听事件的重写和二级cache缓存
  3. 在win10中通过Anaconda3安装tensorflow
  4. 人物角色群体攻击判定二(叉乘来判断敌人的位置)
  5. ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇
  6. python将json转换为excel_使用python将Excel转换为JSON_python_酷徒编程知识库
  7. php运城,运城php培训
  8. dnf机器人猜数字奖励_DNF:周年庆策划啪啪打脸,工作人员也出错误,难道又是临时工的锅?...
  9. php 数组对比 unset,如何区分PHP中unset,array_splice的区别
  10. java 入参 是 枚举_java 枚举 参数传递