click here to return to the home page, logo image
Inside.Waldenu.Edu>Degree Program Resources>NTU Course Schedule>Current Students - NTU - Course Desc - NSEN-6111 - Page
NSEN-6111 Software Architectures

Contributing Scholars - Richard N. Taylor, University of California, Irvine; Nenad Medvidovic, University of Southern California; and Eric M. Dashofy, The Aerospace Corporation

 

3 Semester Credit Hours

 

Course Description

 

This course examines the top-level design or architecture of software systems including the study of the concepts, representation techniques, development methods, and tools for architecture-centric software engineering. Topics include domain-specific software architectures, architectural styles, architecture description languages, software connectors, and dynamism in architectures.

More informally, software architecture has become a central focus of software engineering. Many architecture modeling notations and support tools, as well as new architectural styles, have emerged. Architecture-based software engineering has shifted the focus of software development from lines-of-code to coarser-grained building blocks and their overall interconnection structure. Prominence is given to reuse of proven components, exploitation of deep domain knowledge, and the lessons of experience.

This course exposes the student to the concepts, principles, and state-of- the-art methods in software architectures, including domain-specific software architectures, architectural styles, architecture description languages (ADLs), software connectors, dynamism in architectures, and architecture-based testing and analysis. In the process of studying these concepts, the boundaries of the field are explored and its relationship to other areas of software engineering, specifically requirements, design, and implementation, are discussed. The course examines the practical applicability of architecture research, specifically its relationship to the work in software reuse and middleware.

 

Prerequisites

 

Students must have knowledge of the basic activities and tasks of software development. An introductory class in software engineering is recommended. The course presumes that the student understands the purposes of and some techniques for requirements analysis, software design, programming, and testing. Appreciation for the problems of large-scale development is very useful. Proficiency in any particular programming language, development environment, or modeling tool such as UML is not required.

 

 

Course Objectives

 

On successful completion of this class a student should be able to do the following.

 

  • Explain the key concepts of software architecture, and describe where and how they fit into the overall software engineering process
  • Working within a well-understood application domain, design architectures for new applications, defending choice of application style and software architecture modeling notation
  • Distinguish between different types of software connectors and illustrate where they may be appropriately used
  • Describe and distinguish several architectural styles, illustrating when and where their use is appropriate
  • Describe several techniques for achieving a variety of non-functional properties in architectural design, giving examples of how the techniques can be applied
  • Explain the issues involved in implementing an architecture, and illustrate basic techniques that may be used in achieving a successful implementation
  • Summarize the roles that architects play in development organizations, and describe how effective development teams can be structured

Course Topics

 

The following topics will be covered in the order given.

 

  1. The Big Idea
  2. Architectures in Context
  3. Basic Concepts
  4. Designing Architectures
  5. Architectural Style
  6. Styles and Greenfield Design
  7. Software Connectors
  8. Choosing Connectors
  9. Introduction to Modeling Part 1
  10. Introduction to Modeling Part 2
  11. Modeling and Notations Part 1
  12. Modeling and Notations Part 2
  13. Visualizing Software Architectures
  14. Visualizing Software Architectures Part 2-1
  15. Visualizing Software Architectures Part 2-2

 

Technical Requirements

  1. Analysis of Software Architectures
  2. Analysis Techniques
  3. Implementing Architectures
  4. Implementation Techniques
  5. Applied Architectures
  6. Designing for NFPs
  7. NFP Design Techniques
  8. Security and Trust
  9. Deployment and Mobility
  10. Introduction to DSSE
  11. DSSE and Product Lines
  12. Architectural Adaptation
  13. Standards
  14. People, Roles, and Teams

 

Software and Multimedia - Browser Plug-Ins:

The following browser plug-ins are necessary to view course materials. Links are provided in the Course Support area to a download area if you need a reader plugin.

    1. Windows Media Player 9 or latest
    2. Adobe Acrobat Reader 5 or latest

You must have access to Microsoft PowerPoint or software with a similar capability to produce media that appears as a presentation slide to take this course.  In addition, you will be required to have Windows Media Player to view the lectures.For the standard technical requirements, please go to the link below: http://www.waldenu.edu/c/Files/DocsGeneral/Getting_Started_Guide.pdf

 

Textbooks

 

Richard N. Taylor, Nenad Medvidoviã, Eric M. Dashofy, Software Architecture: Foundations, Theory, and Practice, John Wiley & Sons, 2008, ISBN: not yet available. Required.

 

Disclaimer: The course syllabus may differ slightly from this.  Course descriptions will be provided in your online course. Textbook information is provided only to give more information about the course.  Do Not use this information to purchase a textbook.  Up-to-date information will be provided when you register.



Google Custom Search
Walden University is accredited by The Higher Learning Commission and a member of the North Central Association, www.ncahlc.org; 312-263-0456. © Copyright 2007 Walden University; Telephone: 800-925-3368