- 37 (Registered)
The field of software engineering (SE) is concerned with all aspects of software development, from the early stages of system specification to maintaining the system after it has gone into use. This includes technical processes of software development as well as activities such as software project management and the development of tools, methods, and theories to support software development. This course focuses on helping students to develop good understanding of the fundamental concepts and principles for the cost-effective engineeringof high-quality software systems.
This course provides the student with a working knowledge of the terms, principles and methods of Software Engineering, with emphasis on the topics described in the IEEE’s Software Engineering Body of Knowledge, http://www.swebok.org. It also addresses other topics and skills essential for a career in software engineering including project management, open source software and management. This course establishes bedrock knowledge necessary to practise software engineering in software projects and to pursue further courses in software engineering.
On completion of this course students should be able to:
- Discuss and explain the major issues in contemporary software development and maintenance as related to complex and critical software systems;
- Apply the methods and practices typically used in software development and management of software.
- Explain leading practices in software engineering
- Analyze key principles of systems engineering and explain how they apply to software development.
- Evaluate new methods and practices in Software engineering
- Apply what they have learnt to more advanced courses in software engineering and use their skills gained efficiently in the world of work.
|Task / Assignment No. & Name||Due Date||Time||Weight||Type||Learning Outcomes|
|1. Oral Presentation||Sept. 30th||4 pm||20%||Group / Summative||1,2|
|2. Research||Oct. 28th||4 pm||30%||Project||3,4|
|3. Mid Term Examination||Nov. 25||4 pm||20%||Presentation||5,6|
|4. Final Exam||December||30%||Individual Written Exam||1 – 6|
Nb: Dates are subjected to be changed.
- Frederick P. Brooks, Jr. (1995). The mythical man-month: Essays on software engineering. (20thAnniversary Edition). Boston, MA: Addison Wesley Professional
- Hunt , A., & Thomas, D. (2000). The pragmatic programmer: from Journeyman to master. Indianapolis, In: Addison Wesley.
- McConnell, S. (2004).Code complete: A practical handbook of software construction(2nd). Redmond, Washington: Microsoft Press.
- I. (2015). Software engineering(10thed.). Boston, MA: Addison-Wesley
1. Introduction to Software Engineering Software is more than just a program code. A program is an executable code, which serves some computational purpose. Software is considered to be collection of executable programming code, associated libraries and documentations. Software, when made for a specific requirement is called software product.
2. Software Requirements A Software Project is the complete procedure of software development from requirement gathering to testing and maintenance, carried out according to the execution methodologies, in a specified period of time to achieve intended software product.
3. Software Estimation Effective software project estimation is one of the most challenging and important activities in software development. Proper project planning and control is not possible without a sound and reliable estimate. As a whole, the software industry doesn’t estimate projects well and doesn’t use estimates appropriately. We suffer far more than we should as a result and we need to focus some effort on improving the situation.
4. Software Engineering Project Scheduling in a project refers to roadmap of all activities to be done with specified order and within time slot allotted to each activity. Project managers tend to define various tasks, and project milestones and them arrange them keeping various factors in mind.
5. Software quality
6. Software Architecture and Design Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design and manage complex systems over their life cycles. At its core, systems engineering utilizes systems thinking principles to organize this body of knowledge.
- Protected: Lesson 1: Supporting Techniques
- Protected: Lesson 2: Quantitative, Stats and Graphing
- Protected: Lesson 3: Survey Methods
- Protected: Lesson 4: Problem Solving
- Protected: Lesson 5: Meeting Methods
- Protected: Lesson 6: Negotiation – Easy Win-Win
- Protected: Lesson 7: Management
- Protected: Lesson 8: Fault Tolerance
8. Object-Oriented Analysis In the system analysis or object-oriented analysis phase of software development, the system requirements are determined, the classes are identified and the relationships among classes are identified.
9. Methodologies The software development lifecycle methodologies play an important role in keeping check, whether the software requirements are fulfilled by SDLC or not. However, today’s business scenario has changes. In today’s world there is a possibility that the old strategies of software development may not be found up to the mark.
10. Human Computer Interaction
The Software Engineering industry is one of the most prevalent industries today. We are literally dependent on these applications that are made up of such intricate, yet concise, lines of code. Software makes everything more interesting and greatly influences the way we connect with the world through the dissemination of information - the most valuable commodity. This course brought much insight in regards to the governing bodies that set the standards for software development. I learnt much about the principles, new trends and leading practices of software engineering internationally. The content is super applicable to our understanding of the technological world around us.
This course balances raw in deep information with a subtle and approachable format that allows for each lecture’s content to be easily grasp, which allows me to gather a deep understand of the content that well no doubt stick with me and be extremely useful to anyone pursuing a career I.T.
As someone who has just taken their first steps unto software engineering this course was very helpful and unbelievabley informative on each lessons and activity. I enjoyed every part and have learned tons
This course showed me all the work that goes into making a software and what makes a software runs and do the things it does .It introduce me to the many different methods of developing software the advantages and disadvantages and when to use a particular method in a situation.
This course is very helpful in explaining the different methodologies and rules all aspiring system engineers should know