Topic outline

  • Software Design and Modeling will be held as a fully online course during fall 2020. 

    Course overview

    Course contact: cs-c3180@aalto.fi

    This course aims to help you learn how to analyze the problem the customer has and how to design a solution that satisfies customer and user needs. You learn to describe the essence of the key software engineering activities and how these activities relate to each other. You are also able to compare modeling methods, assess their applicability for different software engineering activities and select appropriate design practices for the development team. Furthermore, you are able to apply a set of design and modeling methods in practice.

    After the course, the student will have a broad understanding of software engineering activities and methods as a whole and have basic skills to participate in software development projects. The software engineering activities covered in this course are:

    • Requirements engineering
    • Domain modeling
    • Software architecture design
    • Testing
    • Team work.

    Course workload estimate

    Study sessions (lectures): 30h, Learning diary and individual work: 40h, Group assignments: 60h For more information, please check out the learning goals and the course schedule.

    Partial attainments for the course

    The following activities grant points towards the completion and grade of the course.

    Mandatory:

    • Group exercise: four incremental assignments and a full, graded submission at the end of the course
    • Peer reviews: you are required to read and comment on work done by your peers for each of the four assignments
    • Self review: you are required to review your work for the final submission using the same criteria as for the peer reviews
    • Workshop presence: groups need to assure that at least one member is present at assignment feedback workshops.
    • Oral examination

    Optional:

    • Learning diary and concept maps
    • Course feedback at the end of the course

    Please see the Grading and Results section for more detailed information on scoring the attainments.

    Course Staff

    Lassi Haaranen (responsible teacher)

    Lassi I'm Lassi and I have a background in computing education research and teaching CS. As a senior developer friend of mine said "ability to code is the bare minimum to get hired but you need software engineering skills to be a successful developer". This course is designed to introduce you to essential software engineering concepts and practices. The course this year is unusual as is the global situation, hence I've sequestered myself to a countryside cottage where I tend to my three chickens.

    Marjo Kauppinen (lectures, requirement engineering)

    Marjo I was asked to be a responsible teacher of this course when I was doing my doctoral studies. This happened in the early 2000’s. This year, Lassi is the responsible teacher and I focus on requirements engineering, which has been my most important research topic for decades.

    
Why software design and modelling is important: One could have assumed that the agile approach would kill this course. Designing and modelling software systems and digital services is old-fashioned, isn’t it? No. Instead, many students have found the content of this course can be used in practice to solve problems of agile software development.

    Nagadivya (Divya) Balasubramaniam (teaching assistant)

    DivyaI’m Divya and I’m currently pursuing my PhD and my research area is AI ethics and requirements engineering. I took this course in the first autumn semester of my Master’s studies. The importance of big picture thinking and a good understanding of software engineering activities and practices were my key takeaways from this course. Been assisting this course in-class for the last two years and the first time online (Courtesy: COVID). Working from home since March and current adulting level: Can make my own granola bars

    Marie Monkam Ngatcheu (teaching assistant)

    Marie I am Marie, originally from Cameroon and I have been living in Finland for 10 years. I have a background in service design and engineering. I got interested in the course through my master’s thesis which revolved around the ShapeMeal project. I got to explore different requirements and design perspectives and now, it would be interesting to see which directions students can steer their learning curves to based on the course project. A fun fact about me is, It doesn’t look like it anymore but my football tekkers are amazing.

    Ata Jamil (teaching assistant)

    AtaI am software engineer at heart who enjoy engineering cool software systems. My interests are software architecture, agile development, blockchain (Yeah! only if you know what you are doing with it!). This was the first course I took when I started my masters here at Aalto, and it set the foundation of my entire journey at Aalto.  Apart from this course I have had the pleasure to assist in Architecture, Software Project, Software Quality Assurance and Testing courses. Furthermore, I make sure that Lassi takes good care of those three chickens.