Software Engineering: Modeling Software Systems using UML
The Hong Kong University of Science and Technology via Coursera
-
291
-
- Write review
Overview
Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Software Development Life Cycle (SDLC) is the process of developing software through planning, requirement analysis, design, implementation, testing, and maintenance. This course focuses on the requirement analysis phase of SDLC, and you will learn how to use UML models to capture the system requirements and to facilitate communication between client/users and developers. UML is a general purpose visual modeling language for systems. It can be used to highlight different aspects of the system that are of interest to different stakeholders. Data requirements are captured in the domain model, which describes the important concepts of the application domain as classes, associations between them and constraints on them. Functional requirements are captured in the use-case model to describe the interactions between the system and its environment (users, other systems).
UML incorporates the current best practices in Object-Oriented modeling techniques. Basic object-oriented programming (OOP) concepts are required to attempt the course. It is recommended to take the courses in the order they are listed, as they progressively develop techniques and concepts about software engineering, but it is not a hard requirement.
Syllabus
- Introduction to Software Engineering
- Welcome to the first module of this course! In this module, you will learn: (1) Developing large software systems is a complex process.(2) How to deal with the complexity of software development.(3) What is software engineering.
- Modeling Software Systems Using UML
- In this module, you will learn: (1) What is UML. (2) How to model a software system as a collection of collaborating objects. (3) The basic modeling components (Class, Association and Aggregation/Composition) of UML class diagrams.
- Types of Relationships in Class Diagram
- In this module, you will learn: (1) The basic modeling components (Association Class, Inheritance and Other Constraints) of UML Class Diagram.
- System Requirements Capture and Domain Modeling
- In this module, you will learn: (1) What is requirements capture and its role in the software development process. (2) How to capture data requirements in a domain model. (3) How to evaluate attributes, classes, and associations in a domain model.
- Use Case Modeling
- In this module, you will learn: (1) How to capture functional requirements in a use case model. (2) How to evaluate use cases in a use case model.
- Use Case Specification
- In this module, you will learn: (1) How to write use case specification to describe the behavior within a use case.
- Non-Functional Requirements
- In this module, you will learn: (1) How to capture non-functional requirements. (2) How to validate system requirements.
Taught by
Kenneth W T Leung