This course aims to provide instruction in the field of software modeling and software designs. It's content is geared towards teaching students how to prepare quality documentation, covering requirements engineering and modeling, diagrammatic elements, both structural and behavioral as well as a long term deployment and maintenance plan.
The objective of this course is: to provide modeling and design techniques used in software projects, to have knowledge on the difficulties of specifying and engineering requirements for producing large software products, to have an understanding of, and ability to apply, the methods of analysis and design, to have knowledge of, and the ability to apply the principles of design patterns and to make use of them in design process for building proper class structures and solid software components to have knowledge of , and the ability to apply, principles of user interface design such as affordances, awareness of mental models, visibility, mapping and feedback, and to provide techniques to manage the documentation and source code in a software project.
| Week | Topic |
|---|---|
| 1 | Introduction to Software Modeling |
| 2 | Requirements Engineering |
| 3 | Modeling Requirements I |
| 4 | Modeling Requiretments II |
| 5 | Modeling with DFD, ERD and BPMN |
| 6 | Modeling with UML I |
| 7 | Modeling with UML II |
| 8 | Midterm |
| 9 | Design Patterns I |
| 10 | Design Patterns II |
| 11 | Architectural Design |
| 12 | User-Interface Design |
| 13 | Physical Design |
| 14 | Presentation |
| Method | % Each | Quantity |
|---|---|---|
| Midterm Exam(s) | 1 | |
| Project | 45 | 1 |
| Final Exam | 55 | 1 |
Software modeling and design_ UML, use cases, patterns, and software architectures, Hassan Gomma (2011). Head First Design Patterns Building Extensible and Maintainable Object-Oriented Software, Eric Freeman, Elisabeth Robson, O’Reilly Media (2021)