Reference: 1. Software engineering, roger s. pressman.

19 downloads 170 Views 19KB Size Report
CS487-Week 7-Page 1. CS 487. Week 7. Reading: 1. Ian Sommerville, Chapter 3 . Objective: 1. To create a design model that will implement all customer ...

CS 487 Week 7 Reading: 1. Ian Sommerville, Chapter 3. Objective: 1. To create a design model that will implement all customer requirements correctly. 2. To create a design model that exhibits both internal and external quality factors of software to be built. Concepts: 1. Design Concepts 2. System Design Outline: Design Concepts: 1. Abstraction 2. Architecture 3. Refinement 4. Modularity 5. Information hiding 6. Refactoring 7. Functional independence System Design: 1. Architecture Design 2. Component-Level Design 3. User Interface Design

Reference: 1. Software engineering, roger s. pressman.

CS487-Week 7-Page 1

CS487: Week 7 – Lecture Notes

1. Definition of Design An iterative process through which requirements are translated into a blue print for construction. 2. Design Principles      

Should be traceable to the analysis model Should not reinvent the wheel Should be structured to accommodate change Should be structured to design gently Design is not coding, coding is not design New Design should be o Easy to understand o Easy to Reuse o Easy to change o Easy to code o Easy to test o Easy to integrate

3. Fundamental Concepts        

Abstraction Architecture Patterns Modularity Hiding Functional Independence Refinement Refactoring

4. Abstraction  

What does the object do without any implication on how does it do it. Data Abstraction o collection of data that describes a data object o Denotes the essential characteristics of an object that distinguishes it from all kinds of objects.

Procedural Abstraction CS487-Week 7-Page 2

Sequence of instructions that have limited and specific function 5. Architecture   

Structure or organization of program components It includes manner of interaction and the structure of data that are used by the components. Structural properties This aspect of the architectural design representation defines: o the components of a system (e.g., modules, objects, filters) o the manner in which those components are packaged and interact with one another Extra-functional properties Should address how the design architecture achieves requirements for o Performance o Capacity o Reliability o Security o Adaptability o Other system characterstics Families of related Systems The architectural design should draw upon repeatable patterns that are commonly encountered in the design of families of similar systems

6. Design Patterns    

A Pattern is a solution for a repeated problem within a context A Design Pattern describes a design structure that solves a particular design problem The pattern characteristics indicate the attributes of the design that may be adjusted to enable the pattern to accommodate a variety of problems. Design Pattern Template o Pattern name —describes the essence of the pattern in a short o Intent—describes the pattern and what it does o Also-known-as—lists any synonyms for the pattern o Motivation—provides an example of the problem o Applicability—notes specific design situations in which the pattern is applicable o Structure—describes the classes that are required to implement the pattern o Participants—describes the responsibilities of the classes o Collaborations—describes how the participants collaborate to carry out their responsibilities o Consequences—describes the “design forces” that affect the pattern and the potential trade-offs o Related patterns—cross-references related design patterns CS487-Week 7-Page 3

7. Modular Design   

Easier to build Easier to change Easier to fix

8. Refinement   

Top down design strategy Elaboration starts at high level move downwards until all essential elements of the software are refined Reveal low-level details

9. Abstraction 

Abstraction enables a designer to specify procedure and data without low-level details

10. Functional Independence  

Cohesion – the degree to which module performs one and only one function Coupling – the degree to which module is “connected” to other modules in the system

11. Refactoring  

Process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure When software is refactored, the existing design is examined for o Redundancy o Unused design elements o Inefficient unnecessary algorithms o Poorly constructed or inappropriate data structures o any other design failure that can be corrected to yield a better design

12. Architectural Design   

An early stage of the System design process and represents link between specification and design process. Involves identifying major system components and their communication and is often carried out in parallel with some specialization activities. Advantages of explicit architecture o Stakeholder communication o System analysis CS487-Week 7-Page 4

 

o Large-scale reuse Architecture and System characteristics o Performance o Security o Safety o Availability o Maintainability Three organizational styles are widely used: o A shared data repository style (The repository model) o A shared services and servers style (Client Server) o An abstract machine or layered style (layered) Modular Decomposition styles o OO o Pipe and filter Control Styles o Centralized control (call return model) o Event-based control (Broadcast Model)

13. Component Level Design  

Occurs after the first iteration of the architecture design and translates the design model into operational software Establishes the algorithmic details required to manipulate data structures, defining component interfaces and implementing the processing algorithm for each component

14. User Interface Design  

Provides different interaction styles and introduces usability attributes and system approaches to system evaluation User Interface Design Models o User model — a profile of all end users of the system o Design model — a design realization of the user model o Implementation model — the interface “look and feel” coupled with supporting information that describe interface syntax and semantics Design Issues o Response Time o Help Facilities o Error Handling o Menu and Command Labeling o Application Accessibility o Internationalization

CS487-Week 7-Page 5