Software Architecture Evolution Over Time.

University: Griffith University, Brisbane, Australia
Degree: Bachelor of Information Technology Accelerated
Date: 5th May, 2011
Class/Course: 3412ICT Software Architecture and Application Services
Author(s): Jeremy Cade

Abstract

Works by Parnas and Shaw set the stage for the development of architectural design patterns that enabled later computer scientists to develop both architectural and module level design patterns. This has empowered architects and developers with the ability to build highly cohesive, loosely coupled large-scale systems.

1. Introduction

The development of codified software design patterns over the last 30 years has been of significance to the software industry. With each new design pattern a new level of abstraction has been developed to simplify or iron out complexity in the systems in where those patterns have been implemented.

However in order to understand the overall architecture of a system we first need to be able to decompose the system into subsystems or modules, with each subsystem or module adhering to a design pattern in order to maintain some sort of maintainability and testability.

2.  Discussion

In his 1972 paper, “On the Criteria To Be Used in Decomposing Systems into Modules”, Parans discusses the decomposition of software into modules, producing two separate modularisations.

The first is along the lines of functional/procedural responsibility or steps, referred to as the “flowchart” method [1]. The second is along the lines of “Information Hiding”.

Parans says of the second modularisation: “Every module in the second decomposition is characterized by its knowledge of a design decision which it hides from all others. Its interface or definition was chosen to reveal as little as possible about its inner workings.” [1]

These two sentences are of great interest, as this was the first time the idea of Information Hiding was introduced to the world of Software Architecture and Design.

This idea, sometimes referred to as the Black Box Principal, is of paramount importance to software design, as it is the founding basis for a number of Object Oriented design principals including Encapsulation and the practice of designing to Interfaces rather than concrete classes.

The Black Box Principal allows for a module or class to built in such a way that only its input and output are known, while hiding its internal workings, implementation, or design decisions from consuming applications, modules or classes.

This allows for the design and creation of loosely coupled software systems, which in turn increase testability and reduce the chance of failure due to cascading errors in the event of changes to the module or classes internal design or implementation.

This principal, is in fact an abstraction of the inner workings given module or class in order to implement it’s output in a larger system.

In her 1989 paper “Larger Scale Systems Require Higher-Level Abstractions” Shaw makes the argument for the need of codified high-level design patterns that can be used to make abstracted design decisions at the system and subsystem levels, in order to better understand and produce large-scale systems [2].

In section “3. Composition of Systems from Subsystems”, Shaw makes the observation that large systems are constructed by combining subsystems, and that these subsystems have their own internal structures, which could be designed at the system level, rather than the module or class level [2].

This allows for the implementation of higher-level design patterns for specific subsystems that are best suited to their function or responsibilities

However Shaw makes the conclusion that the at the time of publication (1989) Software Architecture was not yet mature enough to develop or support such high-level patterns [2].

As we can see, both Parans and Shaw’s work address software design from a structural, decomposition standpoint, while this may have been the founding for a lot of today’s current structural architecture level design patterns, it fails to take into account the other areas software design that are important in todays object oriented world, specifically those of object creation, structure and behaviour in complex software systems.

Neither of the papers takes into account the inherent complexity of trying to integrate multiple modules to form complex systems, while maintaining portability, testability and high maintainability.

Thankfully, some of these issues have been addressed through the creation of modern architectural and module / class level design patterns.

3. Critical Analysis

Shaw’s paper is a spiritual continuation of Parnas’s earlier “Information Hiding” (Black Box) work, in that Shaw is in fact advocating for the abstraction of lower level modules functions behind a subsystem design pattern, effectively extending the Black Box Principal beyond that of a single module or class to an entire subsystem. This continuation is evident in section 2 of Shaw’s paper where the Software Architecture Level of Design is discussed. Shaw states: “This level of system organization and design is the software architecture level.” [2]. Parnas, in his work, did not mention, or perhaps failed to anticipate that large-scale systems may require a number of levels of abstraction in order to effectively produce the system. Shaw’s work rectifies this by explicitly advocating the need for architecture level design.

Architecture level design, is of course a major factor that must be considered when developing systems for modern systems, the choice of architecture level design patterns is of paramount importance when developing large scale systems, as the choice of the wrong design pattern could have catastrophic consequences, for example the Model View Controller pattern, developed at XEROX PRACE in 1978-79 [3] may provide the foundation for a Graphical User Interface (GUI) based system such as a Word Processor, but would be ill suited to a Telephone Exchange System or a Control and Command System.

While Shaw addressed the higher-level concepts of System and subsystem architecture, she failed to address the issues related to lower level modules and classes, thankfully a large number of these issues have been addressed through the acceptance of the patterns and practices published throughout the early 90’s and early 2000’s. Books such as Code Complete [4] and the Design Patterns: Elements of Reusable Object-Oriented Software” [5] introduced a large number of developers and architects to reusable design patterns that allow for the creation and maintenance and testability of modules or classes in a decoupled, highly cohesive manner.

For example, Robert C. Martin in his book “Agile Software Development: Principals, Patterns and Practices” [5] introduces a set of principals known as SOLID. SOLID is an acronym for Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation and Dependency Inversion. These principals extend on Parnas’s information hiding principals, and Shaws module abstraction to address the issues related to testability and maintainability in complex systems. For example, the Dependency Inversion principal states that high level modules or classes should not depend on low level modules or classes. This principal is implemented via the Dependency Injection pattern, which extremely similar to the Factory Method [4][5]. Dependency Injection allows for decoupling of modules, which in turn makes it easier to unit test modules.

Well-tested, decoupled modules often have higher levels of cohesion, allowing those modules to be more portable, readable and maintainable in the long term.

There is however still a number of open issues from a software architecture standpoint, as the underlying hardware increases in capacity and complexity the need to continually abstract the inner workings to increase design simplicity of each system is a cause for ambiguity, and misunderstanding. Shaw did mention this in her paper, however, it may well result in a time where those making the design decisions no longer understand the underlying rationale for the design pattern that they have chosen to implement. At a lower level this is evident in the uptake of memory managed programming environments, e.g. Java. It could be argued that Java developers are more ignorant of their memory footprint, compared to C developers. There is a real chance that this could happen at a higher level of design as we continually develop new ways to abstract away from the inner workings of our systems.

4. Conclusion

Parans work created the foundations for a large number of design patterns still implemented in today’s moderns software systems. Shaw extended Parans work in a way that allowed for the abstraction of design decisions to higher levels of a software system. This work has since been extended upon by a number of different people, allowing for reusable software design patterns that give us the ability to build highly cohesive, decoupled systems that are easily tested.

However we may face a time in the future where the continued abstraction of the design decisions leads to an ignorance of the base implementation of a system.

5. References

[1] David L. Parnas. “On the Criteria to be Used on Decomposing Systems into Modules,” Communications of the ACM, 15(12):1053-1058, 1972.

[2] Mary Shaw. “Larger Scale Systems Require Higher-Level Abstractions,” Proceedings of the Fifth International Workshop on Software Specifications and Design, published 1989

[3] Trygve Reenskaug.   “MVC XEROX PARC 1978-79″, http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html

[4] Steve McConnell. “Code Complete” Microsoft Press. 1994

[5] E. Gamma, R. Helm, R. Johnson & J. Vlissides. “Design Patterns: Elements of Reusable Object-Oriented Software”, 1994

[6] Robert C. Martin. “Agile Software Development: Principles, Patterns, and Practices “ 2002

Posted in University Papers | Tagged , , | Leave a comment

Project Plan – Project Management

University: Griffith University, Brisbane, Australia
Degree: Bachelor of Information Technology Accelerated
Date: August 23, 2010
Class/Course: 2001ICT Project Management
Author(s): Jeremy Cade, Alice Jackson, Nathan Jensen, Jenny Nguyen
Paper Grade: 15.33/20

1. Introduction

1.1 Project Overview

The Brisbane Curtain Company has tasked Sharpwise Software with the development and
delivery of job / task scheduling system for use within the business.

The scheduling software is required to generate and maintain a series of forms with follow-up dates built into them to ensure jobs and regular tasks are completed on time.  Ideally, this would also display on an all encompassing diary.  This software must be accessible via the internet from multiple locations by staff out of the office as well as from computers in the office.  Management of tasks will be maintained by a series of reminders and follow-up dates.  If there are any uncontrollable delays to jobs, the customers must be informed immediately.

The project team consists of:

  • Project Manager
  • Quality Engineer
  • System Analyst / Designer
  • Programmer

1.2 Project Deliverables

  • Project Plan.
  • Job scheduling and task management software.
  • User documentation for Job scheduling and task management software.

1.3 Evolution of the Project Management Plan

The following applies to versioning of this document:

  • The Project Plan document starts at Version 0.01.
  • For each revision the version is incremented by 0.01.
  • Major revisions or changes of user requirements are to be incremented by 1.0.
Revision Date Version No. Author Description of Change/Revision
2010/09/20 0.01 Jeremy Cade Introduction
2010/10/04 0.02 Jeremy Cade Evolution of the project Management Plan
2010/10/05 0.03 Jenny Nguyen Introduction
2010/10/07 0.04 Nathan Jensen Project organisation
2010/10/09 0.05 Jenny Nguyen Mangerial Process
2010/10/10 0.06 Jenny Nguyen Revision History
2010/10/10 0.07 Jenny Nguyen Mangerial Process
2010/10/10 0.08 Nathan Jensen Software life Cycle Model
2010/10/10 0.09 Jeremy Cade Software life Cycle Model
2010/10/11 0.10 Jenny Nguyen Reference Material
2010/10/13 0.11 Jeremy Cade Mangerial Process
2010/10/16 0.12 Alice Jackson Project Responsibilies
2010/10/16 0.13 Jenny Nguyen Risk Management
2010/10/16 0.14 Jeremy Cade WBS/Schedule
2010/10/17 0.15 Jeremy Cade WBS/Schedule/Gantt Charts
2010/10/17 0.16 Jeremy Cade Minor Corrections to Introduction
2010/10/17 0.17 Jenny Nguyen Appendix (6.4)
2010/10/17 0.18 Jenny Nguyen Project Responsibilities
2010/10/17 0.19 Jeremy Cade Appendix, Reference Materials, Function Points

1.4 Reference Materials

  • A Guide to the Project Management Body Of Knowledge (PMBOK Guide) 4th Ed. (2008). Published: Project Management Institute, Inc.
  • Schwalbe, K. (2009). Information Technology Management, 6th Ed., Thomson Technology
  • Australian Standard AS 4071
  • ISO/IEC 12207
  • ISO 14143:1998

1.5 Definitions and Acronyms

  • WBS: Work Break Down Structure
  • SDLC: Software Development Lifecycle

2 Project Organisation

2.1 Software Life Cycle Model

The Life Cycle Model to be used for this project is the Evolutionary Prototyping Model. Each evolution of the prototype will be limited to a predifed set or group of the functional requirements as set out in section 6 (List of Requirements) of the Business and User Requirements document developed by Sharp Wise Software. Each prototype will be limited to two revisions.

The Evolutionary Prototyping Model has been selected as the basis for this project for the following reasons:

  • Allows for rapid, iterative development.
  • Reduces need for final stage documentation.
  • Facilitates feedback from the end users at critical stages during development.

This constant and repetitive feedback from end users is important for this feedback will improve the project and fix bugs and problems that users might encounter.

2.2 Organisational Structure

Authority Flow Chart

Authority Flow Chart

Communication Flow Chart

Communication Flow Chart

2.3 Organisational Boundaries and Interfaces

A description of the relationship between the project team and the other parties involved in
the project. Relevant stakeholders in the Project should be explicitly identified.

Key Stake Holders

  • Sharpwise Software
  • Our company
  • Curtain company

Roles of the Stake Holders

Sharpwise Software

  • Developer of the project
  • Creates all the deliverables of the Project
  • Delivering a quality Product

The Curtain Company

  • Consumer of the project after Sharpwise Software develops from our companies project plan.

Our company

  • Creating Project Plan
  • Ensuring all requirements of the Curtain Company are met

2.4 Project Responsibilities

2.4.1 Project Manager

The project manager’s responsibilities are as follows:

  • Lead the planning and implementation of project
  • Facilitate the definition of project scope, goals and deliverables of the project
  • Define project tasks and resource requirements
  • Develop the project plan
  • Assemble and coordinate the project team
  • Manage the project budget
  • Manage project resource allocation
  • Plan and schedule the project timelines
  • Track project deliverables using appropriate tools
  • Provide direction and support to project team
  • Work with the quality engineer to maintain quality assurance
  • Constantly monitor and report on progress of the project to all stakeholders involved in the project
  • Present reports defining project progress, problems and solutions of the project
  • Implement and manage project changes and interventions to achieve project outputs

2.4.2 Quality Engineer

The quality engineer’s responsibilities are as follows:

  • Responsible for quality system maintenance
  • Assist project manager in establishing, implementing and maintaining the quality management system
  • Interface with the software engineer and programmers to ensure transfer of concept to production of the system is in accordance with approved data
  • Conduct audits, create finding reports and determine corrective and preventative action from these findings
  • Analyse failure and take corrective action to respond to, if any, of client complaints

2.4.3 Systems Analyst

The quality engineer’s responsibilities are as follows:

  • Analyzing the user requirements to develop a concept model
  • Researching, designing the software program
  • Testing the programs and fault finding;
  • Creating technical specifications and test plans with the quality engineer;
  • Writing operational documentation for the project
  • Maintaining systems by monitoring and correcting any software defects;
  • Working with the project manager, quality engineer and two programmers to effectively implement the project
  • Consulting clients concerning the maintenance and performance of the system and asking questions to obtain information, clarify details and implement information

2.4.5 Programmers

The programmer’s responsibilities are as follows:

  • Code, test and troubleshoot the program utilizing the appropriate hardware, database, and programming technology
  • Build the project as to specifications designed by the Software Engineer
  • Adhere to the requirements stipulated by the Quality Engineer in regards to quality control

3 Managerial Process

3.1 Managerial Objectives and Priorities

3.1.1 Objectives

The Brisbane Curtain Company project will be thoroughly documented in the project plan, to ensure all the aspects have been agreed upon so the project can be completed on time and in scope. The project team is consists of five members and together working as a team will responsible for successful completion and handover of the project that will satisfy the user requirements and hopefully exceed the user requirements. This project will aim to follow the recommended procedures from the Australian Standard AS 4071, and PMBOK, to allow for the team to work successfully together while building improving their leadership, team building, communication, decision making, negotiation and their political and cultural awareness.

The main project goal will be to deliver the product within the estimated scope, budget and time.

3.1.2 Mechanisms for communications and reporting

Information From To How Frequency
Meetings Project Manager Team Members Face to face Weekly
Project Planning Project Manager Team Members E-mail Weekly
Contact Team members Project Manager Team Members E-mail, phone Daily
System Analysis Report System Analyst Project Manager Face to Face Weekly
Gathering Information from Client Project Manager Team Members Face to face, E-mail, Phone Daily
Consulting With Client System Analyst / Designer & Project Manager Client Face to face, e-mail, Phone Fortnightly
System Design System Analyst Project Manager E-mail, Face to face Weekly
System Programming Programmers Quality Engineer E-mail Weekly
System Development Processes Programmers Project Manager E-mail Daily
System Development Report Programmers Project Manager E-mail Weekly
System Quality Report Quality Engineer Project Manager E-mail Weekly
System Deliverables Project Manager Client Face to face At completed project time
System maintenance Report Quality Engineer Client E-mail Monthly

3.1.3 Relative Priorities

  • Ensure that the project is within budget, on time, within scope, and of high quality
  • Ensure that the online forms match the functional and quality requirements
  • Ensure that the new system can communicate with the existing system

3.1.4 Resolving interpersonal issues

During the life cycle of the project, interpersonal issues could arise resulting in some conflicts among team members. The project manger is the key to resolving any issues that occur, however, there are some techniques and personal attributes that can help to reduce the conflicts among team members and allow for effective and efficient methods to resolve these interpersonal issues such as:

  • Promote communication: Team members should focus on communication when working on the project to make sure work is not being duplicated
  • Give feedback regularly: Conflict can arise due to team members having differentiating goals but with regular feedback and meetings allows the team to be driven to the same objectives.
  • Compromise: All team members should work collaboratively, and assist each other towards solving issues.
  • Confrontation: The project manager should allow team members to work on their jobs with their ideas as long as they complete their tasks and satisfy the requirement. If team members can’t resolve their issues than the Project Manager acts as a mediator to assist with the resolution.

3.2 Assumptions, Dependencies and Constraints

The assumption has been made that all outputs where the fucntional requirements regarding data outputs to a user are vauge or undifiend are External Outputs (EO) rather than External Enquries (EQ)

In this project plan it is assumed the requirements will not change or funding will not be cut by the responsible stakeholders. Constraints to the project will be for it to be completed in the accurate time frame listed in the project plan and for the cost to not be exceeded. The design and production of the schedule will be run independently from the running of the company at The Brisbane Curtain Company, though it will be dependant on the requirements presented and test data also with the input of stakeholders to approve of changes and acceptance.

3.3 Risk Management

3.3.1 Risk Management Processes

The below is a view of the risk management strategy that identifies the three top risks. The full risk table can be found in the appendix (Appendix 6.4)

Risk No Risk (Cause and Consequence) Pre-Strategy Risk Exposure Strategy Description Residual Risk Exposure
R01 Risk: Poor communication

Cause: Project team and/or client are not communicating

Consequence: Requirements not understood, Errors in project phases, delay in project, misunderstood scope, budget blow out

Likelihood: High

High
  • Hold regular meetings
  • Prepare and submit reports regularly
  • Open communication channels
Medium
R02 Risk: Change in client requirements

Cause: clients changes their mind

Consequence: Scope change

Likelihood: High

Medium
  • Have clear scope and scope statement sign off
  • Report on progress and communicate weekly with client
R08
R03 Risk: Failure to meet deadline of tasks

Cause: Tasks made unclear by Project Manager, poor time management by individuals

Consequence: Project is delayed

Likelihood: Medium

Medium
  • Develop detailed WBS
  • Review weekly reports
  • Hold weekly meetings
Low

3.4 Monitoring and Controlling Mechanisms

1. Budget Control

Budget: The Project Manager will maintain a weekly budget report that will show any variations on budget priorities. If any anomalies exist they will be investigated and the client will be notified if significant to the impact of the budget and the plan

2. Quality Control

The Quality Engineer will audit compliance with quality standards at varies stages throughout the project life cycle and will submit a weekly report on performance against progress. A weekly meeting will also be held to discuss the results and identify areas for improvement.

3.  Project Status Report

All team members are required to submit a weekly report every Friday to show performance against progress and to enable the Project Manager to identify any variations against the plan. This will provide the Project Manager with the appropriate tool to be able to effectively and efficiently manage the project.

4. Risk Control

Risks to the project must be identified and logged in the risk register and monitored during the project progress. The Quality Engineer is responsible for measure the project milestones and maintain the risk register

3.5 Staffing Plan

3.5.1 Training Strategy

Sharpwise are using qualified specialist as part of the project team. The members have over 35 years experience in software development and project management. Therefore, the skill levels are satisfied however if required training will be prov

3.5.2 Skills Needed

Sharpwise Software has a total staff of 35 business analysts, designers, programmers and project managers. The project team for the scheduling software based forms will consist of 4 team members, entailing a Project Manager, Quality Engineer, System Analyst, and one programmer. The skills needed to complete the project and are needed between the 4 team members are:

Skills Needed Level Requirement Satisfied By
Database Design / SQL High Programmers
Java or C# .Net High Programmers
GUI Design & Development Medium Programmers
Thorough Testing Medium Quality Engineer
Microsoft Project 2007 High Project Manager
Communication skills Medium All team members
Databases and Servers High Programmers
Problems Solving Skills High All team members
Research ability Medium Quality Engineer
Management and leadership Medium Project manager
Customer Relations High Project Manager
Design skills Medium All team members
Risk management Medium Project Manager

4 Technical Process

 

4.1 Methods, Tools and Techniques

The following is a brief overview of the techniques that will be used to complete the objectives of the project:

  • Adequate product documentation to ensure even a user with very little computer expiernce can understand how to use the system created
  • To deliver a quality product quality audits, flow charts and cause and effect diagrams will be used to ensure that all functions of the project work and are implemented properly

A description of the methods, tools and techniques to be used to achieve the project
objectives. This section will reference the technical references and standards used for
application of the Primary Processes. There will also be a cross-reference to relevant
sections of the Quality Plan.

4.2 Work Product Documentation

The documentation needed for the project are as follows :

  • Hard copies of both user manual and technical manual
  • Electronic copies of both the user manual and technical manual

All documentation must be presented in the following way :

  • All manuals must have a contents page
  • All manuals must have an index page
  • All manuals must contain web addresses, books and other resources.
Document Definition Program Relation to SDLC
To be Completed by
Team Contract Outlines the roles each team member is responsible for Word Requirements Project Manager
Scope Statement The work and processes involved in creating the forms Word Requirements Project Manager
Project Charter Formally authorises the existence of the project Word Requirements Excelsior aerospace Systems
Project benefits measurement information How the product will be measured as a success Word Requirements Quality Engineer
List of prioritised risks Possible risks and outcomes Word Requirements

Design

Quality Engineer
Contract files Binding agreement that the seller must deliver the products and obligates the buyer to purchase Word Requirements Project Manager
Milestones reports The status and health of the project at allocated times in project Word Design

Implementation

Project Manager
Gantt Chart A graphical schedule for the time line of the WBS to be completed Project Design Project Manager
WBS and WBS dictionary A hierarchical decomposition of the work to be executed to  achieve the goals and objectives Word Design Project Manager
Survey and results A report on the chosen layout, colour and other options available Word Design Quality Engineer
Summary of user inputs The required fields need to be gathered and stored, and whether fields need to be validated Word Design Software Engineer
Progress Reports Establishes what the team has accomplished in the time frame Word Design

Implementation

Project Manager
Forms designs Layouts of the forms Word Design Software Engineer
Form contents All the required fields needs Word Design Quality Engineer
Test plans and reports Documents outlining the test procedures to be carried out, and also showing the test reports Word Implementation

Verification

Software Engineer
Roll-out information Showing how the new system will be implemented Word Verification Software Engineer
Final presentation To show all outcomes and objectives have been achieved Word Verification Project Manager
Client acceptance form Proof that buyer accepts the product Word Verification Project Manager
Lessons Learnt reports Reflective statements on new ideas learnt Word Maintenance Superlative Software team members

 

4.3 Project Support Functions

Descriptions of and references to the documentation of relevant project support processes.
The support functions should include:

4.3.1 QualityManagement

 

To ensure the best quality throughout the life cycle of the product, the following will be implemented:

  • Checklists to ensure all processes and activities are complete at each phase
  • Quality audits at the end of the evoloutionary prototyping lifecycle to ensure that at the start of the next phase of the lifecycle the issues brought up in the quality audits can be fixed.

Each phase of the life cycle will have a checklist of items to be completed before starting the next phase of the life cycle this is to ensure that all the function requirements of the project are completed.The Project Manager is in charge of making sure that each item on the checklist has been checked off. At the end of the testing phase of the evoltionary prototyping life cycle,a quality audit need to be done by the Quality Engineer so that at the begining of the next phase of the life cycle the programmers can fix the problems with the project.

4.3.2 Verification and Validation

Verification Management

The verification strategy to be applied for the project is checklists, these checklists are to ensure that all of the project function and technical requirements of the project. The project manager is responsible for making sure that all of these requirements are included into the project, the system designer/analyst’s job is to make sure that the project has all of the functional requirements are designed into the project so they can be checked off by the project manager. The programmers are responsible for implementing all of the function requirements of the project and the quality engineer is responsible for making sure that all of the requirements are up to the correct standard of quality for the project. Once the other members of the team complete their tasks, the project manager has to sign off on the project for the last time to say that everything in the project is complies to correct specifications given. The verification management technique employed will be cause and effect diagrams; these diagrams will be used to show that the function requirements have been met. These diagrams will be made during the testing phase of the project, these diagrams will highlight  problem areas of the project.

Validation Management

The validation strategy involves quality audits from the Quality Engineer; these quality audits are key to ensuring that the stakeholders are confident that the project is up to the highest level of quality and that every function requirement for the project is being implemented and designed to the consumers specifications. These quality audits happen at each revision of the project so if it is not up to right standard that the stake holders are happy with the team can fix the issues the stakeholders have with the prototype in the next revision of the lifecycle. The other validation management techniques that will be implemented are flow charts, flow charts will validate the project by ensuring all of the functions of project.

 

4.3.3 Configuration Management

 

Configuration Items

  • Electronic User Manual
  • Hard Copy User Manual
  • Job scheduling and task management software
  • Project Plan

Baseline items

  • Job scheduling and task management software
  • Project Plan

Change Control Management Process

Change Control Management Process

5 Work Packages, Schedule, and Budget

 

5.1 Work Packages and Dependencies

ID Task Name Predecessors
1 Scheduling Software
2 Initiating & Planning
3 Develop Project Charter
4 Develop Project Plan
5 Analysis 3
6 Prepare SUR & Acceptance Criteria
7 Design
8 Functional Requirements
9 Review Inputs 6
10 Analyse Requirements 9
11 Produce SRS 10
12 System Design Document
13 Review Inputs 11
14 Analyse Requirements 13
15 Produce System Design Document 14
16 Test Plan
17 Review Inputs 6,15
18 Develop Test Strategy 17
19 Develop Test Cases 18
20 Produce Test Plan 19
21 Development & Integration Testing 7
22 Prototype 1 20
23 Design & Build Functional Requirement FR1
24 Initial Prototype Testing 23
25 Solicit & Review User Feed Back 24
26 Change Management Process 25
27 Revision 1 26
28 Implement Revision 1 Changes
29 Revision 1 Testing 28
30 Solicit & Review User Feed Back 29
31 Change Management Process 30
32 Revision 2 27
33 Implement Revision 2 Changes 31
34 Revision 2 Testing 33
35 Create Documentation for Prototype 24,27,32
36 Sign Off 35
37 Prototype 2 36
38 Design & Build Functional Requirements FR2 through FR10
39 Initial Prototype Testing 38
40 Prototype 1 Integration 39
41 Prototype Integration Testing 40
42 Solicit & Review User Feed Back 41
43 Change Management Process 42
44 Revision 1 43
45 Implement Revision 1 Changes
46 Revision 1 Testing 45
47 Solicit & Review User Feed Back 46
48 Change Management Process 47
49 Revision 2 44
50 Implement Revision 2 Changes 48
51 Revision 2 Testing 50
52 Create Documentation for Prototype 42,43,44
53 Sign Off 52
54 Prototype 3 53
55 Design & Build Functional Requirements FR11 through FR19
56 Initial Prototype Testing 55
57 Prototype 2 Integration 56
58 Prototype Integration Testing 57
59 Solicit & Review User Feed Back 58
60 Change Management Process 59
61 Revision 1 60
62 Implement Revision 1 Changes
63 Revision 1 Testing 62
64 Solicit & Review User Feed Back 63
65 Change Management Process 64
66 Revision 2 61
67 Implement Revision 2 Changes 65
68 Revision 2 Testing 67
69 Create Documentation for Prototype 66,59,61
70 Sign Off 69
71 Prototype 4 54
72 Design & Build Functional Requirements FR20 through FR28
73 Initial Prototype Testing 72
74 Prototype 3 Integration 73
75 Prototype Integration Testing 74
76 Solicit & Review User Feed Back 75
77 Change Management Process 76
78 Revision 1 77
79 Implement Revision 1 Changes
80 Revision 1 Testing 79
81 Solicit & Review User Feed Back 80
82 Change Management Process 81
83 Revision 2 78
84 Implement Revision 2 Changes 82
85 Revision 2 Testing 84
86 Create Documentation for Prototype 83,76,78
87 Sign Off 86
88 Prototype 5 71
89 Design & Build Functional Requirements FR29 through FR37
90 Initial Prototype Testing 89
91 Prototype 4 Integration 90
92 Prototype Integration Testing 91
93 Solicit & Review User Feed Back 92
94 Change Management Process 93
95 Revision 1 94
96 Implement Revision 1 Changes
97 Revision 1 Testing 96
98 Solicit & Review User Feed Back 97
99 Change Management Process 98
100 Revision 2 95
101 Implement Revision 2 Changes 99
102 Revision 2 Testing 101
103 Create Documentation for Prototype 100,93,95
104 Sign Off 103
105 Prototype 6 88
106 Design & Build Functional Requirements FR38 through FR46
107 Initial Prototype Testing 106
108 Prototype 5 Integration 107
109 Prototype Integration Testing 108
110 Solicit & Review User Feed Back 109
111 Change Management Process 110
112 Revision 1 111
113 Implement Revision 1 Changes
114 Revision 1 Testing 113
115 Solicit & Review User Feed Back 114
116 Change Management Process 115
117 Revision 2 112
118 Implement Revision 2 Changes 116
119 Revision 2 Testing 118
120 Create Documentation for Prototype 117,110,112
121 Sign Off 120
122 Prototype 7 105
123 Design & Build Functional Requirements FR47 through FR55
124 Initial Prototype Testing 123
125 Prototype 6 Integration 124
126 Prototype Integration Testing 125
127 Solicit & Review User Feed Back 126
128 Change Management Process 127
129 Revision 1 128
130 Implement Revision 1 Changes 127
131 Revision 1 Testing 130
132 Solicit & Review User Feed Back 131
133 Change Management Process 132
134 Revision 2 129
135 Implement Revision 2 Changes 133
136 Revision 2 Testing 135
137 Create Documentation for Prototype 134,127,129
138 Sign Off 137
139 Prototype 8 122
140 Design & Build Functional Requirements FR56 through FR66
141 Initial Prototype Testing 140
142 Prototype 7 Integration 141
143 Prototype Integration Testing 142
144 Solicit & Review User Feed Back 143
145 Change Management Process 144
146 Revision 1 145
147 Implement Revision 1 Changes 144
148 Revision 1 Testing 147
149 Solicit & Review User Feed Back 148
150 Change Management Process 149
151 Revision 2 146
152 Implement Revision 2 Changes 150
153 Revision 2 Testing 152
154 Create Documentation for Prototype 151,144,146
155 Sign Off 154
156 Tuning & Integration 139
157 Final Prototype Integration 154
158 Final Prototype Integration Testing 157
159 Solicit & Review User Feedback 158
160 Final Changes 159
161 Change Testing 160
162 Final Documentation 161
163 Sign off 162

5.2 Resource Requirements and Allocation

5.2.1 Function Point Analysis

Function Point Analysis based upon IFPUG ISO 14143-1 standard has been done and can be found in section 6.2. Function Point Assignment of the Appendix.
Approximated entites where modeled for use in the Function Point Analysis, and can be found in section 6.1 Entity Diagram of the Appendix.

5.2.2 Resource Allocation

ID Task Name Resource Names
1 Scheduling Software Programmer 1,Programmer 2,Project Manager,Quality Engineer,Systems Analyst / Desinger
2 Initiating & Planning Project Manager
3 Develop Project Charter Project Manager
4 Develop Project Plan Project Manager
5 Analysis Project Manager
6 Prepare SUR & Acceptance Criteria Project Manager
7 Design Project Manager,Systems Analyst / Desinger
8 Functional Requirements Project Manager,Systems Analyst / Desinger
9 Review Inputs Project Manager,Systems Analyst / Desinger
10 Analyse Requirements Project Manager,Systems Analyst / Desinger
11 Produce SRS Project Manager,Systems Analyst / Desinger
12 System Design Document Project Manager,Systems Analyst / Desinger
13 Review Inputs Project Manager,Systems Analyst / Desinger
14 Analyse Requirements Project Manager,Systems Analyst / Desinger
15 Produce System Design Document Project Manager,Systems Analyst / Desinger
16 Test Plan Project Manager,Quality Engineer
17 Review Inputs Project Manager,Quality Engineer
18 Develop Test Strategy Project Manager,Quality Engineer
19 Develop Test Cases Project Manager,Quality Engineer
20 Produce Test Plan Project Manager,Quality Engineer
21 Development & Integration Testing Programmer 1,Programmer 2,Project Manager,Quality Engineer,Systems Analyst / Desinger
22 Prototype 1 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
23 Design & Build Functional Requirement FR1 Programmer 1,Programmer 2,Systems Analyst / Desinger
24 Initial Prototype Testing Quality Engineer
25 Solicit & Review User Feed Back Project Manager,Quality Engineer
26 Change Management Process Programmer 1,Programmer 2,Project Manager,Systems Analyst / Desinger
27 Revision 1 Programmer 1,Programmer 2,Project Manager,Quality Engineer,Systems Analyst / Desinger
28 Implement Revision 1 Changes Programmer 1,Programmer 2
29 Revision 1 Testing Quality Engineer
30 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
31 Change Management Process Project Manager,Systems Analyst / Desinger
32 Revision 2 Programmer 1,Programmer 2,Quality Engineer
33 Implement Revision 2 Changes Programmer 1,Programmer 2
34 Revision 2 Testing Quality Engineer
35 Create Documentation for Prototype Programmer 1,Programmer 2,Quality Engineer
36 Sign Off Project Manager
37 Prototype 2 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
38 Design & Build Functional Requirements FR2 through FR10 Programmer 1,Programmer 2,Systems Analyst / Desinger
39 Initial Prototype Testing Quality Engineer
40 Prototype 1 Integration Programmer 1,Programmer 2
41 Prototype Integration Testing Project Manager
42 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
43 Change Management Process Programmer 1,Programmer 2,Project Manager
44 Revision 1 Quality Engineer
45 Implement Revision 1 Changes Project Manager,Quality Engineer
46 Revision 1 Testing Project Manager,Systems Analyst / Desinger
47 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
48 Change Management Process Programmer 1,Programmer 2
49 Revision 2 Quality Engineer
50 Implement Revision 2 Changes Programmer 1,Programmer 2,Quality Engineer
51 Revision 2 Testing Quality Engineer
52 Create Documentation for Prototype Programmer 1,Programmer 2
53 Sign Off Project Manager
54 Prototype 3 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
55 Design & Build Functional Requirements FR11 through FR19 Programmer 1,Programmer 2,Systems Analyst / Desinger
56 Initial Prototype Testing Quality Engineer
57 Prototype 2 Integration Programmer 2,Programmer 1
58 Prototype Integration Testing Project Manager
59 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
60 Change Management Process Programmer 1,Programmer 2,Project Manager
61 Revision 1 Quality Engineer
62 Implement Revision 1 Changes Project Manager,Quality Engineer
63 Revision 1 Testing Project Manager,Systems Analyst / Desinger
64 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
65 Change Management Process Programmer 1,Programmer 2
66 Revision 2 Quality Engineer
67 Implement Revision 2 Changes Programmer 1,Programmer 2,Quality Engineer
68 Revision 2 Testing Quality Engineer
69 Create Documentation for Prototype Programmer 1,Programmer 2
70 Sign Off Project Manager
71 Prototype 4 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
72 Design & Build Functional Requirements FR20 through FR28 Programmer 1,Programmer 2,Systems Analyst / Desinger
73 Initial Prototype Testing Quality Engineer
74 Prototype 3 Integration Programmer 1,Programmer 2
75 Prototype Integration Testing Project Manager
76 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
77 Change Management Process Programmer 1,Programmer 2,Project Manager
78 Revision 1 Quality Engineer
79 Implement Revision 1 Changes Project Manager,Quality Engineer
80 Revision 1 Testing Project Manager,Systems Analyst / Desinger
81 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
82 Change Management Process Programmer 1,Programmer 2
83 Revision 2 Quality Engineer
84 Implement Revision 2 Changes Programmer 1,Programmer 2,Quality Engineer
85 Revision 2 Testing Quality Engineer
86 Create Documentation for Prototype Programmer 1,Programmer 2
87 Sign Off Project Manager
88 Prototype 5 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
89 Design & Build Functional Requirements FR29 through FR37 Programmer 1,Programmer 2,Systems Analyst / Desinger
90 Initial Prototype Testing Quality Engineer
91 Prototype 4 Integration Programmer 1,Programmer 2
92 Prototype Integration Testing Project Manager
93 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
94 Change Management Process Programmer 1,Programmer 2,Project Manager
95 Revision 1 Quality Engineer
96 Implement Revision 1 Changes Project Manager,Quality Engineer
97 Revision 1 Testing Project Manager,Systems Analyst / Desinger
98 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
99 Change Management Process Programmer 1,Programmer 2
100 Revision 2 Quality Engineer
101 Implement Revision 2 Changes Programmer 1,Programmer 2,Quality Engineer
102 Revision 2 Testing Quality Engineer
103 Create Documentation for Prototype Programmer 1,Programmer 2
104 Sign Off Project Manager
105 Prototype 6 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
106 Design & Build Functional Requirements FR38 through FR46 Programmer 1,Programmer 2,Systems Analyst / Desinger
107 Initial Prototype Testing Quality Engineer
108 Prototype 5 Integration Programmer 1,Programmer 2
109 Prototype Integration Testing Project Manager
110 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
111 Change Management Process Programmer 1,Programmer 2,Project Manager
112 Revision 1 Quality Engineer
113 Implement Revision 1 Changes Project Manager,Quality Engineer
114 Revision 1 Testing Project Manager,Systems Analyst / Desinger
115 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
116 Change Management Process Programmer 1,Programmer 2
117 Revision 2 Quality Engineer
118 Implement Revision 2 Changes Programmer 1,Programmer 2,Quality Engineer
119 Revision 2 Testing Quality Engineer
120 Create Documentation for Prototype Programmer 1,Programmer 2
121 Sign Off Project Manager
122 Prototype 7 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
123 Design & Build Functional Requirements FR47 through FR55 Programmer 1,Programmer 2,Systems Analyst / Desinger
124 Initial Prototype Testing Quality Engineer
125 Prototype 6 Integration Programmer 1,Programmer 2
126 Prototype Integration Testing Project Manager
127 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
128 Change Management Process Programmer 1,Programmer 2,Project Manager
129 Revision 1 Quality Engineer
130 Implement Revision 1 Changes Project Manager,Quality Engineer
131 Revision 1 Testing Project Manager,Systems Analyst / Desinger
132 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
133 Change Management Process Programmer 1,Programmer 2
134 Revision 2 Quality Engineer
135 Implement Revision 2 Changes Programmer 1,Programmer 2,Quality Engineer
136 Revision 2 Testing Quality Engineer
137 Create Documentation for Prototype Programmer 1,Programmer 2
138 Sign Off Project Manager
139 Prototype 8 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
140 Design & Build Functional Requirements FR56 through FR66 Programmer 1,Programmer 2,Systems Analyst / Desinger
141 Initial Prototype Testing Quality Engineer
142 Prototype 7 Integration Programmer 1,Programmer 2
143 Prototype Integration Testing Project Manager
144 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
145 Change Management Process Programmer 1,Programmer 2,Project Manager
146 Revision 1 Quality Engineer
147 Implement Revision 1 Changes Project Manager,Quality Engineer
148 Revision 1 Testing Project Manager,Systems Analyst / Desinger
149 Solicit & Review User Feed Back Project Manager,Systems Analyst / Desinger
150 Change Management Process Programmer 1,Programmer 2
151 Revision 2 Quality Engineer
152 Implement Revision 2 Changes Programmer 1,Programmer 2,Quality Engineer
153 Revision 2 Testing Quality Engineer
154 Create Documentation for Prototype Programmer 1,Programmer 2
155 Sign Off Project Manager
156 Tuning & Integration Programmer 1,Programmer 2,Project Manager,Quality Engineer,Systems Analyst / Desinger
157 Final Prototype Integration Programmer 1,Programmer 2
158 Final Prototype Integration Testing Quality Engineer
159 Solicit & Review User Feedback Project Manager,Systems Analyst / Desinger
160 Final Changes Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger
161 Change Testing Quality Engineer
162 Final Documentation Programmer 1,Programmer 2
163 Sign off Project Manager

5.3 Schedule

ID Task Name Duration Start Finish Predecessors Resource Names
1 Scheduling Software 96.75 days Mon 18/10/10 Tue 1/03/11 Programmer 1,Programmer 2,Project Manager,Quality Engineer,Systems Analyst / Desinger
2 Initiating & Planning 1 day Mon 18/10/10 Mon 18/10/10 Project Manager
3 Develop Project Charter 1 day Mon 18/10/10 Mon 18/10/10 Project Manager
4 Develop Project Plan 1 day Mon 18/10/10 Mon 18/10/10 Project Manager
5 Analysis 1 day Tue 19/10/10 Tue 19/10/10 3 Project Manager
6 Prepare SUR & Acceptance Criteria 1 day Tue 19/10/10 Tue 19/10/10 Project Manager
7 Design 9.5 days Wed 20/10/10 Tue 2/11/10 Project Manager,Systems Analyst / Desinger
8 Functional Requirements 3 days Wed 20/10/10 Fri 22/10/10 Project Manager,Systems Analyst / Desinger
9 Review Inputs 1 day Wed 20/10/10 Wed 20/10/10 6 Project Manager,Systems Analyst / Desinger
10 Analyse Requirements 1 day Thu 21/10/10 Thu 21/10/10 9 Project Manager,Systems Analyst / Desinger
11 Produce SRS 1 day Fri 22/10/10 Fri 22/10/10 10 Project Manager,Systems Analyst / Desinger
12 System Design Document 3 days Mon 25/10/10 Wed 27/10/10 Project Manager,Systems Analyst / Desinger
13 Review Inputs 1 day Mon 25/10/10 Mon 25/10/10 11 Project Manager,Systems Analyst / Desinger
14 Analyse Requirements 1 day Tue 26/10/10 Tue 26/10/10 13 Project Manager,Systems Analyst / Desinger
15 Produce System Design Document 1 day Wed 27/10/10 Wed 27/10/10 14 Project Manager,Systems Analyst / Desinger
16 Test Plan 3.5 days Thu 28/10/10 Tue 2/11/10 Project Manager,Quality Engineer
17 Review Inputs 0.5 days Thu 28/10/10 Thu 28/10/10 6,15 Project Manager,Quality Engineer
18 Develop Test Strategy 1 day Thu 28/10/10 Fri 29/10/10 17 Project Manager,Quality Engineer
19 Develop Test Cases 1 day Fri 29/10/10 Mon 1/11/10 18 Project Manager,Quality Engineer
20 Produce Test Plan 1 day Mon 1/11/10 Tue 2/11/10 19 Project Manager,Quality Engineer
21 Development & Integration Testing 78.75 days Tue 2/11/10 Mon 21/02/11 7 Programmer 1,Programmer 2,Project Manager,Quality Engineer,Systems Analyst / Desinger
22 Prototype 1 8.25 days Tue 2/11/10 Fri 12/11/10 20 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
23 Design & Build Functional Requirement FR1 1 day Tue 2/11/10 Wed 3/11/10 Programmer 1,Programmer 2,Systems Analyst / Desinger
24 Initial Prototype Testing 0.25 days Wed 3/11/10 Wed 3/11/10 23 Quality Engineer
25 Solicit & Review User Feed Back 1 day Wed 3/11/10 Thu 4/11/10 24 Project Manager,Quality Engineer
26 Change Management Process 0.5 days Thu 4/11/10 Fri 5/11/10 25 Programmer 1,Programmer 2,Project Manager,Systems Analyst / Desinger
27 Revision 1 2.75 days Fri 5/11/10 Tue 9/11/10 26 Programmer 1,Programmer 2,Project Manager,Quality Engineer,Systems Analyst / Desinger
28 Implement Revision 1 Changes 1 day Fri 5/11/10 Mon 8/11/10 Programmer 1,Programmer 2
29 Revision 1 Testing 0.25 days Mon 8/11/10 Mon 8/11/10 28 Quality Engineer
30 Solicit & Review User Feed Back 1 day Mon 8/11/10 Tue 9/11/10 29 Project Manager,Systems Analyst / Desinger
31 Change Management Process 0.5 days Tue 9/11/10 Tue 9/11/10 30 Project Manager,Systems Analyst / Desinger
32 Revision 2 1.25 days Wed 10/11/10 Thu 11/11/10 27 Programmer 1,Programmer 2,Quality Engineer
33 Implement Revision 2 Changes 1 day Wed 10/11/10 Wed 10/11/10 31 Programmer 1,Programmer 2
34 Revision 2 Testing 0.25 days Thu 11/11/10 Thu 11/11/10 33 Quality Engineer
35 Create Documentation for Prototype 1 day Thu 11/11/10 Fri 12/11/10 24,27,32 Programmer 1,Programmer 2,Quality Engineer
36 Sign Off 0.5 days Fri 12/11/10 Fri 12/11/10 35 Project Manager
37 Prototype 2 9 days Fri 12/11/10 Thu 25/11/10 36 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
38 Design & Build Functional Requirements FR2 through FR10 1 day Fri 12/11/10 Mon 15/11/10 Programmer 1,Programmer 2,Systems Analyst / Desinger
39 Initial Prototype Testing 0.25 days Mon 15/11/10 Mon 15/11/10 38 Quality Engineer
40 Prototype 1 Integration 1 day Tue 16/11/10 Tue 16/11/10 39 Programmer 1,Programmer 2
41 Prototype Integration Testing 1 day Wed 17/11/10 Wed 17/11/10 40 Project Manager
42 Solicit & Review User Feed Back 1 day Thu 18/11/10 Thu 18/11/10 41 Project Manager,Systems Analyst / Desinger
43 Change Management Process 0.5 days Fri 19/11/10 Fri 19/11/10 42 Programmer 1,Programmer 2,Project Manager
44 Revision 1 2.75 days Fri 19/11/10 Wed 24/11/10 43 Quality Engineer
45 Implement Revision 1 Changes 1 day Fri 19/11/10 Mon 22/11/10 Project Manager,Quality Engineer
46 Revision 1 Testing 0.25 days Mon 22/11/10 Mon 22/11/10 45 Project Manager,Systems Analyst / Desinger
47 Solicit & Review User Feed Back 1 day Mon 22/11/10 Tue 23/11/10 46 Project Manager,Systems Analyst / Desinger
48 Change Management Process 0.5 days Tue 23/11/10 Wed 24/11/10 47 Programmer 1,Programmer 2
49 Revision 2 1.25 days Wed 24/11/10 Thu 25/11/10 44 Quality Engineer
50 Implement Revision 2 Changes 1 day Wed 24/11/10 Thu 25/11/10 48 Programmer 1,Programmer 2,Quality Engineer
51 Revision 2 Testing 0.25 days Thu 25/11/10 Thu 25/11/10 50 Quality Engineer
52 Create Documentation for Prototype 1 day Wed 24/11/10 Thu 25/11/10 42,43,44 Programmer 1,Programmer 2
53 Sign Off 0.5 days Thu 25/11/10 Thu 25/11/10 52 Project Manager
54 Prototype 3 10.25 days Thu 25/11/10 Thu 9/12/10 53 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
55 Design & Build Functional Requirements FR11 through FR19 1 day Thu 25/11/10 Fri 26/11/10 Programmer 1,Programmer 2,Systems Analyst / Desinger
56 Initial Prototype Testing 0.25 days Fri 26/11/10 Fri 26/11/10 55 Quality Engineer
57 Prototype 2 Integration 1 day Mon 29/11/10 Mon 29/11/10 56 Programmer 2,Programmer 1
58 Prototype Integration Testing 1 day Tue 30/11/10 Tue 30/11/10 57 Project Manager
59 Solicit & Review User Feed Back 1 day Wed 1/12/10 Wed 1/12/10 58 Project Manager,Systems Analyst / Desinger
60 Change Management Process 0.5 days Thu 2/12/10 Thu 2/12/10 59 Programmer 1,Programmer 2,Project Manager
61 Revision 1 2.75 days Thu 2/12/10 Tue 7/12/10 60 Quality Engineer
62 Implement Revision 1 Changes 1 day Thu 2/12/10 Fri 3/12/10 Project Manager,Quality Engineer
63 Revision 1 Testing 0.25 days Fri 3/12/10 Fri 3/12/10 62 Project Manager,Systems Analyst / Desinger
64 Solicit & Review User Feed Back 1 day Fri 3/12/10 Mon 6/12/10 63 Project Manager,Systems Analyst / Desinger
65 Change Management Process 0.5 days Mon 6/12/10 Tue 7/12/10 64 Programmer 1,Programmer 2
66 Revision 2 1.25 days Tue 7/12/10 Wed 8/12/10 61 Quality Engineer
67 Implement Revision 2 Changes 1 day Tue 7/12/10 Wed 8/12/10 65 Programmer 1,Programmer 2,Quality Engineer
68 Revision 2 Testing 0.25 days Wed 8/12/10 Wed 8/12/10 67 Quality Engineer
69 Create Documentation for Prototype 1 day Wed 8/12/10 Thu 9/12/10 66,59,61 Programmer 1,Programmer 2
70 Sign Off 0.5 days Thu 9/12/10 Thu 9/12/10 69 Project Manager
71 Prototype 4 10.25 days Fri 10/12/10 Fri 24/12/10 54 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
72 Design & Build Functional Requirements FR20 through FR28 1 day Fri 10/12/10 Fri 10/12/10 Programmer 1,Programmer 2,Systems Analyst / Desinger
73 Initial Prototype Testing 0.25 days Mon 13/12/10 Mon 13/12/10 72 Quality Engineer
74 Prototype 3 Integration 1 day Mon 13/12/10 Tue 14/12/10 73 Programmer 1,Programmer 2
75 Prototype Integration Testing 1 day Tue 14/12/10 Wed 15/12/10 74 Project Manager
76 Solicit & Review User Feed Back 1 day Wed 15/12/10 Thu 16/12/10 75 Project Manager,Systems Analyst / Desinger
77 Change Management Process 0.5 days Thu 16/12/10 Thu 16/12/10 76 Programmer 1,Programmer 2,Project Manager
78 Revision 1 2.75 days Thu 16/12/10 Tue 21/12/10 77 Quality Engineer
79 Implement Revision 1 Changes 1 day Thu 16/12/10 Fri 17/12/10 Project Manager,Quality Engineer
80 Revision 1 Testing 0.25 days Fri 17/12/10 Fri 17/12/10 79 Project Manager,Systems Analyst / Desinger
81 Solicit & Review User Feed Back 1 day Mon 20/12/10 Mon 20/12/10 80 Project Manager,Systems Analyst / Desinger
82 Change Management Process 0.5 days Tue 21/12/10 Tue 21/12/10 81 Programmer 1,Programmer 2
83 Revision 2 1.25 days Tue 21/12/10 Wed 22/12/10 78 Quality Engineer
84 Implement Revision 2 Changes 1 day Tue 21/12/10 Wed 22/12/10 82 Programmer 1,Programmer 2,Quality Engineer
85 Revision 2 Testing 0.25 days Wed 22/12/10 Wed 22/12/10 84 Quality Engineer
86 Create Documentation for Prototype 1 day Wed 22/12/10 Thu 23/12/10 83,76,78 Programmer 1,Programmer 2
87 Sign Off 0.5 days Thu 23/12/10 Fri 24/12/10 86 Project Manager
88 Prototype 5 10.25 days Fri 24/12/10 Fri 7/01/11 71 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
89 Design & Build Functional Requirements FR29 through FR37 1 day Fri 24/12/10 Mon 27/12/10 Programmer 1,Programmer 2,Systems Analyst / Desinger
90 Initial Prototype Testing 0.25 days Mon 27/12/10 Mon 27/12/10 89 Quality Engineer
91 Prototype 4 Integration 1 day Mon 27/12/10 Tue 28/12/10 90 Programmer 1,Programmer 2
92 Prototype Integration Testing 1 day Tue 28/12/10 Wed 29/12/10 91 Project Manager
93 Solicit & Review User Feed Back 1 day Wed 29/12/10 Thu 30/12/10 92 Project Manager,Systems Analyst / Desinger
94 Change Management Process 0.5 days Thu 30/12/10 Thu 30/12/10 93 Programmer 1,Programmer 2,Project Manager
95 Revision 1 2.75 days Fri 31/12/10 Tue 4/01/11 94 Quality Engineer
96 Implement Revision 1 Changes 1 day Fri 31/12/10 Fri 31/12/10 Project Manager,Quality Engineer
97 Revision 1 Testing 0.25 days Mon 3/01/11 Mon 3/01/11 96 Project Manager,Systems Analyst / Desinger
98 Solicit & Review User Feed Back 1 day Mon 3/01/11 Tue 4/01/11 97 Project Manager,Systems Analyst / Desinger
99 Change Management Process 0.5 days Tue 4/01/11 Tue 4/01/11 98 Programmer 1,Programmer 2
100 Revision 2 1.25 days Tue 4/01/11 Wed 5/01/11 95 Quality Engineer
101 Implement Revision 2 Changes 1 day Tue 4/01/11 Wed 5/01/11 99 Programmer 1,Programmer 2,Quality Engineer
102 Revision 2 Testing 0.25 days Wed 5/01/11 Wed 5/01/11 101 Quality Engineer
103 Create Documentation for Prototype 1 day Thu 6/01/11 Thu 6/01/11 100,93,95 Programmer 1,Programmer 2
104 Sign Off 0.5 days Fri 7/01/11 Fri 7/01/11 103 Project Manager
105 Prototype 6 10.25 days Fri 7/01/11 Fri 21/01/11 88 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
106 Design & Build Functional Requirements FR38 through FR46 1 day Fri 7/01/11 Mon 10/01/11 Programmer 1,Programmer 2,Systems Analyst / Desinger
107 Initial Prototype Testing 0.25 days Mon 10/01/11 Mon 10/01/11 106 Quality Engineer
108 Prototype 5 Integration 1 day Mon 10/01/11 Tue 11/01/11 107 Programmer 1,Programmer 2
109 Prototype Integration Testing 1 day Tue 11/01/11 Wed 12/01/11 108 Project Manager
110 Solicit & Review User Feed Back 1 day Wed 12/01/11 Thu 13/01/11 109 Project Manager,Systems Analyst / Desinger
111 Change Management Process 0.5 days Thu 13/01/11 Fri 14/01/11 110 Programmer 1,Programmer 2,Project Manager
112 Revision 1 2.75 days Fri 14/01/11 Tue 18/01/11 111 Quality Engineer
113 Implement Revision 1 Changes 1 day Fri 14/01/11 Mon 17/01/11 Project Manager,Quality Engineer
114 Revision 1 Testing 0.25 days Mon 17/01/11 Mon 17/01/11 113 Project Manager,Systems Analyst / Desinger
115 Solicit & Review User Feed Back 1 day Mon 17/01/11 Tue 18/01/11 114 Project Manager,Systems Analyst / Desinger
116 Change Management Process 0.5 days Tue 18/01/11 Tue 18/01/11 115 Programmer 1,Programmer 2
117 Revision 2 1.25 days Wed 19/01/11 Thu 20/01/11 112 Quality Engineer
118 Implement Revision 2 Changes 1 day Wed 19/01/11 Wed 19/01/11 116 Programmer 1,Programmer 2,Quality Engineer
119 Revision 2 Testing 0.25 days Thu 20/01/11 Thu 20/01/11 118 Quality Engineer
120 Create Documentation for Prototype 1 day Thu 20/01/11 Fri 21/01/11 117,110,112 Programmer 1,Programmer 2
121 Sign Off 0.5 days Fri 21/01/11 Fri 21/01/11 120 Project Manager
122 Prototype 7 10.25 days Fri 21/01/11 Fri 4/02/11 105 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
123 Design & Build Functional Requirements FR47 through FR55 1 day Fri 21/01/11 Mon 24/01/11 Programmer 1,Programmer 2,Systems Analyst / Desinger
124 Initial Prototype Testing 0.25 days Mon 24/01/11 Mon 24/01/11 123 Quality Engineer
125 Prototype 6 Integration 1 day Tue 25/01/11 Tue 25/01/11 124 Programmer 1,Programmer 2
126 Prototype Integration Testing 1 day Wed 26/01/11 Wed 26/01/11 125 Project Manager
127 Solicit & Review User Feed Back 1 day Thu 27/01/11 Thu 27/01/11 126 Project Manager,Systems Analyst / Desinger
128 Change Management Process 0.5 days Fri 28/01/11 Fri 28/01/11 127 Programmer 1,Programmer 2,Project Manager
129 Revision 1 2.75 days Fri 28/01/11 Wed 2/02/11 128 Quality Engineer
130 Implement Revision 1 Changes 1 day Fri 28/01/11 Mon 31/01/11 127 Project Manager,Quality Engineer
131 Revision 1 Testing 0.25 days Mon 31/01/11 Mon 31/01/11 130 Project Manager,Systems Analyst / Desinger
132 Solicit & Review User Feed Back 1 day Mon 31/01/11 Tue 1/02/11 131 Project Manager,Systems Analyst / Desinger
133 Change Management Process 0.5 days Tue 1/02/11 Wed 2/02/11 132 Programmer 1,Programmer 2
134 Revision 2 1.25 days Wed 2/02/11 Thu 3/02/11 129 Quality Engineer
135 Implement Revision 2 Changes 1 day Wed 2/02/11 Thu 3/02/11 133 Programmer 1,Programmer 2,Quality Engineer
136 Revision 2 Testing 0.25 days Thu 3/02/11 Thu 3/02/11 135 Quality Engineer
137 Create Documentation for Prototype 1 day Thu 3/02/11 Fri 4/02/11 134,127,129 Programmer 1,Programmer 2
138 Sign Off 0.5 days Fri 4/02/11 Fri 4/02/11 137 Project Manager
139 Prototype 8 10.25 days Mon 7/02/11 Mon 21/02/11 122 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger,Project Manager
140 Design & Build Functional Requirements FR56 through FR66 1 day Mon 7/02/11 Mon 7/02/11 Programmer 1,Programmer 2,Systems Analyst / Desinger
141 Initial Prototype Testing 0.25 days Tue 8/02/11 Tue 8/02/11 140 Quality Engineer
142 Prototype 7 Integration 1 day Tue 8/02/11 Wed 9/02/11 141 Programmer 1,Programmer 2
143 Prototype Integration Testing 1 day Wed 9/02/11 Thu 10/02/11 142 Project Manager
144 Solicit & Review User Feed Back 1 day Thu 10/02/11 Fri 11/02/11 143 Project Manager,Systems Analyst / Desinger
145 Change Management Process 0.5 days Fri 11/02/11 Fri 11/02/11 144 Programmer 1,Programmer 2,Project Manager
146 Revision 1 2.75 days Fri 11/02/11 Wed 16/02/11 145 Quality Engineer
147 Implement Revision 1 Changes 1 day Fri 11/02/11 Mon 14/02/11 144 Project Manager,Quality Engineer
148 Revision 1 Testing 0.25 days Mon 14/02/11 Mon 14/02/11 147 Project Manager,Systems Analyst / Desinger
149 Solicit & Review User Feed Back 1 day Tue 15/02/11 Tue 15/02/11 148 Project Manager,Systems Analyst / Desinger
150 Change Management Process 0.5 days Wed 16/02/11 Wed 16/02/11 149 Programmer 1,Programmer 2
151 Revision 2 1.25 days Wed 16/02/11 Thu 17/02/11 146 Quality Engineer
152 Implement Revision 2 Changes 1 day Wed 16/02/11 Thu 17/02/11 150 Programmer 1,Programmer 2,Quality Engineer
153 Revision 2 Testing 0.25 days Thu 17/02/11 Thu 17/02/11 152 Quality Engineer
154 Create Documentation for Prototype 1 day Thu 17/02/11 Fri 18/02/11 151,144,146 Programmer 1,Programmer 2
155 Sign Off 0.5 days Fri 18/02/11 Mon 21/02/11 154 Project Manager
156 Tuning & Integration 6.5 days Mon 21/02/11 Tue 1/03/11 139 Programmer 1,Programmer 2,Project Manager,Quality Engineer,Systems Analyst / Desinger
157 Final Prototype Integration 1 day Mon 21/02/11 Tue 22/02/11 154 Programmer 1,Programmer 2
158 Final Prototype Integration Testing 1 day Tue 22/02/11 Wed 23/02/11 157 Quality Engineer
159 Solicit & Review User Feedback 1 day Wed 23/02/11 Thu 24/02/11 158 Project Manager,Systems Analyst / Desinger
160 Final Changes 1 day Thu 24/02/11 Fri 25/02/11 159 Programmer 1,Programmer 2,Quality Engineer,Systems Analyst / Desinger
161 Change Testing 1 day Fri 25/02/11 Mon 28/02/11 160 Quality Engineer
162 Final Documentation 1 day Mon 28/02/11 Tue 1/03/11 161 Programmer 1,Programmer 2
163 Sign off 0.5 days Tue 1/03/11 Tue 1/03/11 162 Project Manager

5.3.3 Gantt Chart

Gantt Chart

Appendix

6.1. Entity Diagram

Entity Diagram

6.2. Function Point Assignment

I.D Description Type Complexity Points
FR1 The system will have a master form containing tabs for each job elements EQ High 6
FR2 The system will have a tab form for job element: Curtains/Sheers/Tie-backs/Cushions ILF Low 7
FR3 The system will have a ‘reminder date to order/date to write worksheets’ insidetab job element: Curtains/Sheers/Tie-backs/Cushions EQ Low 3
FR4 The system will have a popup ‘reminder date to order/date to write worksheets’ on tab job element: Curtains/Sheers/Tie-backs/Cushions inside diary EQ Low 3
FR5 The system will have a ‘reminder date ordered/date worksheet given to maker’ inside tab job element: Curtains/Sheers/Tie-backs/Cushions EQ Low 3
FR6 The system will have ‘follow up date if not arrived/completed by’ inside tab job element: Curtains/Sheers/Tie-backs/Cushions EQ Low 3
FR7 The system will have popup ‘follow up date if not arrived/completed by’ on tab job element: Curtains/Sheers/Tie-backs/Cushions inside diary EQ Low 3
FR8 The system will have ‘arrival date/completion date’ inside tab job element: Curtains/Sheers/Tie-backs/Cushions EQ Low 3
FR9 The system will have ‘finalisation/outstanding items’ inside tab job element: Curtains/Sheers/Tie-backs/Cushions EQ Low 3
FR10 The system will have ‘popup finalisation/outstanding items’ on tab job element: Curtains/Sheers/Tie-backs/Cushions inside diary EQ Low 3
FR11 The system will have a form tab for job element: Tracks/Wooden-pelmets ILF Low 7
FR12 The system will have ‘reminder date to order/date to write worksheets’ inside tab job element: Tracks/Wooden-pelmets EQ Low 3
FR13 The system will have popup ‘reminder date to order/date to write worksheets’ on tab job element: Tracks/Wooden-pelmets EQ Low 3
FR14 The system will have ‘reminder date ordered/date worksheet given to maker’ inside tab job element: Tracks/Wooden-pelmets EQ Low 3
FR15 The system will have ‘follow up date if not arrived/completed by’ inside tab job element: Tracks/Wooden-pelmets EQ Low 3
FR16 The system will have ‘follow up date if not arrived/completed by’ on tab job element: Tracks/Wooden-pelmets inside diary EQ Low 3
FR17 The system will have ‘arrival date/completion date’ inside tab job element: Tracks/Wooden-pelmets EQ Low 3
FR18 The system will have ‘finalisation/outstanding items’ inside tab job element: Tracks/Wooden-pelmets EQ Low 3
FR19 The system will have ‘popup finalisation/outstanding items’ on tab job element: Tracks/Wooden-pelmets inside diary EQ Low 3
FR20 The system will have a form tab for job element: Blinds/Shutters ILF Low 7
FR21 The system will have ‘reminder date to order/date to write worksheets’ inside tab job element: Blinds/Shutters EQ Low 3
FR22 The system will have popup ‘reminder date to order/date to write worksheets’ on tab job element: Blinds/Shutters inside diary EQ Low 3
FR23 The system will have ‘reminder date ordered/date worksheet given to maker’ inside tab job element: Blinds/Shutters EQ Low 3
FR24 The system will have ‘follow up date if not arrived/completed by’ inside tab job element: Blinds/Shutters EQ Low 3
FR25 The system will have popup ‘follow up date if not arrived/completed by’ on tab job element: Blinds/Shutters inside diary EQ Low 3
FR26 The system will have ‘arrival date/completion date’ inside tab job element: Blinds/Shutters EQ Low 3
FR27 The system will have ‘finalisation/outstanding items’ inside tab job element: Blinds/Shutters EQ Low 3
FR28 The system will have popup ‘finalisation/outstanding items’ on tab job element: Blinds/Shutters inside diary EQ Low 3
FR29 The system will have a form tab for job element: Padded-pelmets ILF Low 7
FR30 The system will have ‘reminder date to order/date to write worksheets’ inside tab job element: Padded-pelmets EQ Low 3
FR31 The system will have popup ‘reminder date to order/date to write worksheets’ on tab job element: Padded-pelmets inside diary EQ Low 3
FR32 The system will have ‘reminder date ordered/date worksheet given to maker’ inside tab job element: Padded-pelmets EQ Low 3
FR33 The system will have ‘follow up date if not arrived/completed by’ inside tab job element: Padded-pelmets EQ Low 3
FR34 The system will have popup ‘follow up date if not arrived/completed by’ on tab job element: Padded-pelmets inside diary EQ Low 3
FR35 The system will have ‘arrival date/completion date’ inside tab job element: Padded-pelmets EQ Low 3
FR36 The system will have ‘finalisation/outstanding items’ inside tab job element: Padded-pelmets EQ Low 3
FR37 The system will have popup ‘finalisation/outstanding items’ on tab job element: Padded-pelmets inside diary EQ Low 3
FR38 The system will have a form tab for job element: Installation/Customer notification – ready to collect ILF Low 7
FR39 The system will have ‘reminder date to order/date to write worksheets’ inside tab job element: Installation/Customer notification – ready to collect EQ Low 3
FR40 The system will have popup ‘reminder date to order/date to write worksheets’ on tab job element: Installation/Customer notification – ready to collect inside diary EQ Low 3
FR41 The system will have ‘reminder date ordered/date worksheet given to maker’ inside tab job element: Installation/Customer notification – ready to collect EQ Low 3
FR42 The system will have ‘follow up date if not arrived/completed by’ inside tab job element: Installation/Customer notification – ready to collect EQ Low 3
FR43 The system will have popup ‘follow up date if not arrived/completed by’ on tab job element: Installation/Customer notification – ready to collect inside diary EQ Low 3
FR44 The system will have ‘arrival date/completion date’ inside tab job element: Installation/Customer notification – ready to collect EQ Low 3
FR45 The system will have ‘finalisation/outstanding items’ inside tab job element: Installation/Customer notification – ready to collect EQ Low 3
FR46 The system will have popup ‘finalisation/outstanding items’ on tab job element: Installation/Customer notification – ready to collect inside diary EQ Low 3
FR47 The system will have a form tab for job element: Fabric/Trims & Accessories being ordered ILF Low 7
FR48 The system will have ‘reminder date to order/date to write worksheets’ inside tab job element: Fabric/Trims & Accessories being ordered EQ Low 3
FR49 The system will have popup ‘reminder date to order/date to write worksheets’ on tab job element: Fabric/Trims & Accessories being ordered inside diary EQ Low 3
FR50 The system will have ‘reminder date ordered/date worksheet given to maker’ inside tab job element: Fabric/Trims & Accessories being ordered EQ Low 3
FR51 The system will have ‘follow up date if not arrived/completed by’ inside tab job element: Fabric/Trims & Accessories being ordered EQ Low 3
FR52 The system will have popup ‘follow up date if not arrived/completed by’ on tab job element: Fabric/Trims & Accessories being ordered EQ Low 3
FR53 The system will have ‘arrival date/completion date’ inside tab job element: Fabric/Trims & Accessories being ordered EQ Low 3
FR54 The system will have ‘finalisation/outstanding items’ inside tab job element: Fabric/Trims & Accessories being ordered EQ Low 3
FR55 The system will have popup ‘finalisation/outstanding items’ on tab job element: Fabric/Trims & Accessories being ordered inside diary EQ Low 3
FR56 The system will have one tab on the master form for all recurring tasks such as BAS, cleaning the windows, cleaning showroom, check various stock levels, ETC ILF Low 7
FR57 The system will have ‘date to start task’ for each task in the recurring task form EQ Low 3
FR58 The system will have popup ‘date to start task’ from the recurring task form into the diary EQ Low 3
FR59 The system will have ‘title of person who should do the task’ for all tasks inside the recurring task form EQ Low 3
FR60 The system will have ‘name of person in current position to do task’ inside the recurring task form EQ Low 3
FR61 The system will have ‘deadline to finish task’ inside the recurring task form EQ Low 3
FR62 The system will have popup ‘deadline to finish task’ from recurring task form into diary EQ Low 3
FR63 The system will have ‘user input notes section’ inside recurring task form EQ Low 3
FR64 The system will have popup ‘alert to inform customers of delays’ into diary EQ Low 3
FR65 The system will allow supervisors to sign off important tasks ILF Low 7
FR66 The system will not allow jobs to be deleted without supervisor sign off ILF Low 7
Total 237

6.3. MS Project 2010 File

Gantt & Network Diagrams are included as part of this file.

Please note this file uses the MS Project 2010 File Format.

Scheduling Software.mpp

6.4 Risk Assesment

Risk No Risk (Cause and Consequence) Pre-Strategy Risk Exposure Strategy Description Residual Risk Exposure
R01 Risk: Excelsior staff do not use system.

Cause: Lack of communication and business buy-in.

Consequence: System perceived as a failure to business and benefits not realised.

Likelihood:  Medium

High
  • Provide clear documentation on how processes will work.
  • Involve teams in iterative testing and feedback cycle.  Follow-up with individual teams to ensure understanding.
  • Post implementation follow-up to ensure processes working as expected.
Medium
R02 Risk: Lack of executive level support.

Cause: Competing priorities or lack of understanding.

Consequence: Project does not progress, or is delayed excessively.

Likelihood: Low

Medium
  • Provide regular updates on project status
  • Provide one on one briefings when required to ensure understanding
  • Ensure project board members understand and own their Board responsibilities.
Low
R03 Risk: Database system is poorly supported by Superlative post implementation.

Cause: Unclear handover from project team to operational team.

Consequence: Database System is operationally unstable.

Likelihood: Medium

Medium
  • Develop support and handover document which outlines technical and operational procedures for full proof management of Database system.
  • Have operational team sign off on handover of this system and expected standards expected of Database System.
Low
R04 Risk: Scope Creep in project

Cause: Increased customer requirements added after planning stage of project.

Consequence: Project is delayed.

Likelihood: Medium

Low
  • Develop detailed project direction and apply methods from the Suplative Project Management Framework.
  • Monitor progress at each stage to keep track of timelines.
Low
R05 Risk: Lack of example documentation and project team experience with full ICT Project Lifecycle.

Cause: ICT Project Lifecycle has been reviewed and no example/case study documentation exists.

Consequence: Project is delayed.

Likelihood: Low

Low
  • Request assistance from Project Management Office when necessary.
Low
R06 Risk: Failure to meet deadline of tasks

Cause: Tasks made unclear by Project Manager

Consequence: Project is delayed

Likelihood: Medium

Medium
  • Develop detailed WBS
  • Review weekly reports
  • Hold weekly meetings
Low
R07 Risk: Changes to resource level

Cause: Staff find another job, staff have other priorities

Consequence: Delay project

Likelihood: Medium

 

Low
  • Understand motivational factors of team members
  • Provide constant feedback and communiction
Low
R08 Risk: Change in client requirements

Cause: clients changes their mind

Consequence: Scope change

Likelihood: High

Medium
  • Have clear scope and scope statement sign off
  • Report on progress and communicate weekly with client
Medium
R09 Risk: Hardware compatibility issues

Cause: any new hardware want communicate with existing infrastructure

Consequence: Budget cost blow out and delay in project

Likelihood: Low

Low
  • New hardware is out of scope for this project
Low
R10 Risk: Software compatibility issues

Cause: Proposed software want communicate with existing software

Consequence: Blow out in budget and delay in project

Likelihood: Medium

Medium
  • Ensure that software is compatible with existing systems
  • Conduct testing
Medium
R11 Risk: Budget problems

Cause: Client can not longer fund project

Consequence: Project stop

Likelihood: Medium

High
  • Ensure down payment and agreement has been reached
Medium
R12 Risk: Poor communication

Cause: Project team and/or client are not communicating

Consequence: Requirements not understood, Errors in project phases, delay in project, misunderstood scope, budget blow out

Likelihood: High

High
  • Hold regular meetings
  • Prepare and submit reports regularly
  • Open communication channels
Medium
R13 Risk: Conflict among team members

Cause: Different personalities clashing
Consequence: Delay in project and integrity of team suffers

Likelihood: Medium

Medium
  • Maintain a certain culture that members can adhere to
  • Put in place a conflict resolution process
Medium

 

 

 

Posted in University Papers | Tagged , , , , , | Leave a comment

Knowledge Areas for IT Project Management

University: Griffith University, Brisbane, Australia
Degree: Bachelor of Information Technology Accelerated
Date: August 23, 2010
Class/Course: 2001ICT Project Management
Paper Grade: 15.33/20

Table of contents

Learn from other’s mistakes.
Do your research first.
Have a plan.
Follow standards and use templates.
Communicate and coordinate with others.
Allow enough time.
Reuse proven code.
Use Checklists.
Test, test, test.. and carefully review your work.
Test again with a third party.

In his article, “10 ways to avoid mistakes during project development”, Alan Norton describes 10 items or methods that can be used to avoid critical mistakes during the project planning and management processes (Norton, 2010). Each of these 10 items or methods can be addressed through the application of the 42 project management activities, grouped within the nine Knowledge Areas, as described in the Project Management Body of Knowledge, otherwise known as the ”PMBOK”.

Learn from other’s mistakes.

Mistakes are often the result of poor project planning and/or process execution, something which can easily be prevented during project the planning stages (Project Scope Management and Project Risk Management) and if need be remedied during both the execution stages and monitoring stages (Project Quality Management) of a project.

During the planning stages a clear set of goals or defined requirements greatly aids in the Project Managers ability to properly assess the risks associated with the project. The Collect Requirements and Define Scope processes associated with the Project Scope knowledge area are fundamental to this action. Having a clearly defined set of goals allows for the Project Manager to perform in depth Qualitative and Quantitative Risk Analysis, along with the development of a Risk Response plan, all of which are associated with the Project Risk Management knowledge area.

In the event of an issue or mistake, the Quality Assurance and Quality Control Procedures associated with the Project Quality Management knowledge area, could be used to rectify the issue, and to make sure the project meets the required project goals.

Do your research first.

As Norton states, “there is little excuse for mistakes made because you didn’t do the proper research in advance” (Norton, 2010).  Proper research should be performed during the planning phrase of a project. As such there are a number of processes available to a project manager to make sure that he or she has the correct information at his or her disposal, specifically, collection of project requirements, definition of project scope and the creation of a Work Breakdown Structure or WBS. All of which are part of the Scope Management knowledge area.

The Work Breakdown Structure is perhaps the most important deliverable at this stage, as it not only defines the scope of the project, but it also gives the project manager an overview of all required work within a project. This in turn allows for the proper execution of each unit of work required for successful completion of the project.

Have a plan.

This is perhaps, the single most important item on Norton’s list, and is best served by developing a project management plan, associated with the Project Integration Management knowledge area.

A Project Management Plan is a deliverable item, used to coordinate all planning activities and execution of the project.  Development of a Project Plan requires knowledge of all aspects of a given project. As such the project manager should consult with members of the project team as well as the applicable stakeholders. The Project Plan, while unique should include information relating to project objectives or goals, project organisation, timeline and of course budget.

Follow standards and use templates.

The use of templates offers a number of benefits, not only cost and time savings, but there are also quality benefits. Templates and other forms of standard items are often purchased, or acquired from an outside source. Be that a different department or team within an organisation or an external organisation altogether. In this case, a purchasing or acquisition decision would need to be made. This procedure is known as Planning Procurements, and falls under the Project Procurement Knowledge area.

In order for effective procurement, the project manager should develop a Procurement Management Plan. This plan should detail how the procurement process will be managed and maintained for the duration of the project.

Communicate and coordinate with others.

Communication is quite possibly the most important part of every project (Schwalbe, 2010). Regular communication between team members along with stakeholders is a crucial component of success. As such there are a number of processes dedicated to the effective management of communication, all of which are associated with the Project Communications Management knowledge area. As such is it important that each of the processes association with this knowledge area are completed in full and to the best ability of the project manager and associated team members.

As such an effective Communications Management Plan document, produced from an efficient use of the Plan Communications process helps to mitigate any potential issues. Another factor that may come into play is the choice of communication medium. For instance email may be fine for internal team communications, but hard copy (printed documents) may be better for stakeholder progress reports.

Allow enough time.

It is no secret that IT Projects have historically run over schedule and over budget, making Project Time Management an extremely important knowledge area. In order to allow enough time for a project to be completed, an effective Project Schedule must be developed.

However a Project Schedule cannot be developed without defining the actives that need to be complete along with estimating how long each of those activates will take to complete.  Both of which rely on effective communication between the project manager, stakeholders and team members, along with an established WBS. The WBS acts as a de facto activity list, which is in turn broken up into more defined activities.  Once the activities list has been defined it can be sequenced to find interrelated or dependent activities, in order to help prioritise the activity work list, and estimate the required resources for each activity.

Once completed, consultations with the team members responsible for a particular activity should be conducted in order to properly estimate the required duration of each activity.

Reuse proven code.

Reusing proven technologies is great way to save time and to maintain quality of a project. In order to make use of existing technologies it is important to know if there are technologies that are applicable to your project. As such the Project Scope Management and Project Procurement knowledge areas are fundamental to the assessment of these technologies.

For example without knowing the project requirements it would be impossible to assess if a particular technology is applicable to your project. Or, how do you assess a technology to see if it was applicable without a procurement planning detailing the selection criteria for external acquisitions.

Use Checklists.

Checklists are most commonly associated with the Project Quality Management knowledge area, as they are commonly used during the Quality Assurance and Quality Control processes of a project. Checklists offer a simple way to establish whether or not a project has met the criteria or goals set out in the Project Plan. They can also be used to provide a simple framework for Stakeholders and team members to sign off on units.

Test, test, test.. and carefully review your work.

Quality Assurance is quickly becoming one of the most talked about aspects of IT Project Management, as again, it is no secret that IT Projects are far from being error free. That mere fact alone makes the Project Quality Management knowledge area of great importance to modern IT Projects. This is especially true of the Quality Assurance process.

The Quality Assurance process enables project managers to quickly gauge the health of an IT projects through the use of benchmarking and quality audits. Benchmarking allows for comparative assessments of current and previous projects, along with providing immediate feedback, allowing for adjustments to be made to the project in order to deliver the necessary level of quality.

Quality audits allow for specific metrics to be applied to a particular activity in order to assess its ability to meet the goals of the overall project.

Test again with a third party.

Again, as pointed out previously IT Project Quality is of great importance due, as such expert user or third party testing is of great importance. Third party testing can be facilitated through the use of the Project Human Resource Management and Project Management knowledge areas.

The Acquire Project Team process from the Project Human Resource knowledge area facilitates the acquisition of third party users or testers, while the Project Quality Control process from the Project Quality Management knowledge area provides the framework needed for those users/testers to perform quality control on the project.

Summary

Of the addressed knowledge areas there are four that standout as having the most impact when considering Alan Norton’s “10 ways to avoid mistakes during project development”.

They are, in order:

  1. Project Scope Management
  2. Project Communications Management
  3. Project Quality Management
  4. Project Procurement Management

However, this in no way diminishes the impact of the other knowledge areas as a whole. Each knowledge area addressed plays a critical role during project management process.

Special attention should be paid to the following knowledge areas during each phase of the project as they appear to be reoccurring issues when dealing with IT Projects:

  • Project Communications Management
  • Project Quality Management
  • Project Time Management

References

Norton, A. (2010). 10 ways to avoid mistakes during project development.
Retrieved from http://blogs.techrepublic.com.com/10things/?p=1360

Schwalbe, K (2010). Information Technology Project Management, Sixth edition. Boston, MA: Course Technology

Posted in University Papers | Tagged , , , | Leave a comment

Improving offline customers shopping experience through web-based Information Systems.

University: Griffith University, Brisbane, Australia
Degree: Bachelor of Information Technology Accelerated
Date: May 12, 2010
Class/Course: 1410ICT Introduction to Information Systems
Paper Grade: Unavailable
Author(s):
Jeremy Cade, Robert Forrester
Abstract: Woolworths Limited stands to gain a substantial technical advantage over its competitors through the strategic use of public facing information systems.

Table of Contents

1. Summary
2. History and Operational Context
3. Typical Offline (In store) Customer Behaviour
3.1 Survey Results
4. Possible Areas of Improvement
4.1 Awareness of the Current Weekly Specials
4.2 Geolocation
4.3 Email Delivery of weekly specials
4.4 Awareness of store layout and product placement locations
5. Conclusion
6. Appendix
6.1 Website Usability Sequences
7. Reference List

1. Summary

Woolworths Limited stands to gain a substantial technical advantage over its competitors through the strategic use of public facing information systems. Implementation of location aware online services for both Personal computer and smart phone have the potential to drastically reduce the amount of time that Woolworths customers spend looking for information and increase the convenience factor of shopping at Woolworths stores.

2. History and Operational Context

Woolworths Limited, founded in Sydney, Australia in September of 1924 is the largest retailing group and second largest private employer in Australia. Woolworths started life as “Wallworths Bazzar Limited”, a take on the F.W. Woolworths (now Foot Locker Inc) name. Woolworths focuses on the Australian and New Zealand retail sectors. Woolworths Limited operates a under a number of brands, including: Woolworths, Safeway, Thomas Dux, ALH Group, BWS, Dan Murphy’s, Langton, Big W, Dick Smith, Tandy, Countdown, Foodtown, Fresh Choice and SuperValue.

Woolworths has a strong market share, currently commanding 30% of the Australian food, liquor and grocery market (InvestSMART: Woolworths Limited (WOW) 2010), with reported 2009 financial year sales in the range of $49.6 billion dollars (Woolworths Limited, 2009, p.3).

Woolworths has a high level of commitment to their staff, the community, and the environment but most importantly Woolworths values their customers. Woolworths stated strategy is to provide customers with greater convenience, quality, lower prices and better value, range, freshness and service, (Woolworths Limited 2009, p.25).

Woolworths offers a range of incentives to help retain customers, including the weekly “Fresh food sales” and the Everyday Rewards Program, which allows shoppers to earn Qantas frequent flyer points & a 4c per litre discount on fuel purchases made via co-branded petrol stations.  Woolworths see the Everyday Rewards Program as an integral part of their sales process (Woolworths Limited 2009, p.8).

3. Typical Offline (In store) Customer Behaviour

We surveyed a range of Woolworth’s customers, asking 7 basic questions:

  1. Do you or a member of your Family/Household shop at Woolworths?
  2. How many times per week, on average, do you visit a grocery store?
  3. Before visiting a grocery store do you check the available specials for that week? I.e. Woolworths Weekly Specials or Coles Red Spot Specials?
  4. Have you ever used the Woolworths Website to check the Weekly Specials?
  5. Did you know that Woolworths has an online shopping facility?
  6. How do you feel about the possibility of receiving weekly grocery specials via email?
  7. Did you know that Woolworths has a smart phone (iPhone, Android etc.) compatible website?

3.1 Survey Results

  • Of the total number of customers surveyed 80% said that they or a member of their family / household shopped at Woolworths. Of those 80%, 60% visits a grocery store, one to two times per week, 35% visited less than once per week, and 5% visited three to four times per week.
  • All respondents stated that they did not check the available specials for the week before visiting a grocery store. We have marked this as a possible area for improvement.
  • All respondents stated that they have not used the Woolworths Website to check for Weekly specials. We have marked this as a possible area for improvement.
  • Of the total number of customers surveyed, 80% stated that they were aware of Woolworths’ online shopping facilities.  20% responded that they were not aware of the online shopping facilities.
  • Of the total number of customers surveyed, 16.7% said they were happy to receive emails from Woolworths in relation to its weekly specials, 66.7% said they were okay with the idea and 16.7% stated that they did not want to receive email from Woolworths. We have marked this as a possible area for improvement.
  • Of the total number of customers surveyed, 90% stated that they did not know Woolworths had a smart phone compatible website. We have marked this as a possible area for improvement.

Observations were also made in regards to purchasing and general movement of customers whilst in store:

  • It was noticed that most customers were purchasing a small number of goods and using the express checkout or self-service check out options.
  • Customers were often asking employees for directions or locations of specific items and goods within the store. We have marked this as a possible area for improvement.
  • Customers regularly made purchasing decisions based on the price per unit indicators. i.e.; Toilet Paper pricing has the unit price along with a price per 100 sheets. This made for easy price comparison between competing brands.
  • Customer service provided by staff was generally provided in a timely manner and of a high standard.

Informal discussions were also held with the general public in order to gauge the general knowledge of Woolworths Mobile/Smart phone internet offerings. However no quantitative data was recorded from those discussions.

4. Possible Areas of Improvement

As a result of our survey and in-store observations we have identified two key areas that we feel may be improved through the appropriate use of available Information Technologies, and reflect Woolworths strategic goals.

These are:

  1. Awareness of the current weekly specials.
  2. Awareness of store layout and product placement locations.

4.1 Awareness of the Current Weekly Specials

One of Woolworths’ stated strategic goals is to provide its customers with better value; one way Woolworths does this is to provide weekly specials on various items to its customers, these specials vary from location to location as supply and demand dictates.

Currently Woolworths’ weekly specials are delivered in 2 formats:

  • Physical print brochures, delivered to residential address in the areas surrounding store locations.
  • Online format:

However as our survey results have demonstrated, Woolworths’ customers are not taking advantage of the weekly special information provided in these formats. We believe this is due to the significant barriers presented when trying to find information in relation to the customer’s physical location, along with the lack of electronic mail delivery of the weekly specials to interested customers.

4.2 Geolocation

When we consider the smart phone compatible version of the Woolworths website, it requires up to 5 actions on the users behalf before they are able to view the weekly specials relevant to their location (Sequence 1). The PC compatible version requires a similar number of steps, before redirecting to a third party website.

The number of steps required before being able to view the weekly specials could be drastically reduced by making both the smart phone and PC versions of the Woolworths’s website location aware. This can be done via the Geographic Location Application Programming Interface (geolocation API) available as part of the HTML5 standard (W3C 2010). The geolocation API is a client side technology which allows users to make a decision to share their current location with Woolworths’ website server (Figures 1 & 2).

Figure 1 - Geolocation API behaviour on an iPhone

Figure 1 - Geolocation API behaviour on an iPhone

Figure 2 - Geolocation API behaviour on an iPhone

Figure 2 - Geolocation API behaviour on an iPhone

The geolocation API provides the users location as latitude and longitude coordinates, which can then be used to locate the closet Woolworths store location to the user.

Currently iPhone, Android and Palm smart phones support the use of geolocation API’s along with the popular Firefox (Figure 3 & 4), Chrome and Safari PC desktop browsers. Other devices and browsers that do not support geolocation API’s can be gracefully degraded to the current, or a more streamlined version of the current website.

Figure 3 – Geolocation API behaviour in Firefox

Figure 3 – Geolocation API behaviour in Firefox

Figure 4 - Geolocation API behaviour in Firefox

Figure 4 - Geolocation API behaviour in Firefox

At this stage Woolworths’ major competitors (e.g. Coles) are yet to implement this technology. This presents an opportunity for Woolworths to be the market leader in the use of geographic targeting to deliver relevant information to its customers based on their physical location.

As the geolocation API is a client side technology no additional infrastructure purchases are necessary on Woolworths’ part, however there is an investment requirement to make the appropriate code changes to both website database (backend) and public facing PC and smart phone websites in order to properly support geolocation features.

Once in place, geolocation technology could easily be implemented on within other sections of the Woolworths website. A prime candidate would be the Price Check feature.

There are numerous benefits associated with this technology, they are:

  • Increased customer awareness of the weekly specials available to them in their geographic location.
  • Increased ability to record the location of Woolworths customers locations when using the Woolworths websites.

4.3 Email Delivery of weekly specials

Woolworths does not currently distribute its weekly specials to its customers via email. In our survey we asked Woolworths’ customers if they were comfortable with receiving weekly emails containing information relating to the weekly specials offered by Woolworths. 83.4% of customers surveyed responded favourably to this idea.

Currently Woolworths’ major competition, Coles, operates an eNewsletter, which Coles uses to convey information about its weekly specials, competitions and other news related to Coles (Fig 5 & 6).

Figure 5 – Coles eNewsletter Signup

Figure 5 – Coles eNewsletter Signup

Figure 6 – Coles eNewsletter detail

Figure 6 – Coles eNewsletter detail.

Email newsletters are a proven low cost, measurable, communication method. There are numerous Email Marketing service providers who specialises in large scale mass mail-outs for corporate clients, such as Vision6 (Vision6: Our Clients 2010) and Gen3Media (Gen3Media: Corporate 2010). Each of these providers allows for personalisation of the emails sent to each customer based on a number of customisable factors. These could include:

  • Customers geographic location
  • Customers previous purchasing habits
  • Customers indicated items of interest i.e.; Health Foods, Fresh fruit or vegetables etc.

As Email Marketing is provided as “Software as a Service” by a third party provider no additional infrastructure would need to purchase on the part of Woolworths. A small investment would need to be made on modifying the Woolworths PC website to accommodate email capture to be used with the Email Marketing services.

Benefits of the proposed weekly email system include:

  • Increased level of communication with customers.
  • Increased customer awareness of available weekly specials

4.4 Awareness of store layout and product placement locations

During in-store observations of Woolworths’ customers, a recurring pattern of user behaviour was recorded: Customers often had trouble finding a specific product’s location within the store.  The current process for customers to find a specific product would be to look walk around the store, possibly reading the isle signs, finally they would ask a staff member to point them in the right direction. This process while functional is somewhat time consuming, both on behalf of the customer and the staff member, and doesn’t satisfy Woolworth’s strategic goal of providing its customers with greater convenience.

We suggest making available, online (via PC and smart phone) a detailed isle map of product locations for each store, similar in function to Google Maps. A customer could search for a product by product name or product type and have that products location displayed on a store map, allowing them to easily navigate to the correct area of the store to retrieve the product.

This system could also be integrated with the weekly specials and inventory management systems of each store in order to provide the best possible information to the customer. As an example: A customer may search for toilet paper in the Moorooka store, the system would then provide a map showing where in the store toilet paper is located, along with the relevant weekly special information for that group of products and inventory levels of popular brands of toilet paper.

A system of this type would require a substantial investment in mapping & inventory tracking technologies in order to accurately track and place items within any given store. There would also need to be substantial investment in both PC and smart phone version of the Woolworths website in order to provide a seamless experience for the customer in order to allow them to easily and quickly locate the desired product.

Again at this stage none of Woolworths’ major competitors (eg. Coles) have implemented this type of system. This presents an opportunity for Woolworths to be the market leader in this type of integrated online/offline customer service.

There are a number of benefits associated with this type of system, not only from the customers prospective, but also for the efficiency of Woolworths’ in-store operations.

From the customers perspective a product mapping and location systems allows for:

  • Decreased periods of time spent waiting for assistance.
  • Decreased periods of time spent looking for specific products.
  • Increased levels of convenience when searching for products.
  • Increased awareness of potential savings or specials.

From Woolworths’ operation perspective a product mapping and location system allows for:

  • Decrease in the amount of interruptions to staff performing stocking, or re-shelving duties.
  • Decrease in the number of staff needed to effectively manage customers’ expectations in-store. Resulting in HR cost savings.

5. Conclusion

Surveys indicated that Woolworths’ customers are currently either not aware of or are not taking advantage of Woolworths’ weekly specials. Additional in-store observations indicated that customers often had issues locating specific products whilst shopping at Woolworths stores.

We have recommended the introduction of three online (PC and smart phone) technologies that we believe will help Woolworths’ offline customers to overcome these issues. They are:

  • Develop and implement location aware services (geolocation API) for Woolworths PC and smart phone websites to help with the delivery of weekly specials and other information specific to the customer’s geographic locations, i.e. Price Check information.
  • Develop and implement electronic mail delivery of weekly specials.
  • Develop and implement in-store mapping services to help Woolworths’ customer’s location specific products in store without assistance from Woolworths’ staff members.

Currently none of Woolworths major competitors make use of geolocation technologies or in-store mapping technologies. This presents Woolworths with an opportunity to become a market leader in the adoption of these technologies.

6. Appendix

6.1 Website Usability Sequences

Screen shots were made with a clean browser. Browser cache, history & cookies were all cleared prior to opening the site.

6.1.1 Sequence 1

Woolworths Smart Phone Website: setting users preferred store location.

Screen 1: Home

Screen 1 clearly demostrates that the default location is Town Hall, NSW.
In this demonstration, the user is physically located in Moorooka, QLD, ~925km’s from Town Hall, NSW

Screen 2: Store Locator

Screen 2 requires the user to enter the post code of their location in order to find the closest store. This is a issue for travellers who may not know the post code of the area. Once the post code has been entered, the page reloads and the user needs to select the desired store location.

Screen 3: Store Information

Screen 3 demonstrates the store information provided. At this point the user may select to view the the store location, latest specials or set the this store as their default location.

Screen 4: Default Location

Screen 4 demonstrates the setting of the users default store location.

Screen 5: Local Specials

Screen 5 demonstrates the local specials available at the Moorooka, QLD Woolworth’s store for the week May 10th, 2010.

7. Reference List:

InvestSMART: Woolworths Limited (WOW), 2010, viewed 4th May 2010,
<http://www.investsmart.com.au/shares/asx/Woolworths-WOW.asp>

Gen3Media: Corporate, 2010, viewed 7th May 2010,
<http://www.gen3media.com.au/index.php?option=com_content&task=view&id=43&Itemid=70>

Vision6: Our Clients, 2010, viewed 7th May 2010,
<http://www.vision6.com.au/our_clients.html>

W3C (2009), ‘Geolocation API Specification’, 2010, viewed 9th May 2010,
<http://www.w3.org/TR/geolocation-API/>

Woolworths Limited (2009), ‘Annual Report’
<http://thomson.mobular.net/thomson/7/3022/4089/>

Posted in University Papers | Tagged , , , , , , | Leave a comment

Charles Babbage’s Analytical Engine

University: Griffith University, Brisbane, Australia
Degree: Bachelor of Information Technology Accelerated
Date: April 15, 2010
Class/Course: 1004ICT Foundations of Computing & Communication
Paper Grade: Unavailable

Between 1834 and 1836, Charles Babbage, an English Mathematician began work his Analytical Engine. It was proposed to be a mechanical general purpose computer, one which, at least on paper shares many of the features of what we now think of as a being necessary to fit the description of a modern computer system. Had it been built it would have been capable of basic arithmetic addition, subtraction, multiplication and division, it would have also had a basic set of instructions allowing a user to create programs using punch cards. Its physical layout of a “store” (memory) and a “mill” (processing unit) would have mirrored what we would now know to be a Von Neumann based architecture. Babbage’s vision of the Analytical Engine was such that it would have been able to evaluate arbitrary formulas in a similar way to a modern computer with absolute integrity of the results. (Wilkes, 1991).

Work on the Analytical Engine began during the summer of 1834 after the 10 year Difference Engine No.1 Project had finished. Initial work proceeded at pace with a workable plan devised in the middle of 1836. During this time that Babbage was able to devise the first automated direct multiplication and division, at which point Babbage had devised a four function calculator, capable of all of the basic arithmetic operations (addition, subtraction, multiplication and division). (Swade, 2000), the idea of separate areas of the Engine for arithmetical operations and the “mill” and an area for storage of numbers, the “store” (terms borrowed from the textile industry) (Swade, 2000). Babbage also suggested the use of punch cards as a way to control the Analytical Engine, a technology borrowed from the Jacquard Loom (Essinger, 2004).

Multiplication and division operation were controlled by “barrels”, the surface of which contained fixed studs, similar to what can be seen on a children’s music box. Unfortunately the process of multiplication and division was time consuming, due in part for the need of repeated operations. To accommodate the execution time need for multiplication and division, Babbage set to work reducing the amount of time needed for addition. The difficulty with addition lay in the ability to carry tens. Babbage’s felt that his previous method of Successive Carry, used in the Difference Engine No.1 was too slow, as it required an extra unit of time for each digit in the working numbers. Babbage states: “At last I came to the conclusion that I had exhausted the principle of successive carriage. I concluded also that nothing but teaching the Engine to foresee and then to act upon that foresight could ever lead me to the object I desired, namely, to make the whole or any unlimited number of carriages in one unit of time.” (Morrison, P. & E. 1961. p. 53). The result of this line of thought was the anticipating carriage. Babbage thought this to be the single most important part of the Analytical Engine. The ENIAC machine would later use an electronic implementation of this idea (Thornton, 2007).

There was another issue relating to the carriage of tens. The amount of machinery required. Babbage found that it would be more economical to centralise all of the expensive machinery in one place rather than spreading it around the Engine as needed. So he split the engine into two distinct parts (Swade, 2000). The section of the engine dedicated to performing arithmetical functions he named the “mill”, the section of the engine used to store numbers was named the “store”. The Store consisted of columns of wheels which held the numbers that were to be used during operations. Today we would refer to the “store” as memory. The Mill on the other hand, contained all the machinery needed for arithmetical functions.  Numbers would be called up from the Store and sent to the Mill via a set of axes that would act as buffer registers. This arrangement is very similar to today’s modern electronic computers. The architecture, now known as the Von Neumann architecture was first described in a paper published in 1945 by John Von Neumann (Swade, 2000). In that paper Von Neumann describes the internal layout of a modern electronic computer. One of the main features of that paper is the separation of the central processor for general memory. An idea clearly demonstrated by Babbage over 100 years earlier.

Prior to deciding on the use of punch cards, Babbage had experimented with studded barrels to control the sequence of operations to be executed by the engine. This approached had a level of inflexibility that was easily overcome with the use of punch cards (Bromley, 1982). Babbage realised that by using punch cards he could create a device with essentially unlimited capacity. The engine was designed to read in such a way, that the engine would register any given hole if a metal rod was able to pierce it. Babbage also devised a number of ways to ensure that cards were read correctly.

Babbage proposed four different types of punch cards: operation cards, number cards, variable cards and combinatorial cards.

Operation cards told the engine which type of operation to perform – addition, subtraction, multiplication or division. Operation cards could be strung together to perform set sequences of operations. This could be extended without limit. Variable cards specified where in the store a number was to be fetched and where to store a result of an operation. Number cards held numerical data. These cards could be used for setting initial values in the store automatically. They could also be used as secondary or reserve memory. Babbage had planned for number cards to be able to express numbers up to 1050-1 (Essinger, 2004). Combinatorial cards added the ability to loop back and iterate a through a set of operations.

Punch cards also have the distinct advantage of being a permanent record of both inputs and output from the engine, for instance, when a number is read out from the machine the figure wheel containing that number is set to zero, this is termed a destructive read out, where the number is lost after being read. Punch cards allow for a non-destructive read out of the values stored on those cards. This would have allowed for libraries of operation, variable and number cards to be created and used at will. It would also have allowed for a user to re-run a particular sequence and be confident that the result was correct. Babbage himself states “There is no limit to the number of such cards which may be strung together according to the nature of the operations required.” (Morrison, P. & E. 1961. p. 62).

By combining sets of punch cards it was possible to give instruction to the Analytical Engine, in a way similar to a modern computer. An operation card could correspond to the action to be performed or an Opcode using modern terminology, a variable card would specify where in memory to store or retrieve a value from, or an Operand. Number cards could act as user input in order to set values in the store as an alternative to setting them by hand; they could also be used for the input of pre-computed values (Swade, 2000).

Babbage’s engine was now capable of executing sequences of instructions entered via punch cards, which used the internal operations (microprograms) in any order, what we would today refer to as a program. The descendant of punch card technology would later be used with great success by IBM with their multiplying punch systems (Thornton, 2000).

While the Analytical Engine was programmable via punch cards, it appears that not effort was made by Babbage to store users programs internally in the engine. As such it was not a Stored-Program computer (Bromley 2000). This is in stark contrast to today’s modern computers. Each time a program was to be run the user would need to enter the full sequence of punch, where the concept of stored programs is fundamental to their operation. However the technology required for stored program computers wouldn’t be fully realised until the end of the 1940s.

As Babbage’s goal for the Analytical Engine was integrity of the results, he spent great amounts of time ensuring that the engine was resilient when encountering errors. For instance he devised a system of wedges to lock each figure wheel in place during the engines operations. The wedges would be withdrawn for the short periods of time when that figure wheel was required for an operation. The wedge would also help to keep figure wheels in correct alignment. If a figure wheel was out of alignment the wedge would class with the gears on the wheel and cause the engine to jam. Using this method Babbage could theoretically use the jamming of the engine as an error detection mechanism (Swade, 2000).

Babbage’s Analytical Engine was an extremely complex mechanical wonder, with many similarities to today’s modern computers. Particularly in the areas programmability along with logical and physical layout of the engine, in that Babbage choose to use punch cards and the segregation of the Store and Mill.

It could be said that with his design of the a centralised processing until along with a memory store that he is a father of modern computing, and indeed many text books make this claim, however as Swade (2000, p.93) states it was not until the 1960’s that Babbage’s work was studied in any great detail by academics. Allan Bromley goes one further and says with some authority: “Babbage had effectively no influence on the design of the modern computer” (Swade, 2000, p.309)

REFERENCES

Bromley, A. G.  (2000). Babbage’s Analytical Engine Plans 28 and 28a. The Programmers Interface [Electronic version]. Annals of the History of Computing, 22(4) 5-19.

Bromley, A. G. (1982). Charles Babbage’s Analytical Engine, 1838 [Electronic version]. Annals of the History of Computing, 4(3) 196-217

Essinger, J. (2004). Jacquard’s Web. How a hand-loom led to the birth of the information age. Oxford: Oxford University Press.

Morrison, P. and E. (Eds) (1961) Charles Babbage and his Calculating Engines. Of the Analytical Engine (pp. 52-72) Canada: Dover Publications, Inc.

Swade, D. (2000). The Cogwheel Brain. London: Little, Brown and Company

Thorton, J. (2007). The Foundations of Computing and the Information Technology Age. – A Historical, Sociological and Philosophical Enquiry. Sydney: Pearson Education Australia.

Wilkes, M. V.  (1991). Babbage’s Expectations for his Engines [Electronic version].  Annals of the History of Computing, 13(2) 141-145

Posted in University Papers | Tagged , , | Leave a comment

Word for the wise..

Face PalmWhen doing detach – copy of SQL databases:

Try not to delete both the original database and the copy.

Posted in Stupidity | Leave a comment

A WTF moment with Entity Framework 4.0

Table Design in SQL Express 2008 R2

Figure 1: Business Table design. You will notice that the letter row is marked as a 1 charcter "char" type.

I’m currently working a new website that uses Entity Framework 4.0 as it’s data access layer. I’m still learning the ropes as it’s the first time I’ve used Entity Framework in a project, but the way Entity Framework handles T-SQL char data types struck me as being quite odd. Specifically the fact that Entity Framework maps char to String.

Figure 2: Mapping Details in EF 4: Notice that the letter row is now mapped as a String data type?

I would have thought that a T-SQL char data type would be mapped to the equivalent .Net char data type.

It’s my understanding that the String data type is a Class instead of being an value type or structure, and that its essentially an array or sequence of System.Char unicode characters. Not to mention Strings are immutable, so WHY map a Char to String?

It’s actually caused me a good 15 minutes of pain, simply because I didn’t bother to look at the mappings. Essentially what I was trying to do was return a IQueryable of my Business entities based on this particular character field. Guess what, passing a char when .Net expects a String doesn’t work.

public IQueryable<Business> getBusinessesByChar(char charAlpha) {
 return db.Businesses.Where(b => b.letter.Equals(charAlpha));
 }

Doesn’t Work..
“Unable to create a constant value of type ‘System.Object’. Only primitive types (‘such as Int32, String, and Guid’) are supported in this context.”
Que?

public IQueryable<Business> getBusinessesByChar(char charAlpha) {
 return db.Businesses.Where(b => b.letter.Equals(alpha.toString()));
 }

Doesn’t Work..
“LINQ to Entities does not recognize the method ‘System.String ToString()’ method, and this method cannot be translated into a store expression.”
Great..

public IQueryable<Business> getBusinessesByChar(char charAlpha) {
 //SCREW YOU EF!!
 String alpha = charAlpha.ToString();
 return db.Businesses.Where(b => b.letter.Equals(alpha));
 }

That works.. Seriously.. How is creating a new String object and passing it to LINQ any different from using the char.ToString() method?

If anyone out that feels like cluing me in, then by all means, I gave up trying to work it out after 15 mins.

Posted in Entity Framework | Tagged , , | 1 Comment

Generating Page Slugs using T-SQL

I recently came across a situation where I needed to generate page Slugs from some 5,000,000+ records in a MS-SQL database. Unfortunately I didn’t have Remote Desktop or Telnet access to the SQL box which precluded me from running one of my normal C# or Powershell solutions, and the idea of doing all of the processing over the wire just didn’t appeal to me. So I decided the best course of action would be to use T-SQL to generate the Slugs for me.

After posting the question to StackOverflow and doing some searching on Google I came across Pinal Dave’s UDF_ParseAlphaChars function. Luckily it had most of the functionality I required, so it only required minor modifications to get the desired result.

The modified code is below.

CREATE FUNCTION [dbo].[UDF_GenerateSlug]
(
@str VARCHAR(100)
)
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @IncCharLoc SMALLINT
SET @str = LOWER(@str)
SET @IncCharLoc = PATINDEX('%[^0-9a-z] %',@str)
WHILE @IncCharLoc &gt; 0
BEGIN
SET @str = STUFF(@str,@IncCharLoc,1,'')
SET @IncCharLoc = PATINDEX('%[^0-9a-z] %',@str)
END
SET @str = REPLACE(@str,' ','-')
RETURN @str
END

GO

First of all I need to leave spaces so they can be replaced with hyphens, and secondly I only require lower case characters. You may also notice that I'm doing a case transformation against the incoming string. This is due to the SQL database being setup with case insensitivity.

I would like to thank Pinal Dave for his original code.

Posted in T-SQL | Tagged , | 1 Comment

Kicking around in Tokyo

I’ve been in Tokyo for about a month, and it’s interesting to say the least.

I haven’t had a lot of time to explore the city as yet, but I have to been to a few of the major city centres, along with some of the major cultural sites.

I’m definitely hurting with the exchange rate. My weekly expendable wage is converting to around 25,000 JPY, while my rent is 56,000 per month. So that’s a good chunk of that money gone.

The other major expense is food and transport.

Anything resembling red meat will run about $30 AUD per kilogram, for the standard off the shelf grocery store cuts.

DSC00636 

Transport runs me around 1,000 JPY every time I leave the house, being that I need to change trains & lines at least once to get to any major destination in greater Tokyo.

So far my two favourite places in Tokyo are the Shinjuku Goen and Kokyo (The Imperial Residence).

DSC00645

DSC00646

DSC00648

DSC00652

DSC00675

DSC00679

DSC00665

DSC00666

DSC00669

I’m yet to visit any of the major shrines, but I hope to do so in the coming days.

Posted in japan | Leave a comment

My Lack of Design Skills..

I think it’s safe to say that my design skills are amateur at best. Being that I spend 85% of my time creating Google AdWords campaigns, and the other 15% developing or maintaining Asp.Net applications, the longest I spend in any graphics applications is 15 – 20 minutes resizing images for use in Image Ads.

So I was caught a little off guard when one of my friends asked me to help him design a flyer for his upcoming Bboy Bootcamp.

Thankfully he gave me a very clear idea of what he needed done.

The main element was the background, It needed to have a camouflage feel to it. I thought that was easy enough to accomplish. I can use my trusty buddy Google and search for Photoshop Camouflage Tutorials.

Lucky I found a great little tutorial on Quantum Petshop written by a Ryan Foss, which set out some very easy steps for creating a multi-layer camouflage background.

After about 20 minutes of playing around with filters and getting the colours right, I had my camouflage background. I spent another 20 minutes adding text and resizing images, and wollah, a very very basic flyer for the Bboy Bootcamp.

Bboy Bootcamp 2009

I’m actually quite happy with how it turned out, considering that I’m not an artistic person. Thankfully my friend was happy with the end result as well.

It’s not great, I know, but it’s something..

Posted in Work | Leave a comment