main Recent site activity MERR University
UKDC 01
Stephanus Surijadarma Tandjung
March 2, 2018
ii
Contents
1 Information Engineering
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 NTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Cambridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Software Engineering
2.1 MIT . . . . . . . . . . . . . . .
2.2 North Carolina State University
2.3 NUS Master Course . . . . . . .
2.3.1 Core . . . . . . . . . . .
2.3.2 Basic Elective Courses .
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
5
7
7
8
8
8
11
iv
CONTENTS
Chapter 1
Information Engineering
1.1
Overview
Apa Itu Teknik Informatika?
Teknik Informatika merupakan kumpulan disiplin ilmu dan teknik yang
secara khusus menangani masalah transformasi atau pengolahan data dengan
memanfaatkan se-optimal mungkin teknologi komputer melalui proses-proses
logika. Pada teknik informatika bidang ilmu yang lebih banyak dikaji adalah
bidang pemrograman dan komputasi, rekayasa perangkat lunak (software)
untuk berbagai bidang aplikasi dalam berbagai bidang usaha, dan teknologi
jaringan komputer.
Apa Yang Dipelajari di Teknik Informatika ?
Dasar ilmu dalam Teknik Informatika adalah algoritma. Pada Teknik Informatika, mahasiswa akan diarahkan untuk bisa menguasai ilmu dan keterampilan rekayasa informatika yang berlandaskan pada kemampuan untuk
memahami, menganalisis, menilai, menerapkan, serta menciptakan piranti
lunak (software) dalam pengolahan dengan komputer. Secara garis besar
materi dalam teknik informatika dapat dikelompokkan menjadi beberapa
bidang ilmu antara lain adalah :
1. Sistem Informasi Memberikan pengetahuan dan pengertian dasar tentang konsep dan kerangka sistem informasi, metodologi dan teknik perancangan, pengembangan, pengetesan dan pemeliharaan sistem perangkat lunak
2. Rekayasa Perangkat Lunak Materi yang dipelajari dalam bidang ini
adalah Analisa dan Desain Obyek, Penyempurnaan Proses Rekayasa, Inspeksi Perangkat Lunak, Rekayasa Perangkat Lunak, Pemrograman Basis
Data Client Server.
3. Pemrograman dan Komputasi Memberikan pengetahuan dan kemampuan menganalisis permasalahan dalam ruang lingkup Komputasi, Kom1
2
CHAPTER 1. INFORMATION ENGINEERING
putasi Paralel, Sistem Terdistribusi, Teknologi Antar Jaringan.
4. Arsitektur dan Jaringan Komputer Materi yang dipelajari dalam
bidang ini adalah Arsitektur Komputer, Organisasi Komputer, Elektronika,
Sistem Digital, Sistem Mikroprosesor, Jaringan Komputer dll.
Prospek Lulusan Teknik Informatika
Bidang aplikasi komputer sangat luas, hampir tidak ada ruang kehidupan yang tidak tersentuh oleh teknologi komputer. Luasnya bidang aplikasi tersebut, terbatasnya jumlah system analyst, pesatnya perkembangan
teknologi informasi, dan tingginya kebutuhan pengembangan perangkat lunak memberikan prospek yang sangat cerah bagi lulusan Teknik Informatika.
Jenis pekerjaan yang tepat untuk lulusan Teknik Informatika antara lain
adalah: Programmer, Sistem Analis, Web Designer, Software Engineer/Web
engineer, Computer network/Data Communication Engineer, Instansi Pemerintah dan Lembaga Penelitian, Lain-lain (perusahaan-perusahaan jasa
telekomunikasi, perbankan, konsultan atau dosen di perguruan tinggi negeri
maupun swasta, dll).
1.2
NTU
New Breath. New Path. New Experience.
What would you get when you add Art, Design and Media to the classical
Engineering studies? You get a whole new exciting programme called the
Bachelor of Engineering in Information Engineering and Media.
”I had always wanted to develop my artistic side, but my stronger interest
in scientific courses precluded any pursuit of that goal. This programme,
with its fusion of art/media and engineering, was the perfect answer for me.
It’s now possible for me to express myself creatively and artistically through
engineering.” . . . Chew Siew Mooi - IT Specialist, IBM Singapore
”The IEM programme has not only provided a good technical foundation
for my career, but it has challenged me to think innovatively, communicate
effectively and manage people relationships well. These have been invaluable
to me in my profession as a defence IT engineer.” . . . Wong Zhi Xiang - Engineer (InfoComm Infrastructure), Defence Science and Technology Agency
”Having spent four years in the IEM programme, I’ve come to embrace
the rigors of engineering as much as I appreciate the subtleties of the arts.
The dual emphasis on technical competency and creative capacity is unique,
and it has inspired me to constantly seek new perspectives – not just answers
– when approaching problems in engineering.” . . . Goh Chong Yang - Ph.D
Student/Research Assistant, Massachusetts Institute of Technology
”The experience of tackling different disciplines in the IEM programme
1.2. NTU
3
has prepared me well for challenges in the real world. I’m able to learn new
things very quickly, be it technical skills or something very different, because
I was taught how to step outside my comfort zone during my time in IEM.
I’m also proud to know that throughout my life I’ll have the engineering
and media and design skills that I gained in IEM. How many engineering
graduates can say that they’ve produced short films and radio podcasts?”
. . . Huang Jiesi - Analyst, MINDEF
A New Breed of Engineers
Technology is witnessing a new revolution. By merging art and creativity
with information, communications and digital media technology, new breakthroughs have been achieved. Remarkable progress in movie and games, for
instance, can only be made possible with technology working hand in hand
with art and creativity.
This new revolution has opened up new possibilities, experiences and business opportunities that will radically change the world. It has created the
need for a new breed of infocomm engineers equipped with sound understanding of the artistic and creative processes in media design and production.
The Bachelor of Engineering in Information Engineering and Media (IEM)
is here to answer this need.
This four-year direct-honours programme is hosted by the School of Electrical and Electronic Engineering, and jointly offered with the School of Art,
Design and Media, School of Computer Science and Engineering, and Wee
Kim Wee School of Communication and Information.
Leveraging on the strengths and expertise of four NTU schools, this multidisciplinary and cross-disciplinary degree programme aims:
To train professional Infocomm engineers with strong technical skills to
meet the demand for Infocomm manpower. To train engineers with an exposure to the artistic and creative processes and equip them with an understanding of the needs of the growing media industry. To provide graduates
with a strong foundation in mathematics, information sciences and soft-skills
for diverse careers and life-long learning. To develop graduates with a good
understanding of their roles in society and a strong sense of ethical and professional responsibilities.
At the Cutting-edge Of Technology & Art
The programme is mainly technical. Sixty percent of the curriculum is
devoted to technical courses in Information and Communications Engineering, such as programming, computer hardware/software, communications
and networking, and digital audio/image/video processing. This strong emphasis on technical foundation produces infocomm professionals equipped to
work in the IT, computer and communications industries.
The programme also exposes students to the artistic and creative as-
4
CHAPTER 1. INFORMATION ENGINEERING
pects of the media industry. About 20% of the curriculum is devoted to
courses such as digital art and design, animation and game design, and radio/TV/movie production. This part of the curriculum allows students to
graduate with a sound knowledge of media design and production in line with
industrial needs. The graduates will be able to work with media designers
in content creation, production and delivery. They will be in a unique position to better understand the needs of the content creators and to develop
new technologies and tools which will help the Media industry achieve higher
productivity and elevate it to the next level of excellence.
Besides the specialized training, students are ensured a holistic and rich
learning experience, as 20% of the curriculum is devoted to broadening
courses in arts, humanities and social sciences, science and technology, and
business and communication skills. These arm students with the capacity to
readily adapt to the demands of tomorrow.
DOUBLE DEGREE with BUSINESS
BEng (IEM) with a Second Major in Business
This programme equips students with in-depth knowledge and skills in
both Engineering and Business over the normal duration of 4 years. With
both technical and business perspectives, graduates of this programme will
have enhanced competitive advantage and market value, and access to a wider
breadth of career options and opportunities. Graduates of the programme
will be awarded a Bachelor of Engineering with a separate certificate for the
second major in Business.
BEng (IEM) & BA (Econs) Double Degree Programme
The combined inter-disciplinary qualities of an engineer and an economist
will be highly valued in the globalised environment of the future. Offered in
partnership with NTU’s School of Humanities and Social Sciences, this programme aims to equip graduates with excellent knowledge and competency
in both engineering and economics. With the changing dynamics of global
economy, growing resource scarcity, and escalating societal and environmental concerns, engineers of the future will face increasing challenges to reconcile
engineering activities with these considerations.
The double degree programme is specially tailored for academically confident and all-rounded students. Students will earn two honours degrees in
five to five and a half years and can expect diverse career opportunities in
the public and private sectors.
”As IEM is still a fairly young course, and this is the first time NTU is
offering double degree programmes in Engineering and Economics - I knew
I was undertaking quite some risk in choosing IEM-Econs double degree
programme (IEEC) for my undergraduate studies. Thankfully, I am now
glad that I have made the choice to join this double-degree programme.
1.3. CAMBRIDGE
5
Whether I would be able to cope well with 2 degrees was definitely one
of my concerns. IEM itself offers very diverse fields of study in engineering,
the arts and the media. To take on Economics as well would require that I
be a very all-rounded person and a Jane of all trades. After resolving some
timetable issues however, as we got started with the modules - I realised that
I had worried unduly. Clearly, some degree of discipline and time management is needed, but once I got used to the pace and learning style - I found
that taking double degrees worked towards my favour. It developed me a
lot more holistically, and trained me further to view things from different
perspectives. I could also see how the different fields actually interact and
overlap - something not possible if I was only taking on one degree. Indirectly,
this helped me perform better in both degrees.
In addition, the IEM cohort is a very small one. It is one of the rare
courses for which you can actually know everyone else and vice versa (if not
in your course - in your year at least). The friends that I have made in
IEM, while it’s a little corny to say this, have brightened up my NTU life
considerably. It really feels like being part of a very large family in IEM. The
IEM activities as featured on the News and Events have helped bond the IEM
students really well. At the same time, I have a lot more chances to interact
with other people also taking Economics too. The friends I have made there
are very close to my heart too. This extension of social network has not only
made me a happier person, but provided a lot of support whenever I feel
down or dejected.
I am grateful that I have made this choice, given all the benefits - foreseen
and unforeseen - that I have enjoyed.”
. . . Lim Shiyun - IEM-Econs Graduate
1.3
Cambridge
Strategic Aim: Developing fundamental theory and applications relating to
the generation, distribution, analysis and use of information in engineering
and biological systems.
The Information Engineering Division’s research focuses on the generation, distribution, analysis and use of information in engineering systems. As
such, it straddles the boundary between traditional Computer Science and
Engineering Departments. The Head of Division is Professor Bill Byrne.
The Division is organised into four main research Groups.
The Control Group carries out research in the theory and practice of
control engineering with applications including automotive and aerospace
control.
6
CHAPTER 1. INFORMATION ENGINEERING
The Machine Intelligence Laboratory leads research in the areas of speech
recognition systems, computer vision, bio-robotics and medical imaging.
The Signal Processing and Communications Group performs a wide range
of signal and image processing projects with diverse application areas.
The Computational and Biological Learning Group uses engineering approaches to understand the brain and to develop artificial learning systems.
Chapter 2
Software Engineering
2.1
Overview
Software engineering can be divided into sub-disciplines.[20] Some of them
are:
• Software requirements[1][20] (or Requirements engineering): The elicitation, analysis, specification, and validation of requirements for software.
• Software design:[1][20] The process of defining the architecture, components, interfaces, and other characteristics of a system or component.
It is also defined as the result of that process.
• Software construction:[1][20] The detailed creation of working, meaningful software through a combination of programming (aka coding),
verification, unit testing, integration testing, and debugging.
• Software testing:[1][20] An empirical, technical investigation conducted
to provide stakeholders with information about the quality of the product or service under test.
• Software maintenance:[1][20] The totality of activities required to provide cost-effective support to software.
• Software configuration management:[1][20] The identification of the
configuration of a system at distinct points in time for the purpose
of systematically controlling changes to the configuration, and maintaining the integrity and traceability of the configuration throughout
the system life cycle. Modern processes use software versioning.
7
8
CHAPTER 2. SOFTWARE ENGINEERING
• Software engineering management:[1][20] The application of management activities—planning, coordinating, measuring, monitoring, controlling, and reporting—to ensure that the development and maintenance of software is systematic, disciplined, and quantified.
• Software development process:[1][20] The definition, implementation,
assessment, measurement, management, change, and improvement of
the software life cycle process itself.
• Software engineering models and methods[20] impose structure on software engineering with the goal of making that activity systematic, repeatable, and ultimately more success-oriented
• Software quality[20]
• Software engineering professional practice[20] is concerned with the
knowledge, skills, and attitudes that software engineers must possess to
practice software engineering in a professional, responsible, and ethical
manner
• Software engineering economics[20] is about making decisions related
to software engineering in a business context
• Computing foundations[20]
• Mathematical foundations[20]
• Engineering foundations[20]
2.2
MIT
Massachusetts Institute of Technology (MIT)
Computer Language Engineering focuses on how students generate highlevel programming language, as well as the tools used to build software. Students can access lecture notes, video lectures and audio lectures in addition
to three practice quizzes.
Computer System Engineering teaches students strategies and methods
for the development of computer and hardware systems. Along with assignments and quizzes, students can download video lectures about computer
security, authentication and isolation.
2.3. NORTH CAROLINA STATE UNIVERSITY
9
Elements of Software Construction covers topics such as subclassing and
interfaces, testing and coverage, debugging, usability, event-based programming and data structures. In addition to lecture notes, students have access
to assignments, labs and projects.
Foundations of Software Engineering examines object-oriented design, operator overloading, Java programming, physical simulation and source code
management. In addition to lecture notes, seven problem sets are available
online, along with three quizzes.
Laboratory in Software Engineering focuses on how to produce and implement large software systems through lectures in object semantics, testing,
object model notations and design patterns. The online class is broken into
11 sections, and students can download lecture notes.
Performance Engineering of Software Systems is a project-based class
that gives students an idea of how to build scalable and high-level software
systems through discussion of bit hacks, performance engineering, memory
systems and compilers. All 23 of the lectures can be downloaded as videos,
and students can access six software design projects to help with their studies.
Software Engineering for Web Applications is a senior-level course designed for students who have a background in software development and are
interested in understanding the issues and challenges with Internet applications. Students can access parts of the recommended textbooks online, which
may be helpful for the 14 problem sets that are also available through the
online class.
2.3
North Carolina State University
Software Metrics for Eclipse examines concepts in software metrics that provide feedback to programmers. The tutorial provides students information
on viewing and interpreting metrics. A link to Eclipse software for download
is available.
Acceptance Testing in Eclipse Using FIT includes notes, exercises and resources. Within the tutorial, students examine FIT tools, FitRunner, ColumnFixture and running tests. The tutorial includes sample code and example
images.
10
2.4
2.4.1
CHAPTER 2. SOFTWARE ENGINEERING
NUS Master Course
Core
SG4101 Basic Software Engineering Discipline This is the first module for all
SE students. It lays the groundwork by equipping students with the necessary
process knowledge for engineering a software intensive system as well as on
object-oriented concepts and programming. This module is compulsory for
all SE students.
In the Software Engineering Process submodule, the students will learn
about software engineering processes and how to model these processes using
an appropriate methodology. It looks at software development life cycle
processes, processes for planning and controlling software development and
quality management processes.
In the Introduction to Object-Oriented Programming submodule, the students will learn the basic concepts of object orientation. It also covers topics
of basic object modelling and object-oriented programming, illustrated with
the Java programming language and development environment. Students will
also learn about test-driven development and software configuration management.
Two assignments would require the students are to demonstrate their
competencies in software engineering process, object modelling and programming
Pre-requisites: Basic Programming Concepts
SG5101 Software Analysis & Design The module answers the question
of what should take place before coding can start, given the user requirements. It covers in details the steps required to get from the requirements
specification through the detailed design specification using a use case-driven
development approach along with Unified Modelling Language notations.
Given the User Requirements Specification, Requirements Modelling is
performed to analyse the functional requirements to produce the Use Case
Model which comprises actors, use cases, relationships among actors and/or
use cases as well as the description of use cases. The Domain Object Model
is also produced to capture the essential business objects of the system.
Analysis Modelling is then performed for a use case where analysis objects
are identified along with their state and responsibilities without considerations for implementation. The newly identified information are capture in
the Analysis Model.
Based on the non-functional requirements in the User Requirements Specification, a Software Architecture is crafted for a suitable implementation
platform; design strategies are devised for the operating environment. De-
2.4. NUS MASTER COURSE
11
sign Modelling is then performed to transition the analysis objects in the
Analysis Model to design objects with full class details in the Design Model.
Finally the system is implemented according to the Design Model. The
source code are tested and documented.
An assignment would run through the four stages of Requirements, Analysis, Design and Implementation. The students are to demonstrate their
competencies in the skills required in those stages.
Pre-requisites: Object Oriented Programming and Software Engineering
Process
SG5102 Software Project Management Project Initiation and Planning
Software development projects are diverse. They can range from developing
applications to address specific business needs of an organisation to developing software products for commercial purposes to developing software that
control hardware. Challenges abound in managing all software development
projects!
Project management is the discipline of principles, processes and techniques that a project team uses to drive successful delivery of the software
product.
Managing projects in software engineering covers the end-to-end activities
that all software engineering students of the MTECH SE course need to know
so that the knowledge and skills can be applied to projects they undertake.
Through the use of workshop case studies and discussion, lectures, flipped
classroom methods and popup quizzes, students will be given the opportunity to engage in collaborative teamwork and self-learning to maximise their
learning and assess their own learning journey.
The 10-day curriculum covers the project management processes and key
knowledge areas required to manage the project. This includes identification
and management of the project scope, estimating the overall project cost
estimate, creation of a project work plan and schedule, execute, monitor and
control the project development and management of quality and risks.
All work is achieved through people working in a team, an essential aspect
that will also be addressed in the curriculum.
The culmination of the knowledge and skills will be applied through the
final capstone project in the MTECH SE programme.
Continuous assessments, final exam and class participation will contribute
to the overall assessment.
Pre-requisites: Nil
SG5103 Software Quality Management
The following core topics that ensure the quality of a software are covered
in this Module: a. Software Quality Management System b. Peer Reviews
c. Software Configuration Management d. Software Testing
12
CHAPTER 2. SOFTWARE ENGINEERING
Software Quality Management Systems
The aim of Software Quality Management (SQM) is to manage the quality of software and of its development process. A quality product is one
which meets its requirements and satisfies the user. A quality culture is an
organisational environment where quality is viewed as everyone’s responsiR (Capability Maturity Model
R Integration) for Development
bility. CMMI
(CMMI-DEV), which provides a comprehensive integrated set of guidelines
for developing products and services will be discussed.
CMMI models are collections of best practices that help organizations to
improve their processes. These models are developed by product teams with
members from industry, government, and the Carnegie Mellon University
(CMU), Software Engineering Institute (SEI), Pittsburgh, PA, USA.
Peer Reviews
The purpose of a peer review is to provide ”a disciplined engineering
practice for detecting and correcting defects in software artefacts, and preventing their leakage into field operations”. This course also describes rules,
source documents and kin; the software inspection process, inspection roles
and responsibilities; software inspection defect classifications; defect logging
and peer review follow-up.
Software Testing Purpose of testing is to detect software failures so that
defects may be discovered and corrected. The scope of software testing often
includes examination of code as well as execution of that code in various
environments and conditions as well as examining the aspects of code: does
it do what it is supposed to do and do what it needs to do. Automated
testing techniques and tools will also be discussed in this module.
Software Configuration Management The purpose of Software Configuration Management is to establish and maintain the integrity of the products
of the software project throughout the project’s software life cycle. Software
Configuration Management involves identifying configuration items for the
software project, controlling these configuration items and changes to them,
and recording and reporting status and change activity for these configuration item.
2.4.2
Basic Elective Courses
Choose any 8 from these study areas: Advanced IT Management Managing
IT Outsourcing & Subcontracting Business Process Management Agile Software Project Management Advanced Software Estimation Business Analytics Techniques Campaign Management Customer Relationship Management
Web Analytics New Media and Sentiment Mining Supply Chain Analytics
Service Analytics Clinical Health Analytics Geospatial Analytics IT Infras-
2.4. NUS MASTER COURSE
13
tructure Technology Information System Security Cloud Computing Internet
of Things Technology
Knowledge Engineering Techniques Computational Intelligence I Computational Intelligence II Text Mining Case Based Reasoning Sense Making
and Insight Discovery Machine Learning for Software Engineers
14
CHAPTER 2. SOFTWARE ENGINEERING
Stephanus Surijadarma Tandjung
March 2, 2018
ii
Contents
1 Information Engineering
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 NTU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Cambridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Software Engineering
2.1 MIT . . . . . . . . . . . . . . .
2.2 North Carolina State University
2.3 NUS Master Course . . . . . . .
2.3.1 Core . . . . . . . . . . .
2.3.2 Basic Elective Courses .
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
5
7
7
8
8
8
11
iv
CONTENTS
Chapter 1
Information Engineering
1.1
Overview
Apa Itu Teknik Informatika?
Teknik Informatika merupakan kumpulan disiplin ilmu dan teknik yang
secara khusus menangani masalah transformasi atau pengolahan data dengan
memanfaatkan se-optimal mungkin teknologi komputer melalui proses-proses
logika. Pada teknik informatika bidang ilmu yang lebih banyak dikaji adalah
bidang pemrograman dan komputasi, rekayasa perangkat lunak (software)
untuk berbagai bidang aplikasi dalam berbagai bidang usaha, dan teknologi
jaringan komputer.
Apa Yang Dipelajari di Teknik Informatika ?
Dasar ilmu dalam Teknik Informatika adalah algoritma. Pada Teknik Informatika, mahasiswa akan diarahkan untuk bisa menguasai ilmu dan keterampilan rekayasa informatika yang berlandaskan pada kemampuan untuk
memahami, menganalisis, menilai, menerapkan, serta menciptakan piranti
lunak (software) dalam pengolahan dengan komputer. Secara garis besar
materi dalam teknik informatika dapat dikelompokkan menjadi beberapa
bidang ilmu antara lain adalah :
1. Sistem Informasi Memberikan pengetahuan dan pengertian dasar tentang konsep dan kerangka sistem informasi, metodologi dan teknik perancangan, pengembangan, pengetesan dan pemeliharaan sistem perangkat lunak
2. Rekayasa Perangkat Lunak Materi yang dipelajari dalam bidang ini
adalah Analisa dan Desain Obyek, Penyempurnaan Proses Rekayasa, Inspeksi Perangkat Lunak, Rekayasa Perangkat Lunak, Pemrograman Basis
Data Client Server.
3. Pemrograman dan Komputasi Memberikan pengetahuan dan kemampuan menganalisis permasalahan dalam ruang lingkup Komputasi, Kom1
2
CHAPTER 1. INFORMATION ENGINEERING
putasi Paralel, Sistem Terdistribusi, Teknologi Antar Jaringan.
4. Arsitektur dan Jaringan Komputer Materi yang dipelajari dalam
bidang ini adalah Arsitektur Komputer, Organisasi Komputer, Elektronika,
Sistem Digital, Sistem Mikroprosesor, Jaringan Komputer dll.
Prospek Lulusan Teknik Informatika
Bidang aplikasi komputer sangat luas, hampir tidak ada ruang kehidupan yang tidak tersentuh oleh teknologi komputer. Luasnya bidang aplikasi tersebut, terbatasnya jumlah system analyst, pesatnya perkembangan
teknologi informasi, dan tingginya kebutuhan pengembangan perangkat lunak memberikan prospek yang sangat cerah bagi lulusan Teknik Informatika.
Jenis pekerjaan yang tepat untuk lulusan Teknik Informatika antara lain
adalah: Programmer, Sistem Analis, Web Designer, Software Engineer/Web
engineer, Computer network/Data Communication Engineer, Instansi Pemerintah dan Lembaga Penelitian, Lain-lain (perusahaan-perusahaan jasa
telekomunikasi, perbankan, konsultan atau dosen di perguruan tinggi negeri
maupun swasta, dll).
1.2
NTU
New Breath. New Path. New Experience.
What would you get when you add Art, Design and Media to the classical
Engineering studies? You get a whole new exciting programme called the
Bachelor of Engineering in Information Engineering and Media.
”I had always wanted to develop my artistic side, but my stronger interest
in scientific courses precluded any pursuit of that goal. This programme,
with its fusion of art/media and engineering, was the perfect answer for me.
It’s now possible for me to express myself creatively and artistically through
engineering.” . . . Chew Siew Mooi - IT Specialist, IBM Singapore
”The IEM programme has not only provided a good technical foundation
for my career, but it has challenged me to think innovatively, communicate
effectively and manage people relationships well. These have been invaluable
to me in my profession as a defence IT engineer.” . . . Wong Zhi Xiang - Engineer (InfoComm Infrastructure), Defence Science and Technology Agency
”Having spent four years in the IEM programme, I’ve come to embrace
the rigors of engineering as much as I appreciate the subtleties of the arts.
The dual emphasis on technical competency and creative capacity is unique,
and it has inspired me to constantly seek new perspectives – not just answers
– when approaching problems in engineering.” . . . Goh Chong Yang - Ph.D
Student/Research Assistant, Massachusetts Institute of Technology
”The experience of tackling different disciplines in the IEM programme
1.2. NTU
3
has prepared me well for challenges in the real world. I’m able to learn new
things very quickly, be it technical skills or something very different, because
I was taught how to step outside my comfort zone during my time in IEM.
I’m also proud to know that throughout my life I’ll have the engineering
and media and design skills that I gained in IEM. How many engineering
graduates can say that they’ve produced short films and radio podcasts?”
. . . Huang Jiesi - Analyst, MINDEF
A New Breed of Engineers
Technology is witnessing a new revolution. By merging art and creativity
with information, communications and digital media technology, new breakthroughs have been achieved. Remarkable progress in movie and games, for
instance, can only be made possible with technology working hand in hand
with art and creativity.
This new revolution has opened up new possibilities, experiences and business opportunities that will radically change the world. It has created the
need for a new breed of infocomm engineers equipped with sound understanding of the artistic and creative processes in media design and production.
The Bachelor of Engineering in Information Engineering and Media (IEM)
is here to answer this need.
This four-year direct-honours programme is hosted by the School of Electrical and Electronic Engineering, and jointly offered with the School of Art,
Design and Media, School of Computer Science and Engineering, and Wee
Kim Wee School of Communication and Information.
Leveraging on the strengths and expertise of four NTU schools, this multidisciplinary and cross-disciplinary degree programme aims:
To train professional Infocomm engineers with strong technical skills to
meet the demand for Infocomm manpower. To train engineers with an exposure to the artistic and creative processes and equip them with an understanding of the needs of the growing media industry. To provide graduates
with a strong foundation in mathematics, information sciences and soft-skills
for diverse careers and life-long learning. To develop graduates with a good
understanding of their roles in society and a strong sense of ethical and professional responsibilities.
At the Cutting-edge Of Technology & Art
The programme is mainly technical. Sixty percent of the curriculum is
devoted to technical courses in Information and Communications Engineering, such as programming, computer hardware/software, communications
and networking, and digital audio/image/video processing. This strong emphasis on technical foundation produces infocomm professionals equipped to
work in the IT, computer and communications industries.
The programme also exposes students to the artistic and creative as-
4
CHAPTER 1. INFORMATION ENGINEERING
pects of the media industry. About 20% of the curriculum is devoted to
courses such as digital art and design, animation and game design, and radio/TV/movie production. This part of the curriculum allows students to
graduate with a sound knowledge of media design and production in line with
industrial needs. The graduates will be able to work with media designers
in content creation, production and delivery. They will be in a unique position to better understand the needs of the content creators and to develop
new technologies and tools which will help the Media industry achieve higher
productivity and elevate it to the next level of excellence.
Besides the specialized training, students are ensured a holistic and rich
learning experience, as 20% of the curriculum is devoted to broadening
courses in arts, humanities and social sciences, science and technology, and
business and communication skills. These arm students with the capacity to
readily adapt to the demands of tomorrow.
DOUBLE DEGREE with BUSINESS
BEng (IEM) with a Second Major in Business
This programme equips students with in-depth knowledge and skills in
both Engineering and Business over the normal duration of 4 years. With
both technical and business perspectives, graduates of this programme will
have enhanced competitive advantage and market value, and access to a wider
breadth of career options and opportunities. Graduates of the programme
will be awarded a Bachelor of Engineering with a separate certificate for the
second major in Business.
BEng (IEM) & BA (Econs) Double Degree Programme
The combined inter-disciplinary qualities of an engineer and an economist
will be highly valued in the globalised environment of the future. Offered in
partnership with NTU’s School of Humanities and Social Sciences, this programme aims to equip graduates with excellent knowledge and competency
in both engineering and economics. With the changing dynamics of global
economy, growing resource scarcity, and escalating societal and environmental concerns, engineers of the future will face increasing challenges to reconcile
engineering activities with these considerations.
The double degree programme is specially tailored for academically confident and all-rounded students. Students will earn two honours degrees in
five to five and a half years and can expect diverse career opportunities in
the public and private sectors.
”As IEM is still a fairly young course, and this is the first time NTU is
offering double degree programmes in Engineering and Economics - I knew
I was undertaking quite some risk in choosing IEM-Econs double degree
programme (IEEC) for my undergraduate studies. Thankfully, I am now
glad that I have made the choice to join this double-degree programme.
1.3. CAMBRIDGE
5
Whether I would be able to cope well with 2 degrees was definitely one
of my concerns. IEM itself offers very diverse fields of study in engineering,
the arts and the media. To take on Economics as well would require that I
be a very all-rounded person and a Jane of all trades. After resolving some
timetable issues however, as we got started with the modules - I realised that
I had worried unduly. Clearly, some degree of discipline and time management is needed, but once I got used to the pace and learning style - I found
that taking double degrees worked towards my favour. It developed me a
lot more holistically, and trained me further to view things from different
perspectives. I could also see how the different fields actually interact and
overlap - something not possible if I was only taking on one degree. Indirectly,
this helped me perform better in both degrees.
In addition, the IEM cohort is a very small one. It is one of the rare
courses for which you can actually know everyone else and vice versa (if not
in your course - in your year at least). The friends that I have made in
IEM, while it’s a little corny to say this, have brightened up my NTU life
considerably. It really feels like being part of a very large family in IEM. The
IEM activities as featured on the News and Events have helped bond the IEM
students really well. At the same time, I have a lot more chances to interact
with other people also taking Economics too. The friends I have made there
are very close to my heart too. This extension of social network has not only
made me a happier person, but provided a lot of support whenever I feel
down or dejected.
I am grateful that I have made this choice, given all the benefits - foreseen
and unforeseen - that I have enjoyed.”
. . . Lim Shiyun - IEM-Econs Graduate
1.3
Cambridge
Strategic Aim: Developing fundamental theory and applications relating to
the generation, distribution, analysis and use of information in engineering
and biological systems.
The Information Engineering Division’s research focuses on the generation, distribution, analysis and use of information in engineering systems. As
such, it straddles the boundary between traditional Computer Science and
Engineering Departments. The Head of Division is Professor Bill Byrne.
The Division is organised into four main research Groups.
The Control Group carries out research in the theory and practice of
control engineering with applications including automotive and aerospace
control.
6
CHAPTER 1. INFORMATION ENGINEERING
The Machine Intelligence Laboratory leads research in the areas of speech
recognition systems, computer vision, bio-robotics and medical imaging.
The Signal Processing and Communications Group performs a wide range
of signal and image processing projects with diverse application areas.
The Computational and Biological Learning Group uses engineering approaches to understand the brain and to develop artificial learning systems.
Chapter 2
Software Engineering
2.1
Overview
Software engineering can be divided into sub-disciplines.[20] Some of them
are:
• Software requirements[1][20] (or Requirements engineering): The elicitation, analysis, specification, and validation of requirements for software.
• Software design:[1][20] The process of defining the architecture, components, interfaces, and other characteristics of a system or component.
It is also defined as the result of that process.
• Software construction:[1][20] The detailed creation of working, meaningful software through a combination of programming (aka coding),
verification, unit testing, integration testing, and debugging.
• Software testing:[1][20] An empirical, technical investigation conducted
to provide stakeholders with information about the quality of the product or service under test.
• Software maintenance:[1][20] The totality of activities required to provide cost-effective support to software.
• Software configuration management:[1][20] The identification of the
configuration of a system at distinct points in time for the purpose
of systematically controlling changes to the configuration, and maintaining the integrity and traceability of the configuration throughout
the system life cycle. Modern processes use software versioning.
7
8
CHAPTER 2. SOFTWARE ENGINEERING
• Software engineering management:[1][20] The application of management activities—planning, coordinating, measuring, monitoring, controlling, and reporting—to ensure that the development and maintenance of software is systematic, disciplined, and quantified.
• Software development process:[1][20] The definition, implementation,
assessment, measurement, management, change, and improvement of
the software life cycle process itself.
• Software engineering models and methods[20] impose structure on software engineering with the goal of making that activity systematic, repeatable, and ultimately more success-oriented
• Software quality[20]
• Software engineering professional practice[20] is concerned with the
knowledge, skills, and attitudes that software engineers must possess to
practice software engineering in a professional, responsible, and ethical
manner
• Software engineering economics[20] is about making decisions related
to software engineering in a business context
• Computing foundations[20]
• Mathematical foundations[20]
• Engineering foundations[20]
2.2
MIT
Massachusetts Institute of Technology (MIT)
Computer Language Engineering focuses on how students generate highlevel programming language, as well as the tools used to build software. Students can access lecture notes, video lectures and audio lectures in addition
to three practice quizzes.
Computer System Engineering teaches students strategies and methods
for the development of computer and hardware systems. Along with assignments and quizzes, students can download video lectures about computer
security, authentication and isolation.
2.3. NORTH CAROLINA STATE UNIVERSITY
9
Elements of Software Construction covers topics such as subclassing and
interfaces, testing and coverage, debugging, usability, event-based programming and data structures. In addition to lecture notes, students have access
to assignments, labs and projects.
Foundations of Software Engineering examines object-oriented design, operator overloading, Java programming, physical simulation and source code
management. In addition to lecture notes, seven problem sets are available
online, along with three quizzes.
Laboratory in Software Engineering focuses on how to produce and implement large software systems through lectures in object semantics, testing,
object model notations and design patterns. The online class is broken into
11 sections, and students can download lecture notes.
Performance Engineering of Software Systems is a project-based class
that gives students an idea of how to build scalable and high-level software
systems through discussion of bit hacks, performance engineering, memory
systems and compilers. All 23 of the lectures can be downloaded as videos,
and students can access six software design projects to help with their studies.
Software Engineering for Web Applications is a senior-level course designed for students who have a background in software development and are
interested in understanding the issues and challenges with Internet applications. Students can access parts of the recommended textbooks online, which
may be helpful for the 14 problem sets that are also available through the
online class.
2.3
North Carolina State University
Software Metrics for Eclipse examines concepts in software metrics that provide feedback to programmers. The tutorial provides students information
on viewing and interpreting metrics. A link to Eclipse software for download
is available.
Acceptance Testing in Eclipse Using FIT includes notes, exercises and resources. Within the tutorial, students examine FIT tools, FitRunner, ColumnFixture and running tests. The tutorial includes sample code and example
images.
10
2.4
2.4.1
CHAPTER 2. SOFTWARE ENGINEERING
NUS Master Course
Core
SG4101 Basic Software Engineering Discipline This is the first module for all
SE students. It lays the groundwork by equipping students with the necessary
process knowledge for engineering a software intensive system as well as on
object-oriented concepts and programming. This module is compulsory for
all SE students.
In the Software Engineering Process submodule, the students will learn
about software engineering processes and how to model these processes using
an appropriate methodology. It looks at software development life cycle
processes, processes for planning and controlling software development and
quality management processes.
In the Introduction to Object-Oriented Programming submodule, the students will learn the basic concepts of object orientation. It also covers topics
of basic object modelling and object-oriented programming, illustrated with
the Java programming language and development environment. Students will
also learn about test-driven development and software configuration management.
Two assignments would require the students are to demonstrate their
competencies in software engineering process, object modelling and programming
Pre-requisites: Basic Programming Concepts
SG5101 Software Analysis & Design The module answers the question
of what should take place before coding can start, given the user requirements. It covers in details the steps required to get from the requirements
specification through the detailed design specification using a use case-driven
development approach along with Unified Modelling Language notations.
Given the User Requirements Specification, Requirements Modelling is
performed to analyse the functional requirements to produce the Use Case
Model which comprises actors, use cases, relationships among actors and/or
use cases as well as the description of use cases. The Domain Object Model
is also produced to capture the essential business objects of the system.
Analysis Modelling is then performed for a use case where analysis objects
are identified along with their state and responsibilities without considerations for implementation. The newly identified information are capture in
the Analysis Model.
Based on the non-functional requirements in the User Requirements Specification, a Software Architecture is crafted for a suitable implementation
platform; design strategies are devised for the operating environment. De-
2.4. NUS MASTER COURSE
11
sign Modelling is then performed to transition the analysis objects in the
Analysis Model to design objects with full class details in the Design Model.
Finally the system is implemented according to the Design Model. The
source code are tested and documented.
An assignment would run through the four stages of Requirements, Analysis, Design and Implementation. The students are to demonstrate their
competencies in the skills required in those stages.
Pre-requisites: Object Oriented Programming and Software Engineering
Process
SG5102 Software Project Management Project Initiation and Planning
Software development projects are diverse. They can range from developing
applications to address specific business needs of an organisation to developing software products for commercial purposes to developing software that
control hardware. Challenges abound in managing all software development
projects!
Project management is the discipline of principles, processes and techniques that a project team uses to drive successful delivery of the software
product.
Managing projects in software engineering covers the end-to-end activities
that all software engineering students of the MTECH SE course need to know
so that the knowledge and skills can be applied to projects they undertake.
Through the use of workshop case studies and discussion, lectures, flipped
classroom methods and popup quizzes, students will be given the opportunity to engage in collaborative teamwork and self-learning to maximise their
learning and assess their own learning journey.
The 10-day curriculum covers the project management processes and key
knowledge areas required to manage the project. This includes identification
and management of the project scope, estimating the overall project cost
estimate, creation of a project work plan and schedule, execute, monitor and
control the project development and management of quality and risks.
All work is achieved through people working in a team, an essential aspect
that will also be addressed in the curriculum.
The culmination of the knowledge and skills will be applied through the
final capstone project in the MTECH SE programme.
Continuous assessments, final exam and class participation will contribute
to the overall assessment.
Pre-requisites: Nil
SG5103 Software Quality Management
The following core topics that ensure the quality of a software are covered
in this Module: a. Software Quality Management System b. Peer Reviews
c. Software Configuration Management d. Software Testing
12
CHAPTER 2. SOFTWARE ENGINEERING
Software Quality Management Systems
The aim of Software Quality Management (SQM) is to manage the quality of software and of its development process. A quality product is one
which meets its requirements and satisfies the user. A quality culture is an
organisational environment where quality is viewed as everyone’s responsiR (Capability Maturity Model
R Integration) for Development
bility. CMMI
(CMMI-DEV), which provides a comprehensive integrated set of guidelines
for developing products and services will be discussed.
CMMI models are collections of best practices that help organizations to
improve their processes. These models are developed by product teams with
members from industry, government, and the Carnegie Mellon University
(CMU), Software Engineering Institute (SEI), Pittsburgh, PA, USA.
Peer Reviews
The purpose of a peer review is to provide ”a disciplined engineering
practice for detecting and correcting defects in software artefacts, and preventing their leakage into field operations”. This course also describes rules,
source documents and kin; the software inspection process, inspection roles
and responsibilities; software inspection defect classifications; defect logging
and peer review follow-up.
Software Testing Purpose of testing is to detect software failures so that
defects may be discovered and corrected. The scope of software testing often
includes examination of code as well as execution of that code in various
environments and conditions as well as examining the aspects of code: does
it do what it is supposed to do and do what it needs to do. Automated
testing techniques and tools will also be discussed in this module.
Software Configuration Management The purpose of Software Configuration Management is to establish and maintain the integrity of the products
of the software project throughout the project’s software life cycle. Software
Configuration Management involves identifying configuration items for the
software project, controlling these configuration items and changes to them,
and recording and reporting status and change activity for these configuration item.
2.4.2
Basic Elective Courses
Choose any 8 from these study areas: Advanced IT Management Managing
IT Outsourcing & Subcontracting Business Process Management Agile Software Project Management Advanced Software Estimation Business Analytics Techniques Campaign Management Customer Relationship Management
Web Analytics New Media and Sentiment Mining Supply Chain Analytics
Service Analytics Clinical Health Analytics Geospatial Analytics IT Infras-
2.4. NUS MASTER COURSE
13
tructure Technology Information System Security Cloud Computing Internet
of Things Technology
Knowledge Engineering Techniques Computational Intelligence I Computational Intelligence II Text Mining Case Based Reasoning Sense Making
and Insight Discovery Machine Learning for Software Engineers
14
CHAPTER 2. SOFTWARE ENGINEERING