Software Development Methods
Objectives
Knowledge:
a) Software lifecycle, tools, methods and techniques for project management, specification and design of large-scale projects involving large, multidisciplinary teams
b) The relevance of project development activities, approaches and models to tackle complex problems in a pragmatic and rigorous way
c) Modeling techniques for structured, agile and object-oriented development
d) The social, Professional and Ethical responsibility of a Software Engineer
Application:
e) Deal with and model complex problems (Problem and Solution)
f) Interpret, understand and discuss badly defined requirements (omissions, ambiguities, contradictions, duplications)
g) Use techniques for structured, agile and object-oriented software development
h) Use adequate tools to support software specification and design
General characterization
Code
8148
Credits
6.0
Responsible teacher
Ana Maria Diniz Moreira, Vasco Miguel Moreira do Amaral
Hours
Weekly - 5
Total - 52
Teaching language
Português
Prerequisites
No precedences required.
Bibliography
Software Engineering, Ian Sommerville (8th Edition or later) Addison-Wesley
UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design (2nd Edition), Jim Arlow, Addison-Wesley Professional, 2005
Powerpoints of the Theoretical Lectures: available at the course website
Lab exercises and revision material: available at the course website
A code of ethics and professional practice for software engineering, ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices, 2004.
Tools:Gantter (Ferramenta de gestão de projeto), Star UML (Editor de UML), USE Tool (UML tool with OCL support), UML quizzes (online)
Teaching method
Lectures consist of a theoretical exposition, illustrated by application examples, and supported by slides and the usage of the software development environment of the lecturer.
In the lab sessions, students solve problems by concretely applying the concepts discussed in the previous lectures. The students will have dedicated time during the labs to ask questions related to the interpretation of the requirements of the project.
Students may clarify any doubts during classes or in the instructor’s contact hours.
Evaluation method
The grading system for this course works in the following two ways, according to the student''s state:
E1- Students enrolled in this course for the first time. These students have to get approval in two components: theory and practice. See I to IV.
E2 - The rest of the cases. See V to VIII.
The students are graded with the scale 0 (minimum) to 20 (maximum).
I - Theoretical evaluation - Tests and Exams
1. The classification of the theoretical part (here labelled as NT) is the arithmetic mean of the Two tests.
2. The students that obtain NT greater or equal to 9,5 get the approval in the theoretical part.
3. Each test will cover the content of the lectures taught until one week before the examination.
4. Despite the fact that the tests are supposed to cover the content of the lectures in a modular way, it is not taken from granting that the second test does not use knowledge already examined in the first test.
5. The times and locations of the tests will be announced in the CLIP system, and the moodle''s course website.
6. All students have to be enrolled in theoretical lectures and labs.
7. The students can only have with them during the examination:
a. pen, stencil, eraser;
b. student''s ID card
8. Any other element (including electronic devices, calculator machines etc) are forbidden. Mobile devices must be switched off so that they don''t disturb the rest of the students.
9. You can not unstaple the examination papers.
10. The exam will be disqualified if any of the conditions expressed in 6,7,8 are not satisfied.
11. Any form of fraud, plagiarism, bad conduct will lead to immediate failure in the course, and the situation will be reported to the Faculty''s management to proceed with legal consequences.
II - Labs and Project (Practical evaluation)
1. The labs will start in the second week after the semester starts.
2. In the second lecture, the students will declare their group members (3 students at most).
3. The students that do not satisfy 2. will have their enrollment in a specific lab cancelled.
4. The work of the group members on the project must start since the first day the description of the problem is announced.
a. The presence in class will be monitored.
b. The project will imply the submission of a report with the first part (representing 15% of the final course grade) and a second one, with all the evaluation artefacts requested (representing 25% of the final grade).
5. The project implies an oral discussion.
6. The complete grading of the project will depend on the deliverables and the oral discussion.
III - "Frequency"
1. The concept of "Frequency" means that the student is allowed to pass in the course (taking into consideration the rest of the evaluation grading). It is mandatory that the student has a minimum performance (Grade of the project >= 10) in the execution of his project.
2. For students E2, we can consider the "frequency" obtained in previous years (2017/18 and 2018/19).Therefore, the students can do the evaluation in the theoretical part: exams and tests. In this case, the final grade will be calculated in the following manner: T1+T2, where T1 weights 50% and T2 50%, or the Exam (100%).
3- The students E2 with "frequency" have to be enrolled in the theoretical and practical labs. They can opt in between doing the project, using the "frequency", or not (implying that they will be evaluated as any other student E1). In any case, they should inform the lecturers about their status and their willingness or not work on the project for evaluation.
IV - Final grading of Students E1
1. The final grade (CF) is the result of the following expression rounded to the nearest whole number:
CF=NTx0.6+NPx0.4
2. The students that have "Frequency", with positive grading that shows discrepancy greater to 4 units when compared to the grading in the tests, will be called for oral examination.
3. The oral examination implies that the grades can change although it is assured that the grade will never be lower to CF=NT.
4. If the student does not participate in the oral exam the final grade will be CF=NT.
VI - Final grade for students E2
Students that want to make use of "Frequency" obtained in previous years.
1. Students with the classification of NT >= 9.5 are approved.
2. The final Classification CF=NT rounded to the nearest whole number.
3. The classification of NP is not considered.
VII - Grade improvement
1. The students that want to improve their grades have to follow the rules of the academic department to be subscribed in CLIP for that purpose.
2. The final grade is the grade of the Exam CF=NT.
VIII - Students workers
1. The students are considered Student workers if subscribed following the academics department in CLIP.
2. The students with this category have to be evaluated like any other E1 student (tests, exams, and project deliveries.
3. The final grading is computed in the following manner:
CF=NT×0.6+NP×0.4
Subject matter
Part 1:
1. Software Development Processes
2. Overview of elicitation and modeling paradigms
3. Functional and Non-Functional Requirements
4. UML
a) Requirements: Use Case Diagrams
b) Behavior: Activity, Sequence and state diagrams
c) Structure: Class, Object and Package diagrams
d) OCL (Object-constraint language)
Part 2:
1. Architectural and design principles
2. Tools and Environments
3. UML
a) Architecture: Component and Installation Models
b) Persistency: Deriving Entity-Relationship models
Part 3:
1. Introduction to Project Management
2. Code of Professional Ethics
Programs
Programs where the course is taught: