Luca Dan Serbanati
     Software Development Methods
     Faculty of Engineering in Foreign Languages.  English Stream.
     Third year. Spring 2021
     Laboratory: Associate Prof. Andrei Vasilateanu, andraevs@gmail.com  
 
Email: luca@serbanati.com    URL: Personal website
General Information:
Course syllabus

Course: 2h/week
Lab work: 1h/week = 2h/2weeks
Project: 1h/week = 2h/2weeks
Credit points: 3

Laboratory and Project:
Andrei Vasilateanu, andraevs@gmail.com

Prerequisites:
"Data Structure and Algorithms" and "Object-oriented Programming" courses

Grading and workload
Our grade in the course will be earned / calculated as follows:
- Homework 10% + frequency(c/l/p) 10%
- Project 30%
- Final exam 50% (Theory 30% + Exercise 20 %)
Homeworks will be given roughly every week or two, and will each consist of a small number of problems. For the final project, you can pick any topic you want for further study from our project list. Your project has to involve implementing an application with the methods presented at the course. In all cases, the end product will be a written report and a software delivery. Grades may also be adjusted upward slightly based on regular, positive contributions to class discussions.
Project Policy.
1.The projects cover the whole life cycle of software products development: analysis, design, and coding. The result of the project is a real software product.
2.The course lectures and homeworks provide necessary guidance for project realization.
2.Project submissions must not include external materials (e.g., web downloads).
3. The project must be turned in on the due date. Late projects are not accepted for any reason and will receive a zero mark.
4.The project is an individual research work.
5. The projects will require substantial time commitment. We strongly invite students to begin working on assignments early.

Guidelines to Projects
1. At the beginning of the semester a list of project topics is made available at the web. Each student reports his/her preferred choice for a topic and the list of their submissions will be published in early March.
2. Throughout the semester, students will be responsible for development of a project.
3. The project report is submitted in early May. On the profs' request the student may rewrite the report in late May.
4. In the last two weeks of the semester the students are to give a 15 minutes presentation of the project. The presentation is a separate requirement for passing the exam in this subject and part of the grading of the project work.
We expect that effort spent will help the student to gain a thorough understanding of software project development.

Examination Policy
To attend the final examination a student should obtain at least 5(five) at the laboratory and project activity.
The comprehensive closed-book exam consists of a written answer to a quiz and two hours test consisting in analysis, design and implementation of a small application.

Course Redoing
If the student failsthe final examination she/he can redo it during the fall exam session. If redoing fails the student must
redo the entire course: laboratory, project, homework, and final examination.

Lecture notes: slides

Textbooks:

The Software Process
1. R.S.Pressman, Software Engineering: A Practitioner's Approach, 6/e, McGraw-Hill, 2004.
2. L.D.Serbanati, Integrating Tools for Software Development, Yourdon Press Computing Series, Prentice Hall, 1992.

Object Oriented Methods
3. M. Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3/e, Addison-Wesley, 2003.
4. C. Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3/e, Prentice Hall, 2004.
5. M. Fowler, Analysis Patterns: Reusable Object Models, Addison-Wesley, 1996.



Very important!!!
How working at home works
and project packages
All students are warmly invited to attend the course lectures and read the lecture notes because working homework assignments requires knowledge only covered by the course. The lab will never replace the course lectures or resume the knowledge transmitted during the course lectures. It is used to:
-verify current homework solving,
-correct errors or defaults in homeworks, and propose alternative or better ways to solve the problem,
-verify and evaluate studentsí knowledge of specific facts or concepts with focused questions, and
-validate delivery of current workpackage of the assigned project.
Schedule of Laboratory Topics and Homework
In order to put into practice what learned, sequencing of homework assignments exactly follows the phased development of a software project.
A link to the homework assignment and the corresponding topic will be released for each laboratory session.
-->
Lab.# Week
Homework Topic & Link
Lab #1
2 Mar
online
Accessing databases in Java (java.sql, javax.sql)
Tutorial
Homework #1
Lab #2
9 Mar
online
Networking in Java(java.net).
Tutorial
Homework #2
Homework #2_1
Redo the homework of the last week using MySQL and MySQL Workbench instead of JavaDB
Lab #3
16 Mar
online
RMI - Java Remote Method Invocation (java.rmi)
Oracle's Tutorial
Our Tutorial + Homework #3
Lab #4
Tue,23 Mar.
online
Introduction to Systems Engineering and Software Engineering
Homework #4
Lab #5
Tue,30 Mar
online
Object-Orientation Foundation:
Homework #5
Lab #6
Tue, 6 Apr
online
Project Activity #1
Lab #7
Tue,13 Apr
online
Hwk #6: Case study
Business Analysis and Modeling
Hwk deliv: Business Process Model
Guidelines L1 pdf

A Short BPMN Tutorial
An OMG/IBM BPMN Tutorial
Drawio, a CASE tool to be used for BPMN diagram:
Lab #8
Tue, 20Apr
online
Hwk #7: Case study
Software Requirements Analysis

Deliv: Software Use Case Model
System Sequence Diagram, Operation Contracts
Guidelines L2 pdf
Lab #9
27 Apr
online
Hwk #8.1: Case study
Problem Domain Analysis and Modeling

Deliv: Problem Domain Model Class Diagram
Guidelines L3 pdf
Hwk #8.2: Cruise Booking
Lab #10
4 May
online
Guidelines L3 pdf
Software Architecture

Deliv: Software Architecture
Hwk #9.1: Case study
Hwk #9.2: POS System
Lab #11
Tue, 11 May
online
Guidelines L4. pdf
Behavioral Model
Deliv.: Interaction Diagrams
Hwk #6.1: Case study
Hwk #6.2: Loan request
Lab #12
Tue, 18 May
online
Dynamicity Models
Hwk #8.1 Case study
Guidelines L5. pdf
Hwk #8.2 Exercises

2. Software architectures (review)
Lab #13
25 May
online
Project Review and Documentation Delivery
Lab #14
?? June
online
Final project delivery
Final proj presentation (doc + code)
Project Work

Here is the contents table for project deliverables.

Project Schedule
Each homework theme precedes with one week the delivery of the corresponding work package of the assigned project.
Working on homeworks and partecipating at lab sessions are useful for delivering project workpackages .
Date
Project Task
Project #1
Tue,6 Apr
online

Project Assignment
The students are asked to submit their own Problem Statement for the project to be validated by the professor at laboratory.
The Problem Statement quality will be evaluated.
Project #2
Tue, 20Apr
online

First Project Review:
Defence of the following analysis activities:
Step 2: Business Model-Business Use Case Model, -Business Domain Model
-System Sequence Diagrams
-Operation Contracts
Project #3
Tue,27 Apr
online

Second Project Review:
Defence of the following analysis activities:
Step 3: Requirements Analysis Model
-Use Case Diagram + Use Case Descriptions (textual or with activity diagrams)
-Supplementary Specification
Step 4: Domain Analysis Model
-Problem domain (colored) class diagram
Project #4
Tue,
18 May
online

Third Project Review:
Defence of the following design activities:
Step 5: Software Architecture
-Package diagram
-Component diagram
-Deployment diagram
Step 6: Behavioral Model
-Interaction diagrams for the main scenarios
-Design class diagram
-Rationale for used Design Patterns
Step 7: User Interface
-User manual
B. Delivery of the project complete documentation

Schedule of lectures
Please note:
1.This schedule is subject to change
2. Look closely at this site for changes
Date/Time 
Lesson Topic 
Mon,1 Mar
12h - 14h
online
Introduction to Systems Engineering
Complex Systems.
Mon,8 Mar
12h - 14h
online
Introduction to Software Engineering
The Software Process.
Mon, 15 Mar
12h - 14h
online
Introduction to Software Engineering
Software Process and Software Product
Software Process Life Cycles
UP Methodology
Lecture Notes
Mon, 22 Mar
12h - 14h
online
Object Orientation Foundation.
Concepts and Objects
Mon, 29 Mar
12h - 14h
online
Structural Models of OO Systems
Behavioral model of OO Systems
Mon, 5 Apr
12h - 14h
online
Events and Operations in OO Systems
Lecture Notes
Introduction to Business Engineering.
Components of the Business Model
Mon, 12 Apr
12h - 14h
online
Documenting Business with Models
Activity Diagrams.
BPMN Diagrams.
Lecture Notes
Thu, 15 Apr
10h - 12h
online
Functional Model
Requirements Analysis.
Use Case Diagrams.
Mon, 19 Apr
12h - 14h
online
Use Case Description
Lecture Notes
Thu, 22 Apr
10h - 12h
online
This lesson did not take place. The next lesson is Thursday, April 29 at 10 a.m. Sorry, no lesson for Monday, May 26.
Thu, 29 Apr
10h - 12h
online
Domain Model
Building a Domain Model
Domain Modeling in Color
Lecture Notes
Thu, 6 May
10h - 12h
online
Software Architectural Design
Activities in Architectural Design
Architectural Styles
Layered Architecture
Lecture Notes
Mon, 10 May
12h - 14h
Online
Patterns in Architectural Design (Facade, Broker, MVC, etc.)
Software Objects Design.
Behavioral Model.
Collaboration and Interactions.
Mon, 17 May
12h - 14h
Online
Interaction diagrams
Sequence Diagram
Communication Diagram
Overview Diagram
Timing Diagram
Information Flow Diagram


Examinations

A student unable to present her/his identification document is not accepted for examinations.
Exam Date Time/Room
Visits from 04 January 2005: 230827 Last update: 17 Apr 2021