Software Engineering

Wishlist Share
Share Course
Page Link
Share On Social Media

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.

 

JOIN US!

Show More

What Will You Learn?

  • How to build a non-trivial software system using an agile approach in a pair or team
  • Techniques for specifying the functional and non-functional aspects of a software system
  • Techniques for designing and testing a software system
  • The role of refactoring in building a quality system
  • And everything about software Engineering

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

Student Ratings & Reviews

No Review Yet
No Review Yet