关闭

软件开发的核心技术

3207人阅读 评论(0) 收藏 举报
分类:

《编程导论(Java)·0.1.5 问题求解》

程序员采用编程语言编写源代码的活动——编程常常概括成问题求解(problem solving)

待解决的问题可大可小,而问题的解决方案正好需要计算机的参与。因此将编程活动称为问题求解,将计算机科学视为问题求解的科学。

问题的大小主要反映在代码量和软件开发参与者的数量上。

实际问题可以是:

²       打印乘法99表;

²       求50000的阶乘;

²       建立一种新的大型网络游戏平台;

²       开发一个具有学生注册、班级课程录入、学生成绩查询……功能的学生成绩管理系统;

²       管理企业各种资源,如人力资源、仓库、资金等等

²      建设数字化医院,构建面向区域的医疗信息共享与协同平台、以电子病历为核心的临床信息系统……

对于小项目的软件开发或小规模编程(programming-in-the-small ),通常具有以下特点:(1) 代码由一个或几个程序员编写,每个程序员都能够了解项目的全部细节。(2)项目可能是独立的项目,也可能是大项目的一部分,但任务明确,开发的主要目的是编写清晰而有效的代码。

对于大项目或大规模编程(programming-in-the-large),具有以下特点:(1)需要一个大型开发团队,组成人员包括项目经理、软件体系架构师、需求分析员、软件设计师、界面设计人员、测试人员、程序员等等,没有一个人能够了解整个系统的所有细节。(2)开发的对象是一个复杂的系统,开发工作的首要问题是开发团队的有效交流与沟通、关注软件的可复用性和可维护性。

问题的大小使得软件开发的方法学上存在巨大的差别。通常将大规模编程称为系统开发,如开发大型管理信息系统、各种系统软件;将小规模编程称为(狭义的)问题求解,此时关注求解问题所需的所有详尽的步骤/操作,而对详尽步骤的描述,称为算法。

因此计算机软件开发的核心技术有二:

★程序的组织(面向对象技术)、问题求解(算法)。

许多C程序员,拥有较扎实的底层技术,但是在强调算法和数据结构、系统编程(阅读《Windows核心编程》、《Unix编程艺术》等)的同时,倾向于贬低程序组织的重要性;

一些Java/C#程序员,研究设计模式、框架,可能忽视了对操作系统原理,编译原理、算法等底层知识的时间投入。还有一些搞Java web开发的,可能对底层更加不感冒。

我在这里将程序组织和问题求解,作为软件开发的核心技术的简略概括,希望读者不要受某些偏执狂的影响,至少在大学阶段,你要能上能下——从宏观上认识程序组织,从细节上认识(侠义的)问题求解。工作后,按照自己的情况,再去加强某些方面——毕竟时间有限。

在讲授C语言的时候,我也会按照“程序组织”这个主题,展开#include、函数(结构化编程、接口与实现分离)的内容;

另外,请大家注意,“现在,假设该程序非常庞大,需要多个人合作,分别编写is3X(int)、isInclude5(int)和foo(int)....”,在类似的文字中,提醒读者,虽然我们书上的例子,只有一个输出语句,但是它代表的是,比如说一千多行的代码!

我曾经看见过某个大牛讽刺OO的狂热份子,用多层的类+模式来完成一个简单的工作。baby,例子能不简化吗?说大炮打蚊子,倒是可以。所以,在11.1 说明中,我也再次强调了程序组织的重要性,提醒这是一个好的实践的机会。



0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

软件开发最重要的是技术吗?

最近在写毕业论文,胡思乱想的东西多了些,看的东西也杂了一些。虽然我还没毕业,有些想法太过于理想化或太幼稚,但总觉得既然有想法还是写下来好,即使没什么用也聊以自娱。    最近一直在想的问题之一就是,软...
  • Witwind
  • Witwind
  • 2004-01-29 12:53
  • 1572

iOS开发技术的核心摘要

iOS开发技术的核心摘要
  • tuyuan2012
  • tuyuan2012
  • 2015-02-05 00:39
  • 1791

做后台开发用到的技能都在这儿——《后台开发:核心技术与应用实践》

这本书囊括了做后台开发用到的全部技能,但并非空洞乏味的说教,而是在传授理论的同时有优雅的代码以参考、有丰富的图表以直观、有多样的工具以高效,适合各个阶段的Linux C++后台开发者阅读。
  • dongfeng9ge
  • dongfeng9ge
  • 2016-09-20 13:22
  • 3951

什么才是动力电池管理系统(BMS)的核心技术?

新能源车与传统汽车最大的区别是用电池作为动力驱动,所以动力电池方面的技术是新能源车的核心。 什么是BMS的核心技术? 最近看到国内某企业的宣传牌,因为采用AUTOSAR的软件构架这样的底层软件而声...
  • dddxxxx
  • dddxxxx
  • 2017-04-27 10:28
  • 1591

征服C&C++企业软件开发核心技术(源码)

  • 2010-02-01 17:38
  • 3.41MB
  • 下载

征服C&C++企业软件开发核心技术.7z

  • 2009-09-27 15:33
  • 2.87MB
  • 下载

对话:中国软件能不能找到自己的核心技术

对话:中国软件能不能找到自己的核心技术 2002-12-13 17:08 /(《程序员》)  -----------------------------------------------------...
  • junecau
  • junecau
  • 2011-07-02 18:44
  • 999

玩可视化大数据分析软件要掌握的6个核心技术(上)

大数据技术与商业智能BI是相辅相成的,前面的文章就提到大数据技术可以帮助BI产品突破业务和技术的双挑战。可视化大数据分析软件在快速发展的市场环境中,迎来了越来越多的技术要求。这些核心技术成为大数据获取...
  • qq_39048092
  • qq_39048092
  • 2017-11-24 11:28
  • 90

CTI硬件设备提供商与软件开发商的核心技术的发展

业务的创新、新技术的融合是一个公司未来发展的根基。什么是CTI核心技术?处于CTI产业链不同位置的公司,所理解核心技术是完全不一样、不同时期的核心技术也不完全相同。在CTI的产业链中,上游厂商包括硬件...
  • chentaocba
  • chentaocba
  • 2012-03-10 13:21
  • 1318

网络采集软件核心技术剖析系列(2)---如何使用C#语言获得任意站点博文的正文及标题

一 本系列随笔概览及产生的背景 本系列开篇受到大家的热烈欢迎,这对博主是莫大的鼓励,此为本系列第二篇,希望大家继续支持,为我继续写作提供动力。 自己开发的豆约翰博客备份专家软件工具问世3年...
  • ib26nqt202
  • ib26nqt202
  • 2014-11-21 13:18
  • 1479
    博客专栏
    个人资料
    • 访问:512315次
    • 积分:8458
    • 等级:
    • 排名:第2701名
    • 原创:298篇
    • 转载:3篇
    • 译文:5篇
    • 评论:184条
    最新评论