WebApp Component-Level Design and Algorithm Implementation Guide

software engineering l.w
1 / 17
Embed
Share

Explore the fundamental principles of software engineering, revision, and component-level design for WebApps. Understand the importance of content design, functional design, and conventional component designing. Delve into algorithm design and stepwise refinement to enhance your WebApp development process.

  • Software Engineering
  • WebApp Design
  • Algorithm Implementation
  • Content Design
  • Functional Design

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. SOFTWARE ENGINEERING

  2. Revision Basic Design Principles The Liskov Substitution Principle (LSP). Dependency Inversion Principle (DIP). The Common Reuse Principle (CRP). Cohesion Functional Layer Communicational Coupling Content Coupling Common coupling Data coupling Routine call coupling Inclusion or import coupling External coupling

  3. COMPONENT-LEVEL DESIGN FOR WEBAPPS The boundary between content and function is often blurred when Web-based systems and applications What is a WebApp component? A well-defined function that manipulates content or provides computational or data processing for an end user 3

  4. Types Content Design Content design at the component level focuses on content objects and the manner in which they may be packaged for presentation to a WebApp end user. 4

  5. Types Cont. Functional Design Modern Web applications deliver increasingly sophisticated processing functions for example Provide computation or data processing capability that is appropriate for the WebApp s business domain Provide sophisticated database query and access 5

  6. Designing Conventional Components The design of processing logic is governed by the basic principles of algorithm design and structured programming The design of data structures is defined by the data model developed for the system The design of interfaces is governed by the collaborations that a component must effect 6

  7. Algorithm Design The closest design activity to coding The approach: review the design description for the component use stepwise refinement to develop algorithm use structured programming to implement procedural logic use formal methods to prove logic 7

  8. Stepwise Refinement open walk to door; reach for knob; open door; repeat until door opens turn knob clockwise; if knob doesn't turn, then take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat walk through; close door. 8

  9. Algorithm Design Model Represents the algorithm at a level of detail that can be reviewed for quality options: graphical (e.g. flowchart, box diagram) pseudocode programming language decision table 9

  10. Graphical Design Notation A picture is worth a thousand words, but it s rather important to know which picture and which 1000 words. We can use Flow chart for Graphical Design Notation 10

  11. Rules for Graphical Notations A box is used to indicate a processing step A diamond represents a logical condition Arrows show the flow of control. 11

  12. Program Design Language Program design language (PDL), also called structured English or pseudocode if condition x then process a; else process b; endif PDL if-then-else easy to combine with source code machine readable, no need for graphics input graphics can be generated from PDL enables declaration of data as well as procedure easier to maintain 12

  13. Tabular Design Notation 13

  14. Component-Based Development In the software engineering context, reuse is an idea both old and new. Component-based software engineering (CBSE) is a process that emphasizes the design and construction of computer-based systems using reusable software components. [CBSE] embodies the buy,don tbuild philosophy 14

  15. Component-Based Development Number of questions arise in CBSE Is it possible to construct complex systems by assembling them from a catalog of reusable software components? Can this be accomplished in a cost- and time-effective manner? Can appropriate incentives be established to encourage software engineers to reuse rather than reinvent? 15

  16. Barriers to Reuse Few companies and organizations have anything that even slightly resembles a comprehensive software reusability plan. Although an increasing number of software vendors currently sell tools or components that provide direct assistance for software reuse. Relatively little training is available to help software engineers and managers understand and apply reuse Many companies continue to encourage of software development methodologies which do not facilitate reuse 16

  17. Domain Engineering The intent of domain engineering is to identify, construct, catalog, and disseminate a set of software components that have applicability to existing and future software in a particular application domain. The overall goal is to establish mechanisms that enable software engineers to share these components to reuse them during work on new and existing systems. 17

More Related Content