Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Chapter 14: Design Method --- data and architectural design Design -- A multistep process in which representations of data structure, program structure,
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
System Engineering Instructor: Dr. Jerry Gao. System Engineering Jerry Gao, Ph.D. Jan System Engineering Hierarchy - System Modeling - Information.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Architectural Design.
What is Software Architecture?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering Fall 2005
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Chapter 10 Architectural Design
1 Chapter 14 Architectural Design. 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
ITEC224 Database Programming
1 Chapter 14 Architectural Design 2 Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Lecture 9: Chapter 9 Architectural Design
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
SOFTWARE DESIGN.
Chapter 13 Architectural Design
Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed., Addison-Wesley, 2006 and on the Ch11 PowerPoint.
Chapter 9 요구사항 모델링: 시나리오 기반 방법론 Requirements Modeling: Scenario-Based Methods 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim.
Chapter 6 Architectural Design.
Systems Analysis and Design in a Changing World, 3rd Edition
© 2005 Prentice Hall10-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based.
ARCHITECTURAL DESIGN. Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders)
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 5/e Supplementary Slides for Software Engineering: A Practitioner's Approach,
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Architectural Design Introduction Design has been described as a multistep process in which representations of data and program structure,
Software Engineering B.Tech IT/II Sem-II Term: Unit-4 PPT SLIDES Text Books:1.Software Engineering, A practitioner’s approach Roger s. Pressman.
Chapter : 9 Architectural Design
Software Engineering Lecture 10: System Engineering.
Chapter : 9 Architectural Design. Software Architecture What Is Architecture? The software architecture of a program or computing system is the structure.
1 Chapter : Architecture & User Interface Design.
Architectural Complexity  A useful technique for assessing the overall complexity of a proposed architecture is to consider dependencies between components.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
1 Chapter 2: Architectural Design. 2 Introduction Structure or structures of the system, which comprise software components, the externally visible properties.
Chapter 13 Architectural Design
Architectural Design.
Chapter 13 Architectural Design
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Chapter 13 Architectural Design
Chapter 9 Requirements Modeling: Scenario-Based Methods
Highlights of data design and
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Chapter 9 Architectural Design
Software Architecture
Chapter 20 Object-Oriented Analysis and Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Chapter 13 Architectural Design
Chapter 9 Architectural Design.
Chapter 6: Architectural Design
Software Engineering: A Practitioner’s Approach, 6/e Chapter 10 Architectural Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For.
Presentation transcript:

Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s Approach, 8/e”

Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: 1)analyze the effectiveness of the design in meeting its stated requirements, 2)consider architectural alternatives at a stage when making design changes is still relatively easy, and 3)reduce the risks associated with the construction of the software. 2

Why is Architecture Important? Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer-based system. The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity. Architecture “constitutes a relatively small, intellectually graspable mode of how the system is structured and how its components work together” [BAS03]. 3

Architectural Descriptions The IEEE Computer Society has proposed IEEE-Std , Recommended Practice for Architectural Description of Software- Intensive System, [IEE00] to establish a conceptual framework and vocabulary for use during the design of software architecture, to provide detailed guidelines for representing an architectural description, and to encourage sound architectural design practices. The IEEE Standard defines an architectural description (AD) as a “a collection of products to document an architecture.” The description itself is represented using multiple views, where each view is “a representation of a whole system from the perspective of a related set of [stakeholder] concerns.” 4

Architectural Genres Genre implies a specific category within the overall software domain. Within each category, you encounter a number of subcategories. For example, within the genre of buildings, you would encounter the following general styles: houses, condos, apartment buildings, office buildings, industrial building, warehouses, and so on. Within each general style, more specific styles might apply. Each style would have a structure that can be described using a set of predictable patterns. 5

Architectural Styles Each style describes a system category that encompasses:Each style describes a system category that encompasses: 1)a (e.g., a database, computational modules) that perform a function required by a system, 1)a set of components (e.g., a database, computational modules) that perform a function required by a system, 2)a that enable “communication, coordination and cooperation” among components, 2)a set of connectors that enable “communication, coordination and cooperation” among components, 3) that define how components can be integrated to form the system, and 3) constraints that define how components can be integrated to form the system, and 4) that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts. 4) semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts. 6

Architectural Styles Data-centered architectures Data flow architectures Call and return architectures Object-oriented architectures Layered architectures 7

Data-Centered Architecture A data store (e.g., a file or database) resides at the center of this architecture and is accessed frequently by other components that update, add, delete, or modify data within the store. 8

Data Flow Architecture This architecture is applied when input data are to be transformed through a series of computational or manipulative components into output data. E.g., A pipe-and-filter pattern: filters transforming data independently of other components, pipes transmitting data 9

Call and Return Architecture Main program/subprogram architectures: decompose function into a control hierarchy where a “main” program invokes a number of program components, which in turn may invoke still other components. 10

Layered Architecture A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set. At the outer layer, components service user interface operations. At the inner layer, components perform operating system interfacing. 11

Architectural Patterns Concurrency—applications must handle multiple tasks in a manner that simulates parallelism operating system process management pattern task scheduler pattern Persistence—Data persists if it survives past the execution of the process that created it. Two patterns are common: a database management system pattern that applies the storage and retrieval capability of a DBMS to the application architecture an application level persistence pattern that builds persistence features into the application architecture Distribution— the manner in which systems or components within systems communicate with one another in a distributed environment A broker acts as a ‘middle-man’ between the client component and a server component. 12

Architectural Design The software must be placed into context the design should define the external entities (other systems, devices, people) that the software interacts with and the nature of the interaction A set of architectural archetypes should be identified An archetype is an abstraction (similar to a class) that represents one element of system behavior The designer specifies the structure of the system by defining and refining software components that implement each archetype 13

Architectural Context Diagram Model how software (target system) interacts with entities external to its boundaries in terms of superordiante, subordinate, and peer-level systems and actors. 14

Architectural Context Diagram ACD for the SafeHome security function 15

Archetypes An archetype is a class or pattern that represents a core abstraction that is critical to the design of an architecture for the target system. Archetypes can be derived by examining the analysis classes defined as part of the requirement model Example: UML relationships for SafeHome security function archetypes 16

Top-level Component Structure Overall architectural structure for SafeHome with top-level components 17

Refined Component Structure An instantiation of the security function with component elaboration 18

Architectural Considerations Economy – The best software is uncluttered and relies on abstraction to reduce unnecessary detail. Visibility – Architectural decisions and the reasons for them should be obvious to software engineers who examine the model at a later time. Spacing – Separation of concerns in a design without introducing hidden dependencies. Symmetry – Architectural symmetry implies that a system is consistent and balanced in its attributes. Emergence – Emergent, self-organized behavior and control. 19

Architectural Decision Documentation 1.Determine which information items are needed for each decision. 2.Define links between each decision and appropriate requirements. 3.Provide mechanisms to change status when alternative decisions need to be evaluated. 4.Define prerequisite relationships among decisions to support traceability. 5.Link significant decisions to architectural views resulting from decisions. 6.Document and communicate all decisions as they are made. 20

Architecture Reviews Assess the ability of the software architecture to meet the system’s quality requirements and to identify any potential risks Have the potential to reduce project costs by detecting design problems early Often make use of experience-based reviews, prototype evaluation, and scenario reviews, and checklists 21

Summary Software architecture provides a holistic view of the system to be built. A number of different architectural styles and patterns are available to the software engineer and may be applied within a given architectural genre. Four distinct steps for architectural design 1.The system must be represented in context, e.g., external entities that the system interacts with. 2.The designer should identify a set of top-level abstractions, called archetypes, that represent pivotal elements of the system’s behavior or function. 3.Components are identified and represented within the context of an architecture that supports them. 4.Specific instantiations of the architecture are developed. 22