20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
Software Development for Processionals.ppt
1. Krešimir Fertalj:
Development of a new course on software
development – a case study
DAAD meeting, May, 19-25 2008, Berlin
DAAD workshop, Sept, 07-14 2008, Durres-Kavaje
2. 2
Fertalj: Development of a new course, DAAD, 2008.
Course: Development of Software Applications
Short description
This course elaborates software engineering concepts, principles and
techniques.
The course studies approaches to the development of end user applications,
including requirements analysis and specification, design and construction of
software components, programming techniques, documentation,
implementation and maintenance of applications.
Educational goals
The course will prepare students for development of complex interactive
applications, particularly database applications.
The course will provide a knowledge for successful design, construction and
implementation of software systems.
Students will be able to formulate the software requirements and to develop,
implement and maintain quality software built upon different software
architectures.
3. 3
Fertalj: Development of a new course, DAAD, 2008.
The context
Prerequisites
Algorithms and Data Structures - explicit
Databases – implicit for 5th semester
In practice:
Lectures 5%, Homework 15%, Tests 30%, Exams 10%+15%+25% points
5. 5
Fertalj: Development of a new course, DAAD, 2008.
The context – module of software engineering
Semester Course ECTS
Hours per
week
Software Design 8 4
Communication Networks 4 3
V Information Theory 4 3
Automata and Formal Languages 4 3
Ecology and Sustainable Development 2 2
Software Project 8 0
30 15
Development of SW applications 4 3
Programming Paradigms and Languages 4 3
VI Elective course 4 3
Elective course 4 3
Commercial Law 2 2
Baccalaureate Thesis 12 0
30 14
6. 6
Fertalj: Development of a new course, DAAD, 2008.
Selection of literature
Mandatory textbooks
Roger S. Pressman: Software engineering: A Practitioner`s Approach,
McGraw-Hill , 2004
Supplementary textbooks
Ian Sommerville : Software engineering, Addison-Wesley , 2004
Steve Mc Connel: Code Complete, Microsoft Press, 2004
Stephen R Schach: Object-Oriented and Classical Software Engineering,
McGraw-Hill , 2005
Candidate books (selected for another course, ISD)
J.A. Hoffer, J.F. George, J.S. Valacich: Modern Systems Analysis and
Design, 4th ed., Prentice Hall, 2004.
A. Dennis, B.H. Wixom, D.Tegarden: Systems Analysis & Design: An
Object-Oriented Approach with UML, Wiley & Sons, 2002.
G. B. Shelly, T. J. Cashman, H. J. Rosenblatt: Systems Analysis and
Design, 5th ed, Course Technology, 2003.
7. 7
Fertalj: Development of a new course, DAAD, 2008.
Roger S. Pressman:
Software engineering: A Practitioner`s Approach
Part 1 The Software Process
2 Process: A Generic View
3 Prescriptive Process Models
4 Agile Development
Part 2 Software Engineering Practice
5 Practice: A Generic View
6 System Engineering
7 Requirements Engineering
8 Analysis Modeling
9 Design Engineering
10 Architectural Design
11 Component-Level Design
12 User Interface Design
13 Software Testing Strategies
14 Software Testing Techniques
15 Product Metrics for Software
Part 3 Applying Web Engineering
16 Web Engineering
17 Formulation and Planning for Web
Engineering
...
...
18 Analysis Modeling for Web Applications
19 Design Modeling for Web Applications
20 Testing Web Applications
Part 4 Managing Software Projects
21 Project Management Concepts
22 Process and Project Metrics
23 Estimation for Software Projects
24 Software Project Scheduling
25 Risk Management
26 Quality Management
27 Change Management
Part 5 Advanced Topics in Software
Engineering
28 Formal Methods
29 Cleanroom Software Engineering
30 Component-Based Software Engineering
31 Reengineering
32 The Road Ahead
8. 8
Fertalj: Development of a new course, DAAD, 2008.
Ian Sommerville : Software engineering
INTRODUCTION
Ch 1: Introduction
Ch 2: Socio-technical Systems
Ch 3: Dependability
Ch 4: Software Processes
Ch 5: Project Management
REQUIREMENTS ENGINEERING
Ch 6: Software Requirements
Ch 7: RE Processes
Ch 8: Systems Models
Ch 9: Critical Systems Specification
Ch 10: Formal Specification
DESIGN
Ch 11: Architectural Design
Ch 12: Distributed Systems
Architecture
Ch 13: Application Architectures
Ch 14: Object-oriented Design
Ch 15: Real-time Systems
Ch 16: User Interface Design
SOFTWARE DEVELOPMENT
Ch 17: Iterative Software Development
Ch 18: Software Reuse
Ch 19: CBSE
Ch 20: Critical Systems Development
Ch 21: Software Evolution
VERIFICATION AND VALIDATION
Ch 22: Verification and Validation
Ch 23: Software Testing
Ch 24: Critical Systems Validation
MANAGEMENT
Ch 25: Managing People
Ch 26: Software Cost Estimation
Ch 27: Quality Management
Ch 28: Process Improvement
Ch 29: Configuration Management
10. 10
Fertalj: Development of a new course, DAAD, 2008.
Contents
Minimal theory, required to determine practice
full life cycle, from project initiation, project planning and requirements
specification to controlled applicaton development in teams
Practice, in feasible quantity
development of windows programs, database access, distributed
applications (GUI, DAL, BLL)
windows services (.net), generation of reports (Crystal reports)
web application development (asp.net), web services (xml)
mobile applications development (pocket pc, compact framework)
development of help and documentation, installation procedures
Team work – solving a real-life project, evaluated on exams
Problem definition
Assignment of tasks
Source code sharing
Extensive collaboration with lecturer, assistants, and team members !?
11. 11
Fertalj: Development of a new course, DAAD, 2008.
Course execution
Presence on lectures (5% points)
students' activity, problem solving – 5%
disturbance, newspaper reading – 0%
Homework (15% points)
individual solutions to project problems (modeling, ...)
project documentation (plans, specifications, interview, ...)
team work (programming, components, ... source code control)
homework is due the end of the actual week (Sunday, 23:59:59)
Laboratories (non-obligatory)
1 hour per week, but scheduled for two groups as 2 hours
student consultations
students preferred email to lecturer or assistants, usually on weekends
12. 12
Fertalj: Development of a new course, DAAD, 2008.
Evaluation of students
Tests on computer, "blitz" (30% points)
"theoretical" (definitions, concepts, but no syntax nor tricky) questions
3 tests, 10% points each, 20 generated questions, 60 minutes per test
Interim exam I (10% points)
project plan
requirements specification, use cases, conceptual model
Interim exam II (15% points)
updated project plan
design specification, data model, screen shots
windows application
Final exam (25% points)
web application, mobile application, end user documentation
software validation (view of "end user")
software verification (control checklist)
Repeated Final exam
for students who failed on max 2 components in one cycle
for ambitious students, willing to repeat one full cycle, but no one applied
13. 13
Fertalj: Development of a new course, DAAD, 2008.
Grading
Evaluation of separated team tasks and individual tasks
Individual component prevails
At least 50,00 % points of each component required
Gauss distribution of those who passed
Component Value Times Points Share
Presence on lectures 5 1 5 5.00%
Automated testing 10 3 30 30.00%
Homework 1 15 15 15.00%
I interim exam 10 1 10 10.00%
II interim exam 15 1 15 15.00%
Final exam 25 1 25 25.00%
Total 100 100.00%
14. 14
Fertalj: Development of a new course, DAAD, 2008.
Guidelines and Recommendations
Material include parts needed for future research, learning and
developing of other projects (eg. graduate thesis).
Participation on lectures is recommended.
The examples presented on lectures explain concepts and
standards, not products.
Students are allowed to use other tools (e.g. Java).
The examples are not completed solutions or commercial
products, although some of them may look as such.
Although examples present "how to do" the project, they are not
the cookbook "we always do like that".
Good will is expected and creativity is wellcome.
18. 18
Fertalj: Development of a new course, DAAD, 2008.
The project-based concept
The lectures describe a virtual, but representative, problem
The students participate in project regarding one real-life problem
Team work
15 teams, 7-8 members in team
no real project management
teams guided by life-cycle and project document templates
"jammed" development
• students interfere with each other
• students focused on technology, not the project goals and tasks
All teams try to solve the same problem
19. 19
Fertalj: Development of a new course, DAAD, 2008.
Representative software example
Partner
PK IdPartnera
TipPartnera
FK1,I1 IdMjestaPartnera
AdrPartnera
FK2,I2 IdMjestaIsporuke
AdrIsporuke
Artikl
PK SifArtikla
U1 NazArtikla
JedMjere
CijArtikla
ZastUsluga
SlikaArtikla
Stavka
PK,FK2,I3,I2 IdDokumenta
PK,FK1,I1 SifArtikla
KolArtikla
JedCijArtikla
PostoRabat
Dokument
PK IdDokumenta
VrDokumenta
BrDokumenta
DatDokumenta
FK2,I4,I2 IdPartnera
FK1,I1,I3 IdPrethDokumenta
PostoPorez
IznosDokumenta
Tvrtka
U1 MatBrTvrtke
I2 NazivTvrtke
Drzava
PK OznDrzave
U1 NazDrzave
ISO3Drzave
SifDrzave
Mjesto
PK,I2 IdMjesta
FK1,I1,I3 OznDrzave
I4 NazMjesta
PostBrMjesta
PostNazMjesta
Osoba
U1 JMBG
PrezimeOsobe
ImeOsobe
22. 22
Fertalj: Development of a new course, DAAD, 2008.
A sophisticated evaluation
Criteria published two weeks before exam
Project results uploaded two days before final evaluation
ocjena ekipe ocjena člana bodova kriterij
PlanRazvoja.mpp
Ažurnost plana 3 Sukladnost plana stvarnom stanju (nositelji, status i dovršenost zadataka)
Izvedivost plana 3 Budući zadaci, nositelji, vremenski raspored, opterećenje
SpecifikacijaDizajna.doc
Svrha, kontekst i doseg sustava 0 Ne treba opisivati, jer je definirano u specifikaciji
Dizajn podataka Zajednički model baze podataka (jedna slika)
Podmodeli podataka 5 Atributi, tipovi podataka, oznake zahtijevanih vrijednosti, primarni i strani ključevi
(veze).
Članovi navode tablice zajedničkog modela za koje su pojedinačno nadležni.
Dizajn arhitekture 0 Opis i dizajn korištene arhitekture (model paketa)
Dizajn komponente 5 Dijagram strukture programske komponente za obradu
Dizajn korisničkog sučelja 5 Opis svih objekata grafičkih sučelja (prozora) i akcija. Slike pojedinih prozora.
Tehnika programiranja
Standard nazivlja 3 Specifikacija korištenog nazivlja u bazi podataka i programskom kodu
Obrada iznimki 3 Programska knjižnica/razred za centraliziranu obradu iznimki
Trag izvođenja aplikacije 3 Programska knjižnica/razred za praćenje traga izvođenja aplikacije
Pridržavanje standarda nazivlja 3 Sukladnost definiranom standardu (dosljednost nazivlja varijabli, postupaka,
datoteka, kontrola)
Robustnost aplikacije 3 Ugrađenost obrade iznimki na kritičnim mjestima
Primjena traga izvođenja aplikacije 3 Bilježenje traga uhvaćenih iznimki
Formatiranje izvornog koda 3 Širina i dubina programskih sljedova, poravnanje (uvlačenje) naredbi
Modularnost 3 Veličina postupaka
Deklaracije i inicijalizacija 3 Deklaracije i inicijalizacija programskih varijabli
Čitljivost i razumljivost 3 Smislenost naziva varijabli, slamanje logičkih izraza i dugačkih naredbi, programski
komentari
Funkcionalnost aplikacije
Glavna obrada komponente 20 Obrada oblika zaglavlje-detalji, bez obzira na arhitekturu. Mogućnosti dohvata,
unosa, izmjene i brisanja podataka.
Dodatna funkcionalnost 5 Mogućnost sortiranja, filtriranja podataka, slike, komentari
Navigacija podacima 5 Alatna traka
Validacija 5 Provjera valjanosti ključnih podataka
Odabir vrijednosti vezanih podataka 5 Padajuće liste za odabir vrijednosti stranog ključa
Poziv forme vezanog podatka 5 Poziv forme za odabir vrijednosti stranog ključa
Ulančavanje procedura 10 Podržanost reprezentativnog scenarija
Nefunkcionalna svojstva
Glavni izbornik 3 MDI sučelje, balansirana hijerarhija, popis i raspored otvorenih formi
Raspored, organizacija sučelja 3 Organizacija zaslonske maske (logičko grupiranje, poravnanje, …)
Uvažavanje sadržaja 3 Oponašanje izgleda stvarnih objekata, statusna traka, prikladnost kontrola s obzirom
na tip podatka, dinamički izračun agregiranih vrijednosti
Estetika 3 Preglednost, korištenje pisma i boja
Minimizacija napora 3 Tipke za funkcije obrade, slijed unosa, standardne vrijednosti
Dosljednost sučelja 3 Dosljednost izgleda i ponašanja kontrola i formi, na razini projekta
Prilagođenost korisniku 3 Intuitivan izbornik, lakoća pristupa i obrade (tipke za ubrzani pristup)
Sigurnost i zaštita 3 Autentifikacija korisnika
Arhitektura komponente 20 Dodatna kvaliteta tankog klijenta (10 bodova) ilii višeslojne arhitekture (20 bodova)
UKUPNO 150
team effort
individual effort
grades
24. 24
Fertalj: Development of a new course, DAAD, 2008.
Contents: SDLC, Project, Requirements
Lectures
Laboratory
Interview with real users – a faculty team dealing with education, science
and business
Homework
requirements determination, installation of IDE, creation of team solution, ...
Topics slides Theory Practice
Software engineering
fundamentals. Software
development life cycle. Software
68 Introduction, definitions,
life cycle
Introduction to C#
Project definition. Project plan.
Software development
environments. Computer aided
software engineering. Software
version control.
70 Project planning and
trackin, SCM, VSS,
CASE
Object oriented
programming, classes
Requirements Specification. Unified
modeling language basics.
74 Analysis, UML, UC,
SRS
Code-UML, Inheritance
Coding standards. Programming
techniques.
79 Naming, formatting,
style
Defensive programming,
debugging
26. 26
Fertalj: Development of a new course, DAAD, 2008.
FER Fertalj: Razvoj primijenjene programske potpore, 2007/08.
Feedback from students
Survey (anonymous questionnaire with student comments)
"useful"
"good concept – bad realization" – not expressed what is missing
"nobody knows what to do"
sort of disappointment, but students never expressed their expectations
Lecturer's comment on homework and project task
Continuous assessment ?= campaign alla bolognese
Remove the bug from transparencies ?
Classical paper exam expected ?
Programming on computer at the examination ?
How an ATM or Student Kiosk would want to behave ?
How would a web page want to be designed ?
27. 27
Fertalj: Development of a new course, DAAD, 2008.
FER Fertalj: Razvoj primijenjene programske potpore, 2007/08.
Lessons learned
[lessons learned]
Project ... "A temporary endeavor undertaken to create a unique product,
service or result"
User story ... "boring interview" ?
Domain analysis ... "why the teacher-user does not write what he wants" !?
Software specification ... "a cookbook" ?
Brooks (Silver Bullet), Paretto (80-20), Murphy/Grimm, ...
Some lecturer's comments
Problem solving exceeds pure task solving
Stress iterative versus classical software life cycle
Applications development deals with users not only computers
Executable specification requires a generator, not a programmer
See Guidelines and Recommendations slide again !
29. 29
Fertalj: Development of a new course, DAAD, 2008.
Contents: Design, Windows programming
Lectures
Homework
Various types of windows forms in four steps (homeworks)
Topics slides Theory Practice
Graphical user interface. Event
handlers. Dialogs. Data input
validation. Construction of custom
controls.
64 Criteria of GUI design Windows Forms,
delegates, events
Data access logic. 73 ADO.NET Queries, datasets, data
validation
Screen design. User process
components.
40 Standardization of user
interface
Screen layout, basic
controls and components
Distributed aplications.
Application layers.
60 Thin client, Fat client,
Layered applications
N-tier application
development
31. 31
Fertalj: Development of a new course, DAAD, 2008.
Feedback from students
"Tough homework" ?
Homework in 2.cycle is hard due to development of distributed application !!!
• 33% students won >= 50% points
• 66% students won >= 25% points
Homework in 1st cycle was too easy
More than 85% students passed homework
Homework "brings only" 15% points
Work at home pays back at the exams !
"Homework should be related to the project"
Some students forget about the project and deal (only) with technology
"The automated test is too easy"
No student complaints for 30% points to be collected by testing on computer.
Single proposal – transfer some of points for tests to reward homework
• Refused by acclamation of students
0
2
4
6
8
10
12
14
16
18
1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5
33. 33
Fertalj: Development of a new course, DAAD, 2008.
Contents: Reporting, Web, Mobile, Documentation
Topics slides Theory Practice
Universal and self-adaptable
program modules. Report design.
65 Standard functions to
handle a database
table. Types of reports.
Universal screen form.
Crystal reports.
File management. Data transfer.
Windows services.
70 Classes to handle
files, XML, architecture
of windows services
Delimited files, Excel
files, XML files, Windows
service, Notification icon.
Web applications 105 ASP.NET, web page
layout and code, HTML
and controls
Web pages, Web wizard,
Web service,
authentification
Mobile applications 50 Compact Framework,
pocket GUI specifics
Examples of pocket
aplications over XML,
pocket database and
Web service.
Software parametrization.
Internationalization of applications.
Context-sensitive help
implementation. Writing software
documentation. Self-documenting
source code.Software release.
Software maintenance.
37 Parametrization,
internationalization,
localization,
Config files, context
sensitive help,
documentation,
installation procedures
36. 36
Fertalj: Development of a new course, DAAD, 2008.
Statistics
Enrolment 07/08
Total number of enrolments 106
Number of male students 90
Number of female students 16
Achievements 07/08
Number of starts 101
Retention / % 95.28%
Number of passed 86
Achievement / % 85.15%
Grade 5 4 3 2 1
Number of students with this grade 13 30 30 13 15
Minimum number of points for this grade 84.65 70.85 61.90 56.10 /
37. 37
Fertalj: Development of a new course, DAAD, 2008.
Bologna process and ECTS engineering
Lectures
Presence on lectures 52.77% in average, probably less (cheating)
• 7 students had to compensate (non)presence by additional homework
Some students "spare" 4 hours a week, and are disoriented after ... !?
Materials (slides)
According to students: "Overloaded, too many slides" (cca 600 slides)
Slides substitute textbook, they are not a "quick reference quide"
Laboratory, consultations – not consumed
Instead, extensive Q&A emailing takes part particularly during weekend,
before delivery of homework and exam
"The automated test is too easy"
Single student proposal – transfer some points for tests to reward homework
Some possible "improvements"
reduction of slides, obligatory laboratory, homework due end of work week,
classical paper exam , .... ???
38. 38
Fertalj: Development of a new course, DAAD, 2008.
Final remarks
Organizational issues
Problem of planning for the production of materials
Problem of course scheduling, regarding distribution of topics due to exams
Teaching by example of a “real life” problem
real life complexity vs. educational simplicity
development of software examples requires significant effort
Reusability of materials
Only small portions of materials reused from old courses !
Teaching the teachers
learn to teach what was not thought before
Final thoughts from students
"Too much to work for 4 ECTS"
"Let me warn you that this will not be a popular course"
"... but the professor and assistants are a good team"
40. 40
Fertalj: Development of a new course, DAAD, 2008.
Course: Development of Information Systems
Short description
This course elaborates both structured and object oriented methods and
techniques used in development of complex information systems for end
users.
The course examines analysis and design techniques, feasibility analysis,
information systems development approaches, systems testing procedures,
installation and migration, and maintenance procedures.
Organizational issues with respect to information system development will
be considered.
Educational goals
The course provides a general knowledge and understanding of all phases
of information systems development.
Students will gain practical skills by being involved in developing the model
of a complex, possibly real information system.
Students will be able to study an information system, define user
requirements for a new system, propose and evaluate alternative solutions,
develop a design for the new system, develop project documentation and
deliver, maintain and support corporate information system.
41. 41
Fertalj: Development of a new course, DAAD, 2008.
The context
Prerequisites: Development of Software Applications
43. 43
Fertalj: Development of a new course, DAAD, 2008.
Course: Project Management
Short description
Project definition. Project management discipline. Characteristics of
successful projects and project failures. Project life cycle.
Project organization. Project management process groups: initiation,
planning, executing, controlling, closing.
Planning techniques. Schedule compression. Team work. Project manager
role and profession. Authority, responsibility, negotiation and communication
management. Conflict management. Financial analysis. Software project
specifics. Project management tools. Project documentation. Project
evaluation and lessons learned.
Educational goals
Students will acquire knowledge about formal project definition, teamwork
and common project life cycle processes.
Students will gain good understanding of prerequisites for successful project
management, with emphasis on project domain, business environment and
communications aspects.
Students will gain practical skills to participate efficiently in project planning
and project management.
The Pareto principle (also known as the 80-20 rule, the law of the vital few and the principle of factor sparsity) states that, for many events, 80% of the effects comes from 20% of the causes.
Brooks, F.P. (1987) No silver bullet: essence and accidents of software engineering. Computer, 20 (4), 10-19. – teškoće/problemi sastavni dio softvera, nema tehnologije ili praksi koje će ih lakoćom riješiti
The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary EditionFrederick P. Brooks "Adding manpower to a late project makes it later"
Murphy's law is an adage in Western culture that broadly states that things will go wrong in any given situation, if you give them a chance. "