• Tidak ada hasil yang ditemukan

Software Engineering 2004

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "Software Engineering 2004"

Copied!
135
0
0

Teks penuh

This was particularly the case for the SE2004 (Software Engineering 2004) project, in which representatives of the Australian Computer Society, the British Computer Society and the Information Processing Society of Japan participated. The development process began with the appointment of steering committee co-chairs and a number of other participants in the fall of 2001.

Introduction

  • Purpose of this Volume
  • Where we fit in the Computing Curriculum picture
  • Development Process of the SE2004 Volume
    • Education Knowledge Area Group
    • Pedagogy Focus Area Group
    • Full Volume Development
  • Structure of the Volume

A selected review of the resulting SEEK document was performed by a group of internationally recognized software engineering experts. The first review of the draft SE2004 volume was conducted at the second Summit on Software Engineering Education held at ICSE 2003 [Thompson 2003].

The Software Engineering Discipline

  • The Discipline of Software Engineering
  • Software Engineering as a Computing Discipline
  • Software Engineering as an Engineering Discipline
    • Characteristics of Engineering
    • Engineering design
    • Domain-specific software engineering
  • Professional Practice
    • Rationale
    • Software Engineering Code of Ethics and Professional Practices
    • Curriculum Support for Professional Practice
  • Prior Software Engineering Education and Computing Curriculum Efforts
  • SWEBOK and other BOK Efforts

They have thus influenced the development of software engineering and the content of this volume. SWEBOK is a comprehensive description of the knowledge necessary for the practice of software engineering.

Guiding Principles

SE2004 Principles

6] SE2004 should support the identification of core skills and knowledge that all software engineering graduates should possess. Where appropriate, SE2004 should help define the common themes of the software engineering discipline and ensure that all undergraduate program recommendations include this material.

Student Outcomes

1] Demonstrate mastery of software engineering knowledge and skills, as well as professional issues necessary to begin practice as a software engineer. The presence of the Capstone project, an important final activity at the end of a software engineering study program, is of considerable importance in this regard.

Overview of Software Engineering Education Knowledge

  • Process of Determining the SEEK
  • Knowledge Areas, Units, and Topics
  • Core Material
  • Unit of Time
  • Relationship of the SEEK to the Curriculum
  • Selection of Knowledge Areas
  • SE Education Knowledge Areas
  • Computing Essentials
  • Mathematical and Engineering Fundamentals
  • Professional Practice
  • Software Modeling and Analysis
  • Software Design
  • Software Verification and Validation
  • Software Evolution
  • Software Process
  • Software Quality
  • Software Management
  • Systems and Application Specialties

CMP.ct.5 Assertions, design by contract, defensive programming a E MAA.md.2 CMP.ct.6 Error handling, exception handling, and fault tolerance a E DES.con.2,VAV.t. CMP.fm.5 Analysis of candidate implementations c E MAA.cf.2 CMP.fm.6 Mapping of a specification to different implementations k E.

Table 1: SEEK Knowledge Areas and Knowledge Units*
Table 1: SEEK Knowledge Areas and Knowledge Units*

Guidelines for SE Curriculum Design and Delivery

  • Guideline Regarding those Developing and Teaching the Curriculum
  • Guidelines for Constructing the Curriculum
  • Attributes and Attitudes that should Pervade the Curriculum and its Delivery
  • General Strategies for Software Engineering Pedagogy
  • Concluding Comment

Curriculum Guide 4: Many SE concepts, principles, and issues should be taught as recurring themes across the curriculum to help students develop a software engineering mindset. Curriculum Guide 5: Learning certain software engineering topics requires maturity, so these topics should be taught late in the curriculum, while other material should be taught earlier to facilitate the acquisition of this maturity. Students should also be exposed to "hard" software engineering situations relatively early in their program.

Curriculum Guideline 7: Software engineering should be taught in ways that recognize that it is both a computer science and an engineering discipline. Software engineering students need to believe that they are real engineers: they need to develop a sense of engineering ethos and understanding. Curriculum Guideline 11: Emphasis should be placed on the basic and enduring principles of software engineering, not the details of cutting-edge or special tools.

While Curriculum Guideline 11 emphasizes a focus on the fundamental principles of software engineering, Curriculum Guideline 13 states that what is taught must be well-founded. Mathematical Foundations: Logic and discrete mathematics should be taught in the context of its application to software engineering or computer science problems.

Courses and Course Sequences

  • Course Coding Scheme
  • Introductory Sequences Covering Software Engineering, Computer Science and
    • Introductory Computing Sequence A: Start software engineering in first year
    • Introductory Computing Sequence B: Introduction to software engineering in
    • Introductory Mathematics Sequences
  • Core Software Engineering Sequences
    • Core Software Engineering Package I
    • Core Software Engineering Package II
    • Software Engineering Capstone Project
  • Completing the Curriculum: Additional Courses
    • Courses covering the remaining compulsory material
    • Non-SEEK courses
  • Curriculum Patterns

SE – for software engineering courses defined in this document NT – for non-technical courses defined in this document. There are several approaches to introducing software engineering to students in the first year and a half of a bachelor's degree program. A second course in software engineering, delving into software engineering concepts while continuing to introduce the fundamentals of computer science.

Even with the inclusion of software engineering fundamentals, it is not expected that software engineering practices will be strongly emphasized in programming tasks. This material is required for some, but not all, of the intermediate software engineering courses discussed in the next section. As discussed in the guidelines presented in the last chapter, a core project course is essential in a software engineering degree program.

Whether to teach software engineering from the first or second year. The pattern shown below is typical of a software engineering program that can be built in a computer science context.

Adaptation to Alternative Environments

Alternative Teaching Environments

  • Students at different physical locations
  • Students in class at different times

Some may argue that there is no need to make special provision for additional time and support costs when simply increasing the size of an existing class by adding a few "distance" students. Beginning students require significantly more guidance than advanced students due to their lack of experience with geographically segregated teams. Appropriate responsible parties must be found to conduct exams and verify the identity of examinees.

Some institutions have a history of instructing "mature" students who hold full-time jobs. The lessons are also designed to be completely 'web-based'. Commercial and open-source software has been developed to support many aspects of self-paced and web-based courses. Experience shows that the development of self-paced web-based instructional materials is very expensive and time consuming.

Because different students will cover content at different times, it is not feasible to integrate content instruction and projects in the same unit. It will be difficult to coordinate team activities when different team members work at different rates.

Curricula for Alternative Institutional Environments

  • Articulation problems
  • Coordination with other university curricula
  • Cooperation with other institutions

Indeed, one could argue that such experiences are so important in a software engineering curriculum that a special effort should be made to create courses that are common to multiple curricula. For many different reasons, many students begin their matriculation exam at one institution and finish it at another. By doing so, students may change their career goals or declare a major; can transfer from a liberal arts program to an engineering or science program;.

It is straightforward to give credit for previous work (whether in another department, school, college or university) when the content of the courses being compared is essentially identical. While no one wants a student to receive double credit for learning the same thing twice, for the same reason no one wants a student to repeat an entire course simply because a limited amount of content topics were not covered in the second course . To the extent that course equivalences can be identified and dealt with in advance via an articulation agreement, the students' interests will be best served.

Other examples can be seen in the 3-2 agreements in the United States between liberal arts and technical institutions; under these agreements, a student can study for three years at a liberal arts institution and two years at a technical institution, earning a Bachelor of Arts degree and a Bachelor of Science degree. When making articulation agreements and designing curricula, it is important to take possible accreditation requirements into account.

Programs for Associate-Degree Granting Institutions in the United States and

  • Special programs

Students also complete the general education requirements of the first and second years, along with the software engineering technical core. Since software engineering is such a new discipline, there is a high demand for certain types of specialized programs. Others already have a degree in a related field and want a "postgraduate degree" in software engineering.

It would be foolish to try to cram an entire undergraduate software engineering curriculum into a short retraining program or a one-year graduate program. Such students are allowed to have their experience serve as a reasonable substitute for some of the content that would normally be part of the undergraduate curriculum.

Program Implementation and Assessment

Curriculum Resources and Infrastructure

  • Faculty
  • Students
  • Infrastructure
  • Industry Participation

In order for student project teams to be effective, adequate facilities are also needed to carry out team activities such as team meetings, inspections and walkthroughs, customer reviews, assessment and reports on team progress, etc. There must also be sufficient reference and documentation material. , and a library with sufficient holdings in software engineering literature and across related computing disciplines. Maintaining laboratories and a modern suite of appropriate software tools can be a challenging task due to the dynamic, accelerating pace of advancement in software and hardware technology.

An academic program in software engineering must have adequate leadership and staff to ensure proper program administration. This should include appropriate levels of student counselling, support services and interaction with relevant constituencies such as employers and alumni. The faculty's advisory function must be recognized by the institution and must have appropriate administrative support.

There must be sufficient financial resources to support the recruitment, development and retention of adequate staff and staff, the maintenance of an adequate infrastructure and all necessary program activities. An additional critical element in the success of a software engineering program is the involvement and active participation of industry.

Assessment and Accreditation Issues

Such relationships can support a variety of activities, including programmatic consulting from an industry perspective, industry internships for students and faculty, integration of industry projects into the curriculum, industry guest lectures, and industry faculty visits. A popular approach to assessment and accreditation is an 'outcomes-based approach' that first establishes educational objectives and/or student outcomes; then the curriculum, an administrative organization and the infrastructure necessary to achieve the objectives and results are set up. The assessment should evaluate the program objectives and desired outcomes, curriculum content and delivery, and serve as the primary continuous feedback mechanism.

In addition to this document and the previously cited accrediting organizations, there are many sources to help a program form and assess its goals and outcomes [Bagert 1999, Lethbridge 2000, Meyer 2001, Naveda 1997, Parnas 1999, Saiedian 2002; IWCSEA].

SE in Other Computing-Related Disciplines

This course is part of the Software Engineering I core package; it falls into slot A in the curriculum patterns. This course is part of the Software Engineering II core package; it falls into slot A in the curriculum patterns. This course is part of the Software Engineering II core package; it belongs in slot C in the curriculum patterns.

This course is part of Basic Software Engineering Package I; it fits into slot D in the curriculum templates. This course is part of Basic Software Engineering Package I; it fits into the C space in the curriculum templates. This course is part of Basic Software Engineering Package I; it fits into slot E in the curriculum templates.

This course is part of Core Software Engineering Package I; it fits into slot F in the curriculum patterns.

Gambar

Table 1: SEEK Knowledge Areas and Knowledge Units*

Referensi

Dokumen terkait

In this context, this paper presents issue-based analysis of Amina Wadud’s reading of the relevant Quranic passages on family law matters and finds that in spite of

The researcher required all of the data regarding how the teacher implements whispering game in teaching listening comprehension and what types of listening