Page 1 of 4 Philadelphia University Faculty of Information Technology Department of Software Engineering Second Semester, 2014/2015 Course Syllabus Course Title: Software Modeling Course code: 0721222 Course prerequisite: Course Level: 2 0721210 Lecture Time: 11.15– 12.30 Credit hours: 3h +1h ( Lab practice) Academic Staff Specifics Name Rank Office Number and Location Office Hours E-mail Address S, T, T Dr Maouche Associate Room 601 Mourad Professor IT building 13.00 -14.00 M, W 10.00 – 11.00 mmaouch@philadelphia.edu.jo Course description: Models are an integral part of every engineering discipline, as they become in software engineering. Modeling can be done in many ways and with different levels of formality. Modeling concerns software products, software processes, enterprise and business processes. Teaching modeling is as important as the modeling itself since it educates the future software engineers in good modeling practices. Course objectives: The aim of this course is to: Introduce early in the Software Engineering curricula the concept of modeling, its motivations and benefits (lectures). Study several modeling frameworks in Software Engineering (lectures). Study UML constructs. Provide good modeling practices through various real case studies (tutorials, workshops, laboratory). Course components: Texbooks 1. Object Oriented Modeling and Design with UML, M. Blaha, J. Rumbaugh, second edition, 2005, Pearson, Prentice Hall 2. Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures; Hassan Gomaa, Cambridge University Press, 2011 Support material (s): slides, books, software modeling tools Teaching methods: Lectures, Tutorials, Laboratory Duration: 16 weeks, 64 hours in total. Lectures: 40 hours, Tutorial: 8 hours. Laboratory: 16h Learning outcomes Knowledge and understanding: 1. Explain the need for describing software systems with models, as a way to abstract from the system’s complexity and to reason about its properties. 2. Explain the role, the importance and benefits of modeling in the different phases of software development. 3. Recall the mechanisms used to deal with system complexity (abstraction, decomposition, hierarchy) 4. Recall and explain the different modeling perspectives (structure, behavior, interaction) 5. List, Describe the various UML diagrams: object diagram, class diagram, state diagram, sequence diagrams, activity diagram 6. Explain the various concepts related to the UML diagrams (object, class, attribute, event, action, activity, transition, association, aggregation/composition, inheritance...) Cognitive skills (thinking and analysis) 1. Acquire skills in modeling. 2. Apply abstraction and separation of concerns principles 3. Distinguish General purpose modeling languages from Domain specific modeling languages 4. Build models for ‘as-is’ and for ‘is-to-be’ systems 5. Refine and combine models 6. Analyze, evaluate and validate software models. 7. Transform simple models into code Communication skills (personal and academic). 9. Be able to prepare and deliver coherent and structured verbal and written technical report. 10. Be able to display an integrated approach to the deployment of communication skills, use IT skills and display mature computer literacy; strike the balance between self-reliance and seeking help when necessary in new situations, and display personal responsibility by working to multiple deadlines in complex activities. Practical and subject specific skills (Transferable Skills). 11. Draw Software Models using appropriate software modeling tools. 12. Practice UML language syntax Assessment of Learning Outcomes Learning outcomes (1-8) are assessed by examinations, tutorial. Learning outcomes (9,10, 11 and 12) are assessed by assignments and laboratory. Assessment instruments Class works: 15 (quizzes) Practice (case tool): 05 Final examination: 40 Short Examinations: 2 x 20 Allocation of Marks Assessment Instruments Mark First examination 20 Second examination 20 Final examination: 40 Classworks/Practice 20 Total 100 Documentation and academic honesty Documentation style (with illustrative examples) - Practical works reports must be presented according to the style specified in the homework and practical work guide Protection by copyright Avoiding plagiarism - Any stated plagiarism leads to an academic penalty Course/module academic calendar Basic and support material to be covered week (1) Bbn Introduction to software modeling: Wh (2) Homework/repts (due dates) Dd (3) (4) (5) (6) What is modeling? What is a model? Why do we need to model? What may be modeled? What can we do with models? What are aspects that need to be modeled? Typology of modeling languages, Modeling tools Structural Modeling: Object Diagrams, Class diagrams Tutorial1 Structural Modeling: Associations Structural Modeling: Associations Tutorial2 Structural Modeling: Composition / Aggregation Structural Modeling: Inheritance (simple/multiple) Quiz1 First Examination Interaction Model: State Model Interaction Modeling: State Model Tutorial 3 Interaction modeling: Use cases – Refinement (9) Interaction Modeling: Use cases – Relationships (10) Tutorial 4 (11) Second Examination Interaction Diagrams: Activity Diagrams Interaction Diagrams: Activity diagrams (12) Tutorial 5 Interaction Diagrams: Sequence diagrams (13) Interaction Diagrams: Sequence diagrams (14) Tutorial 6 (15) Interaction Diagrams: Collaboration diagrams (16) Revision (7) (8) Final Examination Quiz2 Quiz3 Quiz4 Quiz5 Expected workload On average students need to spend 2 hours of study and preparation for each 50-minutes lecture/tutorial. Attendance policy Absence from lectures and/or tutorials shall not exceed 15%. Students who exceed the 15% limit without a medical or emergency excuse acceptable to and approved by the Dean of the relevant college/faculty shall not be allowed to take the final examination and shall receive a mark of zero for the course. If the excuse is approved by the Dean, the student shall be considered to have withdrawn from the course. Module references 1. Object oriented Software Engineering; Using UML, Patterns and Java; B. Bruegge, A. H. Dubois; New Delhi: Dorling Kindersley/Pearson, Second Edition, (Eleventh impression 2012) 2. Modeling software behavior; a craftsman's approach, Jorgensen, Paul C, CRC. Press Online, 2009 3. The Art of Software Modeling, Benjamin A. Lieberman, Auerbach Publications, 2006. 4. Object Oriented Modeling and Design with UML, M. Blaha, J. Rumbaugh, second edition, 2005, Pearson, Prentice Hall 5. UML in Practice: The Art of Modeling Software Systems Demonstrated through Worked Examples and Solutions, John Wiley & Sons, 2004. 6. UML Distilled: A brief guide to the standard object modeling language, Fowler, M, Third Edition, Addison-Wesley, 2004.