Fall 2007-2008

Course Description

Modern information systems cover a wide range of applications, from the realization of complex business processes, the accumulation of business knowledge and the support of decision making, to documentation systems, and the provision of personalized information services. The technological background of information systems includes database systems, repositories, data warehouses, information retrieval systems and communication technologies. For the design and implementation of information systems special methodologies haven been developed are still being developed. This course offers a systematic introduction to information systems analysis and design and covers theoretical, technical and methodological issues. The course will allow student to explore and become familiar with various concepts, principles, and stages of computer-based information systems analysis and design.

Course Contents

The course starts with a quick introduction to information systems analysis and design explaining why analysis and design are important in the development of computerized systems and introduce fundamental concepts such as those of systems theory organizations. It then presents and discusses the stages of information system development, using basic principles from software engineering. Students are also exposed to techniques for gathering and organizing information about an organization and how to transform this into a feasibility study. We then concentrate on the activities of systems analysis and the basic notation of the Unified Modeling Language (UML). In it we introduce use cases, class diagrams, sequence diagrams, collaboration diagrams, activity diagrams, and state-chart diagrams. The phase after requirements analysis is system design. This part covers the transition to design, the distinction between system design and object design, system architecture, design patterns and the design of user interfaces and data storage. Throughout the course we emphasize the use of CASE tools as aids for systems analysis and design, and in particular the use of the standardized modelling language, UML. This is a pragmatic course. The techniques taught are by-and-large heuristics that have been shown to improve the quality of an information system, and reduce the time it takes to complete it. Because of its pragmatic nature, the course concentrates on apprenticeship techniques where students work in groups on an actual information system problem. 

Course Objectives

Upon completion of this course, each student should be able to:
  • Describe the role of analysis and design in software engineering
  • Gather and organize information about an organization and transform this into a feasibility study
  • Specify the functional and non-functional requirements of an information system and develop a description of its usage with Use Cases
  • Model various aspects of a system (structure, behaviour, interaction, states, constraints, etc.)
  • Develop richer descriptions of a design using UML diagrams (including sequence diagrams, class diagrams, state charts, and activity diagrams) and other techniques
  • Specify the global and the software architecture of an information system
  • Design the database and the user interface of an information system
  • Understand mechanisms that can increase a design's flexibility and other good design practices

Prerequisites:

Object Oriented Programming (HY 252)

Corequisites:

Database Systems (HY360)
Software Engineering (HY352)