It requires constant effort to ensure a software system’s design remains good throughout its life Make the original design as flexible as possible so as to anticipate changes and extensions. Ensure that the design documentation is usable and at the correct level of detail Ensure that change is carefully managed
105 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 1179 | Lượt tải: 0
Dynamic modelling is a difficult skill In a large system there are a very large number of possible paths a system can take. It is hard to choose the classes to which to allocate each behaviour: Ensure that skilled developers lead the process, and ensure that all aspects of your models are properly reviewed. Work iteratively: Develop initial...
48 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 1175 | Lượt tải: 0
User interface design and implementation can often take the majority of work in an application: Make UI design an integral part of the software engineering process. Allocate time for many iterations of prototyping and evaluation. Developers often underestimate the weaknesses of a GUI Ensure all software engineers have training in UI developmen...
26 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 1282 | Lượt tải: 0
Developing patterns is hard Writing a good pattern takes considerable work. A poor pattern can be hard to apply correctly Resolution: Do not write patterns for others to use until you have considerable experience both in software design and in the use of patterns. Take an in-depth course on patterns. Iteratively refine your patterns, and h...
46 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 1365 | Lượt tải: 0
Modeling is particularly difficult skill Even excellent programmers have difficulty thinking at the appropriate level of abstraction Education traditionally focus more on design and programming than modeling Resolution: Ensure that tem members have adequate training Have experienced modeler as part of the team Review all models thoroughly
66 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 1345 | Lượt tải: 0
Lack of understanding of the domain or the real problem Do domain analysis and prototyping Requirements change rapidly Perform incremental development, build flexibility into the design, do regular reviews Attempting to do too much Document the problem boundaries at an early stage, carefully estimate the time It may be hard to reconcile ...
38 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 1303 | Lượt tải: 0
Security Security is a big problem with no perfect solutions: consider the use of encryption, firewalls, . Need for adaptive maintenance Ensure that all software is forward and backward compatible with other versions of clients and servers
48 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 1346 | Lượt tải: 0
Language evolution and deprecated features: Java is evolving, so some features are ‘deprecated’ at every release But the same thing is true of most other languages Efficiency can be a concern in some object oriented systems Java can be less efficient than other languages VM-based Dynamic binding
44 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 1328 | Lượt tải: 0
• Complexity and large numbers of details • Uncertainty about technology • Uncertainty about requirements • Uncertainty about software engineering skills • Constant change • Deterioration of software design • Political risks
28 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 1373 | Lượt tải: 0
Từ sơ đồ giải thuât di truyền ta có mỗi thành viên của thế hê mới đươc tạo thành từ một trong các hoạt động tái sinh, lai ghép hay đột biến. Các hoạt động này sẽ đươc lựa chọn dựa theo một sơ đồ xác suất gọi là vòng quay Rulet (roulette wheel). - Mỗi hoạt động tương ứng với một xác suất là Ptái sinh, Plai ghép, và Pđột biến, sao cho: Ptái ...
22 trang | Chia sẻ: nguyenlam99 | Ngày: 05/01/2019 | Lượt xem: 1319 | Lượt tải: 0