• No results found

SAPM Overview Semester Summary

N/A
N/A
Protected

Academic year: 2021

Share "SAPM Overview Semester Summary"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

Semester Summary

Dr. James A. Bednar

[email protected]

http://homepages.inf.ed.ac.uk/jbednar

SAPM Spring 2008: Semester summary 1

SAPM Overview

In this lecture we review the topics we have covered this semester, focusing on what I consider the most important points to remember.

The lecture slides on each topic, coupled with the required readings as distributed in class or listed at the end of some lectures, contain all of the basic material required to prepare for the exam.

The background readings listed on the course web page, plus experience gained during the practical assignments, will help you surpass this minimum standard.

SAPM Spring 2008: Semester summary 2

Project management

You should know what projects are, and how to draw and interpret the basic charts used in PM: Work Breakdown Structure, Network diagram, and Gantt chart. You should also be very familiar with their limitations.

You should know the basic PM terms, such as critical path, slack, crashing.

SAPM Spring 2008: Semester summary 3

Tools (1)

You should know several categories of useful tools, and have some familiarity with at least one suitable tool in each category:

Version control (e.g. Subversion) Build control (e.g. make)

Debuggers (e.g. gdb)

Unit/regression testing (e.g. JUnit) Bug/issue tracking (e.g. BugZilla)

Documentation generation (e.g. JavaDoc) Project management (e.g. MS Project) Integrated suites (e.g. RUP)

Web: See tools.html on the course web page

(2)

Tools (2)

You should know why revision control is important, how it works, the basic differences between first, second, and third generation tools, how basic operations are specified using SVN, and how revision control works with software releases.

Web: Eric S. Raymond, Understanding Version-Control

Systems.

SAPM Spring 2008: Semester summary 5

Estimating size and effort

You should know several methods for estimating software size: Consensus methods: e.g. Delphi

Population data methods: e.g. Fuzzy

Standard component methods: e.g. Component estimating Function based methods: e.g. Function point analysis

And the basics of how COCOMO can be used to estimate effort, given the size.

Book: Humphrey 2002 chapter 5

SAPM Spring 2008: Semester summary 6

Design Patterns

You should know what a design pattern is, how to use them, why they are useful for large teams, and the basic properties of several example patterns (e.g. Composite and Proxy).

Book: Gamma et al. 1995 (optional) Web: ’Design pattern’ entry in Wikipedia

SAPM Spring 2008: Semester summary 7

Architectural Patterns

You should know what a high-level architectural pattern is, and how to choose and apply several specific high-level patterns suitable for different types of systems.

Book: Buschmann et al. 1996, A System of Patterns, Chapter 2 Web: ’Architectural pattern’ entry in Wikipedia.

(3)

Scripting Reusable Components

You should know why reuse is difficult and rare, some properties that make some languages more suitable for building components and others for gluing them together, and how the Scripted Components pattern facilitates component reuse.

Article: Ousterhout 1998

Web:http://www.doc.ic.ac.uk/˜np2/

patterns/scripting/scripting.html

SAPM Spring 2008: Semester summary 9

Methodologies (1)

You should know the essentials of at least three development methodologies, including their strengths, disadvantages, and basic tenets:

The Waterfall Model The Unified Process (UP) Extreme Programming (XP)

SAPM Spring 2008: Semester summary 10

Methodologies (2)

Book: Jacobson, Booch, and Rumbaugh (1998) The Unified

Software Development Process, Chapter 1

Web: The UP according to IBM/Rational Software:

www-306.ibm.com/software/awdtools/rup

Web:www.extremeprogramming.orggives an introduction to XP

SAPM Spring 2008: Semester summary 11

Open source

You should know the assumptions behind open-source and closed-source approaches, the advantages and disadvantages of each, and several ways in which successful open-source development efforts have been structured:

Benevolent dictatorship: e.g. Linux Open committee: e.g. Apache Ring-fenced committee: e.g. Mozilla

Web:www.opensource.org/: OSI site

Web:http://www.catb.org/˜esr/writings/cathedral-bazaar/

Article: Mockus et al. 2002

(4)

Software failures

You should know about many of the typical pathological problems which occur on large projects:

Organization problems: e.g. Poor reporting structures Management problems: e.g. Political pressures Problems conducting the project at each phase: e.g.

being technology focused in the initial phase

Book: Flowers 1996

Article:www.spectrum.ieee.org/sep05/1685

Web:www.cs.nmt.edu/˜cs328/reading/

Standish.pdf: Summary of the 1995 Standish Group report

Web:catless.ncl.ac.uk/Risks/: the Risks Digest

SAPM Spring 2008: Semester summary 13

Risk management

You should be able to analyze typical risks faced by particular projects and organizations, including how to reduce them and how to tell when too much correction has been applied: Knowledge inadequacies: e.g. Prototype

Teaming: e.g. Holistic diversity Productivity: e.g. Gold rush

Ownership: e.g. Owner per deliverable Distractions: e.g. Team per task Training: e.g. Day care

Web:members.aol.com/acockburn/riskcata/ riskbook.htm: Cockburn’s risk patterns

SAPM Spring 2008: Semester summary 14

Software Evolution (1)

You should know the definition of and difference between: Reverse engineering: You should know when reverse

engineering is necessary, and what it entails Refactoring: You should know what refactoring is, and

how to do it (alone and with testing and revision control) Reengineering: You should know how and why to

reengineer a software system

Legacy code: You should be know the main techniques for dealing with legacy code (refactoring and

encapsulating), and why it is worthwhile to keep running systems working even as they are changed

SAPM Spring 2008: Semester summary 15

Software Evolution (2)

You should also know the basic types of testing, and how they fit in with software evolution.

Book: Fowler et al. (1999), Chapter 2, plus Demeyer et al. 2003, preface and Chapter 1

(5)

Human factors

You should be able to discuss intelligently the role of human factors in software development, including:

How communication limits team size, due to

exponential scaling in communication requirements

The effect of distributed work sites

Programmer motivations, incentives, and rewards

Resistance to reuse, formal methods

Effect of users with fuzzy, drifting requirements

Article:members.aol.com/acockburn/papers/ adchange.htm

SAPM Spring 2008: Semester summary 17

Teams

You should be able to reason about the dynamics of small teams, including the types of roles people take on and the stages that teams go through, primarily based on your own experience. You will not need to memorize the Belbin team roles or the Tuckman group stages.

SAPM Spring 2008: Semester summary 18

Process Standards

You should be able to discuss the purpose, applicability, and limitations of CMM and ISO-9001. You should also be able to describe root cause analysis, and how it might be done.

SAPM Spring 2008: Semester summary 19

Exam preparation

Old exams are on inf.ed.ac.uk, but remember that the content of the course is different every year.

Compared to last year, there is more material on software evolution, version control, organizational standards, and teams. Compared to a couple of years ago, there is more material on project management, change management, and legacy systems, and less emphasis on formal

modeling of quality tradeoffs and programming standards. Compared to even earlier years, there is less emphasis on formal methods, automation/synthesis, agents, and UML. In general, just review the lecture slides and required reading, following up with your own web exploration or other books wherever your interests take you.

(6)

Summary

Large-scale, long-term software development is

extremely difficult and unpredictable

In SAPM you have been exposed to some useful

approaches and tools

These approaches and tools can help, but are not

guaranteed cures

Always be on the lookout for risks and indications that

your project is headed for failure, so that you can

address the issues or abort the project when appropriate.

Good luck beating the odds!

SAPM Spring 2008: Semester summary 21

References

Demeyer, S., Ducasse, S., & Nierstrasz, O. (2003). Object-Oriented Reengineering Patterns. San Francisco: Morgan Kauffman.

Flowers, S. (1996). Software Failure: Management Failure: Amazing Stories and Cautionary Tales. Reading, MA: Addison-Wesley.

Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refac-toring: Improving the Design of Existing Code. Reading, MA: Ad-dison Wesley.

Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design

Pat-SAPM Spring 2008: Semester summary 21

terns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley.

Humphrey, W. S. (2002). A Discipline for Software Engineering. Reading, MA: Addison-Wesley.

Mockus, A., Fielding, R., & Herbsleb, J. D. (2002). Two case studies of open source software development: Apache and Mozilla. ACM Transactions on Software Engineering and Methodology, 11 (3), 309–346.

Ousterhout, J. K. (1998). Scripting: Higher level programming for the 21st century. Computer, 31 (3), 23–30.

References

Related documents

Beyond developing this capture process, Siemens has the unique opportunity to adapt components such as the desulfurization unit and the CO 2 compression system to the requirements

2.2 Have students work alone to complete the exercise. Have them compare answers with a partner.. Check answers by calling on volunteers to w rite the corrected sentences on

Licensure/certification examinations are required for students in six degree programs: dietetics, kinesiotherapy, medical technology, nursing, social work, and teacher

Solution-orientated Know-how of the RM network Know-how RM sales tools Basic marketing know-how Basic product know-how Basic sales know-how Start-up know-how rM Spirit

Lenders do not have to tell you exactly how they work out their credit scores but should give you a basic explanation of how their scoring works and tell you whether your

From the 'Employer overview' screen select the 'Periods with no payments to employees' link from the Menu. Select the 'Add a period with no payments to employees' link from

Supplementary Table S1 for a complete list). To further assess the performance of the HOCTAR procedure, we decided to test the two datasets of target genes validated by