Techniques of Systems Analysis & Specification

Whether an organization chooses to develop a new application system or to purchase a packaged application software product, the success of that new system depends on the degree to which it meets the needs of its users. The systems analyst works with potential user organizations to capture those requirements and to prepare a rigorous system specification that will be the basis either for custom software development or for selecting and customizing an existing software product.

Although systems analysis (SA) may at first seem less tangible and concrete than programming or other branches of Computer Science, it is a rigorous discipline, neither easier nor harder than system design and programming, but entirely different. This course gives the participant confidence in applying SA concepts and techniques to business problems and opportunities and helps him or her make the transition to systems analyst thinking.

Principal lecturer and discussion leader:

Conrad Weisert, President, Information Disciplines, Inc.

Designed for:

Prerequisites:

None; a general familiarity with either business systems or computer technology is assumed.

Length and schedule:

10 half-day (3-hour) sessions.

Subject matter and broad objectives

Upon successfully completing this course you'll have a good understanding of the systems analysis function, its vocabulary, and its repertoire of methods and techniques. You'll be ready to work with more experienced systems analysts on a project team, to take on some SA assignments yourself, or simply to work more effectively in other roles where you have to deal with systems analysts.

We shall examine:

We'll draw our examples from everyday business applications, but most of the concepts you'll learn apply equally well to engineering or other application areas.

Homework assignments and computer use

At the end of each session you’ll be given a short assignment to reinforce the concepts and give you practice in applying techniques. The early assignments focus on some particular concept or technique just introduced, while later ones will offer opportunities to integrate your knowledge from topics covered earlier.

A computer is not required for the assignments. Although some of the techniques we'll be studying are supported by software products (e.g. data dictionary systems, graphic diagramming tools) our assignments will be small enough to be manageable without such computerized facilities.

Of course, you're free to use other computerized tools you may have access to, provided that they don't obscure essential concepts or automate the creative process called for by the assignment. Please see the instructor in advance if you’re in doubt about using any particular tool.

Textbook and readings

In addition to handout material covering essential topics, our main text is James & Susan Robertson: Complete Systems Analysis, Dorset House, ISBN 0-932633-25-0. To conserve class time, you should read the assigned material before each session and be prepared to discuss it.

Grading

Since this course is not for academic credit, it is up to each student whether he or she wishes to receive a grade. The criteria for grading are exactly the same as for an academic course, as explained in the Policy on Grading.

Methodology

In the late 1990’s vigorous arguments are being waged among proponents of different approaches to systems analysis. Most of these arguments center on techniques for documenting and manipulating the results rather than on ways of actually doing the analysis.

We strive to integrate the best practices from all sources, based more upon practical experience in actual projects than upon theoretical appeal. We follow the proven structured analysis framework established by De Marco and others, while taking advantage of recent insights into object-oriented analysis. Where appropriate we adopt useful techniques from the so-called Unified Modeling Language (UML), but we don’t try to use the entire UML, most of which is better suited to internal system design than to systems analysis.

As time permits, we shall discuss in class the pros and cons of various other popular techniques.


Content and Preliminary Schedule

Date

Topic

Reading

Assignment

14 Sept.
  1. The systems analysis milieu
    • Role of the analyst
    • The system development life cycle
    • Information systems

  2. End-products (deliverables) of systems analysis
    • The front end phases
      Project Initiation and Business Requirements
    • Functional (or external) specifications overview
   
21 Sept.
    • The starting point: specifying required information (or outputs or results)
    • Data taxonomy: elementary, composite, and container
    • Choosing internal and external data representations
   
28 Sept.
    • Defining data items
    • Establishing and maintaining a data dictionary
   
5 Oct.
    • Tying the pieces together: data-flow diagrams and use-case scenarios
   
12 Oct.
    • Avoiding ambiguity through logic- and process-specifications
   
19 Oct.
    • Specifying system inputs
    • Designing on-line dialogues and user-interfaces
    • Specifying manual procedures
    • Specifying interfaces to other automated systems
   
26 Oct.

  1. Data modeling

    Part 1 -- Special Guest Lecture by Robert Ashenhurst, Professor Emeritus, The University of Chicago Graduate School of Business

    • Modeling entities and events
    • Attributes, actions, and relationships
    • Multi-typed and complex entities
   

2 Nov.

    Part 2 -- Designing the logical (or conceptual) database

    • Object-oriented data analysis: Encapsulating behavior and inheriting properties
    • Using data normalization to simplify database structure
   

9 Nov.

  1. Communication
    • Packaging the deliverables and presenting them to the sponsoring users
    • Communicating the requirements to the developers
   

16 Nov.

  1. Other important systems analysis activities
    • Gathering information
    • Understanding the current systems
    • Interviewing potential users
    • Communicating with the developers
    • Justifying a proposed system
    • Preparing for system testing
    • Training and preparing the users
    • Acceptance testing and installation
    • Assessing the success of the new system
    • Starting to plan enhancements for later versions
   

Return to course home page