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.