软件工程
I want become project manager!
软件工程是什么:
定义:将系统化的、严格约束、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。
目标:在给定成本、进度的前提下,开发出具有适用性、有效性、可修改性、可靠性、可理解性、可维护性、可重用性、可移植性、可追踪性、可互操作性和满足用户需求的软件产品(项目)。
项目是什么:
a. 项目:为了创造一件独特的产品、一项服务或者一种结果而进行的临时性努力。
b. 项目四维约束:
a) 范围:需要完成哪些工作?客户需要得带哪些成果?
b) 时间:需要多长时间完成项目?
c) 成本:完成项目都需要花费什么?
d) 质量:客户对已完成项目的认可度。
团队建设与职能分配:
项目经理职责:
需求管理,负责带领团队完成需求分析、概要设计与详细设计
协调、组织、解决团队问题
制定项目开发计划、召集会议
控制进度,获取并调配资源(分配任务)
做出决策
风险控制,解决危机
考核团队成员
项目计划:
制定项目计划的三个步骤
1.划分任务点
a) 11:50~12:50 吃午饭
b) 11:30~13:30 去理发
……
2.分配资源
3.获得项目人员的承诺
有效追踪原则(任务点划分)
对任务进行有效分解
粒度适中(一般控制在1~3个人日)
共同参与原则
不是PM一个人的事
……
了解软件生命周期与过程模型:
软件项目生命周期(SDL C-Software Day Light Cycle)
同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期。
《软件工程国家标准-计算机软件开发规范》(GB8566—88)中将软件生命周期划分为8个阶段:
可行性研究与计划->需求分析->概要设计->详细设计->实现(包括单元测试)->组织测试(集成测试)->确定测试->使用和维护。
了解UML及用例图设计:
UML(Unified Modeling Language)
软件界第一个统一的建模语言,它是一种标准化图形建模的表示,已成为国际软件界广泛承认的标准。
UML是一种基于面向对象的可视化的通用(General)建模语言。为不同领域的用户提供了统一的交流标准。
概要设计:
概要设计目标
概要设计过程
系统架构设计
分解子系统:根据系统业务需求,将系统分解成诸多具有独立任务的子系统。
确定外部接口(重点):分析子系统之间的通信,确定子系统的外部接口。
约定系统环境:分析系统的应用特点、技术特点以及项目资金情况。
部署与优化
软件结构设计
确定构造子系统
公共数据结构设计
系统环境约定
概要设计文档
详细设计:
面向对象程序设计方法
详细设计说明书
软件的业务逻辑
数据处理过程
模块间的数据接口
各模块的实现算法、数据结构
对核心算法、核心功能的实现进行描述
详细设计主要方法有哪些?
结构化设计方法
流程图
N-S图
PAD图
面向对象设计方法
UML建模方法
面向对象设计建模