460 likes | 624 Views
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
E N D
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. • Thecourse studies approaches to the development of end user applications, includingrequirements analysis and specification, design and construction of softwarecomponents, programming techniques,documentation, implementation andmaintenance 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 successfuldesign, construction and implementation of software systems. • Students will be able toformulate the software requirements and to develop, implement and maintain qualitysoftware built upon different software architectures. 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 Fertalj: Development of a new course, DAAD, 2008.
The context – module of software engineering 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. Fertalj: Development of a new course, DAAD, 2008.
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 Roger S. Pressman: Software engineering: A Practitioner`s Approach Fertalj: Development of a new course, DAAD, 2008.
INTRODUCTIONCh 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 Ian Sommerville : Software engineering 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 !? 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 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 generatedquestions, 60 minutes per test • Interim exam I (10% points) • project plan • requirementsspecification, 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.
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 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. Fertalj: Development of a new course, DAAD, 2008.
Computer Supported Course Fertalj: Development of a new course, DAAD, 2008.
Computer Supported Teaching and Evaluation 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 Fertalj: Development of a new course, DAAD, 2008.
Representative software example Fertalj: Development of a new course, DAAD, 2008.
Representative software solution Fertalj: Development of a new course, DAAD, 2008.
Students' project - A real-life problem 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 team effort individual effort grades Fertalj: Development of a new course, DAAD, 2008.
The 1st cycle 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, ... Fertalj: Development of a new course, DAAD, 2008.
Homework • Tests • 1st interim exam Fertalj: Development of a new course, DAAD, 2008.
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 ?=campaignallabolognese Remove thebugfrom 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: 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 ! Fertalj: Development of a new course, DAAD, 2008. FER \ Fertalj: Razvoj primijenjene programske potpore, 2007/08.
The 2nd cycle Fertalj: Development of a new course, DAAD, 2008.
Contents: Design, Windows programming • Lectures • Homework • Various types of windows forms in four steps (homeworks) Fertalj: Development of a new course, DAAD, 2008.
Homework • Tests • 2nd interim exam 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 Fertalj: Development of a new course, DAAD, 2008.
Contents: Reporting, Web, Mobile, Documentation Fertalj: Development of a new course, DAAD, 2008.
Homework • Tests • Final exam Fertalj: Development of a new course, DAAD, 2008.
Statistics 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, .... ??? 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" Fertalj: Development of a new course, DAAD, 2008.
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.
The context • Prerequisites: Development of Software Applications 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. Fertalj: Development of a new course, DAAD, 2008.
The context Fertalj: Development of a new course, DAAD, 2008.