1
IT4304 Rapid Software Development
(Optional)
INTRODUCTION
This is one of the optional courses designed for Semester 4 of the Bachelor of Information Technology Degree program. This course on Rapid Software Development (RSD) focuses on software development methods and tools associated with building correct, high quality software on schedule and within budget.
CREDITS: 04
LEARNING OUTCOMES
After successful completion of this course students will be able to:
• Obtain a firm foundation on RSD concepts and methodologies.
• Acquire sufficient working knowledge on RSD tools.
MINOR MODIFICATIONS
When minor modifications are made to this syllabus, those will be reflected in the Virtual Learning Environment (VLE) and the latest version can be downloaded from the relevant course page of VLE. Please inform your suggestions and comments through the VLE.
http://vle.bit.lk
ONLINE LEARNING MATERIALS AND ACTIVITIES
You can access all learning materials and this syllabus in the VLE: http://vle.bit.lk, if you are a registered student of BIT degree program. It is very important to participate in learning activities given in the VLE to learn this subject.
ONLINE ASSIGNMENTS
The assignments consist of two quizzes, assignment quiz 1 (It covers the first half of the syllabus) and assignment quiz 2 (It covers the second half of the syllabus). Maximum mark for a question is10, minimum mark for a question is 0 (irrespective of negative scores).
Final mark is calculated considering 40% of assignment quiz 1 and 60% of assignment quiz 2. Pass mark for the online assignments in a course is 50. You are advised to do online assignments before the final exam of the course. It is compulsory to pass all online assignments to partially qualify to obtain year 2 certificate.
2 FINAL EXAMINATION
Final exam of the course will be held at the end of the semester. Examination Paper will consist of two parts.
• Part 1 : 1 Hour paper consisting of Multiple Choice Questions
• Part 2 : 1 Hour paper consisting of Structured Questions
OUTLINE OF SYLLABUS
Topic Hours
1- Introduction to RSD 02
2- Characteristics of Rapid Software Development 02
3- Project Estimation 02
4- Project Scheduling 04
5- Teamwork 04
6- Iterative and Incremental Development 04*
7- Rapid Application Development 04*
8- Software prototyping 02*
9- Agile software development 26*
10- Other topics in Rapid Software development 10*
Total 60
3 REQUIRED MATERIALS
Main Reading
Ref 1: Steven McConnell, Rapid Development ISBN: 81-7853-013-9, WP Publishers & Distributors (P) Ltd.
Supplementary Reading
Ref 2: Agile and Iterative Development: A Manager's Guide by Craig Larman, Agile Software
development series, Alistair Cockburn and Jim Highsmith, Series Editors
Ref 3: http://www.csulb.edu/committees/webcomm/hannonhill/Hannon_Hill_Content_Management_W hite_Paper.pdf Ref 4: http://www.freesoftwaremagazine.com/articles/cms_end_users_part_1?page=0,0 Ref 5: http://www.freesoftwaremagazine.com/articles/cms_end_users_part_2 Ref 6: http://www.agile-tools.net/ Ref 7: http://www.atlassian.com/agile/tools/ Ref 8: http://www.codegear.com/products/jbuilder Ref 9: http://www.easyeclipse.org/site/distributions/index.html Ref 10: http://www.netbeans.org/ Ref 11: http://www.eclipse.org/ Ref 12: http://www.stevemcconnell.com/rdcntnt.htm Ref 13: http://www.hallogram.com/menus/RAD_Tools.html Ref 14: http://www.stevemcconnell.com/rdkind.htm Ref 15: http://www.itmweb.com/essay520.htm Ref 16: http://www.netobjectives.com/files/events/download/rup_xp_scrum_pc_030326_ppt.pdf Ref 17: http://www.functionx.com/ Ref 18: http://www.codeproject.com/KB/architecture/scrum.aspx#Introduction0 Ref 19: http://www.oreilly.com/catalog/netbeans/ Ref 20: http://www.netbeans.org/kb/articles/books.html Ref 21: http://www.extremeprogramming.org/ Ref 22: http://agilemodeling.com/
The pages of the web addresses mentioned above last accessed on 31st March 2011. The content of the above address are on the VLE.
4 DETAILED SYLLABUS:
Section 1: Introduction to RSD (2 hrs) Instructional Objectives
• Identify issues in traditional software development
• Describe the difference between traditional software development and Rapid Software Development
• Identify commonly made classic mistakes during Rapid Software Development • Select appropriate Rapid Software Development model
Material /Sub Topics
1.1. What is Rapid Software Development? [Ref 1: pg 1] 1.2. Issues in traditional software development
1.3. Classic mistakes in Rapid Software Development [Ref 1: pg 37-38] 1.3.1. People related classic mistakes [Ref 1: pg 40-43]
1.3.2. Process related classic mistakes [Ref 1: pg 44-46] 1.3.3. Product related classic mistakes [Ref 1: pg 46-47] 1.3.4. Technology related classic mistakes [Ref 1: pg 47-48] 1.4. Why RSD?
1.4.1. Choosing most rapid life cycle model [Ref 1: pg 133-151] 1.5. What kind of RSD do you need? [Ref 1: pg 8-27]
1.6. Modern RSD
Section 2 : Characteristics of Rapid Software Development (2 hrs) Instructional Objectives
• Describe the general strategy for rapid development
• Describe the four dimensions of development speed
• Discuss the importance of customer oriented development
• List some customer oriented practices
Material /Sub Topics
2.1. Rapid development strategy [Ref 1: pg 8-18] 2.1.1. General strategy for rapid development
5
2.1.2. Four dimensions of Development 2.1.2.1. People
2.1.2.2. Process 2.1.2.3. Product 2.1.2.4. Technology
2.2. Customer oriented development [Ref 1: pg 233-245] 2.2.1. Customer’s importance to rapid development 2.2.2. Customer oriented practices
2.2.3. Managing customer expectations
Section 3 : Project estimation (2 hrs) Instructional Objectives
• List different ways of estimating a RSD project
• Describe the differences among main aspects of RSD project estimation
Material /Sub Topics
3.1. Software estimation and estimation process in RSD 3.2. Size estimation [Ref 1: pg 174-182]
3.3. Effort estimation [Ref 1: pg 182-183] 3.4. Schedule estimation [Ref 1: pg 183-185] 3.5. Estimate refinement [Ref 1: pg 197-200]
Section 4 : Project scheduling (4hrs) Instructional Objectives
• Explain the relationship between schedule pressure and schedule slips • Identify root causes of overly optimistic scheduling
• Identify negative effects of overly optimistic scheduling • Explain different approaches of beating schedule pressure
Material /Sub Topics
4.1. Overly optimistic scheduling [Ref 1: pg 207-220]
4.1.1. Root causes of overly optimistic schedules [Ref 1: pg 209-210] 4.1.2. Effects of overly optimistic schedules [Ref 1: pg 210-215]
6
4.1.3. Excessive schedule pressure [Ref 1: pg 215-217] 4.2. Schedule pressure
4.2.1. Beating schedule pressure [Ref 1: pg 220-224]
Section 5 : Teamwork (4 hrs) Instructional Objectives
• Describe the importance of creating effective teams • Explain the process of long term team building • Identify the issues related to team work
Material /Sub Topics
5.1. Teamwork’s Importance to RSD [Ref 1: pg 276-277] 5.1.1. Variations in Team Productivity
5.1.2. Cohesiveness and Performance 5.2. Creating Effective Teams [Ref 1:pg 278-289]
5.2.1. Team Characteristics
5.3. Why Teams Fail? [Ref 1:pg 289-292] 5.4. Long-Term Team Building [Ref 1:pg 292]
5.5. Team Structure [Ref 1:pg 297] 5.5.1. Team Models [Ref 1:pg 304]
Section 6 : Iterative and Incremental Development (4 hrs)
Instructional Objectives:
• Identify characteristics of RAD approach
• List advantages and limitations of Iterative and Incremental Development
• List commonly used Iterative and Incremental Development tools
6.1. Characteristics of the developmental model [Ref: Teacher's note] 6.1.1. Iterative planning
6.2. When to use Iterative and Incremental Development [Ref: Teacher's note] 6.3. Iterative Development methods [Ref: Teacher's note]
6.3.1. Unified Process
7 Section 7: Rapid Application Development (4 hrs)
Instructional Objectives:
• Identify characteristics of RAD approach
• List advantages and limitations of RAD
• List commonly used RAD tools
7.1. Characteristics of RAD [Ref: Teacher's note] 7.2. RAD constraints [Ref: Teacher's note] 7.3. When to use RAD [Ref: Teacher's note]
7.3.1. Advantages of RAD 7.3.2. Disadvantages of RAD
7.4. RAD environment tools [Ref: Teacher's note] 7.4.1. Database programming
7.4.2. Interface generators 7.4.3. Report generators
7.4.4. Links to office applications
Section 8 : Software prototyping (2hrs) Instructional Objectives:
• Identify characteristics of prototype approach
• List advantages and limitations of prototyping
• Identify two(2) different prototyping methods
8.1. Characteristics of prototyping method [Ref: Teacher's note] 8.2. Benefits of prototyping [Ref: Teacher's note]
8.3. Prototyping process [Ref: Teacher's note] 8.4. Prototyping methods [Ref: Teacher's note]
8.4.1. Throwaway prototyping 8.4.2. Evolutionary prototyping
8 Section 9: Agile software development (26 hrs)
Instructional Objectives:
• Identify characteristics of agile approach
• List advantages and limitations of agile development
• Identify different agile development methods
• Use Rapid Software Development tools in agile development 9.1. What is agile software development? [Ref 2: pg 25 - 26] 9.2. History of Agile development [Ref: Teacher's note] 9.3. Agile process characteristics [Ref: Teacher's note]
9.3.1. Human factors
9.4. The Agile manifesto and principles [Ref 2: pg 27 - 28] 9.5. Agile methods
9.5.1. Adaptive Software development [Ref: Teacher's note] 9.5.1.1. Features
9.5.2. Agile Unified Process (AUP) [Ref: Teacher's note] 9.5.2.1. History
9.5.2.2. Characteristics of AUP 9.5.3. Scrum
9.5.3.1. History of scrum [Ref 2: pg 135 - 136]
9.5.3.2. Characteristics of Scrum [Ref: Teacher's note] 9.5.3.3. Roles and Practices [Ref 2: pg 115 - 123]
9.5.3.4. Agile project management with scrum [Ref: Teacher's note] 9.5.3.5. Artifacts [Ref 2: pg 114]
9.5.3.5.1. Product backlog [Ref 2: pg 123 - 124] 9.5.3.5.2. Sprint backlog [Ref 2: pg 123 - 124]
9.5.3.5.2.1. Sprint planning best practices 9.5.3.5.3. Burn down [Ref 2: pg 125 - 126] 9.5.4. Extreme Programming (XP)
9.5.4.1. History [Ref 2: pg 170]
9.5.4.2. Characteristics of XP [Ref: Teacher's note] 9.5.4.2.1. Planning, Design, Coding, Testing
9.5.4.3. Work products, Roles and Practices in extreme programming [Ref 2: pg 144 - 156]
9
9.5.5. Dynamic Systems Development method [Ref: Teacher's note] 9.5.5.1. Principles
9.5.5.2. Critical success factors 9.5.6. Crystal clear [Ref: Teacher's note]
9.6. Agile tools and methods [Ref: Teacher's note]
9.6.1. Integrated Development Environments (IDE) – Jbuilder, EasyEclipse, NetBeans etc.
9.6.2. Requirements Management (Product/release/backlogs) 9.6.3. Planning (Release/Iteration planning)
9.6.4. Automated testing
9.6.5. Version controlling & Integration/ Automated builds 9.6.6. Tracking (project/release/iteration progress tracking) 9.6.7. Quality Assurance (testing, bugs management)
9.6.8. Feedback Gathering (feedback from customers, ideas, issues)
Section 10 : Other topics in Rapid Software development (10hrs) Instructional Objectives:
• Identify the use of CMS
• Identify different types of CMS
• Describe the advantages of CMS
• Create a simple website using a CMS
10.1. Content Management Systems(CMS) [Ref: Teacher's note] 10.1.1. Introduction 10.1.2. Advantages of CMS 10.1.3. Different types of CMS 10.1.3.1. Web CMS 10.1.3.2. Transactional CMS 10.1.3.3. Publication CMS 10.1.3.4. LCMS
10.1.3.5. Integrated document management system 10.1.3.6. Enterprise CMS
10
10.1.4. Creating a managed website 10.1.4.1. Choosing a right CMS
10.1.4.2. Installing a CMS and promoting the site 10.1.4.2.1. Technical Infrastructure to setup a CMS 10.1.4.2.2. Setup a CMS
10.1.4.2.3. Setup the site 10.1.4.2.4. Promoting the site
10.2. Capability Maturity Model(CMM) [Ref: Teacher's note]
PLATFORM