Page 1 of 1

Module Code - Title:

CS4459 - RESIDENCY 4B: SOFTWARE DESIGN AND ARCHITECTURE PART 2

Year Last Offered:

N/A

Hours Per Week:

Lecture

0

Lab

12

Tutorial

1

Other

0

Private

2

Credits

9

Grading Type:

N

Prerequisite Modules:

Rationale and Purpose of the Module:

This is Block 13 (21 ECTS) on the 3+1 Integrated BSc/MSc Immersive Software Engineering and runs Year 3 Weeks 1 to 4 (4 Weeks) in the summer semester. This is a residency block which is situated on the same collaborating industry partner site as Block 12 Residency 4a. It is a continuation of Block 12 entitled Residency 4a: Software Design and Architecture Part 1. Residency Blocks 4a and 4b should be conceptualised as one coherent unit. It is designed for those students who will proceed to Masters component (Year 4) of the integrated 3+1 programme and therefore are not required to submit a Final Year Project at the end of Year 3. This residency will ask students to evaluate and critique architectural artefacts created in Residency 4a. Students were tasked in Residency 4a with creating a design from a set of requirements within the context of an enterprise and software architecture, and following through to implementation, testing, and deployment. This block asks students to apply and critique methodologies for architecture evaluation and to consider architecture knowledge and practice in terms of architecture reference models. Webinars will be delivered by faculty on topics covering design and architecture. Students will deliver webinars driven by case studies on topics agreed upon by their industry supervisors.

Syllabus:

1. Evaluating Architecture - ATAM and CBAM. 2. Architecture Frameworks - TOGAF, DODAF, and ohers. 3. Overview of Component-Based Development. 4. Advanced topics in software architecture and design , for example, - Evaluating architecture using modularity metrics, - Domain models and design languages, and Domain Specific Languages (DSLs). - Model Driven Development (MDD), - Aspect Oriented Programming (AOD)

Learning Outcomes:

Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)

On successful completion of this module, students will be able to: - Evaluate the efficacy of software metrics at an architectural level when applied to the artefacts created in Residency 4a - Propose and critique a domain modelling language to support software design in the industry partner. - Design and light weight proof of concept Domain Specific Language (DSL) for the industry partner - Develop a light weight proof of concept prototype compiler or interpreter that supports a subset of the DSL - Evaluate the DSL in the context of the software development processes in the industry partner

Affective (Attitudes and Values)

On successful completion of this module, students will be able to: - Appreciate the need for continuous change and adaptation

Psychomotor (Physical Skills)

On successful completion of this module, students will be able to:

How the Module will be Taught and what will be the Learning Experiences of the Students:

This block is an Immersive Software Engineering residency and introduces students to advanced professional practice in the context of design and architecture of systems. Students will remain with the same company that hosted them in Residency 4a given that both Residency 4a and Residency 4b are contiguous. While on residency, each student will have two mentors in their host company. One will be their technical mentor who will guide them through the process of writing and deploying software. The other will be their pastoral line manager who will be responsible for their overall experience. They will meet with their technical mentor every day, and their line manager once a week. It is anticipated that the time commitment from the technical mentor will be approximately 15 hours per week at the outset and decrease as the residency progresses, and that the time commitment from the line manager will be approximately 1.5 hours per week. Both mentors will be high performing software engineers and will normally have at least 4 years experience in the field of software engineering, and a BSc in Computer Science or a related field. Mentors will be required to complete online courses that provides insight in supporting teaching and learning in a collaborative context, ECTS, learning outcomes, and monitoring and report student progress. The matching process for this residency will be streamlined given that students and host partners have completed 2 iterations of the procedure previously. Students will submit a CV in September, be called to interview in October, and have an offer by early November. Industry partners will commit on a rotating basis to offer a residency to students who did not receive an offer. This residency will focus on Mentor Given Projects where the student will take on a larger project when compared to Residencies 1, 2, and 3; and break it down into chunks using hierarchical decomposition. Students rely less on the mentor for fine grained decisions and project management and will operate with more responsibility. The student may or may not be operating on the same scheduling cadence as the rest of their team. The first weeks of their residency may be writing design docs and circulating them for feedback (filling in time with spin-up tasks from the mentor). Before the student arrives, the technical mentor should scope a set of 4-week project and allow 8 weeks for the student to complete. The following is he suggested timeline for this residency: - Week 1: spin up tasks - Week 2-3: project understanding + breakdown - Weeks 4-13: sprinting through milestones. - Final Weeks: hand-off doc for team, documentation, conference preparation Under the joint supervision of academic and industry mentors the students will participate in periodic, cohort-based webinars open to all partners that build up the student's professional expertise in a systematic way. Student teams will present and discuss with the cohort the topics prepared since the previous seminar. Residencies are not simply pass/fail, and have specific learning outcomes that students will be evaluated against. Students will maintain a "logbook" that tracks their progress on these learning outcomes. Faculty are ultimately responsible for grading, and will issue grades based on (a) the student logbook (b) quality of student led webinar produced as part of the residency and (c) evaluation by industry mentor. Residencies have check-ins with academic support structures. Academic advisors will meet weekly with their students. There may sometimes be lectures for a class held in an online mode on topics pertaining to the residency such as architecture evaluation, and architecture reference frameworks. Early detection and interventions will be in place to support students who are not achieving learning outcomes in a timely manner.

Research Findings Incorporated in to the Syllabus (If Relevant):

Prime Texts:

M. Fowler (2010) Domain Specific Lanuages , Addison-Wesley
E. Eric (2003) Domain-Driven Design: Tackling Complexity in the Heart of Software , Addison-Wesley

Other Relevant Texts:

T. Parr (2009) Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages , Pragmatic Bookshelf

Programme(s) in which this Module is Offered:

Semester(s) Module is Offered:

Summer

Module Leader:

ian.r.okeeffe@ul.ie