Overview

In this course, students acquire skills required to analyse and design a software system. These skills include requirements analysis, feasibility analysis, modelling, processes analysis, software architecture design, and UI/UX design. In addition, students learn about the skills required to plan and manage the development of a software system like software development methodologies, process automation, and project management.

Topics and Schedule

  • Introduction to Software Systems (1 session – each session is 90 minutes in duration)
  • Basics of Developing Software Systems (1 session)
  • Feasibility Analysis (1 session)
  • Different Aspects of Feasibility Analysis
  • Cost-Benefit Analysis Techniques
  • Introduction to Business Model Design
  • Software Development Project Management and Planning (1 session)
  • Introduction to the Structure of Different Business Systems like Accounting, Inventory Management, and so on. (2 sessions)
  • Project Planning and Product Release (1 session)
  • Systems Analysis (6 sessions)
  • What is Systems Analysis?
  • Requirements Elicitation and Modelling
    • Requirements Elicitation Approaches
    • Requirements Use Case Modelling
  • Process Modelling
    • Introduction to Process Modelling
    • How to Construct Process Models?
    • Process Modelling with Activity Diagrams
  • An Overview of Data Modelling and Analysis
    • Data Modelling with Class Diagrams
  • Systems Design (6 sessions)
  • What is Systems Design?
  • Software Architecture Design
    • Non-functional Requirements
    • Architectural Tactics
    • Introduction to Views
    • Architecture Specification with Component Diagrams and Deployment Diagrams
    • Architectural Patterns for Enterprise Systems 9e.g., Layered Architectures).
  • UI/UX Design
  • Basics of Data Model Design
  • Software Development Methodologies (10 sessions)
  • Introduction to Development Methodologies Including Waterfall, Model-based, and Agile.
  • The Scrum Methodology
    • The Scrum Framework
    • Scrum Applicability
    • Requirements Engineering in Scrum
    • Product Backlog Specification and Management
    • Sprint Planning
    • Sprint Execution
    • Sprint Review
    • Sprint Retrospection
  • Systems Development and Maintenance (4 sessions)
  • Introduction to the Concepts of Development, Operation, Maintenance, and Closing of Software Systems
  • The Basics of DevOps
  • Building Agile Dev and Ops Teams
  • Continuous Integration, Continuous Delivery, and Continuous Deployment

Evaluations

  • Two exams (Midterm and Final) – Comprising 60% of the total grade
  • One comprehensive course project using the Scrum methodology: Project activities will be assigned and completed throughout the semester – Comprising 40% of the total grade

Main References

  • D. Bentley, K.C. Dittman, and J.L. Whitten, Systems analysis and design methods. Irwin/McGraw Hill, 2007.
  • S. Rubin, Essential Scrum: A practical guide to the most popular Agile process. Addison-Wesley, 2012.
  • Fowler, C. Kobryn, and K. Scott, UML distilled: A brief guide to the standard object modeling language. Addison-Wesley Professional, 2004.
  • J. Duffy, Domain architectures: Models and architectures for UML applications. John Wiley & Sons, 2004.
  • Bass, I. Weber, and L. Zhu, DevOps: A software architect’s perspective. Addison-Wesley Professional, 2015.
  • Fowler, Patterns of enterprise application architecture. Addison-Wesley Longman Publishing, 2002.