IDCS Syllabus - DSD202  - Systems Development

Introduction

The purpose of Systems Development is to give candidates the knowledge of the methods, disciplines, techniques and skills used in IT systems development teams so that they have a thorough appreciation of how such teams operate. This specifically does not require candidates to have any detailed skills in programming or other aspects of the development process. Candidates will, however, be expected to have a good understanding of some of the mathematical techniques that are necessary for system design.

General Objectives

Upon successful completion of this module candidates will be able to demonstrate a satisfactory performance in the following topic areas:

A. Systems Project Team.

Discuss the need for collaboration between users and the systems project team.

B. System Life-Cycle Models.

Define the basic principles, activities and deliverables in each stage of a classical (waterfall) model and other life-cycle models.

C. Software Design.

Describe current software design methods and be able to use some simple examples.

D. Programming Languages.

Classify the properties of groups of common programming languages and their suitability for specific applications.

E. Computer-Related Mathematics.

Apply computer-related mathematics needed in the design and implementation of computer systems.

F. Documentation Standards.

Discuss the need for system documentation to agreed standards.

G. Software Testing.

Describe the management and documentation of software testing from initial design to implementation and operational performance.

Specific Objectives

Objective A: Systems Project Team

A1.Define the range of roles and functions in a typical system development project.

A2.Discuss the relationship between user, analyst and programmer and the need for clear agreement about users' requirements.

A3.Specify the tasks and contributions of the members of a systems project team.

A4.Describe the nature of the “systems cycle” and the need for maintainable systems that have been developed and documented to defined standards.

A5.Apply the concepts of user-driven and user-friendly systems.

Objective B: System Life-Cycle Models

B1.Justify the rationale for the use of a systems development life-cycle.

B2.Describe the stages in the waterfall life-cycle model.

B3.Discuss the objections to the waterfall model.

B4.Show how an alternative model such as the ‘V’ model may be more useful for managing the development process.

B5.Discuss the advantages and applications of other approaches such as the spiral model.

Objective C: Software Design

C1.Name and describe, in outline, some popular structured design methods, including Object Oriented Design. Relate these to complete analysis and design methodologies.

C2Explain the need for software design methods.

C3.Use different methods of specifying design including pseudo-code, structure diagrams, structured flowcharts and decision tables.

C4.Describe the advantages and disadvantages of the use of each of these methods.

C5.Describe the part played by such methods/methodologies in Software Engineering.

Objective D: Programming Languages

D1.Define machine code and show how the CPU executes such code.

D2.Explain why it is impractical to write applications in machine code.

D3.Describe the characteristics of low level, different types of high level and object oriented programming languages.

D4.Describe languages that are used for application programming with desktop GUI based systems.

D5.Describe languages that are used to develop large integrated, database oriented applications.

D6.Discuss the choice of suitable languages for both application and systems software.

Objective E: Computer-Related Mathematics

E1. Identify the characteristics of number systems, describe the benefits and drawbacks of different number systems and why they are used in given applications.

E2.Convert between binary, denary and hexadecimal integers and perform simple operations up to finding the difference between two addresses in four-digit Hex.

E3.Perform basic arithmetic operations on integers and real numbers, including base conversions of reals.

E4.Select appropriate numerical or logical data types and data structures and operate on them.

E5.Generate, append and test check digits.

E6.Define and give examples of a universal set, a subset of a set, the complement of a set, union and intersection of sets.

E7.Draw Venn diagrams to show relations in up to three sets within the universal set.

E8.Use Venn diagrams to demonstrate two-state logic and the operators AND, NOT, OR and XOR.

E9.Construct and use truth tables.

E10. Define and operate on two-dimensional numeric arrays using scalar, vector and array addition and multiplication.

E11. Use simple Cartesian co-ordinates to describe geometrical figures.

E12. Plot simple shapes on graph paper and express them as two-dimensional matrices.

E13. Perform simple vector additions to effect translations.

E14. Enlarge and reduce shapes by matrix manipulations and demonstrate the effects on graph paper.

E15. Reflect shapes by matrix operations.

Objective F: Documentation Standards

F1.Explain the need for documentation and coding standards.

F2.List the attributes of good documentation.

F3.Produce and assess documentation including flowchart, structure diagram and/or decision table, program listing, sample output, and operation instructions for the user and notes on any special techniques used.

F4.List and describe documentation produced at each stage of the system life-cycle.

Objective G: Software Testing

G1.Show how testing forms a part of the processes needed to produce good quality robust software.

G2.Describe a good overall test system strategy. Develop a test plan for a computer program, and suggest suitable test data.

G3.Understand how a programmer should desk check a program design and dry run the corresponding code.

G4.Describe some diagnostic aids generated during compilation or runtime.

G5.Describe some typical facilities available during interactive debugging, including tools that form part of an integrated development environment.

G6.Explain the problems, economics and techniques of program maintenance.

1.5. Notes on Systems Development

Candidates are not required to learn or to use any programming languages. However, they do need to understand the software development process and to communicate with other people who may be members of such a project team or managers of user departments.