Upon completion of this course, the students should be able to: * Understand the RUP process and be able to apply it to the development of large, complex software systems; * Acknowledge and apply some relevant software engineering principles like IOC (Inversion of Control), DI (Dependency Injection), the separation principle (cf. the MVC model - model, view and controller) and wellknown "software design patterns"; * Acknowledge and use mainstream Java technologies for Web applications, namely Servlets, Java Server Pages (JSP), Java Server Faces or Structs, Beans and persistency technology. The application´s architecture is to be compliant with the MVC model; * Use lighweight modeling in Alloy in cases where portions of the system need some sort of formal verification that they satisfy functional or even structural requirements.
1.- Introduction to Software Architectures Platforms J2EE and .NET 2.- Introduction to the Rational Unified Process (RUP) 3.- Model based Software Engineering: UML Software Systems modeling with UML Systematic Model transformation in UML 4.- Advanced JAVA Generics; Implementation of generic classes; Type erasure in Java Reflection Factory methods 5.- Software Engineering principles Inversion of Control (IOC) Dependency Injection (DI) 6.- Standard Design Patterns 7.- Java technology for Web applications Servlets Java Server Pages (JSP) Java Beans Modelo MVC de implementação MVC using Structs or JSF Technology for Persistence DAOs (Data Access objects) TAOs (Transfer Objects) JPA (Java Persistence API) Hibernate 8.- Model Validation and Verification using Alloy
Classes: 45 hours Software projects to be developed extra-time in small groups Module Assessment: 2 group projects
F. Mário Martins, Notas Teóricas de Arquiteturas de Sofware, DI/UM, 2011. UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition), Martin Fowler, AddisonWesley, 2003 Core Servlets and Java Server Pages, Martin Hall and Larry Brown, free e-book, 2010. Design Patterns: Elements of reusable Object-Oriented Software, E. Gamma et al., Addison-Wesley, 2000.
• Define within the whole process of software engineering, the intervention of the requirements engineering team and the formal involvement of stakeholders • Choose how the requirements should be captured, in particular decide which techniques to use to raise the requirements from the sources identified • Detect, negotiate and resolve conflicts between requirements captured • Structure the requirements document at two levels (user requirements and system requirements) and ensure its quality and verifiability • Review the requirements document, ensuring that it describes the desired system, through formal reviews, inspections or prototyping • Manage changing requirements through technical traceability and impact analysis
• Requirements engineering process • Requirements elicitation • Requirements analysis • Requirements specification and modeling • Requirements validation • Requirements management
Lectures (with some predominance to expositive classes) and practical lessons to apply the concepts and techniques / practices Evaluation: Written exam Exercises and Projects
Aurum A, Wohlin C (eds.); Engineering and Managing Software Requirements, Springer, 2005, ISBN 978-3-54025043-2 Robertson S, Robertson J; “Mastering the Requirements Process”, 2nd edition, Addison-Wesley, 2006, ISBN 0321-41949-9
• Design, develop, deploy and maintain web applications • Identify the issues of the legal, professional, social and ethical involved in the development of usable and accessible web applications • Adapt a web application to other contexts of use, based on the captured requirements • Describe and discuss the techniques, methods and approaches used in web development
• Technologies • Development processo • Requirements engineering • Design of web applications • Adaptation • Implementation, deployment, and maintenance • Quality assessment • Semantic web and web 2.0
Lectures (with some predominance to expositive classes) and practical lessons to apply the concepts and techniques / practices techniques / practices Evaluation: Written test Exercises and Projects
Emilia Mendes, Nile Mosley (Eds.), Web Engineering, Springer, ISBN 3-540-28196-7, 2006 Gerti Kappel, Birgit Pr Siegfried Reich, Werner Retschitzegger (eds.) "Web Engineering: The Discipline of oll, Systematic Development of Web Applications", John Wiley & Sons, 2003
To complete this curricular with success, students will have to be able to: 1. Discuss alternatives to applying the techniques of PMBoK in software projects; 2. Develop the plan of a information system project, following the guidelines of PMBoK; 3. Understand and apply appropriate methods to register the progress of a project (project execution); 4. Apply the techniques proposed by the PMBoK for monitoring the progress of a project (EVM Earned Value Management); 5. Understand the principles, themes and processes proposed by the PRINCE2 method.
1. Introduction to Project Management 1.1 Project Context 1.2 Project Organization 1.3 The PMBOK Framework 1.4 Knowledge Areas 2. Techniques and tools for planning a project according to PMBOK 2.1 Scope Planning 2.2 Schedule planning 2.3 Cost planning 2.4 Quality Planning 2.5 Planning in the other knowledge areas 2.6 A Method for planning softwareprojects 3. Execution, Monitoring and Closure of the project (PMBOK) 3.1. Reports of progress 3.2. EVM - Earned Value Management 3.3. Control project changes 3.4. Closing the project 4. PRINCE2 - Projects in a Controlled Environment 4.1. Introduction 4.2. Principles 4.3. Themes 4.4. Processes 4.5. Conclusions
The teaching methodologies adopted include: • expository method; • questioning method; • active method. Evaluation method: It includes the realization of one IT project (individually or in small grups), dedicated to one or several topics discussed in the curricular unit. The final grade is calculated as follows: Final grade = 15% interim report+ 85% project assessment
Kerzner H (2006) Project Management – A Systems Approach to Planning, Scheduling and Controlling. 9ª ed. Wiley. Hoboken, NJ, USA. Meredith JR, Mantel SJJ (2005) Project Management: A Managerial Approach. 6ª ed. Wiley. Hoboken, NJ, USA. PMI (2008) A Guide to the Project Management Body of Knowledge, PMBOK. 4ª ed. PMI Standards Committee. Upper Darby, PA, USA TSO (2009) PRINCE2 - Managing Successful Projects with PRINCE2, TSO Ireland Miguel, António (2006). Gestão moderna de projectos: melhores técnicas e práticas. FCA - Lisboa. Lewis, J. P. (2011) Project planning, scheduling & control: the ultimate hands-on guide to bringing projects in on time and on budget, 5th ed. ed., New York: McGraw-Hill Professional ; London : McGraw-Hill [distributor]