|
5.8 Interpersonal Communications
Preamble
This topic deals with individual behaviour and group
dynamics and the application of these principles to the
system development process. There has been a consistent
comment from employers that a high level of interpersonal
communication ability is an essential attribute of IT
staff at all levels. It is important that those seeking
employment in this profession appreciate that it is
largely people-centred rather than technology-centred.
Table of topics
- Written communication
- effective expression
- logical ordering of ideas
- format and content of reports and formal documents
- technical writing and documentation proposals and procedures
- Verbal communication
- structuring material for oral presentation
- visual presentation of information
- the use of appropriate supporting technology
- effective speaking and audience management
- Interpersonal skills
- interview techniques
- managing group dynamics
- technical reviews
- formal and informal meetings
- negotiation skills
- team management and conflict resolution
Context
As well as acquiring general communication skills, IT
professionals should appreciate the working environment
in which they are exercised.
Specific areas in which these skills need to be
employed include :
- the presentation of complex technical matters to a
non-technical audience,
-
the management of peer technical reviews or
walkthroughs,
-
the specification of procedures and structures by
textual and diagrammatic means,
- the selection and management of multi-skilled
development teams with disparate interests and
backgrounds,
- the preparation of documents of a technical nature
such as tenders and requests for proposals,presentations
of technical products and systems proposals.
5.9 Program Design and Implementation
Preamble
This unit deals with the ability to specify a solution to
a problem in a form which is able to be converted to a
machine-executable product which will produce the correct
result for a specified problem. It encompasses the
ability to design a solution to a problem, preferably in
a form which is independent of the target programming
language for its implementation, to translate that design
into the syntax of a programming language and to produce
an executable program which is correct, efficient and
maintainable. The unit also encompasses the aspects of
software documentation which are essential to the
effective use of the software during its lifetime.
Table of topics
- Program specification
- design of documentation to specify the requirements
of a program
- Program design
- algorithm design and associated documentation
- program structure and logic
- data design
-
Programming languages
- levels of languages in terms of machine vs user
orientation
- suitability of languages for problem domains
- an appreciation of the operation of programs at
machine level
- Program implementation
- structure and syntax of a programming language
- the procedures of editing, compiling, linking, etc,
needed to produce an executable program
- internal documentation issues
- Program testing
- formal proof of correctness vs testing procedures
-
design of test data
- program testing methods
- Program documentation
- internal and external program documentation
- differing documentation requirements for technical
staff and users
- Programming paradigms
- an appreciation of the existence of and fundamental
differences between procedural, functional, logic
and object-oriented paradigms
Context
It is expected that candidates will have a working
knowledge of at least one language in one of the
contemporary paradigms. They will be able to design,
code, test, implement and document programs of a moderate
complexity in terms of the nature of the problem and the
data structures and processing techniques required for
its solution.
5.10 Project Management and Quality Assurance
Preamble
This area deals with the methods and problems of managing and assuring the quality of computing system projects, particularly from the viewpoint of the practitioner as a member of the project team. The area takes a balanced approach to software quality in that there is a focus on both product and process issues. Factors that impact quality outcomes associated with all phases of development are addressed. Throughout there should be a constructive focus on quality; that is, quality requirements are planned and specified, processes are then put in place to satisfy these requirements, and these processes are supported by integral processes which ensure that the quality requirements have been satisfied.
Table of Topics
- Concepts and Models
- project definition
- project success
- measuring success
- post-implementation reviews
- project size
- lines of code
- effort/duration
- function points
- project life cycle
-
Project Management Techniques
-
steering committees
-
project justification
-
project planning
-
project development strategies
-
methodologies
-
risk assessment
-
estimation
-
quality assurance
-
scheduling
-
project tracking and reporting
-
Introduction to Software quality
-
Understanding and Measuring Quality
-
The Costs and Benefits of Quality
-
Role of People in Producing Quality Software
-
Factors that Impact the Quality of Software
-
Software Quality Planning
-
Role of Planning
-
Software Quality Requirements
-
Preparing a Software Quality Plan
-
Implementing a Software Quality Plan
-
Preparing a Quality Manual
-
Processes for Assuring the Quality of Software
-
Risk Management
-
Conformance to Standards
-
Reviews, Audits, Walkthroughs and Inspections
-
Verification, Validation and Testing
-
Configuration Management
-
Product Quality
-
Software Product Standards
-
Quality Attributes of Software
-
Product Characteristics of Quality Software
-
Measuring and Evaluating Product Quality and
Associated Metrics
-
Process Quality
-
Software Process Standards
-
Process Definition
-
Process Measurement
-
Process Assessment
-
Process Improvement
-
Capability Evaluation
-
Procurement of Software
-
Post Development Software Quality Assurance
-
Maintenance and Evolution of Software
-
Re-engineering of Software
-
Software Product Quality Improvement
Context
An understanding of the principles, techniques and tools of project management are essential in the management of the inherent complexities of the systems development lifecycle. The study of this area presumes there have been previous studies in systems analysis and software engineering which covers the software life-cycle and the use of associated standards. Proficiency in programming in at least one language is also expected.
5.11 Security
Preamble
Information technology professionals are increasingly
responsible for the incorporation of security services
and mechanisms into overall information systems under
development and in operation. This responsibility is
expected to increase as national and international
Guidelines and legislation are developed and enforced.
The I.T. Professional will need to be familiar with
Social, Governmental and Legal requirements in this area
and to incorporate appropriate technologies into systems
during the development phase with appropriate levels of
security management created for ongoing usage of the
systems.
Table of topics
- Historical Background
-
Role of information technology professionals
-
Societal, Governmental and Legal Imperatives for
Information Systems Security and Privacy
-
International guidelines (OECD Privacy and
Information Systems Security Guidelines)
-
Regional security requirements (European Community)
-
Legal requirements - Australia's Privacy Act, State
privacy and computer security / crime related Acts and
Regulations
-
Australian standards for information security
-
Professional Responsibility and Information Systems
Security
-
Relationships between concepts of Quality, Safety,
Reliability, and Security / Software Engineering
-
Computer Security
-
Hardware requirements and features
- Operating systems security
- Access control, Authentication, Integrity,
Confidentiality e.g. RACF, ACF-2, etc.
-
UNIX security (an example of techniques)
-
Database security
-
Personal computer/Small systems security
-
Security Technologies
-
Access control mechanisms
-
Algorithms - Hash, One-way and Related Functions /
SHA, ISO
-
Cryptography
- Symmetric and Asymmetric techniques
- Commonly-used ciphers: DES, RSA, RC2-4, IDEA, SAFER,
etc.
- Key Management
- Modes of usage
-
Authentication architectures
- Third party schemes/certificates
- Network Security
-
Early proprietary and mainframe technologies - IBM,
DEC
- Open Systems Interconnection security architecture
(ISO 7498-2)
- Security services and mechanisms
- MIT "Kerberos"
- ECMA model - "SESAME"
- Security and telecommunications services
- Computer-telephone integration
- Trusted Systems and Networks
- "Rainbow" series (USA) / National Criteria, e.g.
Canada, Australia, and others
- ITSEC / ITSEM (Europe)
- Concepts of security functionality and
enforcement/verification
- Common criteria
- Significance of trusted systems technologies
- Verification techniques and software engineering
-
Security in the Distributed Systems (Client/Server)
and Object Oriented Environments
-
Security and Specific Industry Requirements
-
Health care industry
-
Banking and finance industry
-
Commercial and military government systems
-
Security Management
-
Responsibilities
-
Organisation
-
Management requirements
5.12 Software Engineering and Methodologies
Preamble
This unit deals with the design and implementation of
programs and large software systems that meet
specifications and are safe, secure, reliable, dependable
and maintainable. It includes models of the software
development process, requirements analysis,
specification, design, implementation, validation and
verification, documentation and the use of appropriate
software tools.
Table of topics
- Fundamentals of Software Engineering
- requirements analysis
-
functional and technical specifications
- process, data and object orientation models
- documentation standards
- software testing
-
software maintenance
- software quality assurance
- formal specification methods
- software configuration management
- Project Management
- project planning, estimation and control
- project evaluation and control techniques
-
team construction and management
- principles of software project management
- prototyping
Context
Candidates should be exposed to the practices of "programming in the large". It is expected that software
assignments will be managed along the same lines as would
be used for the development and implementation of large,
complex systems. The emphasis of this area is not merely
the writing of programs but the team interaction and
project management which is an integral part of a large
software system. There must be an underlying theme of
producing software which is of the quality expected by
the user and which meets the user's specifications.
|