Software Design // Chapter 2 SWEBOK

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

What is the output of the software Design Process?

The output of this process is a set of models and artifacts that record • Major decisions that have been taken • Explanation of rationale for each nontrivial decision • Recording of the rationale, enhances the long-term maintainability of the software product

What is Software Design?

The process of defining the architecture, components, interfaces, and other characteristics of a system or component. • The result of this process.

What is a Software product lines?

This is An approach for reuse of software designs and components.

What is an architectural style?

This is software's high-level organization. General structures: For example, layers, pipes and filters, blackboard • Distributed systems: For example, client- server, three-tiers, broker. • Interactive systems: For example, Model-View-Controller,Presentation-Abstraction-Control. • Adaptable systems: For example, microkernel, reflection • Others: For example, batch, interpreters, process control, rule-based.

What is abstraction software design principle?

• "A view of an object that focuses on the information relevant to a particular purpose and ignores the remainder of the information" • In the context of software design, two key abstraction mechanisms are parameterization and specification • Abstraction by parameterization abstracts from the details of data representations by representing the data as named parameters. • Abstraction by specification leads to three major kinds of abstraction:procedural abstraction, data abstraction, and control (iteration)abstraction.

What are the 7 Software Design Principles (ACdE-S3)?

• Abstraction • Coupling and cohesion • Decomposition and modularization • Encapsulation/information hiding • Separation of interface and implementation • Sufficiency, completeness, and primitiveness• Separation of concerns

What are the 3 Software Design Types?

• D-design: decomposition design maps software into component pieces • FP-design: family pattern design establishes exploitable commonalities in a family of software products • I-design: invention design performed during the software requirements process with the goal of conceptualizing and specifying software to satisfy discovered needs and requirements

The software design result describes the software architecture:

• How the software is decomposed and organized into components • The interfaces between those components • Describe the components at a level of detail that enables their construction

What the different views?

• Logical view (satisfying the functional requirements) • Process view (concurrency issues) • Physical view (distribution issues) • Development view (how the design is broken down intoimplementation units with explicit representation of thedependencies among the units)

What are 2 activities in software design that fit between software requirements analysis and software construction?

• Software architectural design or high-level design: develop top -level structure and organization of the software and identifies its components • Software detailed design: specifies each component insufficient detail to facilitate its construction

Software design is a two-step process:

Architectural design: known as high-level design and top-level design describes how software is organized into components • Detailed design: describes the desired behavior of these components

What are examples of Software Design Notations (1/2)?

Class responsibility collaborator cards (CRCs): used to denotethe names of components (class), their responsibilities, andtheir collaborating components' names • Deployment diagrams: used to represent a set of (physical)nodes and their interrelationships, and, thus, to model thephysical aspects of software • Entity-relationship diagrams (ERDs): used to representconceptual models of data stored in information repositories

What is Encapsulation and information hiding software design principle?

Grouping and packaging the internal details of an abstraction and making those details inaccessible to external entities.

What is the Design of Information Systems?

Information presentation may be textual or graphical in nature.A good design keeps the information presentation separatefrom the information itself. The MVC (Model-View-Controller)approach is an effective way to keep information presentationseparating from the information being presented.

What are examples of Software Design Notations (2/2)?

Interface description languages (IDLs): programming-likelanguages used to define the interfaces (names and types ofexported operations) of software components • Structure charts: used to describe the calling structure ofprograms (which modules call, and are called by, which othermodules)

What is a pattern?

Is "a common solution to a common problem in a given context". Architectural styles are patterns that describe the SW high-level organization. • Other design patterns describe SW details at a lower level.

What is Decomposition and modularization software design principle?

Large software is divided into a number of smaller named components having well-defined interfaces that describe component interactions. Usually, the goal is to place different functionalities and responsibilities indifferent components.

What are the Quality concerns that all software must address are?

Performance, security, reliability, usability, how to decompose,organize, and package software component.

What is Separation of interface and implementation software design principle?

Separating interface and implementation involves defining a component by specifying a public interface (known to the clients) that is separate from the details of how the component is realized (see encapsulation and information hiding above).

What does Software Design Models do?

Software design produces various models that form a blueprint of the solution. We can analyze and evaluate these models to • Determine whether they fulfill the requirements • Examine and evaluate alternative solutions and tradeoffs • Plan subsequent development activities, such as system verification and validation. • Use as inputs and starting point of construction• Use as inputs for testing

What is Separation of concerns software design principle?

A concern is an "area of interest with respect to a software design". A design concern is an area of design that is relevant to one or more of its stakeholders. Each architecture view frames one or more concerns. Separating concerns by views allows interested stakeholders to focus on a few things at a time and offers a means of managing complexity.

What is Coupling and Cohesion software design principle?

A measure of the interdependence among modules in a computer program, whereas cohesion is defined as a measure of the strength of association of the elements within a module.

What is a view?

Different high-level facets of a software design can be described and documented. These facets are often called views: "A view represents a partial aspect of a software architecture that shows specific properties of a software system".

What is Sufficiency, completeness, and primitiveness software design principle?

Ensuring that a software component captures all the important characteristics of an abstraction and nothing more.Primitive- ness means the design should be based on patterns that are easy to implement.


Ensembles d'études connexes

Marketing Management Chapter 6 & 7

View Set

Biomechanics of Sport and Exercise Chapter One: Forces

View Set

You are the Key to the Problem Management System - Refresher

View Set

Combo with "IS 300 ch.6 Network" and 1 other

View Set

Chemistry , Chp.7, Chemical quantities & reactions

View Set

Distributed Ledger / Blockchain / Cryptocurrency

View Set