Module Code - Title:
CS4125
-
SYSTEMS ANALYSIS AND DESIGN
Year Last Offered:
2024/5
Hours Per Week:
Grading Type:
N
Prerequisite Modules:
Rationale and Purpose of the Module:
The development of large-scale complex software-based systems proceeds from analysis through design and implementation to system verification and validation. This module covers the analysis and design phases of the software development cycle with particular emphasis on the use of Object-oriented approaches to specification.
Syllabus:
- Software lifecycles: review of the waterfall model, prototyping, spiral, and object-oriented (OO) development models.
- Focus on the Unified Software Development Process (USDP).
- Characteristics of good software design - modules, cohesion, coupling or dependency, encapsulation, abstraction, etc.
- Requirements investigation.
- Requirements classification: functional and non-functional requirements.
- Requirements modelling: use case diagrams and use case descriptions.
- Computer aided software engineering (CASE).
- Review of OO concepts: classes and objects, abstract classes, class interfaces, inheritance, polymorphism, etc.
- Analysis using OO method and UML: identification of classes using key domain abstraction, CRC cards, collaboration and sequence diagrams, state transition diagrams, and activity diagrams.
- Overview of object-oriented software architectures: layering and partitioning, open versus closed, MVC, broker, etc.
- Design using OO method and UML: concurrency, object design, collection classes, GUI design, and data management design.
- Additional diagramming notation: packages, subsystems, and implementation.
- Analysis and design patterns.
- Frameworks.
- Other methodologies - DSDM, Agile approaches, Extreme Programming.
Learning Outcomes:
Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)
1. Define/explain/compare/contrast concepts and terms concerning software lifecycles, phases of the Information Systems development project and conceptual models (data, process, object-oriented) as deliverables of Analysis phase.
2. Compare and contrast the use of different techniques (structured, prototyping, JAD, Object-Oriented) to construct conceptual models.
3. Use Structured English, Decision Trees and Decision Tables for specification and documentation.
4. Use graphical representation tools including Context- System-, and Child-level DFDs to construct process models to analyse system requirements.
5. Apply Object-Oriented concepts & UML notation to construct and graphically present various diagrams for Object-Oriented systems analysis.
6. Use a CASE-tool to enhance & facilitate this process.
7. Summarise the characteristics of a good requirements specification.
8. Evaluate different design alternatives.
9. Summarise the characteristics of good SW design and good UI design.
Affective (Attitudes and Values)
N/A
Psychomotor (Physical Skills)
N/A
How the Module will be Taught and what will be the Learning Experiences of the Students:
Research Findings Incorporated in to the Syllabus (If Relevant):
Prime Texts:
P. Stevens (2006)
Using UML: Software Engineering with Objects and Components (2nd edition)
, Addison-Wesley
L. D. Bentley and J. L. Whitten (2007)
Systems Analysis and Design Methods (7th edition)
, McGraw-Hill
Other Relevant Texts:
M. Fowler (1996)
Analysis Patterns: Reusable Object Models
, Addison-Wesley
E. Gamma, R. Helm, R. Johnson and J. M. Vlissides (1995)
Design Patterns: Elements of Reusable Object-Oriented Software
, Addison-Wesley
I. Jacobson, G. Booch, and J. Rumbaugh (1999)
The Unified Software Development Process
, Addison-Wesley
Programme(s) in which this Module is Offered:
Semester(s) Module is Offered:
Module Leader:
Abdul.Razzaq@ul.ie