1.软件有很多种:在包装盒子里的软件(ShrinkWrap)、基于网页的软件(Web App)、企业、学校或某组织内部的软件(Internal Software)、游戏(Game)、手机应用(Mobile App)、操作系统(Operating System)、工具软件(Tool)等。请选取三种软件分析它们各自的特点,从以下角度展开。
(1)你清楚这些软件的开发者吗?他们的目标有哪些?
(2)你是如何得到这些软件的(邮购、下载、互相拷贝……)?
(3)这些软件有Bug吗?是如何更新版本的?
(4)此类软件是什么时候开始出现的?同一类型的软件间是如何竞争的?发展趋势如何?
(5)列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?能说明软件的某些本质特性吗?
(6)你个人第一次使用此类软件是什么时候?在哪里如何得到的(买的正版、盗版、下载)?
(7)你是如何精通这软件的?它给你带来哪些好处和坏处?
(8)你现在还使用它吗?或者使用同类软件的不同品牌吗?为什么?
(9)这种软件再过10年、20年还会存在吗?为什么?
2.对某个手机App(如微信、QQ、12306等)进行产品分析,包括:
(1)调研、评测:通过下载并使用App,描述最简单直观的个人第一次上手体验;找出1~2个功能性软件缺陷并记录下来。
(2)分析:估计该项目所需要的时间,列举功能的优缺点。
(3)建议和规划:如何改进,同类产品,人员配置。
3.请设计一份问卷,分别针对软件工程师和高年级同学,调查分析他们在设计、开发软件系统时通常会面临的困难和困惑,并调研其解决问题的途径和方法。
4.收集嵌入式软件的相关资料,分析说明嵌入式软件是否独立于硬件。
5.有资料表明软件工程师经常跳槽,但他们很少跨行业跳槽。能否解释这个现象?
6.美国的实践调查数据表明:软件企业平均每人每月的工作量为10个功能点,折合500行Java代码。根据你的编程经验判断这个工作量多还是少,并分析原因。
7.有这样的说法:现在中学生都会编程,很多电子系、数学系、物理系的毕业生的编程能力不弱于软件工程专业的毕业生,所以软件工程专业没有单独存在的必要。请分析这一说法。
8.软件工程课程和计算机程序设计课程之间有何差异?开发软件系统和编写程序代码之间有何差异?
9.金融软件系统的复杂性主要体现在哪里?开发一个金融软件系统面临的主要挑战是什么?如果让你来组织开发一个具有一定规模和复杂度的金融软件系统,会存在哪些方面的困难和问题?
10.什么是软件工程?请给出你自己的定义。