Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Chapter 1

Chapter 1

Published by natidevtest, 2021-07-08 15:34:45

Description: Chapter 1

Search

Read the Text Version

Introduction to Software Design and Architecture Adama Science and Technology University School of Electrical Engineering and Computing Department of Computer Science and Engineering

Outline 2  What is Architecture?  What is Software Architecture?  Software modeling  OO Method and the UML  Software Architecture design 3/11/2021

Introduction  Architecture :  A general term to describe buildings and other physical structures. Three things are important:  Durability: should last for a long time.  Utility: should be useful for the people,  Beauty : should look good and rise the users sprits. 3/11/2021 3

Introduction 3/11/2021 4

Introduction 3/11/2021 5

Introduction 3/11/2021 6

Introduction  Architectures are not concerned with the creation of building technologies and materials.  Not better glass quality or strong concrete. Architectures are concerned with how building materials can be put together in desirable ways. The design process that assembles the parts into a useful, pleasing and cost-effective way is called architecture. 3/11/2021 7

Introduction  When do you need an architect?  It depends on what you are trying to build... 3/11/2021 8

Introduction 9  Medium 3/11/2021

Introduction 10  Large  Definitely need an architect for planning a skyscraper. 3/11/2021

Introduction  Design : need multiple views of the object. 3/11/2021 11

Introduction  Design is at the center of software engineering. 3/11/2021 12

Introduction  Always choose the tools and design strategy appropriate for the size. 3/11/2021 13

Introduction 14  How large? How much time to build it? How many people in the project? How much did it cost ?  Hard to measure software size: Estimate the line of code (LOC) Measuring the deployment size (GB) 3/11/2021

Introduction Software Architecture:  The fundamental structures(overall structure) of a software systems and the relations among them. Respect to the technical view system quality is largely determined by the SW architecture.  Software Design:  is process through which requirements are translated into a representation of software. The process of converting the system specification into an executable system. Design is about how to build a system. Design is the creative process of describing and transforming a problem into a solution.  Poor architecture cannot be fixed by the implementation approach. 3/11/2021 15

Introduction 16 Software Life-Cycle Cost:  Requirement (67%)  Specification (5%)  Design (6%)  Coding (5%)  Unit Testing (2%)  Integration (8%) Maintenance (2%) 3/11/2021

Introduction The relative cost of fixing software issue during different stages of life cycle :  Requirements (1%)  Design (5%)  Code (10%)  Development Testing (20%)  Acceptance Testing (50%)  Operations (>150%) 3/11/2021 17

Introduction  Main phases of software development process are: Requirements Analysis (answers “WHAT?”) ◦ Specifying what the software must do  Design (answers “HOW?”) ◦ Specifying different parts of the s/w, and how they will fit together  Implementation (a.k.a. “CODING”) ◦ Writing the code  Testing • Validating the product against requirements.  Maintenance (Fixing or Enhancing ) ◦ Fixing the defects and adding new capabilities 3/11/2021 18

Introduction  From a project management point of view, software design can be conducted in two main steps: 1.Preliminary Design Concerned with the transformation of requirements into data and software architecture. 2.Detail design Focuses on refining the architectural representation, and lead to detailed data structure and algorithmic representations of software. Three main design activities in the Design phase are: Data design, Architectural design and Procedural design. In addition, many modern applications have a distinct interface design activity. Interface design establishes the layout and interaction mechanisms for human-machine interaction. Data Design /Class design :Objective of Data Design is to transform the information domain into data structures. Eg: Entity Relationship diagrams, Data dictionary, abstract data types and Data structures. 3/11/2021 19

Introduction Architectural Design: identify the overall structure of the system, the principal components (sometimes called sub-systems or modules), their relationships and how they are distributed. Procedural Design: Objective is to transform structural components into a procedural/component description of the software. This step occurs after the data and program structures have been established, i.e. after architectural design. Management Aspect Technical Aspect Preliminary Design Data design/Object design Detail design Architectural design Procedural/Component design 3/11/2021 Interface design 20

General model of the design process 3/11/2021 21

Software Design Fundamentals Modularity: Software is divided into separately named an addressable components, called modules, that are integrated to satisfy problem requirements. Abstraction: is used in problem-solving, and is used to help separate the logical and physical aspects of the design process. Software Architecture: Identify sub-systems.Depicts the overall layout of the software. The overall structure of the software and the ways in which the structure provides conceptual integrity for a system. Consists of components, connectors, and the relationship between them. Control Hierarchy : different levels of workflows. Data Structure :Design data structures to hold problem data. Software Procedure/Objects: Inheritance and polymorphism. Information Hiding :Encapsulation Functional Independence: cohesion and decoupling. 3/11/2021 22

Design principles in Software Top-down approach: breaking a system into a set of smaller subsystems Object-oriented approach: identification of a set of objects and specification of their interactions UML diagrams are a design tool to illustrate the interactions between ◦ Classes ◦ Classes and external entities ◦ Object diagrams 3/11/2021 23

Static Vs Dynamic Models 24 Static models describe structural aspects: ◦ Class Diagrams ◦ Package Diagrams ◦ Deployment Diagrams Dynamic models describe behavioral aspects: ◦ Use Case Diagrams ◦ Sequence Diagrams ◦ Collaboration Diagrams ◦ State charts ◦ Data-Flow Diagrams 3/11/2021

Goals of Software Design Correctness: should meet the business needs. Robustness :should work at higher loads. Flexibility: Good enough to customize for client needs. Reusability: No duplication of code. Efficiency : s/w should be usable. Reliability: Consistent functional results. Usability: Ease of use the s/w. Scalability: Should be support higher loads. Configurability: Should function as per the data provided in configuration file. Extendibility: Support adding mire functionality. 3/11/2021 25

Black box/High level design representations Representation form View points Design characteristics Data-Flow Diagram Functional Information flow, dependency of operations on other operations, Entity–Relationship Diagram Data modeling relation with data stores State Transition Diagram Behavioral Static relationships between design State chart Behavioral entities Structure Diagram (Jackson) Functional, data modeling, State-machine model of an entity UML: Class Diagram behavioral UML: Use Case Diagram Constructional System-wide state model, including parallelism (orthogonally), Behavioral and functional hierarchy and abstraction Form of sequencing adopted (operations, data, actions) Interactions between classes and objects Interactions between a system and other ‘actors’ 3/11/2021 26

White box/Low level design representations Representation form View points Design characteristics Structure Chart Functional and Invocation hierarchy constructional between subprograms, decomposition into Class and Object Diagrams Constructional subprogram units Sequence Diagrams Behavioral Uses relationships between elements, interfaces and Pseudo code Functional dependencies Message-passing sequences, interaction protocols Algorithm form 3/11/2021 27

Design Methods Functional Decomposition 3/11/2021 28

Functional Decomposition(Cont..) Extremes: bottom-up and top-down Not used as such; design is not purely rational: ◦ clients do not know what they want ◦ changes influence earlier decisions ◦ people make errors ◦ projects do not start from scratch 3/11/2021 29

Data flow Design Nowadays version: two-step process: ◦ Structured Analysis (SA), resulting in a logical design, drawn as a set of data flow diagrams ◦ Structured Design (SD) transforming the logical design into a program structure drawn as a set of structure charts. 3/11/2021 30

Entities in a data flow diagram External entities: Processes: Data flows: Data stores: 3/11/2021 31

Top-level DFD: context diagram 3/11/2021 32

First level decomposition 3/11/2021 33

Second-level decomposition for “preliminary processing” 3/11/2021 34

Compound components in Structured Diagram Sequence Iteration Selection A A A B* BCD Bo Co Do 3/11/2021 35

Compound components in Structured Diagram(Cont..) Some rules for drawing Structure Diagrams: Asimple box denotes a component of a sequence action. Sequence is represented by unmarked boxes. Selection is represented by boxes marked with circles. Iteration is represented by an asterisked box. Sequencing is from left to right. The three forms may not be mixed in a sequence. The last selection part should always be condition less (the ELSE clause) 3/11/2021 36

Cont.. 37 3/11/2021

Cont.. 38 3/11/2021

UML 39 UML as a Standard The evolution of UML:  UML 0.9 (Jacobson/1992 & Rumbaugh /1991)  UML 1.0 proposal to the OMG in January 1997.  UML 1.1 was submitted later that year.  OMG maintains UML as a standard.  First adoption was UML 1.3  Minor revision with UML 1.4 and 1.5  A major revision was made in 2003 with UML 2.0. 3/11/2021

UML(Cont..) 40 UML 2.0 diagram  Structural UML diagrams Class diagrams Component diagram Composite structure diagram Deployment diagram Object diagram Package diagram Profile diagram 3/11/2021

UML(Cont..) 41 UML 2.0 diagram  Behavioral UML diagrams Activity diagram Communication diagram Interaction overview diagram Sequence diagram State diagram Timing diagram Use case diagram 3/11/2021

Question & Answer 3/11/2021 42

Thank You !!! 3/11/2021 43

Reading Assignment 1. What is a Software Architecture and Design? 2. What are the differences between Software Design and Software Architecture? 3. List the common tasks of Software design? 4. What is the importance of Software design? 5. What are differences between Implementation and design? 6. What are advantages of the Structural design? 7. Design thinking….. 3/11/2021 44


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook