成人大片

COMP SCI 3006NA - Software Engineering & Project

Ngee Ann Academy - Trimester 3 - 2014

Within the context of a semester-long, group-based software engineering project, this course provides an introduction to the production of high quality software solutions to large tasks. Among the topics covered in this course are the following: models of the software life-cycle, requirements analysis and specification, program design techniques and paradigms, software specification techniques, configuration management and version control, quality assurance, integration and testing, project management, risk analysis, case study of ethical considerations in Software Engineering.

  • General Course Information
    Course Details
    Course Code COMP SCI 3006NA
    Course Software Engineering & Project
    Coordinating Unit Computer Science
    Term Trimester 3
    Level Undergraduate
    Location/s Ngee Ann Academy
    Units 3
    Course Staff

    Course Coordinator: Dr Amali Weerasinghe

    Course Timetable

    The full timetable of all activities for this course can be accessed from .

  • Learning Outcomes
    Course Learning Outcomes
    The learning objectives for Software Engineering and Project are:
    1) To develop knowledge of software development techniques and methodologies, as applied to large scale software development projects, throughout various stages of the development lifecycle including planning, requirements gathering, design, implementation and testing.
    2) To gain experience in applying various Computer Science methods and algorithms, as learnt in earlier courses, to large scale software development.
    3) To gain experience in group-based software development and develop communication, planning and time-management skills.
    4) To develop knowledge and experience in professional conduct and meeting participation.
    5) To develop knowledge of professional codes of conduct of Computer Scientists and Engineers and demonstrate understanding through scenario-based exercises.
    6) To develop capability and skill in investigating, analyzing, and using software tools to increase the productivity of software development.
    University Graduate Attributes

    This course will provide students with an opportunity to develop the Graduate Attribute(s) specified below:

    University Graduate Attribute Course Learning Outcome(s)
    Knowledge and understanding of the content and techniques of a chosen discipline at advanced levels that are internationally recognised. 1
    The ability to locate, analyse, evaluate and synthesise information from a wide variety of sources in a planned and timely manner. 1,2,3
    An ability to apply effective, creative and innovative solutions, both independently and cooperatively, to current and future problems. 1,2
    Skills of a high order in interpersonal understanding, teamwork and communication. 3
    A proficiency in the appropriate use of contemporary technologies. 2
    A commitment to continuous learning and the capacity to maintain intellectual curiosity throughout life. 1,2
    A commitment to the highest standards of professional endeavour and the ability to take a leadership role in the community. 4
    An awareness of ethical, social and cultural issues within a global context and their importance in the exercise of professional skills and responsibilities. 5
  • Learning Resources
    Required Resources
    The prescribed textbook for the course is "Software Engineering, 9th Edition (Ian Sommerville)".
    Recommended Resources
    • Software Engineering: A Practitioners Approach, 5th Ed., R. Pressman, McGraw-Hill, 2001.
    • Object-Oriented and Classical Software Engineering, 5th Ed., S. Schach, McGraw-Hill, 2002.
    • Software Engineering Principles and Practice, 2nd Ed., H. VanVliet, Wiley, 2000.
    • A Discipline for Software Engineering, W.S. Humphrey, Addison-Wesley, 1995.
    • Managing Technical People, W.S. Humphrey, Addison-Wesley, 1997.
    • Introduction to the Team Software Process, W.S. Humphrey, Addison-Wesley, 2000.
    Online Learning
    The Software Engineering and Project course currently uses a Moodle forum for communication (the link will be published in time).

    All students are required to subscribe and check the forum on a regular basis for announcements relating to the course and project.
  • Learning & Teaching Activities
    Learning & Teaching Modes
    The course aims to introduce students to a wide range of Software Engineering terminology, techniques and processes throughan eight week block of lectures. The concepts taught in these lectures will be practised and reinforced by participation in asemester long, group-based software engineering project. This project will take students through the entire software development lifecycle, from requirements gathering, through to implementation, testing and deployment.

    Weekly group meetings will be held with students, in which students will gather requirements for their project, demonstrate software prototypes, and present on various topics relevant to their project. Agendas will be prepared for the meetings, andeach meeting will be fully minuted by the students. Feedback will be given to students at the group meeting, in order forstudents to improve on their presentation, demonstration and meeting management skills. Attendance at all the lectures of thecourse is encouraged as the engineering practices and principles taught in these lectures will be assessed during the entire semester in the group meetings. At the end of the project, students will give a final presentation and demonstration in which students will be given an opportunity to reflect on their experiences in the project and the lessons learnt.
    Workload

    The information below is provided as a guide to assist students in engaging appropriately with the course requirements.

    The information below is provided as a guide to assist students in engaging appropriately with the course requirements.

    Software Engineering and Project is a 3 unit course. The expectation is that students will be spending 12 hours per week working on the course. For the first 8 weeks of the course, this will include 3
    hours per week of lectures. From week 3, students are required to attend a weekly group meeting with one of the lecturers, approximately 25 minutes in duration. Students are also required to attend their own group meeting to solve the relevant issues involved in the project, approximately 25 to 35 minutes in duration. The remainder of the time should be spent working on the project – students are expected to learn the content presented in lectures by doing the project.

    NOTE: the nature of the course means that it is very easy for students to spend more than the allotted 12 hours per week onthe course. The onus is on students to plan their tasks and time carefully to ensure they do not over commit to the project. Importantly students should start preparing for the project from Week 1, and should maintain a consistent workload throughoutthe semester. One of the learning objectives for this course is the development of good time management skills.
    Learning Activities Summary
    The following topics will be covered in lectures:

    Project management Group dynamics and management; project planning; communication; meetings

    Requirements
    Requirements gathering techniques; requirements analysis; requirements presentation

    Process models
    Traditional software development process models; development lifecycle activities; risk focused process models; agile process models

    Configuration management
    Configuration items; version and release control; source code control; change management

    Cost Models
    Metrics for cost estimation; project cost estimation techniques; software productivity and measures

    Modelling and architectures
    Software architectures; architecture design decision; system analysis; non-functional requirements; system organisation; modular decomposition; control styles

    System modelling
    Software system specification; context models; behavioural models; data models; object models; data flow diagrams; statechart; UML; sequence diagram

    Testing
    Unit testing; blackbox and whitebox testing; integration and system testing; testing tools; test coverage analysis

    Real time modelling
    Real-time system design; soft/hard real-time systems; stimulus types; real-time system programming; real-time operating systems; process scheduling; resource management; real-time data acquisition

    Safety critical SE
    Designing for safety; hazard analysis techniques; safety integrity levels

    Formal specification
    Limitations of natural language specifications; semi-formal and formal specifications; Z specification language

    Software industry
    Understand real-world software industry and their operations

    Case studies
    Ethical case studies; safety critical case studies

    Web-based SE
    Web application models; Java 2 Enterprise Edition; model-view-controller; service-oriented architecture; Web services; mashups
  • Assessment

    The University's policy on Assessment for Coursework Programs is based on the following four principles:

    1. Assessment must encourage and reinforce learning.
    2. Assessment must enable robust and fair judgements about student performance.
    3. Assessment practices must be fair and equitable to students and give them the opportunity to demonstrate what they have learned.
    4. Assessment must maintain academic standards.

    Assessment Summary
    The Assessment for this subject consists of three components with the following weightings:
    Exam - 50%
    Project mark - 40%
    Individual mark from group project - 10%

    The group project component consists of the following assessment tasks – the weightings are the percentage of the group project mark component:

    Web page -2% (learning objectives: 3)
    Software Requirements Specification (SRS) (1st draft) -  5% (learning objectives: 1)
    Software Project Management Plan (SPMP) (1st draft) - 5% (learning objectives: 1)
    Software Design Document (SDD) (1st draft) -  5% (learning objectives: 1)
    Process Assessment - 5% (learning objectives: 1, 3, 4)
    Group Milestone1 - 5% (learning objectives: 2, 3)
    Group Milestone2 - 5% (learning objectives: 2, 3)
    Software Requirements Specification (final)-10% (learning objectives: 1)
    Software Project Management Plan (final) -10% (learning objectives: 1)
    Software Design Document (final) - 10% (learning objectives: 1)
    Final Presentation and Demonstration - 33% (learning objectives: 1, 2, 3, 4)

    The individual assessment component consists of the following tasks, each weighted at 50%:
     (i) Presentations
     (ii) Testing Report
    Assessment Related Requirements
    Attendance at weekly group meetings with lecturers is compulsory. Students will be required to obtain at least 40% both in the exam and the project and 50% overall to pass the course.
    Assessment Detail
    1) Final Exam

    The exam will be a 2 hour open book exam. The exam will consist of questions that present realistic scenarios that require you to apply your newly acquired software engineering principles and techniques. Materials permitted into the exam include course notes and textbooks.

    2) Group Assessment Components

    Web page
    The first deliverable from each group is a web page that markets the group and its members as a software development team. This deliverable is intended as a mechanism for the group members to get to know one another, and to cooperate on a project that does not involve any programming or technical work. Indeed it is intended to be fun. But it has the serious side of getting the group to work as a team, and to begin to understand the individual member's strengths and weaknesses.

    Software Requirements Specification
    Students are required to write a Software Requirements Specification document. The purpose of this document is to record the project requirements as captured in the initial group meetings with the lecturers, as well as any changing or additional requirements that arise later in the project. An initial version will be submitted in Week 5. This version will be marked and feedback provided by the lecturers. The final revised version will be submitted in Week 12.

    Software Project Management Plan
    Students are required to write a Software Project Management Plan document. The purpose of this document is to describe the tasks that need to be completed in order to meet the project requirements, and provide an allocation of tasks to individual students. The project plan should also provide estimated completion times and required resources for each task. The SPMP should also identify any potential project risks and specify contingencies for dealing with the risks.

    Software Design Document
    Students are required to write a Software Design document. The purpose of this document is to provide both an overall architectural model of the system, together with lower level details for each of the individual components that make up the system. Class diagrams, state diagrams and interaction diagrams should be used to capture to low level details of the design. Details should be provided for each of the classes and methods used in the system.

    User Manual
    Students are required to write a User Manual document. The purpose of this document is to provide guidance to end-users on how to use the final software. This will give students experience in writing documentation for non-technical users.

    Process Assessment
    In Week 8, each group will give a presentation and demonstration of the processes they are employing to develop their software. The purpose of this task is to ensure students are using sound engineering practices and to advise on improvements where necessary. Students will be expected to check-out, build, test and run their software as well as build their documentation. Lecturers will assess the version control, source code control and testing processes employed by the group.

    Group Milestones
    Each group will be required to demonstrate two group defined milestones in Week 9 and 10. The purpose of these milestones is to demonstrate to the “client” that you are making good progress towards satisfying the project requirements, and to help clarify the requirements. The milestones should be feature-driven – the client does not want to look at your code. Groups will be required to submit a milestone description form in Week 6. During the milestone demonstration the groups will be assessed on the extent to which they have satisfied the milestone. Milestones can be renegotiated up to a week before the milestone presentation, but a justification as to the reasons for changes must be provided.

    Final Presentation and Demonstration
    In Week 12 each group will be required to give a final demonstration and presentation. The purpose is to demonstrate their final software to the lecturers and to present the processes and techniques used throughout the project. The students will also be expected to reflect on lessons learnt during the project.

    3) Individual Assessment Components

    Presentations
    Each student will be expected to give minimally two individual presentations during the course. The purpose of these presentations will be to develop professional presentation skills. The presentations will be on topics relevant to the project and the contents that are taught in the course, and will be 5 to 6 minutes in duration.

    Testing Report
    Each student will be expected to submit a testing report at the end of the project. The purpose of this task is to ensure that all students do at least some testing for the software development project. Each student must write a report, giving some description of up to 5 typical test cases in your project that you have created and used, what functionality these test cases test for, and the rationale for why you chose these test cases. You should also include your test cases (JUnit test), together with a pointer (url) to where the test cases live in the repository, and where the tested code lives. Your report should be 1/2 -1 page of text (not including the test cases themselves).
    Submission
    Drafts and final versions of the SRS, SPMP, and SDD must be submitted via SVN.

    All documents must be prepared using LaTeX and signed by all members of your group. Documents prepared withother software will NOT be accepted.

    An agenda must be prepared for each weekly meeting and presented at the start of the meeting. Minutes of the previousmeeting must also be presented to the lecturer. Minutes and Agendas must be prepared using LaTeX.

    Milestone description forms should be presented to the lecturer during the weekly meetings. No extensions to due dates will be granted.

    If you hand in your work late, your mark will be capped, based on how many days late it is:
    1 day late – mark capped at 75%
    2 days late – mark capped at 50%
    3 days late – mark capped at 25%
    more than 3 days late – no marks available

    First draft versions of the SRS, SPMP and SDD will be returned to students with feedback at the weekly meeting in 1-2 weeks after the submission.
    Course Grading

    Grades for your performance in this course will be awarded in accordance with the following scheme:

    M10 (Coursework Mark Scheme)
    Grade Mark Description
    FNS   Fail No Submission
    F 1-49 Fail
    P 50-64 Pass
    C 65-74 Credit
    D 75-84 Distinction
    HD 85-100 High Distinction
    CN   Continuing
    NFE   No Formal Examination
    RP   Result Pending

    Further details of the grades/results can be obtained from Examinations.

    Grade Descriptors are available which provide a general guide to the standard of work that is expected at each grade level. More information at Assessment for Coursework Programs.

    Final results for this course will be made available through .

  • Student Feedback

    The University places a high priority on approaches to learning and teaching that enhance the student experience. Feedback is sought from students in a variety of ways including on-going engagement with staff, the use of online discussion boards and the use of Student Experience of Learning and Teaching (SELT) surveys as well as GOS surveys and Program reviews.

    SELTs are an important source of information to inform individual teaching practice, decisions about teaching duties, and course and program curriculum design. They enable the University to assess how effectively its learning environments and teaching practices facilitate student engagement and learning outcomes. Under the current SELT Policy (http://www.adelaide.edu.au/policies/101/) course SELTs are mandated and must be conducted at the conclusion of each term/semester/trimester for every course offering. Feedback on issues raised through course SELT surveys is made available to enrolled students through various resources (e.g. MyUni). In addition aggregated course SELT data is available.

  • Student Support
  • Policies & Guidelines
  • Fraud Awareness

    Students are reminded that in order to maintain the academic integrity of all programs and courses, the university has a zero-tolerance approach to students offering money or significant value goods or services to any staff member who is involved in their teaching or assessment. Students offering lecturers or tutors or professional staff anything more than a small token of appreciation is totally unacceptable, in any circumstances. Staff members are obliged to report all such incidents to their supervisor/manager, who will refer them for action under the university's student鈥檚 disciplinary procedures.

The 成人大片 is committed to regular reviews of the courses and programs it offers to students. The 成人大片 therefore reserves the right to discontinue or vary programs and courses without notice. Please read the important information contained in the disclaimer.