SDA Outline.docx

5
7/23/2019 SDA Outline.docx http://slidepdf.com/reader/full/sda-outlinedocx 1/5 SDA Outline What is design? What is architecture? ✓  What is quality Diference between quality requirements and quality attributes? Sotware crisis? What is problem domain and solution domain? Sotware design and SDLC? What is architectural design? Architectural design activities Sotware quality guidelines and attributes o uality guide lineso uality attributes Design concept o Abstraction o Architecture ✓ What is Design? The process of defining the architecture, components, interfaces, and other characteristics of a system or component.(Software Design) Design has been described as a multistep process in which representations of data and program structure, interface characteristics, and procedural detail are synthesized from information reuirements. This description is e!tended by "reeman #"re$%&' itch apor, the creator of *otus +-, presented a /software design manifesto0 in  Dr.  Dobbs Journal. 1e said' 2ood software design should e!hibit'  Firmness: A program should not ha3e any bugs that inhibit its function. Commodity: A program should be suitable for the purposes for which it was intended.  Delight: The e!perience of using the program should be pleasurable one. What is Architecture?  Architecture is the structure or organization of program components (modules), the manner in which these components interact, and the structure of data that are used by the components. /The o3erall structure of the software and the ways in which that structure pro3ides

Transcript of SDA Outline.docx

Page 1: SDA Outline.docx

7/23/2019 SDA Outline.docx

http://slidepdf.com/reader/full/sda-outlinedocx 1/5

SDA Outline• What is design? ✓

• What is architecture? ✓

 What is quality Diference between quality requirements and qualityattributes?

• Sotware crisis?

• What is problem domain and solution domain?

• Sotware design and SDLC?

• What is architectural design? ✓

• Architectural design activities ✓

• Sotware quality guidelines and attributes ✓

o uality guide lines✓

o uality attributes ✓

Design concept✓

o Abstraction ✓

o Architecture ✓

What is Design?

The process of defining the architecture, components, interfaces, and other

characteristics of a system or component.(Software Design) Design has been described as a multistep process in which representations of

data and program structure, interface characteristics, and procedural detail aresynthesized from information reuirements. This description ise!tended by "reeman #"re$%&'

itch apor, the creator of *otus +-, presented a /software design manifesto0 in  Dr.

 Dobbs Journal. 1e said'

2ood software design should e!hibit'

 Firmness: A program should not ha3e any bugs that inhibit its function.

Commodity: A program should be suitable for the purposes for which it was

intended.

 Delight: The e!perience of using the program should be pleasurable one.

What is Architecture? 

 Architecture is the structure or organization of program components (modules), themanner in which these components interact, and the structure of data that are used bythe components./The o3erall structure of the software and the ways in which that structure pro3ides

Page 2: SDA Outline.docx

7/23/2019 SDA Outline.docx

http://slidepdf.com/reader/full/sda-outlinedocx 2/5

conceptual integrity for a system.0One goal of software design is to deri3e an architectural rendering of a system. Thisrendering ser3es as a framewor4 from which more detailed design acti3ities areconducted. ! A set of architectural pattern are used to sol3e common design problem. A set of properties that should be specified as part of an architectural design'

•   Structural properties. This aspect of the architectural design representationdefines the components of a system (e.g., modules, ob5ects, filters) and themanner in which those components are pac4aged and interact with one another."or e!ample, ob5ects are pac4aged to encapsulate both data and the processingthat manipulates the data and interact 3ia the in3ocation of methods.

•   Extra-functional properties. The architectural design description shouldaddress how the design architecture achie3es reuirements for performance,capacity, reliability, security, adaptability, and other system characteristics.

•   Families of related systems. The architectural design should draw uponrepeatable patterns that are commonly encountered in the design of families of

similar systems. 6n essence, the design should ha3e the ability to reusearchitectural building bloc4s.

 A highle3el model of a thing

• Describes critical aspects of the thing

• 7nderstandable to many sta4eholders

•  Allows e3aluation of the thing8s properties before it is built

• 9ro3ides well understood tools and techniues for constructing the thing from its blueprint

What is Architectural Design?

The process of defining a collection of hardware and software components and theirinterfaces to establish the framewor4 for the de3elopment of a computer system.

What is Architectural Design Activities? 

• 1ierarchical decomposition of the system into system

• Determine components and assign to the system

• Determine relationship between components• Define communication between components architecture

What is Design Concept? 

 A set of fundamental software design concepts has e3ol3ed o3er the history of softwareengineering. Although the degree of interest in each concept has 3aried o3erthe years, each has stood the test of time. :ach pro3ides the software designer with

Page 3: SDA Outline.docx

7/23/2019 SDA Outline.docx

http://slidepdf.com/reader/full/sda-outlinedocx 3/5

a foundation from which more sophisticated design methods can be applied. :achhelps you answer the following uestions'

•  ;hat criteria can be used to partition software into indi3idual components<

• 1ow is function or data structure detail separated from a conceptual

representation of the software<•  ;hat uniform criteria define the technical uality of a software design<

“The beginning of wisdom for a software engineer is to recognize the difference betweengetting a program to work and getting it right.0

•  ;asserman' =Abstraction permits one to concentrate on a problem at some le3el ofabstraction without regard to low le3el detail.

•  At the highest le3el of abstraction a solution is stated in broad terms using the languageof the problem en3ironment.

•  At lower le3el, a procedural orientation is ta4en.

•  At the lowest le3el of abstraction the solution is stated in a manner that can be directly

implemented.

Types of Abstraction'

+. 9rocedural Abstraction

 A named seuence of instructions that has a specific > limited function. The name of aprocedural abstraction implies these functions, but specific details are suppressed. An e!ampleof a procedural abstraction would be the word open for a door. Open implies a long seuence ofprocedural steps.(e.g., wal4 to the door, reach out and grasp 4nob, turn 4nob and pull door, step away frommo3ing door, etc.).

-. Data Abstraction'

 A names collection of data that describes a data ob5ect Data abstraction for door would be a set

of attributes that describes the door. The data abstraction for door would encompass a setof attributes that describe the door.(e.g., door type, swing direction, weight and dimension)

THE DESIGN PROCESS 

Software design is an iterati3e process through which reuirements are translatedinto a /blueprint0 for constructing the software. 6nitially, the blueprint depicts a holistic 3iew of software.

 Sot!are "ualit# Gui$elines an$ Attri%utes

Throughout the design process, the uality of the e3ol3ing design is assessed with aseries of technical re3iews. Three characteristics that ser3e as a guide for the e3aluationof a good design'

Page 4: SDA Outline.docx

7/23/2019 SDA Outline.docx

http://slidepdf.com/reader/full/sda-outlinedocx 4/5

The design must implement all of the e!plicit reuirements contained in the

analysis model, and it must accommodate all of the implicit reuirements desired by the customer.

The design must be a readable, understandable guide for those who generate

code and for those who test and subseuently support the software.

The design should pro3ide a complete picture of the software, addressing the

data, functional, and beha3ioral domains from an implementation perspecti3e.

"ualit# Gui$elines

6n order to e3aluate the uality of a design representation, you and other members ofthe software team must establish technical criteria for good design.

 A design should e!hibit an architecture that (+) has been created using

recognizable architectural styles or patterns, (-) is composed of components thate!hibit good design characteristics and () can be implemented in ane3olutionary fashion  ("or smaller systems, design can sometimes be de3eloped linearly.)

 A design should be modular? that is, the software should be logically partitioned

into elements or subsystems

 A design should contain distinct representations of data, architecture, interfaces,

and components.

 A design should lead to data structures that are appropriate for the classes to be

implemented and are drawn from recognizable data patterns.  A design should lead to components that e!hibit independent functional

characteristics.

 A design should lead to interfaces that reduce the comple!ity of connections

 between components and with the e!ternal en3ironment.

 A design should be deri3ed using a repeatable method that is dri3en by

information obtained during software reuirements analysis.

 A design should be represented using a notation that effecti3ely communicates its

meaning. 

"ualit# Attri%utes

a set of software uality attributes that has been gi3en the acronym FURPS@functionality, usability, reliability, performance, and supportability. The FURPS uality attributes represent a target for all software design'

Page 5: SDA Outline.docx

7/23/2019 SDA Outline.docx

http://slidepdf.com/reader/full/sda-outlinedocx 5/5

•   Functionality  is assessed by e3aluating the feature set and capabilities of theprogram, the generality of the functions that are deli3ered, and the security of the o3erall system.

•   Usability  is assessed by considering human factors, o3erall aesthetics,consistency, and documentation.

•   Reliability  is e3aluated by measuring the freuency and se3erity of failure, theaccuracy of output results, the meantimetofailure (TT"), the ability toreco3er from failure, and the predictability of the program.

•   Performance is measured by considering processing speed, response time,resource consumption, throughput, and efficiency.

•   Supportability  combines the ability to e!tend the program (e!tensibility),adaptability, ser3iceability@these three attributes represent a more commonterm, maintainability@and in addition, testability, compatibility, configurability(the ability to organize and control elements of the software configuration, theease with which a system can be installed, and the ease with which problems can be localized.