/software-engineering

This course is designed to give students an introduction to an engineering approach in the development of high-quality software systems. It will discuss the important software engineering concepts in the various types of the common software process models.

Stars Badge Forks Badge Pull Requests Badge Issues Badge GitHub contributors

Don't forget to hit the ⭐ if you like this repo.

Software Engineering (WBL)

Course Synopsis

This course is designed to give students an introduction to an engineering approach in the development of high-quality software systems. It will discuss the important software engineering concepts in the various types of the common software process models. The students will also learn the concepts and techniques used in each software development phase including requirements engineering, software design and software testing. This course will also expose the students to utilizing object-oriented method (e.g., UML) and tools in analyzing and designing the software. At the end of this course, students are expected to be able to appreciate most of the common software engineering concepts and techniques as well as producing various software artifacts and deliverables.

Course Learning Outcomes

  1. Apply the fundamental of software engineering, software process, requirements engineering to solve software engineering case studies.
  2. Build suitable software architecture, object-oriented design model and develop test cases in software engineering case studies.
  3. Construct software requirements model, software architecture, object-oriented design model and test cases with state-of-the-art methods and tools for a real-world software engineering problem.
  4. Ability to establish good rapport, interact with others, work effectively in a team and comprehend the interchangeable role of leaders and followers with team members.

Weekly Schedule

Weekly Module Description
1 1: Introduction to Software Engineering Software definition, software engineering as a layered technology, types of software, inherent difficulties in software engineering, SE quality focus, Documentation Standard.
2 2: Software Process Model Plan Driven or Agile Process Model, general software process model waterfall, incremental, reuse oriented, software process model which cope with change spiral model and Rational Unified Process
3 3: Agile Software Development Agile methods, Agile development techniques, Agile project management, scaling Agile methods
4 4: Requirements Engineering Types of requirements, functional and non-functional requirements, requirements specification, requirements engineering processes
5 5: Requirements Analysis and modelling ME Use case modelling and specification, domain modelling, activity diagram, sequence diagram, state chart/state machine diagram
6 Industry Day I: Project requirement sharing.
7 MID-SEMESTER BREAK
8 Software Engineering project – Requirements analysis and models. Produce requirements document* that includes all the required analysis models
9 6: Architectural Design Architectural design and detailed design, Architectural design decision, architectural view, component diagram in relation to architectural view, architectural pattern: Model-View-Controller (MVC), layered, repository, client server and pipe filter
10 7: Object-Oriented Detailed Design Relationships among analysis, design and implementation, object-oriented design using UML, object-oriented design principles, elaborating UML diagrams from analysis.
11 Software Engineering project – Design model. Produce design document* that includes all the required design models
12 8: Software verification, validation and testing Introduction to verification and validation, verification and validation planning, software inspections. System testing, Component testing, Test case design, Test Case Design using Black-box and white box
13 Software Engineering project – Test case design. Produce testing document* that includes all the required test cases
14 TENTATIVE - ALTERNATIVE ASSESSMENT (TBC)
15 Industry Day II: Project demonstration and hand over.

Student Information

No Name ID Github
1 ALIATUL IZZAH BINTI JASMAN oishylea :octocat:
2 CHE MARHUMI BIN CHE AB RAHIM CheMrhumi :octocat:
3 DANIAL HARRIZ BIN MOHD ASINEH @MOHD ASNEH danialharriz :octocat:
4 KOH SU XUAN kohxuan :octocat:
5 KUGEN A/L KALIDAS kugen03 :octocat:
6 LEE YIK HONG YIKHONGLEE :octocat:
7 MUHAMMAD ANAS BIN MOHD PIKRI MuhdAnass :octocat:
8 MUHAMMAD ARIFF DANISH BIN HASHNAN ariffdanish :octocat:
9 MUHAMMAD IMAN FIRDAUS BIN BAHARUDDIN MuhammadImanFirdaus :octocat:
10 MUHAMMAD LUQMAN HAKIM BIN MOHD RIZAUDIN Luqman08 :octocat:
11 MUHAMMAD NUR AZHAR BIN MOHD YAZID mnazhar13 :octocat:
12 MUHAMMAD SAFWAN BIN MOHD AZMI safwan031 :octocat:
13 MULYANI BINTI SARIPUDDIN Mulyani28 :octocat:
14 NADHRAH NURSABRINA BINTI ZULAINI SabrinaNadhrah :octocat:
15 NAVACHANDER NAVASANTAR Navachander1 :octocat:
16 NAVASARATHY A/L S.GANESWARAN Navasarathy :octocat:
17 NIK ZULAIKHAA BINTI ZURAIDI AFANDI nikzulaikhaa :octocat:
18 NUR ALEYSHA QURRATU'AINI BINTI MAT SALLEH NurAleysha :octocat:
19 NUR ARINI FATIHAH BINTI MOHD SABIR arinifthh :octocat:
20 NUR FARAH ADIBAH BINTI IDRIS nurfarahadibah :octocat:
21 NURUL ERINA BINTI ZAINUDDIN nrulerina :octocat:
22 ONG YI YAN ONGYIYAN :octocat:
23 SALINI RAVINTHIRAN Salini1 :octocat:
24 TANG YAN QING yan-qing09 :octocat:
25 THEVAN RAJU A/L JEGANATH ThevanRaju :octocat:
26 VINESH A/L VIJAYA KUMAR vinesh06 :octocat:
27 WAN NUR SOFEA BINTI MOHD HASBULLAH wannursofea :octocat:

Notes

Introduction to Software Engineering

Contribution 🛠️

Please create an Issue for any improvements, suggestions or errors in the content.

You can also contact me using Linkedin for any other queries or feedback.