
About Course
This Software Engineering course, part of the Software Development MicroMasters Program, introduces how teams to design, build and test multi-version software systems.
This Software Engineering course covers the basic principles and concepts of software engineering; system requirements; secure programming in the large; modeling and testing; object-oriented analysis and design using the UML; design patterns; frameworks and APIs; client-server architecture; user interface technology; and the analysis, design, and programming of extensible software systems.
Sample labs and assignments:
– Evaluating the performance of various simple software designs.
– Adding features to an existing system.
– Testing a system to verify conformance to test cases.
– Building a GUI for an application.
– Numerous exercises building models in UML, particularly class diagrams and state machines.
– Developing and presenting a simple set of requirements (to be done as a team) for some innovative client-server applications of very small size.
– Implementing the above, using reusable technology to the greatest extent possible.
Additional teaching considerations:
– This Software Engineering course is a good starting point for exposing students to moderately sized existing systems. With such systems, they can learn and practice the essential skills of reading and understanding code written by others. Students should write code in the context of a particular domain, for example, the biological, physical, mathematical, or chemical sciences or even wider spectra such as game programming, business applications, and graphics and animation.
– It is suggested that a core subset of UML be taught, rather than trying to cover all features.
– It may be challenging for instructors to convey the nature of SE to students; however, this challenge may be addressed through strategies such as field trips to businesses and industries that utilize large software systems, guest lectures by developers and users of large software systems, and discussions about embedded systems in everyday life including ATMs, wireless devices, cell phones, various mobile devices, and computer games.
Course Content
Software Engineering
-
Scope of CASE Tools
00:00 -
Object Oriented Design
00:00 -
Software Design Approaches
00:00 -
Software User Interface Design
00:00 -
Command Line Interface (CLI)
00:00 -
Graphical User Interface
00:00 -
User Interface Golden Rules
00:00 -
Halstead’s Complexity Measures
00:00 -
Cyclomatic Complexity Measures
00:00 -
Function Oriented Design
00:00 -
Structured Design
00:00 -
Data Flow Diagram
00:00 -
Structured Charts
00:00 -
HIPO Diagram
00:00 -
Structured English
00:00 -
Pseudo Code
00:00 -
Decision Tables
00:00 -
Entity Relationship Model
00:00 -
Data Dictionary
00:00 -
Function Point
00:00 -
Structured Programming
00:00 -
Software Maintenance Overview
00:00 -
Types of Maintenance
00:00 -
Cost of Maintenance
00:00 -
Maintenance Activities
00:00 -
Software Re engineering
00:00 -
Component Reusability
00:00 -
CASE Tools
00:00 -
Components of CASE Tools
00:00 -
Testing Documentation
00:00 -
Testing Levels
00:00 -
Functional Programmingon
00:00 -
Programming Style
00:00 -
Software Documentation
00:00 -
Software Validation and Verification
00:00 -
Manual Vs Automated Testing
00:00 -
Testing Approaches
00:00 -
Black Box Testing
00:00 -
White Box Testing
00:00 -
Software Quality Attributes
00:00 -
Cohesion and Coupling
00:00 -
Structured Evolutionary Prototyping Model
00:00 -
Incremental Model
00:00 -
Rapid Application Development (RAD)
00:00 -
Spiral Model
00:00 -
V Model
00:00 -
Scrum Development Model
00:00 -
Big Bang Model
00:00 -
Software Project Management
00:00 -
Waterfall Model
00:00 -
Software Development Paradigm
00:00 -
Overview of Software Engineering
00:00 -
Software Evolution
00:00 -
Software Evolution Laws
00:00 -
E-Type Software Evolution
00:00 -
Software Paradigms
00:00 -
Need of Software Engineering
00:00 -
Characteristics of Good Software
00:00 -
Software Development Life Cycle
00:00 -
Need of Software Project Management
00:00 -
Software Project Manager
00:00 -
Critical Path Analysis
00:00 -
Requirement Engineering Process
00:00 -
Requirement Elicitation Techniques
00:00 -
Software Requirements
00:00 -
User Interface Requirements
00:00 -
Software Metrics and Measures
00:00 -
Software Design Levels
00:00 -
Modularization
00:00 -
Project Management Tools
00:00 -
Configuration Management
00:00 -
Software Project Management Activities
00:00 -
Project Estimation
00:00 -
Project Estimation Techniques
00:00 -
Project Scheduling
00:00 -
Resource Management
00:00 -
Project Risk Management
00:00 -
Project Execution and Monitoring
00:00 -
Project Communication Management
00:00 -
Software Engineering Basics
00:00