Fundamentals of Software Engineering Course Outline

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Department: Software Engineering

Module Title: Full Stack Module Code: SITE-M2101


Development Fundamentals
Module ECTS: 29
Course Title: Fundamentals of Course Code: SITE-2103
Software Engineering
Course ECTS: 7
Course Duration: 12 weeks

Instructor’s Contact Information: Course Information:


Name: Michael Sheleme Academic Year: 2022/2023
Email: [email protected] Semester: I

Course Description
As soon as computers were invented, the ability to tell them what to do made
programming an awesome task. Programmers used a technique called "code and fix”
write some code, and fix it when it breaks. But things started getting too compacted too
soon. Writing bigger software through the so-called "code and fix" mechanism had its
problems. The inability to assess progress, quality, or risks, the difficulty to
accommodate changes without a major design overhaul, and the unclear delivery
features, timing, and support made "code and fix" strategy is difficult to use in larger
projects.
Therefore, software engineering emerged as a discipline to manage software projects.
The activities in software engineering include defining what the software should do
(software requirements), describing the solution specified in the requirements on paper
(design), writing software that meets the solution using a programming language
(implementation), making sure that the implementation meets the design and
requirements (testing), and progressively modifying the software (maintenance and
evolution). But software engineering is not just a prerequisite to coding. It also defines
the way we communicate and keep stream of our tasks, it is the way we collaborate too.
The key idea that software engineering introduced in projects is traceability. The things
written in the requirements must have a corresponding solution described in the design
document, and a piece of code that implements a certain artifact on the design.
This course introduces software engineering though a project based delivery strategy
and you are expected to apply what you studied in classes on your projects
Course Objectives
Understand the basic principles of Software Engineering that helps to understand a
problem, perform requirement analysis and work on the solution. Students must
write requirements specification documents, Design a system, component, or process
to meet desired needs.
Learning Outcomes
The program provides a knowledge and understanding of the following:
Practical Skills Transferable Skills
- Perform a requirement analysis - Students will be able to work with
on different area of problem different platforms and have a handy
- Perform an object-oriented experience on working on
design documentation skills
- Prepare different types of - Effective communication skill
documents. (requirement, acquired during group work
design and testing) - A hand on experience on proposal
- Verify and validate a Software writing and different collaborative
system tools

Prerequisites:
Object Oriented Programing
Student Workload
Lecture: Tutorial: Lab: Home:
Course Content
Topic one: Introduction to Software Engineering

● What is software engineering


● The relationship with other fields
● What is software project and what roles being available
● How to work on a group of teams for software project

Topic two: software life cycle


● Characteristics of a Software Process
● Software Development Process
● Software life cycle and process models
● Process assessment models
● Software process metrics

Topic three: Requirement Engineering


● Defining requirements of a project and documentation
● Why requirement?
● Gathering and classifying requirement
● Use case modeling
● Prototyping requirement
Topic Four: software design
● What is software architecture and architectural style
● Represent architecture in UML [Component and Deployment] diagram
● Class diagram
● Sequence diagram

Topic Five: software implementation and testing


● Software testing

Topic six: Agile Development


● Scrum
● Scrum framework

Schedule
Weeks Topics and Subtopics
Lecture Laboratory Assessment
Week 1- Week 3 Topic 1 ,2 Collaboration tools Proposal (Doc)
[Trello, slack]
Week 4- Week 5 Topic 3 Edraw max for Mid Exam
developing use case SRS(Doc)
Mockup tools [for UI]
Week 6- Week 8 Topic 4 Edraw max for SDS (Doc)
developing
Component,
Deployment, Class,
Sequence and sate
chart diagram

Week 9- Week Topic 5,6 Working on version TPD (Doc)+


10 control(Git) Implementation
Unit testing using Final Exam
Junit
Teaching Methods
The teaching methods that shall be employed for this course are lecturing,
demonstration, classroom discussion and classroom action research.
Assessment Method
The mark breakdown is as follows
❏ Mid Exam 20%
❏ Proposal SRS, SDS, TPD, IMP 50%
❏ Final Exam 30%
Course Policies
❏ Attendance: It is compulsory to attend class in time and every time. Missing
more than three classes during the term causes readmission for that course.
❏ Assignments: No Late Assignment will be accepted
❏ Test/Quizzes: Rarely reexamination schedules will be arranged for those who
missed the exam by accidental or uncontrollable situation.
❏ Cheating/Plagiarism: No second Chance or excuses.
References
1. Sommerville, Ian. Software engineering. Boston: Pearson, 2016
2. Fowler, Martin. UML distilled : a brief guide to the standard object modeling language.
Boston: Addison-Wesley, 2004
3. Pressman, Roger S. Software engineering : a practitioner's approach. New York, NY:
McGraw-Hill Education, 2015

You might also like