krešimir fertalj: development of a new course on software development – a case study
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Krešimir Fertalj:Development of a new course on software
development – a case study
DAAD meeting, May, 19-25 2008, BerlinDAAD workshop, Sept, 07-14 2008, Durres-Kavaje
2Fertalj: 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.
3Fertalj: 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
4Fertalj: Development of a new course, DAAD, 2008.
5Fertalj: Development of a new course, DAAD, 2008.
The context – module of software engineeringSemester 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
6Fertalj: 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.
7Fertalj: 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
8Fertalj: Development of a new course, DAAD, 2008.
Ian Sommerville : Software engineeringINTRODUCTION
Ch 1: Introduction Ch 2: Socio-technical SystemsCh 3: DependabilityCh 4: Software ProcessesCh 5: Project Management
REQUIREMENTS ENGINEERINGCh 6: Software RequirementsCh 7: RE ProcessesCh 8: Systems ModelsCh 9: Critical Systems SpecificationCh 10: Formal Specification
DESIGNCh 11: Architectural DesignCh 12: Distributed Systems ArchitectureCh 13: Application Architectures Ch 14: Object-oriented DesignCh 15: Real-time Systems Ch 16: User Interface Design
SOFTWARE DEVELOPMENTCh 17: Iterative Software Development
Ch 18: Software ReuseCh 19: CBSE Ch 20: Critical Systems DevelopmentCh 21: Software Evolution
VERIFICATION AND VALIDATIONCh 22: Verification and ValidationCh 23: Software Testing Ch 24: Critical Systems Validation
MANAGEMENTCh 25: Managing PeopleCh 26: Software Cost EstimationCh 27: Quality Management Ch 28: Process ImprovementCh 29: Configuration Management
Execution
10Fertalj: 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 !?
11Fertalj: 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
12Fertalj: 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
13Fertalj: 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 SharePresence 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%
14Fertalj: 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.
Preparation and execution
16Fertalj: Development of a new course, DAAD, 2008.
Computer Supported Course
17Fertalj: Development of a new course, DAAD, 2008.
Computer Supported Teaching and Evaluation
18Fertalj: 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
19Fertalj: Development of a new course, DAAD, 2008.
Representative software example
Partner
PK IdPartnera
TipPartneraFK1,I1 IdMjestaPartnera AdrPartneraFK2,I2 IdMjestaIsporuke AdrIsporuke
Artikl
PK SifArtikla
U1 NazArtikla JedMjere CijArtikla ZastUsluga SlikaArtikla
Stavka
PK,FK2,I3,I2 IdDokumentaPK,FK1,I1 SifArtikla
KolArtikla JedCijArtikla PostoRabat
Dokument
PK IdDokumenta
VrDokumenta BrDokumenta DatDokumentaFK2,I4,I2 IdPartneraFK1,I1,I3 IdPrethDokumenta PostoPorez IznosDokumenta
Tvrtka
U1 MatBrTvrtkeI2 NazivTvrtke
Drzava
PK OznDrzave
U1 NazDrzave ISO3Drzave SifDrzave
Mjesto
PK,I2 IdMjesta
FK1,I1,I3 OznDrzaveI4 NazMjesta PostBrMjesta PostNazMjesta
Osoba
U1 JMBG PrezimeOsobe ImeOsobe
20Fertalj: Development of a new course, DAAD, 2008.
Representative software solution
21Fertalj: Development of a new course, DAAD, 2008.
Students' project - A real-life problem
22Fertalj: 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.mppAž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.docSvrha, 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 programiranjaStandard nazivlja 3 Specifikacija korištenog nazivlja u bazi podataka i programskom kodu
Obrada iznimki 3 Programska knjižnica/razred za centraliziranu obradu iznimkiTrag 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 mjestimaPrimjena traga izvođenja aplikacije 3 Bilježenje traga uhvaćenih iznimkiFormatiranje izvornog koda 3 Širina i dubina programskih sljedova, poravnanje (uvlačenje) naredbiModularnost 3 Veličina postupakaDeklaracije i inicijalizacija 3 Deklaracije i inicijalizacija programskih varijabliČitljivost i razumljivost 3 Smislenost naziva varijabli, slamanje logičkih izraza i dugačkih naredbi, programski
komentariFunkcionalnost 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, komentariNavigacija podacima 5 Alatna trakaValidacija 5 Provjera valjanosti ključnih podatakaOdabir vrijednosti vezanih podataka 5 Padajuće liste za odabir vrijednosti stranog ključaPoziv forme vezanog podatka 5 Poziv forme za odabir vrijednosti stranog ključa
Ulančavanje procedura 10 Podržanost reprezentativnog scenarija
Nefunkcionalna svojstvaGlavni 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 vrijednostiEstetika 3 Preglednost, korištenje pisma i bojaMinimizacija napora 3 Tipke za funkcije obrade, slijed unosa, standardne vrijednosti
Dosljednost sučelja 3 Dosljednost izgleda i ponašanja kontrola i formi, na razini projektaPrilagođenost korisniku 3 Intuitivan izbornik, lakoća pristupa i obrade (tipke za ubrzani pristup)
Sigurnost i zaštita 3 Autentifikacija korisnikaArhitektura komponente 20 Dodatna kvaliteta tankog klijenta (10 bodova) ilii višeslojne arhitekture (20 bodova)
UKUPNO 150
team effort
individual effort
grades
23Fertalj: Development of a new course, DAAD, 2008.
The 1st cycle
24Fertalj: 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 PracticeSoftware 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
25Fertalj: Development of a new course, DAAD, 2008.
Homework Tests
1st interim exam
26Fertalj: 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 ?
27Fertalj: 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 !
28Fertalj: Development of a new course, DAAD, 2008.
The 2nd cycle
29Fertalj: 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 PracticeGraphical 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
30Fertalj: Development of a new course, DAAD, 2008.
Homework Tests
2nd interim exam
31Fertalj: 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
3rd cycle
33Fertalj: Development of a new course, DAAD, 2008.
Contents: Reporting, Web, Mobile, Documentation
Topics slides Theory PracticeUniversal 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
34Fertalj: Development of a new course, DAAD, 2008.
Homework Tests
Final exam
At the end of the semester
36Fertalj: Development of a new course, DAAD, 2008.
StatisticsEnrolment 07/08Total number of enrolments 106Number of male students 90Number of female students 16
Achievements 07/08Number of starts 101Retention / % 95.28%Number of passed 86Achievement / % 85.15%
Grade 5 4 3 2 1Number of students with this grade 13 30 30 13 15Minimum number of points for this grade 84.65 70.85 61.90 56.10 /
37Fertalj: 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 , .... ???
38Fertalj: 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"
What's next
Master study
40Fertalj: 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.
41Fertalj: Development of a new course, DAAD, 2008.
The context Prerequisites: Development of Software Applications
42Fertalj: Development of a new course, DAAD, 2008.
43Fertalj: 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.
44Fertalj: Development of a new course, DAAD, 2008.
The context
45Fertalj: Development of a new course, DAAD, 2008.
Discussion
?