Git Product home page Git Product logo

software-design-and-architecture's Introduction

Software Design and Architecture

https://www.coursera.org/specializations/software-design-architecture

In the Software Design and Architecture Specialization, you will learn how to apply design principles, patterns, and architectures to create reusable and flexible software applications and systems. You will learn how to express and document the design and architecture of a software system using a visual notation.

Practical examples and opportunities to apply your knowledge will help you develop employable skills and relevant expertise in the software industry.

  • Architecture Tradeoff Analysis Method
  • Representational State Transfer (REST)
  • Design Pattern
  • Service-Oriented Architecture

17 weeks - 84 hours

Certificate: https://www.coursera.org/account/accomplishments/specialization/36F9SHJ2BQKZ

Course 1: Object-Oriented Design

https://www.coursera.org/learn/object-oriented-design

This course takes Java beginners to the next level by covering object-oriented analysis and design. You will discover how to create modular, flexible, and reusable software, by applying object-oriented design principles and guidelines. And, you will be able to communicate these designs in a visual notation known as Unified Modelling Language (UML).

You will be challenged in the Capstone Project to apply your knowledge of object-oriented design by evolving and documenting the Java codebase for an Android application with corresponding UML documentation.

After completing this course, you will be able to: • Apply the Class Responsibility Collaborator (CRC) technique to analyze and design the object-oriented model for a problem. • Explain and apply object-oriented modeling principles and their purpose (e.g., abstraction, encapsulation, decomposition, generalization). • Explain and apply different types of inheritance • Explain the difference between association, aggregation, and composition dependencies. • Express object-oriented models as Unified Modeling Language (UML) class diagrams. • Translate between UML class diagrams and equivalent Java code. • Apply design guidelines for modularity, separation of concerns, information hiding, and conceptual integrity to create a flexible, reusable, maintainable design. • Explain the tradeoff between cohesion and coupling.

  • Object-Oriented Design
  • Object-Oriented Analysis And Design
  • Unified Modeling Language (UML)

4 weeks of study, 5 - 8 hours/week

Certificate: https://www.coursera.org/account/accomplishments/verify/T534ZS2FDEQ5

Course 2: Design Patterns

https://www.coursera.org/learn/design-patterns

This course extends object-oriented analysis and design by incorporating design patterns to create interactive applications. Through a survey of established design patterns, you will gain a foundation for more complex software applications. Finally, you will identify problematic software designs by referencing a catalog of code smells.

You will be challenged in the Capstone Project to redesign an existing Java-based Android application to implement a combination of design patterns. You will also critique a given Java codebase for code smells.

After completing this course, you will be able to: • Demonstrate how to use design patterns to address user interface design issues. • Identify the most suitable design pattern to address a given application design problem. • Apply design principles (e.g., open-closed, dependency inversion, least knowledge). • Critique code by identifying and refactoring anti-patterns. • Apply the model-view-controller architectural pattern.

4 weeks of study, 5-8 hours/week

Certificate: https://www.coursera.org/account/accomplishments/verify/FFVZHYH4FVUA

Course 3: Software Architecture

https://www.coursera.org/learn/software-architecture

The way that software components — subroutines, classes, functions, etc. — are arranged, and the interactions between them, is called architecture. In this course you will study the ways these architectures are represented, both in UML and other visual tools. We will introduce the most common architectures, their qualities, and tradeoffs. We will talk about how architectures are evaluated, what makes a good architecture, and an architecture can be improved. We'll also talk about how the architecture touches on the process of software development.

In the Capstone Project you will document a Java-based Android application with UML diagrams and analyze evaluate the application’s architecture using the Architecture Tradeoff Analysis Method (ATAM).

After completing this course, you will be able to: • Compare and contrast the components, connections, protocols, topologies, constraints, tradeoffs, and variations of different types of architectural styles used in the design of applications and systems (e.g., main program and subroutine, object-oriented, interpreters, pipes and filters, database centric, event-based). • Describe the properties of layered and n-tier architectures. • Create UML ipackage, component, and deployment diagrams to express the architectural structure of a system. • Explain the behaviour of a system using UML activity diagrams. • Document a multi-application system with a layered architecture.

4 weeks of study, 5-8 hours/week

Certificate: https://www.coursera.org/account/accomplishments/verify/KQXEXSJNKKL6

Course 4: Service-Oriented Architecture

https://www.coursera.org/learn/service-oriented-architecture

Based on an understanding of architectural styles, you will review architectures for web applications, then explore the basics of Service-Oriented Architecture (SOA) in two approaches: Web Services (WS*) and Representational State Transfer (REST) architecture.

In the Capstone Project you will connect a Java-based Android application with Elasticsearch, a web service with a REST application programmer interface (API).

After completing this course, you will be able to: • Describe SOA (Service-Oriented Architecture) to structure web-based systems. • Explain WS* services (i.e., SOAP over HTTP, WSDL, UDDI, BPEL). • Apply REST architecture (i.e., JSON over HTTP, URI). • Identify REST design principles. • Create a system using REST interfaces. • Apply microservice architecture.

  • Web Service
  • Microservices
  • Representational State Transfer (REST)
  • Service-Oriented Architecture

4 weeks of study, 5-8 hours/week

Certificate: https://www.coursera.org/account/accomplishments/verify/RYUMJFB4U9VE

software-design-and-architecture's People

Contributors

cardosop avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.