Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 46

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
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.

Fertalj: Development of a new course, DAAD, 2008. 2


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

Fertalj: Development of a new course, DAAD, 2008. 3


Fertalj: Development of a new course, DAAD, 2008. 4
The context – module of software engineering
Hours per
Semester Course ECTS 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
Fertalj: Development of a new course, DAAD, 2008. 30 14 5
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.
Fertalj: Development of a new course, DAAD, 2008. 6
Roger S. Pressman:
Software engineering: A Practitioner`s Approach
Part 1 The Software Process ...
2 Process: A Generic View 18 Analysis Modeling for Web Applications
3 Prescriptive Process Models 19 Design Modeling for Web Applications
4 Agile Development 20 Testing Web Applications

Part 2 Software Engineering Practice


5 Practice: A Generic View Part 4 Managing Software Projects
6 System Engineering 21 Project Management Concepts
7 Requirements Engineering 22 Process and Project Metrics
8 Analysis Modeling 23 Estimation for Software Projects
9 Design Engineering 24 Software Project Scheduling
10 Architectural Design 25 Risk Management
11 Component-Level Design 26 Quality Management
12 User Interface Design 27 Change Management
13 Software Testing Strategies
14 Software Testing Techniques Part 5 Advanced Topics in Software
15 Product Metrics for Software Engineering
28 Formal Methods
Part 3 Applying Web Engineering 29 Cleanroom Software Engineering
16 Web Engineering 30 Component-Based Software Engineering
17 Formulation and Planning for Web 31 Reengineering
Engineering 32 The Road Ahead
...

Fertalj: Development of a new course, DAAD, 2008. 7


Ian Sommerville : Software engineering
INTRODUCTION SOFTWARE DEVELOPMENT
Ch 1: Introduction Ch 17: Iterative Software Development
Ch 2: Socio-technical Systems
Ch 3: Dependability Ch 18: Software Reuse
Ch 4: Software Processes Ch 19: CBSE
Ch 5: Project Management Ch 20: Critical Systems Development
Ch 21: Software Evolution
REQUIREMENTS ENGINEERING
Ch 6: Software Requirements VERIFICATION AND VALIDATION
Ch 7: RE Processes Ch 22: Verification and Validation
Ch 8: Systems Models Ch 23: Software Testing
Ch 9: Critical Systems Specification Ch 24: Critical Systems Validation
Ch 10: Formal Specification
MANAGEMENT
DESIGN Ch 25: Managing People
Ch 11: Architectural Design Ch 26: Software Cost Estimation
Ch 12: Distributed Systems Ch 27: Quality Management
Architecture Ch 28: Process Improvement
Ch 13: Application Architectures Ch 29: Configuration Management
Ch 14: Object-oriented Design
Ch 15: Real-time Systems
Ch 16: User Interface Design

Fertalj: Development of a new course, DAAD, 2008. 8


Execution
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 !?

Fertalj: Development of a new course, DAAD, 2008. 10


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

Fertalj: Development of a new course, DAAD, 2008. 11


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 

Fertalj: Development of a new course, DAAD, 2008. 12


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%

Fertalj: Development of a new course, DAAD, 2008. 13


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. 


Fertalj: Development of a new course, DAAD, 2008. 14
Preparation and execution
Computer Supported Course

Fertalj: Development of a new course, DAAD, 2008. 16


Computer Supported Teaching and Evaluation

Fertalj: Development of a new course, DAAD, 2008. 17


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

Fertalj: Development of a new course, DAAD, 2008. 18


Representative software example
Mjesto

PK,I2 IdMjesta Drzava

PK OznDrzave
FK1,I1,I3 OznDrzave
I4 NazMjesta U1 NazDrzave
PostBrMjesta ISO3Drzave
PostNazMjesta SifDrzave

Dokument
Partner
PK IdDokumenta
PK IdPartnera Artikl
VrDokumenta
TipPartnera BrDokumenta PK SifArtikla
FK1,I1 IdMjestaPartnera DatDokumenta
AdrPartnera FK2,I4,I2 IdPartnera U1 NazArtikla
FK2,I2 IdMjestaIsporuke FK1,I1,I3 IdPrethDokumenta JedMjere
AdrIsporuke PostoPorez CijArtikla
IznosDokumenta ZastUsluga
SlikaArtikla

Stavka
Osoba
Tvrtka PK,FK2,I3,I2 IdDokumenta
PK,FK1,I1 SifArtikla
U1 JMBG KolArtikla
U1 MatBrTvrtke PrezimeOsobe
I2 NazivTvrtke JedCijArtikla
ImeOsobe PostoRabat
Fertalj: Development of a new course, DAAD, 2008. 19
Representative software solution

Fertalj: Development of a new course, DAAD, 2008. 20


Students' project - A real-life problem

Fertalj: Development of a new course, DAAD, 2008. 21


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)

team effort Dizajn komponente


Dizajn korisničkog sučelja
5 Dijagram strukture programske komponente za obradu
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

individual effort Deklaracije i inicijalizacija


Čitljivost i razumljivost
3
3
Deklaracije i inicijalizacija programskih varijabli
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, …)

grades Uvažavanje sadržaja

Estetika
3 Oponašanje izgleda stvarnih objekata, statusna traka, prikladnost kontrola s obzirom
na tip podatka, dinamički izračun agregiranih vrijednosti
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

Fertalj: Development of a new course, DAAD, 2008. 22


The 1stst cycle

Fertalj: Development of a new course, DAAD, 2008. 23


Contents: SDLC, Project, Requirements
 Lectures
Topics slides Theory Practice
Software engineering 68 Introduction, definitions, Introduction to C#
fundamentals. Software life cycle
development life cycle. Software
Project definition. Project plan. 70 Project planning and Object oriented
Software development trackin, SCM, VSS, programming, classes
environments. Computer aided CASE
software engineering. Software
version control.
Requirements Specification. Unified 74 Analysis, UML, UC, Code-UML, Inheritance
modeling language basics. SRS
Coding standards. Programming 79 Naming, formatting, Defensive programming,
techniques. style debugging

 Laboratory
 Interview with real users – a faculty team dealing with education, science
and business
 Homework
 requirements determination, installation of IDE, creation of team solution, ...

Fertalj: Development of a new course, DAAD, 2008. 24


Homework Tests

1st interim exam


Fertalj: Development of a new course, DAAD, 2008. 25
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 ?

Fertalj:
FER \ Fertalj:
Development
Razvojof
primijenjene
a new course,
programske
DAAD, 2008.
potpore, 2007/08. 26
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 !

Fertalj:
FER \ Fertalj:
Development
Razvojof
primijenjene
a new course,
programske
DAAD, 2008.
potpore, 2007/08. 27
The 2nd
nd cycle

Fertalj: Development of a new course, DAAD, 2008. 28


Contents: Design, Windows programming
 Lectures
Topics slides Theory Practice
Graphical user interface. Event 64 Criteria of GUI design Windows Forms,
handlers. Dialogs. Data input delegates, events
validation. Construction of custom
controls.
Data access logic. 73 ADO.NET Queries, datasets, data
validation
Screen design. User process 40 Standardization of user Screen layout, basic
components. interface controls and components

Distributed aplications. 60 Thin client, Fat client, N-tier application


Application layers. Layered applications development

 Homework
 Various types of windows forms in four steps (homeworks)

Fertalj: Development of a new course, DAAD, 2008. 29


Homework Tests

2nd interim exam


Fertalj: Development of a new course, DAAD, 2008. 30
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

Fertalj: Development of a new course, DAAD, 2008. 31


3rd
rd cycle
Contents: Reporting, Web, Mobile, Documentation
Topics slides Theory Practice
Universal and self-adaptable 65 Standard functions to Universal screen form.
program modules. Report design. handle a database Crystal reports.
table. Types of reports.
File management. Data transfer. 70 Classes to handle Delimited files, Excel
Windows services. files, XML, architecture files, XML files, Windows
of windows services service, Notification icon.
Web applications 105 ASP.NET, web page Web pages, Web wizard,
layout and code, HTML Web service,
and controls authentification
Mobile applications 50 Compact Framework, Examples of pocket
pocket GUI specifics aplications over XML,
pocket database and
Web service.
Software parametrization. 37 Parametrization, Config files, context
Internationalization of applications. internationalization, sensitive help,
Context-sensitive help localization, documentation,
implementation. Writing software installation procedures
documentation. Self-documenting
source code.Software release.
Software maintenance.

Fertalj: Development of a new course, DAAD, 2008. 33


Homework Tests

Final exam
Fertalj: Development of a new course, DAAD, 2008. 34
At the end of the semester
Statistics Achievements 07/08
Enrolment 07/08 Number of starts 101
Total number of enrolments 106 Retention / % 95.28%
Number of male students 90 Number of passed 86
Number of female students 16 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 /

Fertalj: Development of a new course, DAAD, 2008. 36


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 , .... ???

Fertalj: Development of a new course, DAAD, 2008. 37


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"

Fertalj: Development of a new course, DAAD, 2008. 38


What's next

Master study
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.
Fertalj: Development of a new course, DAAD, 2008. 40
The context
 Prerequisites: Development of Software Applications

Fertalj: Development of a new course, DAAD, 2008. 41


Fertalj: Development of a new course, DAAD, 2008. 42
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.
Fertalj: Development of a new course, DAAD, 2008. 43
The context

Fertalj: Development of a new course, DAAD, 2008. 44


Fertalj: Development of a new course, DAAD, 2008. 45
Discussion

You might also like