Software Engineering 2017/2018
- 7 ECTS
- Taught in Portuguese
- Continuous Assessment
- relevant skillset
After completing the course, students should be able to understand the role of the design phase in the information systems development process: the principles that enable the design of systems with quality; modeling of computer systems components using UML.
Specifically, at the end of the semester, it is expected that students will be able to:
• Develop software with high quality level, to write test plans, and to execute these tests.
• Use version control tools
• Build design specifications using UML tools and techniques.
• Use automated tools for systems modeling.
Curricular units: Programming, IS Development
Concepts of object oriented analysis using UML; Java
During theoretical-practical classes the subjects will be explained with practical examples and discussion.
During practical classes students will work on several assignments, having the opportunity to use the studied techniques.
Body of Work
Source control systems. GIT.
Software testing. Types of tests. Test case design. Using JUnit and FitNesse.
Test plans and documentation.
An introduction to quality management systems (ISO 9001), from a software development viewpoint.
Software engineering: the design phase of the ISD process
Object-oriented design using UML
Use of automatic modeling tools
Nunes, M. e O’Neill, H., Fundamental de UML, FCA, 2ª ed., 2004
Barnes, D. e Kolling, M., Objects first with Java: a practical introduction using BlueJ, Pearson/Prentice Hall, 4ª Ed., 2008
Liang, Y. Daniel, Introduction to Java Programming, Pearson, 6ª Ed, 2007
Bernd Bruegge e Allen Dutoit, Object Oriented Software Engineering Using UML, Patterns, and Java ", 3ª Ed, Pearson, 2010
Paul Ammann and Jeff Offutt, Introduction to Software Testing, Cambridge University Press, 2008, ISBN-13: 978-0521880381
Ian Sommerville; Software Engineering (9th edition), Addison-Wesley, 2011. ISBN: 9780137035151
Cem Kaner, Jack Falk, Hung Quoc Nguyen; Testing Computer Software, Wiley, 1999.
Deitel e Deitel, Java How to Program, 7ª Edição, 2007, Prentice Hall
Roger S Pressman , Web Engineering: A Practioner's Approach, McGraw-Hill ,2008
Eric e Elisabeth Freeman, Head First Design Patterns, O’Reilly, 2004
Lopes. F., Morais, P., Carvalho, A., Desenvolvimento de Sistemas de Informação: métodos e técnicas, FCA, 2ª Ed, 2009
Gamma, E., et al., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995
Ilene Burnstein, Practical Software Testing: A Process-Oriented Approach, Springer Professional Computing, 2003, ISBN-13: 978-1441928856
Week 1: GIT
Week 2: Types of tests. JUnit work.
Week 3: Design of test cases. Continuation of JUnit's work.
Week 4: FIT. FIT work.
Week 5: Software quality. Continuation of FIT work.
Week 6: Test planning and documentation. Preparing a test plan.
Week 7: Quality - introduction to ISO 9001, from the point of view of software development. Mini-test. Continuation of work.
Week 8: Software engineering; the design phase of the SD process; Sw Faults
Week 9 and 10: Object-Oriented Design Using UML, Package, Deployment, and Activity Diagrams
Week 11: Designing databases and UML: Practical Exercises
Week 12: Practical cases
Week 13: Modeling Tools
Week 14: Mini-test. Presentation of the works.
Demonstration of the syllabus coherence with the curricular unit's objectives
Concerning version control software, GIT was selected because it is the most commonly used tool.
JUnit, for unit testing, and FIT and Fitnesse, for integration testing, are free and open source, being good examples of this kind of tools.
For test plans, the IEEE model was selected, because it is the de facto standard.
Demonstration of the teaching methodologies coherence with the curricular unit's objectives
Theoretical-practical classes allow the presentation, demonstration and discussion of the discipline subjects. Practical classes will be used to solve concrete problems, and to understand the complexity of the tasks.
|relevant generic skill||improved?||assessed?|
|Achieving practical application of theoretical knowledge||Yes||Yes|
|Analytical and synthetic skills||Yes||Yes|
|Commitment to effectiveness||Yes||Yes|
|Commitment to quality||Yes||Yes|
|Ethical and responsible behaviour|
|Foreign language proficiency||Yes|
|IT and technology proficiency||Yes||Yes|
|Problem Analysis and Assessment||Yes||Yes|
|Relating to others|