Bài giảng Introduction to Software Engineering - Week 6: Architectural Design - Nguyễn Thị Minh Tuyền

Week 6:  
Architectural Design  
Nguyễn Thị Minh Tuyền  
Adapted from slides of Ian Sommerville  
Architectural Design  
1. What is it?  
2. Who does it?  
3. Why is it important?  
4. What are the steps?  
5. What is the work product?  
6. How do I ensure that I’ve done it right?  
Topics covered  
1. Architectural design decisions  
2. Architectural views  
3. Architectural patterns  
4. Application architectures  
3
Software architecture  
£ The design process for identifying the sub-systems  
making up a system and the framework for sub-  
system control and communication is architectural  
design.  
£ The output of this design process is a description  
of the software architecture.  
4
Architectural design  
£ Is an early stage of the system design process.  
£ Represents the critical link between specification  
and design processes.  
£ Often carried out in parallel with some specification  
activities.  
£ Involves identifying major system components and  
their communications.  
5
Architecture of a packing robot control  
system  
Vision  
system  
Object  
identification  
system  
Arm  
controller  
Gripper  
controller  
Packaging  
selection  
system  
Packing  
system  
Conveyor  
controller  
6
Architectural abstraction  
£ Architecture in the small is concerned with the  
architecture of individual programs.  
p At this level, we are concerned with the way that an  
individual program is decomposed into components.  
£ Architecture in the large is concerned with the  
architecture of complex enterprise systems that  
include other systems, programs, and program  
components.  
p These enterprise systems are distributed over different  
computers, which may be owned and managed by  
different companies.  
7
Advantages of explicit architecture  
£ Stakeholder communication  
p Architecture may be used as a focus of discussion by  
system stakeholders.  
£ System analysis  
p Means that analysis of whether the system can meet its  
non-functional requirements is possible.  
£ Large-scale reuse  
p The architecture may be reusable across a range of  
systems.  
8
Architectural representations  
£ Simple, informal block diagrams showing entities  
and relationships are the most frequently used  
method for documenting software architectures.  
£ But these have been criticized because they  
p lack seman
p do not show the types of relationships between entities  
nor the visible properties of entities in the architecture.  
9
Box and line diagrams  
£ Very abstract  
p they do not show the nature of component relationships  
nor the externally visible properties of the sub-systems.  
£ However, useful for communication with  
stakeholders and for project planning.  
10  
Use of architectural models  
£ Facilitating discussion about the system design  
p A high-level architectural view of a system is useful for  
communication with system stakeholders and project planning  
because it is not cluttered with detail.  
p Stakeholders can relate to it and understand an abstract view of  
the system. They can then discuss the system as a whole  
without being confused by detail.  
£ Documenting an architecture that has been designed  
p The aim here is to produce a complete system model that  
shows the different components in a system, their interfaces  
and their connections.  
11  
Topics covered  
1. Architectural design decisions  
2. Architectural views  
3. Architectural patterns  
4. Application architectures  
12  
Architectural design decisions  
£ Architectural design is a creative process  
p So the process differs depending on the type of system  
being developed, the background and experience of the  
system architect, and the specific requirements.  
£ A number of common decisions span all design  
processes and these decisions affect the non-  
functional characteristics of the system.  
13  
Architectural design decisions  
1. Is there a generic application architecture that can act as a  
template for the system that is being designed?  
2. How will the system be distributed across hardware cores or  
processors?  
3. What Architectural patterns or styles might be used?  
4. What will be the fundamental approach used to structure the  
system?  
5. How will the structural components in the system be  
decomposed into sub-components?  
6. What strategy will be used to control the operation of the  
components in the system?  
7. What architedelivering the non-  
functional requirements of the system?  
8. How should the architecture of the system be documented?  
14  
Architecture reuse  
£ Systems in the same domain often have similar  
architectures that reflect domain concepts.  
p Application product lines are built around a core  
architecture with variants that satisfy particular customer  
requirements.  
£ The architecture of a system may be designed  
around one of more architectural patterns or  
‘styles’.  
p An architectural pattern is a description of a system  
organization.  
p These capture the essence of an architecture that has  
been used in different software systems.  
15  
Architecture and system characteristics  
£ Performance  
p Localize critical operations and minimize communications.  
£ Security  
p Use a layered architecture with critical assets in the inner layers.  
£ Safety  
p Localize safety-critical features in a small number of sub-systems.  
£ Availability  
p Include redundant components and mechanisms for fault tolerance.  
£ Maintainability  
p Use fine-grain, replaceable components.  
16  
Topics covered  
1. Architectural design decisions  
2. Architectural views  
3. Architectural patterns  
4. Application architectures  
17  
Architectural views  
£ What views or perspectives are useful when designing  
and documenting a system’s architecture?  
£ What notations should be used for describing  
architectural models?  
£ Each architectural model only shows one view or  
perspective of the system.  
p It might show how a system is decomposed into modules, how  
the run-time processes interact or the different ways in which  
system components are distributed across a network.  
p For both design and documentation, you usually need to present  
multiple views of the software architecture.  
18  
Architectural model 4 + 1  
use case  
Topics covered  
1. Architectural design decisions  
2. Architectural views  
3. Architectural patterns  
4. Application architectures  
20  
Tải về để xem bản đầy đủ
pdf 63 trang yennguyen 15060 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Introduction to Software Engineering - Week 6: Architectural Design - Nguyễn Thị Minh Tuyền", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_introduction_to_software_engineering_week_6_archit.pdf