Software Engineering: 1. Introduction
Resource: Ian, Sommerville, Software Engineering
1. Professional software development
1.1 Software engineering
Software engineering is intended to support professional software development rather than individual programming.
It may include:
- a number of separate programs and configuration files
- system documentation: describes the structure of the system
- user documentation: explains how to use the system
- websites: for users to download recent product information
What are the fundamental software engineering activities?
- software specification: customers and engineers define the software that is to be produced and the constraints on its operation
- software development: the software is designed and programmed
- software validation: the software is checked to ensure that it is what the customer requires
- software evolution: the software is modified to reflect changing customer and market requirements
There are two kinds of software products:
generic products: These are stand-alone systems that are produced by a development organization and sold on the open market to any customer who is able to buy them.
Example: databases, word processors, drawing packages
It also includes so-called vertical applications designed for some specific purpose such as library information systems, accounting systems, or systems for maintaining dental records.
customized (or bespoke) products: These are systems that are commissioned by a particular customer. A software contractor developers the software especially for that customer.
Example: control systems for electronic devices, systems written to support a particular business process, and air traffic control systems.
1.2 Software engineering diversity
Software engineering is a systematic approach to the production of software that takes into account:
- practical cost
- schedule
- dependability isssues
- the needs of software custmoers and producers.
There are many different types of application including:
- stand-alone applications: These are application systems that run on a local computer, such as a PC.
- interactive transaction-based applications: These are applications that execute on a remote computer and that are accessed by users from their own PCs or terminals.
- embedded control systems: These are software contorl systems that control and manage hardware devices.
- batch processing systems: These are business systems that are designed to process data in large batches.
- entertainment systems: These are systems that are primarily for personal use and which are intended to entertain the user.
- systems for modeling and simulation: These are systems that are developed by scientists and engineers to model physical processes or situations, which include many, separate, interacting objects.
- data collection systems: These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing.
- systems of systems: These are systems that are composed of a number of other software systems.
1.3 Software engineering and the Web
The development of web browsers that could run small programs and do some local processing led to an evolution in business and organizational software.
The next stage in the development of web-based systems aws the notion of web services.
2. Software engineering ethics
3. Case studies
Software Engineering: 1. Introduction的更多相关文章
- Software Engineering: 3. Project planning
recourse: "Software Engineering", Ian Sommerville Keywords for this chapter: planning sche ...
- SENG201 (Software Engineering I) Project
SENG201 (Software Engineering I) ProjectSpace ExplorerFor project admin queries:For project help, hi ...
- Go is more about software engineering than programming language research.
https://talks.golang.org/2012/splash.article Go at Google: Language Design in the Service of Softwar ...
- 第二篇——The communication during software engineering.
I've learned a lot in my software engineering class about how a program comes out.That's also a esse ...
- Software Engineering: 2. Project management
resources:"Software Engineering" Ian Sommerville For most projects, important goals are: D ...
- 个人阅读作业2—《No Silver Bullet: Essence and Accidents of Software Engineering》读后感
在进行了一次结对编程.一次团队编程和一次个人编程项目后,读了<No Silver Bullet: Essence and Accidents of Software Engineering> ...
- Software Engineering at Google
Google的Fergus Henderson在Software Engineering at Google中介绍了Google的软件工程实践. 软件开发 源码仓库 单一源代码仓库,除了核心配置和安全 ...
- 【Software Test】Introduction to Software Testing
Introduction to Software Testing 文章目录 Going to Learn --. Evolution of The Software Industry Errors, ...
- 10. Software, Software Engineering, water fall (瀑布模型),Code Complete等名词的来源
①.Software-软件”一词是20世纪60年代才出现的,软件Software——1958年由贝尔实验室的著名统计学家John Tukey 提出软件与硬件一起构成完整的计算机系统,它们是相互依存,缺 ...
随机推荐
- java - 第一阶段总结
java - 第一阶段总结 递归 递归:能不用就不用,因为效率极低 package over; //递归 public class Fi { public static void main(Strin ...
- iOS:给Git仓库上传代码时,超过100M会被拒绝(例如github和oschina)
处理GitHub不允许上传大于100M文件问题?本人也遇到这个坑... 来自转载,原文链接:http://www.cnblogs.com/qmmq/p/4604862.html 1.报错: 自己的项目 ...
- JVM最多能创建多少个线程:unabletocreatenewnativethread
最近需要测试一个长连接服务器,数据上需要达到100W的长连接,测试的客户端,一个线程保持一个连接,发现linux服务器默认创建到3200多个线程的时候,就会报错这个错误“java.lang.OutOf ...
- java学习规划
今天在网上看到一位大学生的java学习线路规划,觉得蛮适合我,就详细阅读了一下,规划路线应该适用于大部分学习java语言的人,贴出来与大家共勉. 在学习的过程中,不能急于去学习更多的知识,因为知识是无 ...
- ORA-25153: Temporary Tablespace is Empty
在一测试环境做测试的时候发生以下错误: SQL> exec dbms_stats.gather_table_stats(ownname=>'SYS',tabname=>'TT',me ...
- 起因:dell超级密码算号器 1F66
班里有几个比较调皮的同学~(显然不包括我[开玩笑的]) 当初班长设置了密码,结果那几个玩拳皇的想玩,就找我删除了密码~ 最后有个大神就过来设置了BIOS.有种终于出动了的样子.有种我看你怎么办的样子. ...
- paper 97:异质人脸识别进展的资讯
高新波教授团队异质人脸图像识别研究取得新突破,有望大大降低刑侦过程人力耗费并提高办案效率 近日,西安电子科技大学高新波教授带领的研究团队,在异质人脸图像识别研究领域取得重要进展,其对香 ...
- AJAX-----13HTML5中新增的API---FormData
FormData 表单数据对象,这是在HTML5中新增的一个API,他能以表单对象做参数,自动的将表单的数据打包,当ajax发送数据是,发送FormData内的表单数据给后端即可 <!DOCTY ...
- 批处理命令——choice
[1]choice命令简介 使用此命令可以提示用户输入一个选择项,根据用户输入的选择项再决定执行具体的过程. 使用时应该加/c:参数,c: 后应写提示可输入的字符或数字,之间无空格.冒号是可选项. 使 ...
- Centos7下Rinetd安装与应用
Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.haproxy.nginx就不说了,配置相对简单:iptables配置复杂, ...