IMIS Contemporary IS Development
Course
In Leicester
Description
-
Type
Course
-
Location
Leicester
-
Duration
1 Year
Knowledge of the fundamental concepts of object orientation, and objectoriented systems development
Facilities
Location
Start date
Start date
Reviews
Course programme
Theme: Development of Information Systems
Course: Higher Diploma
Module Title: Contemporary IS Development
Module Code: H33
Resources:
- Software: An Object Oriented Programming Language, CASE Tool and SQL compliant database.
- Students should have a working knowledge of the IMIS
- Code of Ethics and be able to understand and apply the ethical and legal concepts contained therein
Assessment: By a single 3-hour externally set examination paper
CATS Equivalent: 200 Notional Hours:
- 80 Hours Structured,
- 120 Hours Directed Self-Study
SPECIFIC COURSE AIMS AND LEARNING OUTCOMES:
- Model business situations to inform the development process using accepted standards.
- Respond to a requirements specification by analysing and designing a contextually relevant solution.
- Examine the social and legal impacts of developing and implementing information systems and the role played by Information Systems professionals in addressing such issues.
- Determine effective strategies for managing information systems development.
MODULE AIMS:
To provide students with:
- A perspective on the problems in information systems development and their underlying causes, and what can be done to help avoid them. (A1)
- A review of contemporary system development approaches and methodologies. (A2)
- An introduction to the Unified Modeling Language (UML) and the Unified Software Development Process. (A3)
- Knowledge of the fundamental concepts of object orientation, and objectoriented systems development. (A4)
- An introduction to the concept of reusability and the potential for reuse in object-oriented development. (A5)
MODULE LEARNING OUTCOMES:
Students should be able to:
A1:
- Identify problems in information systems development and discuss their underlying causes. (LO1)
- Explain how different approaches and human factors can contribute to the software development process. (LO2)
- Appraise the wider ethical issues associated with information systems development and discuss their implications for computers and computerised information. (LO3)
A2:
- Review methodologies, frameworks and approaches for information systems development. (LO4)
- Discuss the problems of integrating new object-oriented information systems with legacy systems. (LO5)
- Compare hard and soft systems approaches. (LO6)
A3:
- Describe the fundamental concepts in the Unified Software Development Process (USDP). (LO7)
- Describe the support provided by the UML for the software development process. (LO8)
A4:
- Explain the fundamental concepts of object-orientation and the justifications for adopting an object-oriented approach to systems development. (LO9)
- Describe the steps involved in object-oriented analysis. (LO10)
- Describe the steps involved in object-oriented design. (LO11)
- Explain the need for identifying and specifying control in an application, and how to do so using UML statechart diagrams. (LO12)
- Describe the steps involved in moving from design to implementation. (LO13)
- Design, document and implement, using an object-oriented programming language, a relatively simple information system that incorporates a Graphical User Interface (GUI), and the facility for the persistent storage of data from several entities using either a database package or files. (LO14)
A5:
- Discuss issues of reusability in the software development process. (LO15)
DETAILED MODULE CONTENT:
LO1: Problems in IS Development
- Problem perspectives: end-user, client and developer.
- Issues of quality and productivity.
LO2: Development Approaches and Human Factors
- Adopting a project life cycle.
- Benefits from prototyping and incremental development.
- User involvement and roles in projects.
LO3: Ethical Issues
- Consideration of the impact that a new information system will have.
- Project teams and professionalism; ethical behaviour.
- Legislation affecting an information systems development project.
LO4: Methodologies, Frameworks and Approaches
- Methodology for IS development: procedures, techniques, tools and documentation aids.
- Structured methodologies; object-oriented methodologies; the Unified Software Development Process (USDP).
- Dynamic Systems Development Method (DSDM): DSDM and Rapid Application Development (RAD); DSDM life cycle.
- Agile methodologies including Extreme Programming (XP), Test Driven Development, Refactoring.
- Open Source development: Open Source Initiative (OSI), Open Source Definition.
LO5: Legacy Systems
- Problems arising through interaction of systems built using different technologies.
- Integrating new object-oriented systems with non-object-oriented systems: object wrappers; screen scrapers.
LO6: Hard and Soft Systems Approaches
- Participatory Design; soft methodologies (for example, Checkland's Soft Systems Methodology (SSM) and Mumford's Effective Technical and Human Implementation of Computer-based Systems (ETHICS).
- How hard and soft methodologies differ.
- Combining hard and soft approaches (for example, using SSM as the front-end to a hard systems development approach).
LO7: Unified Software Development Process
- USDP phases: Inception; Elaboration; Construction; Transition.
- USDP disciplines: Business Modelling; Requirements; Design; Implementation; Test; Deployment; Configuration and Change Management; Project Management; Environment.
- Object-oriented analysis; object-oriented design.
- Iterative and incremental development.
LO8: The UML
- What is meant by a model; the distinction between a model and a diagram.
- Diagrams provided in the UML; the concept of a model in the UML.
LO9: Object-Orientation
- Fundamental concepts in an object-oriented approach: abstraction and encapsulation; event-driven systems and message passing; class and instance; object state; relationships between classes; inheritance and polymorphism.
- Benefits and limitations of object-orientation.
LO10:Object-Oriented Analysis
- Use-case driven development; use case realizations.
- Use cases and requirements specification; use case diagrams and use case descriptions.
- Definition of a Domain Model in the USDP; using class diagrams to illustrate a domain model: finding objects and classes; adding attributes to appropriate classes; adding associations; determining multiplicity.
- Attributes and state; link and association.
- Specification by contract.
- Algorithmic and non-algorithmic methods for describing operation logic.
LO11:Object-Oriented Design
- Object interaction and collaboration: developing object collaboration from use cases.
- The UML concepts of collaboration and interaction.
- Using UML sequence and collaboration diagrams to model object collaboration.
- Criteria for good design: coupling; cohesion; designing controller classes; message handling; assigning responsibilities to classes; Class, Responsibility, Collaboration (CRC) cards.
- Specifying classes: attributes, operations, visibility.
- Designing associations and navigability.
- UML interfaces and the realize relationship.
- Designing operations/methods.
LO12:Designing Control using Statecharts
- The notion of control in an application: for example, modelling state dependent variations in behaviour; the relationships between statecharts and other system models.
- Fundamental control concepts: state, event, transition, action; basic UML notation for drawing statecharts.
- Relevant example of constructing a statechart: for example, to model an object lifecycle or a human-computer dialogue.
LO13:Moving to Implementation
- Mapping designs to code: creating class definitions from detailed class diagrams: attribute definitions, method signatures; adding reference attributes; deriving the code for methods from interaction diagrams; implementing container/collection classes in code; adding accessor methods; adding constructors.
- Storing objects in files; serialization.
- Testing in an object-oriented system; unit testing: testing individual classes; integration testing: testing groups of collaborating classes, testing use cases; sub-system testing, system testing; acceptance testing.
LO14: System Building
Students should design, build and implement a simple system using object-oriented analysis and design methods, starting from a set of system requirements. Note that this is not intended as an exercise in requirements determination, but as an exercise in specifying and constructing a system from a given set of requirements. This will typically involve:
- the production of relevant object-oriented analysis models
- use of a Computer Aided Software Engineering (CASE) tool for at least part of the system building process
- production of an object-oriented design specification to include the following:
- detailed class diagrams
- interaction diagrams
- at least one relevant statechart diagram
- an appropriate user interface design incorporating input/output (I/O) design.
- coding the system and implementing it using an object-oriented programming language.
- Students should be encouraged to build incrementally with the first build dealing with input and output to the screen, the second build dealing with file I/O or database I/O.
LO15:Reusability
- What is reusable software; the arguments for reuse; idea (only) of reusable software components.
- Idea (only) of patterns: reuse in analysis; reuse in design.
IMIS Contemporary IS Development