44
Chapter 1 The software engineer’s job

Chapter 1 The software engineer’s job. 山东大学齐鲁软件学院 2 This chapter shows How the software engineering job is? Strategy to help you develop and improve

Embed Size (px)

Citation preview

Chapter 1The software

engineer’s job

Chapter 1The software

engineer’s job

山东大学齐鲁软件学院 2

This chapter showsThis chapter shows How the software engineering job is? Strategy to help you develop and improve

your software engineering skills.

山东大学齐鲁软件学院 3

The Software Engineer’s job

The Software Engineer’s job

To deliver high-quality software products at agreed cost and schedule.

Three aspects: Producing Quality products---Meet

customers’ real needs; Doing the work for the expected Cost---

On budget; Completing the work on the agreed

schedule---On Time

山东大学齐鲁软件学院 4

The actuality of software quality(1)

The actuality of software quality(1)

Qualities of softwares we use: It’s hard to say that softwares we are using are per

fect, from OS to word processing softwares, database systems, and online servicing systems;

Look at the data Standish Group , 1994 In the U.S., more than $250 billion(109) , were spe

nt each year to develop approximately 175,000 IT projects;

山东大学齐鲁软件学院 5

The actuality of software quality(2)

The actuality of software quality(2)

Standish Group , 1994 31% of projects will be canceled before they

ever get completed , 52.7% of projects will cost 189% of their

original estimates, that is only about 16% of projects are

successful; $81 billion for canceled software projects and

an additional $59 billion for the overrun software projects. That is totally $140 billion were wasted.

山东大学齐鲁软件学院 6

The actuality of software quality(3)

The actuality of software quality(3)

Standish Group , March 25, 2003 Project success rates have increased

to just over a third or 34% of all projects, Project failures have declined to 15% of all projects. The lost dollar value for US projects in

2002 is estimated at $38 billion with another $17 billion in cost overruns for a total project waste of $55 billion against $255 billion in project spending.

However the report does not show all good news. Time overruns have significantly increased to 82% from a low of 63% in the year 2000.

www.standishgroup.com/press/article.php?id=2

山东大学齐鲁软件学院 7

What we get from the data

What we get from the data

Technologies and practices of software engineering made a great contribution to improve software quality;

However, there is a lot of work to do to improve the qualities of software projects

Product quality Process quality- to meet the needs of on time

and on budget

山东大学齐鲁软件学院 8

History of Software Development(1)

History of Software Development(1)

(focus on software quality assurance) Test-and-fix: shortly after World War II-

1980 or so, although working processes had been responsible for major improvements in the quality of automobiles, electronics, or almost any other kind of product, test-and-fix method is still the principle method in software development;

Software inspection: Fagan. M. first introduced software inspection method in 1976, 1980s-earlier 1990s was adopted by IT organizations;

山东大学齐鲁软件学院 9

History of Software Development (2)

History of Software Development (2)

Carnegie Mellon University Software Engineering Institute (CMU/SEI) CMM-Capablity Maturity Model: introduced

by the author of the textbook of this course-Humphrey in 1989; was generally recognized by IT organizations by now;

CMM certification is popular in IT Organization, especially in China;

ISO 9000 ISO/IEC 15504 ( SPICE )

山东大学齐鲁软件学院 10

CMM( Capablity Maturity Model )

CMM( Capablity Maturity Model )

Level 5: Optimizing

Level 4: Managed

Level 3: Defined

Level 2: Repeatable

Level 1: Initial

山东大学齐鲁软件学院 11

CMM-level 1: InitialCMM-level 1: Initial 混沌的过程

山东大学齐鲁软件学院 12

CMM-level 2: Repeatable

CMM-level 2: Repeatable

KPAs (Key Process Areas) Requirement management; Software project planning; Software project tracking and oversight; Software subcontract( 转包合同 )management; Software quality assurance; Software configuration management;

经过训练的软件过程

山东大学齐鲁软件学院 13

CMM-level 3: Defined

CMM-level 3: Defined

KPAs Organization Process Focus; Organization Process Definition; Training Program; Integrated Software Management; Software Product Engineering; Intergroup Coordination; Peer Reviews;

标准一致的软件过程

山东大学齐鲁软件学院 14

CMM-level 4: Managed

CMM-level 4: Managed

KPAs Software Quality Management; Quantitative Process Management;

可预测的软件过程

山东大学齐鲁软件学院 15

CMM-level 5: Optimizing

CMM-level 5: Optimizing

KPAs Process Change management; Technology Change Management; Defect Prevention;

能持续改善的软件过程

山东大学齐鲁软件学院 16

History of Software Development (3)

History of Software Development (3)

PSP (Personal Software Process): first introduced by Humphrey in 1995 The PSP concentrates on the work

practices of the individual engineers. The principle behind the PSP is that to

produce quality software systems, every engineer who works on the system must do quality work

山东大学齐鲁软件学院 17

History of Software Development (4) (focus on software quality assurance)

History of Software Development (4) (focus on software quality assurance)

TSP(Team Software Process): also by Humphrey How to apply advanced engineering

methods to a team tasks: Definition of team developing

process; Measurements of team works; Improvement of team process

Implementing Conditions: Based on PSP training; CMM level of Organization must be

above level 2; Supported by Organization leaders

山东大学齐鲁软件学院 18

PSP (Personal software process) (1)

PSP (Personal software process) (1)

PSP provides engineers with a disciplined personal framework for doing their daily work

Main elements: Plan, Measure, and Manage Detailed estimating and planning

methods; Measurements of product sizes,

defects; Manage time, commitments, schedules

and quality

山东大学齐鲁软件学院 19

PSP (2)PSP (2) It’s a quantitative guide for software

developing process, not just a qualitative method It consists of a set of methods, forms,

and scripts, it’s rather a set of disciplines than a technology

It’s designed for use with any programming language or design methodology

It can be used for most aspects of software work, including writing requirements, running tests, defining processes, and repairing defects.

山东大学齐鲁软件学院 20

PSP(3)PSP(3) The PSP design is based on the following

planning and quality principles: Every engineer is different; to be most

effective, engineers must plan their work and they must base their plans on their own personal data;

To consistently improve their performance, engineers must personally use well-defined and measured processes;

To produce quality products, engineers must feel personally responsible for the quality of their products. Superior products are not produced by mistake; engineers must strive to do quality work;

山东大学齐鲁软件学院 21

PSP(4)PSP(4) It costs less to find and fix defects

earlier in a process than later; It is more efficient to prevent defects

than to find and fix them; The right way is always the fastest and

cheapest way to do a job

山东大学齐鲁软件学院 22

PSP ( 4 ) - PSP structure

PSP ( 4 ) - PSP structure

山东大学齐鲁软件学院 23

The discipline of High-Quality work

The discipline of High-Quality work

Discipline here is a framework for learning and personal improvement

The discipline of PSP provider a structured framework for developing the personal skills and methods

Like other professionals Chemist Doctor Pilot But programmer…

Learn the skills before practice it !

山东大学齐鲁软件学院 24

The important of High-Quality work

The important of High-Quality work

作为一个软件工程师,无论开发的部分在整个产品中是多么小或是多么不重要,潜伏在其中的任何缺陷都可能毁坏整个系统;

为了生产出高质量的软件系统,每个软件工程师都必须学会高质量的工作。如果能不断编写出高质量的程序,开发人员及其产品就会获得雇主和客户的高度评价。

山东大学齐鲁软件学院 25

Then what’s the process meaning?

Then what’s the process meaning?

Process: Definition

A series of actions, changes, or functions bringing about a result;

A series of operations performed in the making or treatment of a product;

Process of cooking eggs; Process of learning swimming; Result and process

山东大学齐鲁软件学院 26

How to improve the quality of your work

How to improve the quality of your work

The author‘s example First,measurement Next, analysis

Discover the source of problem Finally, change,improve

山东大学齐鲁软件学院 27

The improvement process

The improvement process

Define the quality goal

Measure product quality

Understand the process

Adjust the process

Use the adjusted process

Measure the results

Compare the results with the goal

Recycleand continueimproving

山东大学齐鲁软件学院 28

The strategy of this course learning

The strategy of this course learning

Understanding the methods to improve the quality of your work;

Strictly disciplining the methods introduced by the course Planning your work, Gathering data,

Concluding your work etc. ; Don’t fudge your data! Course learning and Programming

guided by PSP methods

山东大学齐鲁软件学院 29

Assignment 1Assignment 1 Identify the tasks you need to do in the

process of this course learning, making a table like Table 1.1 in Page 7. But don’t copy the data in that example!

Think about the process of writing a program or doing a project, filling such a table like Table 1.1.

山东大学齐鲁软件学院 30

工程师: 日期:

任务 频 度 时 间 (min)

     

     

     

     

     

     

Chapter 2 Time management

Chapter 2 Time management

山东大学齐鲁软件学院 32

This chapter showsThis chapter shows How to manage your time? How and why to use an engineering

notebook?

山东大学齐鲁软件学院 33

The logic of time management (1)The logic of time management (1)

Plan-you will likely spend your time this week much the way you spent time last week; Especially for student!

Track-to make realistic plans, you have to track the way you spend time; Surprised by actual data! Time relativism.

山东大学齐鲁软件学院 34

logic of time management (2)

logic of time management (2)

Document-to check the accuracy of your time estimates and plans, you must document them and later compare them with what you actually do; Planning is a skill. The first step in learning to make good

plans is to make plans.

山东大学齐鲁软件学院 35

The logic of time management(3)The logic of time management(3)

Analyze and adjust-to make more accurate plans, determine where your previous plans were in errors and what you could have done better.

Plan and follow the plan ! The world is full of resolutions that are never

fulfilled, like sticking with a diet or quitting smoking.

Then what benefits you may gain by planning your work and following your plan?

山东大学齐鲁软件学院 36

Understanding how you spend time ( 1 )

Understanding how you spend time ( 1 )

Categorize your major activities; Focus on the few things that are most

important 3-5 categories should be enough

Record the time spent on each major activity;

Consistently record time Record at the start and end

山东大学齐鲁软件学院 37

Understanding how you spend time(2)

Understanding how you spend time(2)

Record time in a standard way; Keep the time data in a convenient place-

Engineering notebook. See design of Engineering notebook in textbook

page 13-16, table 2.1-2.3.

山东大学齐鲁软件学院 38

engineering notebook

engineering notebook

在本课程中,将使用工程记事本来记录时间的使用情况。工程记事本的用途主要有:

记录作业,跟踪所承诺的工作,作课堂笔记等等; 作为遵循正确的工程实施方案的凭证; 保护你 ( 老板 ) 的知识资产。 好脑筋不如烂笔头

山东大学齐鲁软件学院 39

工程记事本封面工程记事本封面

工程记事本山东大学齐鲁软件学院山东大学齐鲁软件学院

姓名 ___________

电话 /E-Mail___________

开始日期 _________ 终止日期 _________

山东大学齐鲁软件学院 40

工程记事本目录示例 工程记事本目录示例

山东大学齐鲁软件学院 41

工程记事本页的示例 工程记事本页的示例

山东大学齐鲁软件学院 42

总结总结 计划和管理时间的第一步是要弄清楚现在是如何利用时间的。为了做到这一点,需要把活动分成几个主要的类。然后,用一种标准的方法把每项活动所花费的时间记录下来。为了方便记录和查阅数据,采用了工程记事本。

山东大学齐鲁软件学院 43

Assignment 2Assignment 2 Make an engineering notebook for the work

you’ll do in this course. If you have a PDA, an electronic engineering notebook is accepted.

I’ll randomly check your engineering notebooks in the process of the course learning.

山东大学齐鲁软件学院 44

PSP 工具PSP 工具 http://processdash.sourceforge.net/