Software Development Process(1/3)-Software Architecture ,UML
5.0 (6 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
315 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Software Development Process(1/3)-Software Architecture ,UML to your Wishlist.

Add to Wishlist

Software Development Process(1/3)-Software Architecture ,UML

Software Architecture,Software Development,SRS,Software Design Document,API Specification,Unified Modeling Language UML
5.0 (6 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
315 students enrolled
Created by John Mathew
Last updated 9/2017
Current price: $10 Original price: $200 Discount: 95% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 2.5 hours on-demand video
  • 1 Article
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • First Part in the series of Training program on Software Engineering.
  • Software Platform: External and Internal
  • Software Architecture: Style and Documentation
  • The professional developers who are transitioning into the role of Software architect.
  • Software Development Process
  • Software Development Model
  • Software Requirement Specification
  • Software Design Document
  • API Specification
  • Unified Modeling Language UML
  • UML Basic Building Blocks
  • UML Modeling Rules
  • UML Modeling Tool
  • Modeling with UML Diagram
  • Express the analysis and Design of an application using UML
  • Specify and evaluate Software Architectures
  • Select and use appropriate Architectural styles
  • Understanding the role of Software Architecture in the Software lifecycle
  • Describing an Architecture using several views
  • Evaluating an Architecture using both review-based and scenario-based methods
  • The full training program is divided into few courses. If you wish to take more courses, I recommend to take the courses in sequence to get WHOLE of this training programme.
  • When you complete this course, you will be able to understand the terminologies and concepts of Software Engineering, Software Architecture and Unified Modeling Language UML.
  • You will be able to apply the roles of Software Engineering in products and various components of the Software product.
  • This course will allow developers to build the concepts in Software Engineering and learn how to apply them in real world tasks.
View Curriculum
  • Are you comfortable, or even excited about, learning new technologies and working with Software tools?
  • Do you have enough flexibility to work with a team that meets (remotely) on a regular basis?
  • Have you taken a Software engineering course before or have you had some experience working as a Software engineer in a company?
  • Are you familiar with basic Software engineering concepts, such as requirements, Software Design, and Software testing?
  • A familiarity with programming terms.
  • Experience in the development of Software-reliant systems is welcome but not blocking.
  • Some familiarity with Software engineering concepts.

What is the course about?
Software Engineering and Architecture is the discipline concerned with model-based description and analysis of Software systems with a view to satisfying the (often contradictory) concerns of stakeholders. The Software Architecture of a system is a high-level description of its components and their interactions.
The central theme of this course is balancing the concerns and requirements of stakeholders, combining these into an Architecture proposal by employing known tactics and Patterns, producing a description of the Architecture that can be communicated and analysed, and evaluating the resulting Architecture's qualities.

This is the first part of the 3 part comprehensive Training program on Software Development Process which covers the essential information that every programmer needs to know. This covers Software Platform: External and Internal, Software Architecture: Style and Documentation, Software Development Process, Software Development Model, Software Requirement Specification, Software Design Document, API Specification, Unified Modeling Language UML, UML Basic Building Blocks, UML Modeling Rules, UML Modeling Tool and Modeling with UML Diagram.

Software engineering isn’t just about programming. It isn’t just about building a technology stack. Software Development Processes will show you the skills and processes needed to complement technical understanding of Software products in order to make you a more effective developer in an engineering team. The goal of this class is to equip you with the skills necessary to define requirements, and use Unified Modeling Language (UML) to Design and build an applications.

In this course, you will gain an understanding of Unified Modeling Language (UML) class diagrams, which are used to visually represent the conceptual Design of a system. You will learn about UML class diagrams. This course will focus on how UML class diagrams are used to map out the structure of a business domain by showing business objects, their attributes, and associations.

You basically won't ever get an interview that won't require you to have some foundational knowledge in computer science, and such interviews will often test your base of Software Engineering Concepts.
You will be taught all the skills needed for Software Engineering from the basic fundamentals to the very complicated level of details and tricks related to the languages.
This course will benefit you to perform your Architect jobs better and also help you to get to better positions, with confidence, in case you are looking out for jobs.

This course is not based on any programming language. Its a concept based training program which will introduce you to the fundamental concepts of Software Architecture and help lead you on the path from developer to architect.

Please remember that this is a serious course on Software Architecture & Software Engineering. I believe that subjects like this cannot be learned in few hours or days. It required continuous efforts. Students may have to put a lot of efforts in order to become expert and make the best use of this course. This course covers the essential information that every programmer needs to know about Software Architecture & Software Engineering.

If you are:
1. Tired of finding good learning resources on Software Architecture & Software Engineering ?
2. Do you want to become a expert level Architect ?
3. As a Bonus, get a complimentary consultation about Linux OS and Linux Kernel Internals, Algorithms, Data Structures, HTML, C and Java Programming languages.
4. So if you’re looking for knowledge, a rewarding adventure, and the advantage a future perspective can offer, I’m excited to tell you more about my step-by-step training program for Software Architecture & Software Engineering.

What kind of material is included?
1. This course consists of high quality training content using quality videos with industry oriented hands-on examples.
2. I have tried to include the juice of my 10 years of experience in this course.
3. The focus is on giving real life essential tricks and skills.
4. I suggest students to take this course with pen and paper handy. Note the important points and take part in discussions. The exercise is the most important part in learning any subject.

How long will the course take to complete?
1. This is the comprehensive course covering almost all the topics of Software Architecture & Software Engineering.
2. I advise students to cover not more than one lesson/section per day.

How is the course structured?
1. A perfect blend of theory and real world examples.

Why take this course?
0. Software Architecture & Software Engineering is the hot subject for interviewers. This course will surely help.
1. This is the comprehensive course covering almost all the topics of Software Architecture & Software Engineering.
2. This course will tends to replace text books ie it will be a complete reference of Software Architecture & Software Engineering.
3. For the college going students, this course helps in improving grades in college curriculum and increases the chances at the final Campus Interview.
4. Software Architecture & Software Engineering is a difficult subject, I have tried hard to make my delivery easy and effective.

When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.

How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.

What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.

Join worldwide learners who uses Software Architecture & Software Engineering as part of their curriculum and Job.

Visit my website eLearningMedium to get discounts on my courses + additional free resources + discounted course bundles.

Who is the target audience?
  • You're at the right address if you're a Software engineer, embedded systems engineer or a technical manager who aspires to know about Software Engineering.
  • This course is targeted at those students and professionals who Design, develop, or manage the construction of Software-reliant systems.
  • This online course is Designed for independent learners to quickly gain insight, at their convenience, into the latest concepts of what Software Architecture is and how to use it successfully.
  • The professional developers who are transitioning into the role of Software architect.
  • If you are already a Software architect but eager to learn more about your craft.
  • Undergraduates, Graduates and Post-Graduates
  • The learning targets of this course are Software developers, computer science engineers and students who wish to build the concepts of Software Engineering.
  • Experienced Software engineers who are looking to refresh important fundamental concepts
  • This is a course for professionals and students in occupational group in any organization or academics to help them to understand the basics of Software Engineering that they should know well.
  • Job seekers who are preparing for interview in Product MNC/e-commerce/service companies. Anyone who has deep desire to learn Software Engineering.
  • For college going students, this course will help in improving grades in college curriculum.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
30 Lectures
Software Platform: External and Internal
6 Lectures 23:39

Intro, Learning objectives

Preview 00:47

A Software platform is the environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser or other underlying software, as long as the program code is executed in it. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries.[1] A computing platform is the stage on which computer programs can run.

Preview 05:51

External Software Platforms

Preview 05:44

Internal Software Platforms

Internal Software Platforms

Engineer's Views

Engineer's Views


Software Architecture: Style and Documentation
5 Lectures 27:37

Intro, Learning objectives

Intro, Learning objectives

Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures. These structures are needed to reason about the software system.

Software Architecture: Overview

Software Architecture Style:
Shared memory
Adaptive systems
Distributed systems

Software Architecture Style

Lightweight documentation that describes what you can't get from the code.

Software Architecture Documentation


Software Development Process and Software Development Model
5 Lectures 34:35

Intro, Learning objectives

Intro, Learning objectives

A software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management. It is also known as a software development life cycle. The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.

Software Development Process: Overview

In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management.

Software Development Process

The software development models are the various processes or methodologies that are being selected for the development of the project depending on the project’s aims and goals. There are many development life cycle models that have been developed in order to achieve different required objectives. The models specify the various stages of the process and the order in which they are carried out.

Software Development Model


Documentation: SRS, Software Design Document & API Specification
6 Lectures 46:32

Intro, Learning objectives

Intro, Learning objectives

Software documentation is written text or illustration that accompanies computer software. It either explains how it operates or how to use it, and may mean different things to people in different roles. Documentation is an important part of software engineering.

Documentation: Overview

A software requirements specification (SRS) is a description of a software system to be developed. It lays out functional and non-functional requirements, and may include a set of use cases that describe user interactions that the software must provide.

Software Requirement Specification SRS

A software design description is a written description of a software product, that a software designer writes in order to give a software development team overall guidance to the architecture of the software project. An SDD usually accompanies an architecture diagram with pointers to detailed feature specifications of smaller pieces of the design. Practically, the description is required to coordinate a large team under a single vision, needs to be a stable reference, and outline all parts of the software and how they will work.

Software Design Document

The API Specification defines a standard, programming language-agnostic interface description for APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic.

Application Programming Interface Specification


Unified Modeling Language UML:Building Blocks,Modeling Rules,UML Tool & Diagram
7 Lectures 27:40

Intro, Learning objectives

Intro, Learning objectives

The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering, that is intended to provide a standard way to visualize the design of a system.

Unified Modeling Language: Overview

The building blocks of UML can be defined as −

Basic Building Blocks

A language provides a vocabulary and the rules for combining words for the purpose of communication. A modeling language is a language whose vocabulary and rules focus on the conceptual and physical representation of a system. A modeling language such as the UML is thus a standard.
language for software blueprints

Modeling Rules

StarUML. StarUML is an open source software modeling tool that supports UML (Unified Modeling Language). It is based on UML version 1.4, provides eleven different types of the diagram and it accepts UML 2.0 notation.

UML Modeling Tool

UML diagrams represent two different views of a system model: Static (or structural) view: emphasizes the static structure of the system using objects, attributes, operations and relationships. It includes class diagrams and composite structure diagrams.

Modeling with UML Diagram


Bonus and Discounts
1 Lecture 02:25

Finally, you have reached to the Last Lecture of the course. Great !!
Its time to move on to another course to Skill-Up.
Get Huge Discount on Courses on Linux, Algorithms, Software Project Management, Mobile APP Development, Java and Software Engineering:
1. Linux
a. Linux OS in Embedded System & Linux Kernel Internals(1/2)
Overview of the structure of modern operating systems. Over the course of the subsequent units, we will discuss the history of modern computers, analyze in detail each of the major components of an operating system (from processes to threads), and CPU scheduling, Synchronization and Deadlocks
b. Linux OS in Embedded System & Linux Kernel Internals(2/2)
Focus on UNIX-based operating systems, though we will also learn about alternative operating systems, including Windows. Over the course of the subsequent units, analyze in detail each of the major components of an operating system, Memory management, Paging, Memory Management in Intel 80386, Virtual Memory, Demand Paging, , Page Fault, Belady’s Anomaly, Stack Replacement Algorithms, Thrashing, File Concept, Directory Structure, File System, Mounting, File Sharing and Protection, Space Allocation Techniques, Disk Structure and Scheduling, Free Space Management.
2. Algorithms and Data Structures
a. Algorithms and Data Structures Training Program (1/4)
Introduction to Algorithms, Arrays, Search, Greedy Algorithm, Sort, Subset, Stack Data Structures, Memoization, backtracking, Dynamic Programming, Depth First Search (DFS), Divide and Conquer,Pattern matching,Queue,Breadth First Search(BFS),List,Insertion,Merge,Tree(Binary & Expression),Binary search Tree,Heap
b. Algorithms and Data Structures Training Program (2/4)
SW Problem Solving, Algorithm Complexity, Bit Operations, Number Bases, Floating Point Numbers, O(Big-Oh)-Notation, (Big-Omega)-Notation, (Theta)-Notation, Endianness, Exhaustive Search Method, Combinatorial Problem, Baby, Gin Problem, Brute-Force, Permutation, Lexicographic–Order, Johonson-Trotter, Combination, Minimum-exchange Requirement, Subset, Knapsack Problem and Fractional Knapsack Method, Greedy Algorithm and Application of Greedy, Approach, Recursive Algorithm Applying Greedy Method, Comparison of Greedy Method and Dynamic Programming, Representative Algorithms of Greedy Methods, Huffman coding, Change Reducing Problem, Meeting Room Scheduling, Divide and Conquer, Merge Sort, Quick sort, Hoare Partition, Lomuto Partition, Binary Search and Power Set,Backtracking, Maze Finding, State Space Tree, 8-Queens Problem, Subset, Power Set, Permutation, Graphs, Search, Disjoint Sets, Expression of Linked List, Minimum Spanning Tree, Prim Algorithm, Kruskal Algorithm, Shortest, Path, Dijkstra Algorithm, Bellman-Ford Algorithm and Floyd-Warshall Algorithm.
c. Algorithms and Data Structures Training Program (3/4)
Hashing,Collision,Pattern Matching,Brute Force,Karp–Rabin,KMP(Knuth-Morris-Pratt),Boyer-Moore,Trie,Compressed Trie,Suffix Tree,Suffix Array,Compression,LCP Array,Run-Length Encoding,Huffman Coding,Lampel-Ziv-Welch Encoding,Arithmetic Coding,Dynamic Programming,Fibonacci Number,Mathematical Induction,Pigeon Hole Principle,Memoization,Binomial Theorem,Pascal's Triangle,Knapsack Problem,Search of State Space Tree,Branch and Bound, Pruning (Backtracking),Best-First Search
d. Algorithms and Data Structures Training Program (4/4)
Dynamic Programming,Longest Increasing Sequence,All Pairs Shortest Path,Weighted directed graph,Floyd-Warshall Algorithm,Traveling Salesman Problem,NP-Complete,Deterministic, Nondeterministic,Polynomial Time Conversion,NP-Hard,SAT,Boolean Expression,Partition,Vertex Cover,Independence Set,Clique,Graph Coloring,Set Cover,Longest Path,Hamiltonian Cycle,Bin Packing,Job Sheduling,Approximation Algorithm,Job Scheduling,Simulated Annealing,Graph of Search Process,Number Theory and Optimization,Probability,GCD,Euclid Algorithm,LCM,Modulo Operation
3. Software Project Management
a. Software Project Management Training Program(1/4)
Software Life Cycle Models & Development Methodology, Integration, Stakeholder, Scope, Resource, Time, Cost, Risk, Quality, Procurement, Communication, software Engineering
b. Software Project Management Training Program(2/4)
Integration Management,Time Management,Risk Management,Scope Management,Work and Change Control,Extraction & Analysis of Requirements,WBS,Scope Creep and Gold Plating, Scope and Quality
c. Software Project Management Training Program(3/4)
Project Resource Management,Resource Estimation,Project Cost Management,Develop Budget and Cost Baseline,Earned Value Method,Project Procurement Management
d. Software Project Management Training Program(4/4)
Project Quality Management,Characteristics and Assessment of Software Quality,Quality Plan Process,Quality Assurance Process,Software test,White box tests,Black,box tests,Regression tests,Software test case Design and Components,Software test Automation,Configuration Management,Baseline,Maintenance,Project,Communication Management,Communication Network
4. Software Development Process and Software Engineering
a. Software Development - Software Architecture & Software Engineering, UML(1/3)
Software Platform: External and Internal, Software Architecture: Style and Documentation, Software Development Process, Software Development Model, Software Requirement Specification, Software Design Document, API Specification, Unified Modeling Language UML, UML Basic Building Blocks, UML Modeling Rules, UML Modeling Tool and Modeling with UML Diagram
b. Software Development - Coding Appearance & Idioms, Design Patterns(2/3)
Coding Appearance, File Organization, Declaration and Statements, Indentation Style and Comments, Naming Convention, Coding Idiom, Memory Management, Security, Exception Handling, Concurrency / Parallelism, Type Safety, Performance, Code Review: Gerrit - Google Code review System, Code Review: Gerrit - Review Board, Design Patterns, Creational Pattern, Structural Pattern, Behavioral Pattern, Code Refactoring Methods.
c. Software Development - Software Testing, Configuration Management & Open Source License(3/3)
Software Testing and Software Test Levels, Testing Techniques, Intuition and Experience-Based Technique, Specification-Based Technique, Code-Based Technique, Software Configuration Management, Issue Tracking, Version Control, Understanding of Open Source, Open Source License, GPL Violation Watchdogs, Open Source Contribution, Main Obligations of GPL 2.0, GPL3.0, Main Obligations of LGPL 2.1, AGPL, Main Obligations of MPL1.1, EPL, Main, Obligations of Apache2.0, BSD2.0, Open Source Instructions for Developers, Instructions to Adopt Open Source, Instructions to Use Open Sources, Instructions to Distribute Open Sources
5. HTML5 : Mobile App Development
HTML5, Tags, CSS, Responsive Web, JavaScript, DOM, jQuery, Selectors, Mobile App Development
Visit my website eLearningMedium to get additional free resources + discounted course bundles.

Bonus Lecture
About the Instructor
John Mathew
5.0 Average rating
56 Reviews
806 Students
12 Courses
Software Programmer, Mobile Developer, Project Manager

I  was apparently not a diligent student. I worked with C/C++ and HTML, CSS, JavaScript since 12 years. I speak to the world on software freedom. From the beginning of my career I have always worked in large and small teams. While programming has been more of a individual activity, it is the collaboration in teams that can make and break a project. I have been interested in algorithms and data structures and its implementations especially in Java since university.

I am a co-author of various manuals, and has edited and reviewed more than a dozen other books. I wrote columns that provided keen insights into the little algorithmic nuggets that we use in our programs. My favorite books includes  "Writing Efficient Programs", "More Programming Pearls" and "Programming Pearls". The best programmers not only continuously improved the quality of their work, they also influence other members of their team.

I learned about project management and team interaction working at various organisations. I still believe that humans are still at the beginning of the code revolution. Programmers and users are still imitating what came before, and haven’t even imagined all that could be in the future. One thing I am sure of is that code is a type of language, based on the same logic as Sanskrit, and for the first time in history, language can change the physical world. Programming is a literature.

I've always had a passion for teaching in seminars and corporations during my consulting projects. My online school eLearningMedium gives me the opportunity to share my knowledge with students of all backgrounds and experiences across the globe! I'm really excited for this opportunity to bring to you real-world practical experience!

I've plans of making some of the courses about Algorithms and Data Structures, Java, HTML5, Software Engineering and Software Project Management. I give all my heart into creation of courses. I always try to explain everything the easiest possible way. I'm sure that my courses will help you in the adventure.