软件工程的定义
软件工程是将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护。
软件工程概念存在着两层含义。从狭义来看,软件工程着重体现在软件过程中所采用的工程方法和管理体系。从广义来看,软件工程涵盖软件生命周期中所有的思想、理论、方法、技术和工具,包括需求、设计、编程、测试和维护的全部内容。
软件工程的目标
在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。
软件工程的需求分析
软件需求包括3个不同的层次——业务需求、用户需求和功能需求。
业务需求:表示组织或客户高层次的目标。
用户需求:描述用户的目标。
功能需求:规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。
除此之外,每个系统还有各种非功能需求。
系统需求:用于描述包含多个子系统的产品(即系统)的顶级需求。
业务规则:包括企业方针、政府条例、工业标准、会计准则和计算方法等。
功能需求:记录在软件需求说明书(SRS)中。SRS完整地描述了软件系统的预期特性。
质量属性:对产品功能描述作了补充,从不同方面描述了产品的各种特性。
约束:限制了开发人员设计和构建系统时的选择范围。
软件工程适用的不同对象
针对个人、软件工程师、项目经理,以及合作团队来说,都有需要掌握的软件工程能力和技巧。
就个人来说,要求具有团队精神和协作能力、需求理解能力、模块化思维能力、工具利用能力,做到规范化组织项目。掌握单元测试、效能分析、开发流程等知识技巧。
对于软件工程师,要明确软件工程管理的概念和任务、软件生存过程、软件工程标准;掌握需求分析、测试、维护基本技术,掌握软件度量、软件配置管理方法;理解软件复用概念、软件质量保证的手段、软件知识产权的基本知识;了解软件项目对人员的需求,要知人善任。
对于项目经理而言,有5大素质要求,4大能力要求。
5大素质要求:良好的职业道德、健康的身体、优秀的心理素质、坚实的知识积累、丰富的经验。
4大必备能力:领导能力、决策能力(技巧)、沟通能力、人力资源开发能力。
对于一个团队来说,团队合作能力是重要指标,包括专业能力、表达能力、全局观、敬业精神、个人信誉。
专业能力:超强的专业能力是团队合作的基础。
表达能力:包括口述和文档,阐述自己的想法,让别人能够理解,这需要良好的表达能力。
全局观:个人是团队的一分子,一定要明白团队的整体目标,知道自己的工作在全局中的位置和价值,才能
够在情况变化时做出正确的判断。
敬业精神:富有职业精神,不要被人推着走,要积极主动地工作。
个人荣誉:在团队中做可信之人,赢得大家的尊重。如果每个人都可以信赖,团队就会非常强。
同时,团队管理也是不可缺少的。团队管理有4部分:
1.设置团队的组织结构,发挥最大的效率。
2.制定制度规范,团队成员遵循相同的标准做事,有利于团队协作。
3.人员管理要做到知人善任,发挥每个人的优势,并形成团队内互补。
4.致力于建设团队的文化,增强团队的凝聚力。