第3章  Software Knowledge

3.1  Data Structures

3.2  Operating System

3.3  Programming Languages

3.4  Software Engineering

3.5  Software Testing and Maintenance

3.2  Operating System

?         The purpose of an operating system is to provide an environment in which a user may execute programs.

?         Operating systems exist because they are a reasonable way to solve the problem of creating a usable computing system.

?         The primary goal of an operating system is convenience for the user.

?         A secondary goal is efficient operation of the computer system.

Resource Management

?         The operating system provides the means for the proper use of these resources in the operation of the computer system.

?         We can view an operating system as a resource allocates.

?         The operating system sets up the order in which programs are processed, and defines the sequence in which particular jobs are executed

?         I/O Management

?         To facilitate execution of I/O operations, most operating systems have a standard set of control instructions to handle the processing of all input and output instructions.

?         These standard instructions, referred to as the input/output control system (IOCS), are an integral part of most operating systems.

?         The controlling software calls on the IOCS software to actually complete the I/O operation.

Classification of Operating Systems

?         A single-user operating system expects to deal with one set of input devices—those that can be controlled by one user at a time.

?         A multi-user operating system is designed to deal with input, output, and processing requests from many users-all at the same time.

?         A network operating system provides communications and routing services that allow computers to share data, programs and peripheral devices.

?         A multitasking operating system provides process and memory management services that allow two or more programs to run simultaneously.

?         All modern operating systems are multitasking and can run several processes simultaneously.

?         A desktop operating system is one that is designed for a personal computer—either a desktop or notebook computer.

?

3.3  Programming Languages

?         A programming language or computer language is a standardized communication technique for expressing instructions to a computer.

?         A language enables a programmer to precisely specify what data a computer will act upon, how these data will be stored/transmitted, and what actions to take under various circumstances of cases.

?         Programming languages are important tools for helping software engineers write better programs faster.

Procedural programming and Object-oriented programming

?         Procedural programming involves using your knowledge of a programming language to create computer memory locations that can hold values and writing a series of steps or operations that manipulate those values.

?         A single procedural program often contains hundreds of variable and thousands of procedure calls.

?         Object-oriented programming is an extension of procedural programming in which you take a slightly different approach to writing computer programs.

?         Writing object-oriented programs involves both creating objects and creating applications that use those objects.

Machine Language

?         An executable program is a sequence of extremely simple instructions known as machine code.

?         Machine code instructions are binary—that is, sequences of bits (0s and 1s).

?         Because these numbers are not understood easily by humans, computer instructions usually are not written in machine code.

Assembly Language

?         Assembly language uses commands that are easier for programmers to understand than are machine-language commands.

?         Each machine language instruction has an equivalent command in assembly language.

?         Assembly language is sometimes inserted into a high-level language program to carry out specific hardware tasks or to speed up a high-level program.

High-Level Languages

?         If the computer could translate convenient symbols into basic operations, why couldn’t it also perform other clerical coding functions?

?         A high-level programming language is a means of writing down, in formal terms, the steps that must be performed to process a given set of data in a uniquely defined way.

?         The high-level languages are often oriented toward a particular class of processing problems.

Compiler and Interpreter

?         A complier is a program that translates source code into object code.

?         Every high-level programming language comes with a compiler.

?         Because compilers translate source code into object code, which is unique for each type of computer, many compilers are available for the same language.

?         An interpreter translates high-level instructions into an intermediate form, which it then executes.

?         The advantage of an interpreter, however, is that it does not need to go through the compilation stage during which machine instructions are generated.

?

3.4  Software Engineering

?         Software engineering is the application of tools, methods, and disciplines to produce and maintain an automated solution to a real-world problem.

?         Software engineering first emerged as a popular term in the title of a 1968 NATO conference held in Garmisch, Germany.

?         A large-scale software projects spans a considerable period of time. A number of distinct phases can be identified over this period of time. Together, these make up what is known as the “software life cycle”.

The software life cycle

?         Requirements definition: The requirements of the software are established and specified.

?         Design: A design is developed from an analysis of the requirements.

?         Implementation: The design is coded in a particular programming language on a particular machine.

?         Testing: The implemented system is tested to see that it meets the specified requirements.

?         Operation and maintenance: The system is installed and used. Errors found must be repaired.

Requirements definition

?         The first phase, requirements definition, refers to the period during which the requirements of the system desired, that is, it’s functional characteristics and operational details, are specified.

?         The input to this phase is the stated (often rather loosely stated) needs for the software.

?         Typically, a “requirements document” is the output of this phase, a set of precisely stated properties or constraints that the final product must satisfy.

?         As with any of the phases, it is important that errors not be allowed to move into subsequent phases.

Design

?         The second phase, design, is predominantly creative, while some would argue that creativity is inherent and cannot be trained or improved, it can certainly be enhanced by the use of good procedures and tools.

?         The input to this phase is a (debugged and validated) requirements document: the output is a design expressed in some appropriate form (for example, pseudo-code).

?         Each requirement in the requirements document must have a corresponding design fragment to meet it.

Implementation

?         The third phase, implementation, is the actual coding of the design developed in the second phase.

?         The lure of this phase is strong, and many a foolhardy programmer has been drawn to it before adequately laying the groundwork in the first two phases.

?         As a result, requirements are incompletely understood and the design is flawed.

?         The implementation proceeds blindly, and many problems arise as a result.

Testing

?         The fourth phase, testing, is concerned with demonstrating the correctness of the implemented program. Inevitably some testing is performed as part of the previous two phases as well.

?         Any experienced programmer mentally tests each line as it is produced and mentally simulates the execution of any module prior to any formal testing stage.

?         A “successful” test run means only that no errors were uncovered with the particular circumstances tested; it says nothing about other circumstances.

?         In theory, the only way that testing can show that a program is correct is if all possible cases are tried (known as an exhaustive test), a situation technically impossible for even the simplest programs.

Program maintenance

?         The fifth phase is program maintenance phase. Student programmers, unfortunately, rarely become involved in this phase.

?         Its importance in the real world, however, cannot be overemphasized, since the cost of maintaining a widely used program can match or exceed the cost of developing it.

?         Unlike hardware maintenance, software maintenance deals not with repair of deteriorated components, but with repair of design defects, which may include the provision of added functions to meet new needs.

计算机专业英语第3章,计算机专业英语教案第3章相关推荐

  1. 计算机组成置NVCZ为零,《计算机组成原理》第3版PPT电子课件教案-第四章 指令系统.ppt...

    第 四 章 指 令 系 统 P127 本章介绍指令的一般格式和指令寻址方式.指令分类等. 4.1 指令系统的发展与性能要求 程序:是由一系列的指令序列组成, 解决某一具体问题. 指令:是计算机硬件系统 ...

  2. python电子章_python二级电子教案 第2章 Python语言基本语法元素

    <python二级电子教案 第2章 Python语言基本语法元素>由会员分享,可在线阅读,更多相关<python二级电子教案 第2章 Python语言基本语法元素(46页珍藏版)&g ...

  3. 计算机专业英语第07章,计算机专业英语电子教案第07章.ppt

    计算机专业英语电子教案第07章 Computer English Chapter 7 Programming Languages 复杂定语(从句)的翻译技巧之二 四.句子结构调整法 有时,原文句中一个 ...

  4. 计算机专业英语第13章,第13章计算机专业英语.doc

    第13章计算机专业英语 第13章 计算机专业英语 [例13-1](2006年5月上午试题68) are those programs that help find the information yo ...

  5. 计算机专业英语基础知识,第一章 计算机专业英语基础知识

    1.1 计算机专业英语的特点 :清晰.精练.严密.准确 1.1.1 用词和语法的特点 用词:专业术语多,缩略词汇多且都仍在扩充. 语法:被动语态为主体,常用非谓语动词,名词化结构和从句等. 1.1.2 ...

  6. 计算机英语基础课程论文,计算机专业英语课程教学论文

    计算机专业英语课程教学论文 1课程教学现状分析 1.1课程现状 计算机专业英语作为计算机相关专业的专业课程,能够帮助我们正确认识计算机系统的英文内部提示,以及尽快学习最前沿的计算机行业知识.但目前已有 ...

  7. 中职计算机专业英语说课稿,高职高专英语说课稿

    与<高职高专英语说课稿>相关的范文 高职高专英语教育之我见 摘要:高等职业技术教育既是职业教育又是高等教育,随着我国对外语人才在数量和质量上的要求越来越高,在蓬勃发展的高职教育这一领域,英 ...

  8. 计算机专业的英语文献,计算机专业英语论文参考文献集 计算机专业英语英语参考文献哪里找...

    精选了[100个]关于计算机专业英语论文参考文献集供您后续的写作参考,在写计算机专业英语论文之前,很多大学生总是被计算机专业英语英语参考文献哪里找难倒怎么办?请阅读本文! 一.计算机专业英语论文参考文 ...

  9. 计算机英语基础课程论文,计算机专业英语结课论文.doc

    计算机专业英语结课论文计算机专业英语结课论文 设计任务书 课程名称: 计算机英语 设计题目: what is the internet of things 完成期限:自 2012 年 3 月 1 日至 ...

  10. 英语本科 国外跨计算机,跨专业考研需具备哪些条件,如英语,计算机的过级情况...

    跨专业考研需具备哪些条件,如英语,计算机的过级情况以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 跨专业考研需具备哪些条 ...

最新文章

  1. 一键修改分辨率bat_求使用批处理BAT设置分辨率的方法介绍?
  2. easyUI的combobox选中无法显示
  3. Python学习笔记:类
  4. python lambda函数两个列表大小关系_python学习 -- operator.itemgetter(), list.sort/sorted 以及lambda函数...
  5. Mysql(1)——服务端与客户端建立连接
  6. 小白的算法初识课堂(part3)--递归
  7. ASP.NET获取任意网页HTML代码
  8. 修改SMDK6410的调试串口为普通串口(wince系统)
  9. 数据结构:实验一 线性表的基本功能实现
  10. 制作整人计算机病毒,bat整人电脑病毒代码是怎样的.docx
  11. 《善用佳软:高效能人士的软件应用之道》一2.6 小工具之计算器
  12. pr如何跳到关键帧_(小白学PR不迷路)只要你用过PR,这些问题你一定遇到过
  13. 5G时代传统室内覆盖方案迎挑战,融合室分系统应运而生
  14. 前端常用的八种数据结构
  15. C++实现自动出算术题
  16. 详细理解script标签
  17. 自考大专计算机专业英语翻译,大专英语自考(上册)课文翻译及习题答案(138页)-原创力文档...
  18. android拍照保存照片方向,Android:Camera2开发详解(上):实现预览、拍照、保存照片等功能...
  19. NIOS II 软核中EPCS配置芯片的存储操作
  20. mysql sysvar int_MySQL:如何编写daemon plugin

热门文章

  1. MySQL如何向表中增加、修改字段
  2. 在线学习(Online Learning)
  3. Linux疑难杂症解决方案100篇(十)-uptime命令查看linux系统负载
  4. Python开发工具PyCharm个性化设置备份
  5. python插件安装错误解决办法之SyntaxError: from __future__ imports must occur at the beginning of the file原因
  6. 剑指offer:替换空格
  7. arcgis-“一个或多个已经添加图层的范围与关联空间参考不一致”“Arcmap不能绘制一个或者多个图层”
  8. 开源在线机器学习Online Learning/Incremental Learning库-creme介绍
  9. 第二周 数据分析之展示 Matplotlib基础绘图函数实例
  10. 漫谈架构师之路的修仙之法