Ви переглядаєте архівну версію офіційного сайту НУЛП (2005-2020р.р.). Актуальна версія: https://lpnu.ua
Software Architecture and Design
Major: Software Engineering
Code of Subject: 6.121.00.O.61
Credits: 4
Department: Software
Lecturer: Ph.D., Associate Professor A.V. Fomenko
Semester: 7 семестр
Mode of Study: денна
Learning outcomes:
As a result of the study students must:
• To know the typical architectural styles and solutions for software creation, especially their application;
• Own the methods of object-oriented design of software systems, as well as know the patterns of object-oriented design;
• Know the general architecture of corporate systems based on Java and .NET platforms and be able to design corporate software for these platforms;
• Be able to document the architecture and design of software systems using standard tools and notations.
• To know the typical architectural styles and solutions for software creation, especially their application;
• Own the methods of object-oriented design of software systems, as well as know the patterns of object-oriented design;
• Know the general architecture of corporate systems based on Java and .NET platforms and be able to design corporate software for these platforms;
• Be able to document the architecture and design of software systems using standard tools and notations.
Required prior and related subjects:
Subjects:
Object-Oriented Programming
Modeling and analysis of software
Organization of computer networks
Programming of Internet applications
Databases
Java programming languages and C #
Title of sections and topics:
Basic principles of PLO: encapsulation, imitation, polymorphism
Class diagrams and interactions
Basic Internet Technology
Database design, SQL query language
Object-Oriented Programming
Modeling and analysis of software
Organization of computer networks
Programming of Internet applications
Databases
Java programming languages and C #
Title of sections and topics:
Basic principles of PLO: encapsulation, imitation, polymorphism
Class diagrams and interactions
Basic Internet Technology
Database design, SQL query language
Summary of the subject:
Lecture classes are devoted to the study of the following topics:
1. Introduction. The role and designing place in the development of software. The concept of software architecture. Design content. Software Design SWEBOK
2. Architecture of software systems. Understanding the architecture of the software system. What determines and influences the architecture. Architectural structures and representations. Modular structures. Structures of "component and connector". Distribution structures. Relationships between structures. Variants of architectures of software systems. Architecture based on levels of abstraction. Architects based on ports. Architecture of independent components. architectures based on data streams.
3. CASE systems and design editors, use to create system architectures.
4. Designing software systems. Requirements analysis and development of external specifications. SADT methodology. IDEF Diagram 0.
5. Designing software systems. SADT methodology. Diagrams DFD, IDEF3.
6. Designing software systems. ARIS methodology. EEPC Chart, DataFloat.
7. Designing software systems. Methodology BPMN 2.0. BPMN Diagrams.
8. Designing software systems. UML Methodology. Diagrams of precedents, co-operation.
9. Designing software systems. UML Methodology. Sequence diagrams, actions. State Transition Diagrams.
10. Object-oriented approach to software development. The main elements of the OOP. Designing software systems for class diagrams, objects.
11. Designing databases. IDEF Diagrams 1X.
12. Methods of object-oriented analysis and design. Templates of object-oriented design. Template Usage
13. Typical architectural decisions. Their implementation.
14. The general architecture of corporate software on the Java and .NET platforms
15. Documenting the results of the design stage. Development of a preliminary external project. The process of external design. Designing user interaction. Preparation of external specifications.
In practical classes students will get practical skills in designing a software system by methods of group work on the following topics:
• Development of system project and system module in various notations, namely: SADT (IDEF0, DFD, IDEF3), ARIS, BPMN 2, UML 2.
• Building a DataFlow database model (ARIS), IDEF 1X (SADT).
• Development of project documentation and project protection
• Development of a complex system module (work in a group) using architectural design templates.
• Development of graphical interface (group work) and embedded in its module.
• Protecting your module in the system project.
4. The result of the discipline is the group development of the project documentation of a complex system, the individual development of the project module system, software development, namely the module system, adaptation of the module system in the overall project.
Recommended Books:
Educational materials
Literature to the theoretical course.
1. MaryShaw, DavidGarlan. SoftwareArchitecture: PerspectivesonanEmergingDiscipline. PrenticeHall, 1996, - 242 p.
2. Martin Fowler. Templates for corporate applications. Williams, 2009, - 544 pp.
3. LenBass, PaulClements, RickKazman. SoftwareArchitectureinPractice (2nd Edition). Addison-Wesley Professional, 2003, - 560 p.
4. E. Gamma, R. Helm, R. Johnson, J. Willsides. Tricks of object-oriented design. Design Patterns. Peter 2007, - 366 pp.
5. Grady Buch. Object-oriented analysis and design with examples of applications on C ++. Bean, 1998, - 560 pp.
6. JamesRumbaugh, MichaelBlaha, WilliamPremerlani, FrederickEddy, WilliamLorenson. Object-OrientedModelingandDesign. Prentice-Hall, 1991, - 500 p.
7. Peter Caud, David Nort, Mark Meyfield. Object models. Strategies, templates and applications. Laurie, 1999, - 434 p.
8. RebeccaWirff-Brock, BrianWilkerson, LaurenWiener. DesigningObject-OrientedSoftware. Prentice-Hall, 1990, p. 341.
9. SallyShlaer, StephenMellor. Object-OrientedSystemsAnalysis: ModelingtheWorldinData. YourdonPress, 1989, - 144 p.
10. SallyShlaer, StephenMellor. ObjectLifecycles: Modelingtheworldinstates. YourdonPress, 1991, - 251 p.
11. JamesMartin, JamesOdell. Principles of Object Oriented Analysis and Design. Prentice-Hall, 1992, - 412 p.
Literature for laboratory classes
1. TheElementsof UML (TM) 2.0 Style. Scott W. Ambler. CambridgeUniversityPress, 2005
2. NamesofClasses, Structs, andInterfaces
http://msdn.microsoft.com/en-us/library/ms229002.aspx
3. CodeConventionsfortheJavaProgrammingLanguage.
http://www.oracle.com/technetwork/java/codeconv-138413.html
4. ObjectManagementGroup - UML
http://www.uml.org/
5. ListofUnifiedModelingLanguagetools - Wikipedia, thefreeencyclopedia
http://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools
6. ArgoUML - argouml.tigris.org
http://argouml.tigris.org/
7. StarUML - TheOpenSource UML / MDA Platform
http://staruml.sourceforge.net/
8. DesignPatterns: ElementsofReusableObject-OrientedSoftware. ErichGamma, RichardHelm, RalphJohnsonandJohnVliss. Addison-Wesley Professional, 1994.
9. Hibernate - JBossCommunity
http://www.hibernate.org/hibernate
10. Java SE Overview - at a Glance
http://www.oracle.com/technetwork/java/javase/overview/index.html
11. Eclipse - TheEclipseFoundationopensourcecommunitywebsite.
http://www.eclipse.org/
12. HibernateTools - JBossCommunity
http://www.hibernate.org/subprojects/tools.html
13. HSQLDB
http://hsqldb.org/
14. HibernateTutorial
http://www.vaannila.com/hibernate/hibernate-tutorial/hibernate-tutorial.html
15. Martin Fowler. Templates for corporate applications. Williams, 2009, - 544 pp.
16. ASP.NET MVC: TheOfficial Microsoft ASP.NET Site
http://www.asp.net/mvc
17. InfoQ: ASP.NET MVC ExamplewithNorthwindandEntityFrameworkPublished
http://www.infoq.com/news/2008/02/mvc-framework-example
18. ADO.NET EntityFramework
http://msdn.microsoft.com/en-us/data/aa937723
19. TheOfficial Microsoft IIS Site
http://www.iis.net/
20. VisualWebDeveloper 2010 Express | Microsoft VisualStudio
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-web-developer-express
21. FreeDatabaseSoftware | DatabaseApplications | SQL Server Express
http://www.microsoft.com/sqlserver/en/us/editions/express.aspx
Literature to the theoretical course.
1. MaryShaw, DavidGarlan. SoftwareArchitecture: PerspectivesonanEmergingDiscipline. PrenticeHall, 1996, - 242 p.
2. Martin Fowler. Templates for corporate applications. Williams, 2009, - 544 pp.
3. LenBass, PaulClements, RickKazman. SoftwareArchitectureinPractice (2nd Edition). Addison-Wesley Professional, 2003, - 560 p.
4. E. Gamma, R. Helm, R. Johnson, J. Willsides. Tricks of object-oriented design. Design Patterns. Peter 2007, - 366 pp.
5. Grady Buch. Object-oriented analysis and design with examples of applications on C ++. Bean, 1998, - 560 pp.
6. JamesRumbaugh, MichaelBlaha, WilliamPremerlani, FrederickEddy, WilliamLorenson. Object-OrientedModelingandDesign. Prentice-Hall, 1991, - 500 p.
7. Peter Caud, David Nort, Mark Meyfield. Object models. Strategies, templates and applications. Laurie, 1999, - 434 p.
8. RebeccaWirff-Brock, BrianWilkerson, LaurenWiener. DesigningObject-OrientedSoftware. Prentice-Hall, 1990, p. 341.
9. SallyShlaer, StephenMellor. Object-OrientedSystemsAnalysis: ModelingtheWorldinData. YourdonPress, 1989, - 144 p.
10. SallyShlaer, StephenMellor. ObjectLifecycles: Modelingtheworldinstates. YourdonPress, 1991, - 251 p.
11. JamesMartin, JamesOdell. Principles of Object Oriented Analysis and Design. Prentice-Hall, 1992, - 412 p.
Literature for laboratory classes
1. TheElementsof UML (TM) 2.0 Style. Scott W. Ambler. CambridgeUniversityPress, 2005
2. NamesofClasses, Structs, andInterfaces
http://msdn.microsoft.com/en-us/library/ms229002.aspx
3. CodeConventionsfortheJavaProgrammingLanguage.
http://www.oracle.com/technetwork/java/codeconv-138413.html
4. ObjectManagementGroup - UML
http://www.uml.org/
5. ListofUnifiedModelingLanguagetools - Wikipedia, thefreeencyclopedia
http://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools
6. ArgoUML - argouml.tigris.org
http://argouml.tigris.org/
7. StarUML - TheOpenSource UML / MDA Platform
http://staruml.sourceforge.net/
8. DesignPatterns: ElementsofReusableObject-OrientedSoftware. ErichGamma, RichardHelm, RalphJohnsonandJohnVliss. Addison-Wesley Professional, 1994.
9. Hibernate - JBossCommunity
http://www.hibernate.org/hibernate
10. Java SE Overview - at a Glance
http://www.oracle.com/technetwork/java/javase/overview/index.html
11. Eclipse - TheEclipseFoundationopensourcecommunitywebsite.
http://www.eclipse.org/
12. HibernateTools - JBossCommunity
http://www.hibernate.org/subprojects/tools.html
13. HSQLDB
http://hsqldb.org/
14. HibernateTutorial
http://www.vaannila.com/hibernate/hibernate-tutorial/hibernate-tutorial.html
15. Martin Fowler. Templates for corporate applications. Williams, 2009, - 544 pp.
16. ASP.NET MVC: TheOfficial Microsoft ASP.NET Site
http://www.asp.net/mvc
17. InfoQ: ASP.NET MVC ExamplewithNorthwindandEntityFrameworkPublished
http://www.infoq.com/news/2008/02/mvc-framework-example
18. ADO.NET EntityFramework
http://msdn.microsoft.com/en-us/data/aa937723
19. TheOfficial Microsoft IIS Site
http://www.iis.net/
20. VisualWebDeveloper 2010 Express | Microsoft VisualStudio
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-web-developer-express
21. FreeDatabaseSoftware | DatabaseApplications | SQL Server Express
http://www.microsoft.com/sqlserver/en/us/editions/express.aspx
Assessment methods and criteria:
Current control
Laboratory classes: 24 b.
Individual task: 16 b.
Total points (PCs): 40 b.
Exam: 60 b.
Final score: 100 b.
Laboratory classes: 24 b.
Individual task: 16 b.
Total points (PCs): 40 b.
Exam: 60 b.
Final score: 100 b.