1 / 14

Software Engineering

Explore architectural components, major building blocks, data design, user interface design, security, performance issues, error processing, fault tolerance, and more in software engineering. Learn about best practices and strategies for building robust systems.

Download Presentation

Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering General architecture

  2. General architecture • Architectural components: • Program organisation overview • Major building blocks in a system • Definition of each building block’s area of responsibility • A building block should know as little as possible about other building blocks’ areas of responsibility • Communication rules for each building block should be well defined

  3. General architecture • Major classes • Responsibilities of each major class • Interaction with other classes • Class hierarchies • State transitions • Object persistence • Organisation of classes in subsystems

  4. General architecture • Data design • Major files and table designs to be used • Access policies (sequential, direct, etc.) • Storage policies • High-level organisation and contents of data and databases • Typically, data should be accessed directly by only one class or subsystem

  5. General architecture • Business rules • Using the terminology of General Systems Theory, environmental rules that affect the behaviour of the system

  6. General architecture • User interface design • Interface paradigm(s) • Architecture should be such that interface could be replaced without affecting other parts of the system

  7. General architecture • Resource management • Database connections • Threads • Handles • Memory

  8. General architecture • Security • Manipulation of buffers • Rules for handling untrusted data • Encryption • Level of detail contained in error messages • Protection of data in memory

  9. General architecture • Performance issues • Performance goals • Performance bottlenecks • Scalability • Interoperability

  10. General architecture • Internationalisation / localisation • Obs: issue of growing importance nowadays • Input / Output • I/O policy (look ahead, look behind, just in time) • I/O error detection level (field, record, stream, file, etc.)

  11. General architecture • Error processing • Corrective versus detective • Active versus passive • Error propagation policy • Conventions for handling error messages • Exception handling policy • At what levels are errors handled? • What is the level of responsibility of each class for validating input data? • Tailor made error processing or use development environment pre-fabricated solutions?

  12. General architecture • Fault tolerance • Expected fault tolerance • Fault tolerance strategies • Architectural feasibility • Is proposed design viable, considering available resources and proposed requirements? • Overengineering • How to ensure system level robustness?

  13. General architecture • “Buy” or build? • Reuse decisions • Architecture recurring revision strategy

  14. General architecture • General architecture quality • How to preserve conceptual integrity • Clearly stated architecture’s objectives • Motivations for all major decisions • Machine- and language-independent architecture • Multiple views • NO COMPROMISING!

More Related