求助面向对象的分许与程序设计习题答案

问题描述

1.面向过程的系统分析与设计存在的问题是什么?通过什么OO技术来解决?2.请画图说明面向对象系统的基本构造。3.面向对象的分析和设计各解决什么问题?怎样从分析向设计转换?4.面向对象开发分几个阶段,各完成什么任务?5.请解释概念封装和多态,并说明封装和多态的作用。6.对象的生命周期是什么意思?在程序中如何正确声明和使用对象的实例?7.描述编程中消息、方法、属性之间的关系。8.属性分几种,其作用是什么?请描述属性的定义过程。9.对象关系有什么性质,存在几种关系?

解决方案

解决方案二:
不知道你们学的教材是多少年前写出来的,我也没有看过这些年的大学教材,所以无法估计你们的课程习题需要什么答案。一般来说,学校里的教育是“填鸭式”的,学校里的考试都是“摆着”让你们抄书的,专门考学生有没有在最近的课程上把书背下来(或者理解下来),所以不管学校外边的现实是什么,学校的练习题和考试还是要以书本上写的为准。但是软件工程书籍往往落后于现实15年,不仅仅是现在的软件工程的书如此,我们以前学的教材也是这样的。因为其实工程技术是尖端的最高级的艺术,无法单纯地死记硬背的。我这按照实用的角度给你说明一下主要的(个别的)要点。面向过程式的软件工程,存在了20年左右,在我们学习面向过程的系统工程课程时都做过不少的SA、SD分析练习。而面向对象的软降工程,到现在也存在了将近20年了。大概15年前MartinFlower提出了“面向对象系统的5原则”,经常被引用。实际上面向对象技术成为非常系统化的技术,在20年前就有了,例如OMT技术就是其代表作,已经非常现代和准确地反映了面向对象系统的分析与设计技术。后来者不过是不断补充了一些教学素材,修改一些商业化工具,制定一些越来越繁冗的“标准”(例如UML虽然非常有用,但是只有5%是真正需要的)。而大概在15年前,实际上软件工程是以敏捷为代表的,例如“极限编程”技术就是一种非常强调高强度产品发布质量的技术,这些几乎全都是站在面向对象系统分析和设计技术的肩膀上,这些敏捷开发理论无不是对系统的“扩展、重构”的诠释。面向对象技术出现时,将所有的研究对象都赋予了“接口扩展、多态”的特性。比如说你画一个复杂系统的SA、SD“设计图,再也不需要死抠字眼了,而是可以分成多个层次来画,扩展的层次可以继承父层次与外界的耦合的接口。不论是流程图、模块划分、项目进度规划、等等,都无一例外地包括了分层扩展的概念。以前的面向过程的软件工程,大量的八股文式的“这个性、那个性”的定性要求,但是由于它只是强调“自顶向下功能分解”的SA方法,以及非常低级和面向计算机领域的(而不是面向自然应用领域的)SD方法,造成它开发的系统经常在开发后期“推倒重来”。实际上,面向对象系统分析和技术如果究其实质,也很简单,就是在所有模块的分析和设计工程蓝图上都要引入分层扩展的技术。一句话就说“完”了。
解决方案三:
關于你們的習題中“請畫圖說明面向對象系統的基本構造”這個問題,我實在不知道你們的書上要什麽樣的圖畫,所以就不寫了。因爲如果一個平面圖來畫的,很可能容易去堆砌那些面向過程的軟件工程裏的東西似乎更省事兒,更可以讓軟件開發的外行看明白,但是這種圖堆砌出來可能就是誤導你。這類問題由于看不出在問什麽,所以也就不回答了。至于說“分析和設計各解決什麽問題”的問題,其實這比較容易回答。分析和設計有很大很大的重疊性的,甚至在叠代式開發中反複交替執行。所以先不要用死板的方式來看到其“區別”問題。分析的目標是讓所有的設計師(包括完全不會編程的業務流程設計師)看懂,雖然分析中也大量地用了形式化的符號,但是它極少涉及只有計算機領域采用的術語。而進行設計,就是針對CPU調度、內存使用、鍵盤驅動還是圖形驅動、事件冒泡或者下沈的機制、軟件的打包和部署安裝、不同類型數據庫的使用,等等問題進行具體化,文檔化(但是不是濫寫文檔,因爲面向對象特別是敏捷的面像對象強調的是持續發布、不斷重構和叠代,濫寫文檔而不廢棄文檔會阻礙系統發展)。在設計階段,強調的是要與分析保持一致。這個階段,初學者最應該知道的一件事,就是許多口口聲聲“面向對象設計”的人,其實一旦寫代碼就成了結構化的了,其代碼設計的樣子跟當初的分析風格完全不一致。“面向對象開發分成哪些階段”,我覺得你找你們的書去回答就行了,或者照著UML的入門書所講的去回答就行了。其實這些東西往往描述得相當地冗長,但是用來訓練初學者也許是好的。封裝和多態的概念,以及其它的問題基本上也一樣是非常單純,根據你們的書回答。對象都是有生命周期的。比如說一個“車子”對象有四個”門“,那麽車子對象被銷毀時,四個門自然也被銷毀了。于是在對象實例化時和銷毀之前,總是要做一些行爲的。這需要在分析和設計中體現。

时间: 2024-10-31 14:56:45

求助面向对象的分许与程序设计习题答案的相关文章

《Java程序设计习题精析与实验指导》一导读

前 言 Java是目前国内外广泛应用的程序设计语言,它是面向对象技术成功应用在程序设计中的著名典范,其特有的性质使它随着互联网应用的发展而被广泛使用. 本书是为<Java程序设计教程(第3版)>一书配置的教学辅导教材,书中为主教材的教学提供了完整的学习辅导材料.全书共有11章,前十章与主教材的章节对应,是对教材知识的学习指导,每章包括重点复习.习题解析.实验指导和练习题四部分."重点复习"部分对知识的重点和难点进行了概括和总结,使学习者能把握关键."习题解析&qu

《Java程序设计习题精析与实验指导》一1.3 实验指导

1.3 实验指导 1.3.1 实验目的与要求 掌握Java程序开发过程. 熟悉Eclipse集成开发环境的使用. ####1.3.2 实验样例 在Eclipse集成开发环境下,参照样例步骤建立和运行Java应用程序和小应用程序. 重建工作区 首先在磁盘上(任何逻辑盘都可以,在此我们假设为D盘)创建一个文件夹JavaExercise.在已经启动Eclipse的情况下,我们可以重建我们的工作区,操作方法是:单击"File"下拉菜单,在其中选择"Switch Workspace&q

技术-求大神帮忙分许润乾报表或html开发报表功能的优劣不同,谢谢

问题描述 求大神帮忙分许润乾报表或html开发报表功能的优劣不同,谢谢 现在需要开发一个报表模块,有两种方式: 1.调用其他熊也开发好的润乾报表接口,但是本人不会使用润乾报表: 2.直接使用html相关技术进行开发 ,请大神们评价一下这两种方式的优劣,谢谢 了! 解决方案 润乾报表是一个纯JAVA的企业级 报表工具,如果想用就去学吧. 当然,如果你熟悉其中的一个,就不用再考虑,直接使用熟悉的.如果都不熟悉,建议你选择使用方广的,如 HTML,这样网上查资料方便一些.除非你能得到润乾报表的技术支持

请问大家一个c++primer练习7.27的问题,按照习题答案这样写,提示我参数过多

问题描述 请问大家一个c++primer练习7.27的问题,按照习题答案这样写,提示我参数过多 #include <iostream> #include <string> #include<vector> using namespace std; class Screen { private: unsigned height = 0, width = 0; unsigned cursor = 0; string contents; public: Screen() =

屈婉玲-算法设计与分析课后习题答案

问题描述 算法设计与分析课后习题答案 需要算法设计与分析屈婉玲课后习题答案,希望哪位大神帮帮忙!大恩不言谢 解决方案 算法设计与分析课后习题3.2算法设计与分析课后习题3.5数据结构与算法分析课后习题第四章(1) 解决方案二: http://download.csdn.net/download/xiaomashengjie/6828333 不谢~

计算机教材-求计算机组成与设计硬件/软件接口第5版课后习题答案,请发到348853203@qq.com

问题描述 求计算机组成与设计硬件/软件接口第5版课后习题答案,请发到348853203@qq.com 求计算机组成与设计硬件/软件接口第5版课后习题答案,请发到348853203@qq.com 谢谢 解决方案 你还不如直接找你们学长要,多思考,别总是看答案!

数据结构 习题答案

问题描述 数据结构 习题答案 若一个线性表L采用顺序存储结构存储,其中所有元素为整数,设计一个算法,将所有小于0的元素面前,要求算法的时间复杂度为O(n),空间复杂度为O(l) 解决方案 #include <stdio.h> void swp(int& a, int& b) { int c = a; a = b; b = c; } int main() { int z = 0, i = 0; int data[] = {2,-1,0,5,-3,8,-2,-9,0,8}; for

《Java程序设计习题精析与实验指导》一3.2 习题解析

3.2 习题解析 一.选择题 1. 以下选项中,合法的赋值语句是______. A. ++m!=n--; B. ++ m; C. m=m + 1= 5; D. m = = 1; 答案:B 解析:在上述四个选项中,选项A和D为逻辑表达式而非赋值语句:选项C中的m+1=5的表示是错误的:选项B中实现的功能等同于m=m+1. 2. 下列语句序列执行后,ch1变量中的值为______. char ch1='A', ch2='B'; if (ch1 + 2 < ch2) ++ch1 ; A. 'A' B.

《Java程序设计习题精析与实验指导》一1.2 习题解析

1.2 习题解析 Java源程序经编译生成的字节码文件的扩展名为______,字节码文件由解释器执行. A. java B. exe C. class D. html 答案:C 解析:Java编译器获取扩展名为"java"应用程序的源代码,把它编译成符合Java虚拟机规范的字节码文件,字节码文件的扩展名为"class". 在Java应用程序中,main()方法的返回类型是______. A. int B. void C. boolean D. static 答案:B