Introduction
The goal of every designer should be to develop a quality product Design is the process of translating customer requirements into a working system In descriptive terms the quality of the product is reflected in its meeting all customer requirements ie Functional requirements Performance requirements Reliability requirements The systematic approach is reflected in defining the process for the development
Process
Raw Material Finished Product
Problem definition
Finished Product
OLD
MARKET
NEW
Considerations while design & Product development is based on (directly or indirectly) development
negotiated contract between company and customers. Failure with respect to development and delivery costs or schedules leads to loss of sales market share and creditability We should always consider Reliability, safety and quality of the product Lack of quality results in unnecessary costs of repairs and loss of customer confidence and sales. Robust implies that the system performs even if it is partially damaged or operated at the extreme conditions Documentation/instruction manual accompanied with the product must be clear and understandable. Post- sale support including service is equally important.
Lifecycle models
Product lifecycle: Steps that describe the journey from requirements state to application state. It is Purely a descriptive representation. Breaks the development process in to series of interrelated activities Each activity plays a role of transforming its input (specification) in to an output (a selected solution). A software lifecycle model is a standardised format for Planning, organising, and running a new development project.
Fundamentals of design
Find out what the customer wants. Think of a way to give them what they want. Prove what you have done by building and testing it. Use the product to solve the customers problem. Improvise on the product.
Waterfall model
Specification
Implementatio n
Waterfall Model
11
Waterfall model
Sequential flow. Successive steps are linked in chained manner. Output from one phase is fed as input to the next phase. One phase is completed, documented and signed-off before the next phase begins. Advantages Each phase is well documented. Maintenance easier. Disadvantages If there is a mismatch between what the client wanted and was is built this will not be known till the product is delivered.
Requirement
System Test
Decompositi on
System Integration
System Specificati on
Performan ce Test
Preliminary Design
Integration Test
Detailed Design
Unit Test
Code
V cycle model
V-Model has evolved from waterfall Model. Each phase must be completed before the next phase begins.
Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape.
Testing/verification process is invoked at each stage. Requirements ----- System / Functional Testing
Specification and design top-down model. Implementation and testing bottom-up model.
Spiral model
Proposed by Barry Boehm in 1988. Philosophy is to start small.explore the risksdevelop a plan to deal with the risks..commit to an approach for the next iteration. Advantages: Better than waterfall model and V cycle model. Provides for several opportunities for risk assessment and management. Involves greater degree of customer involvement. Disadvantages: Elaborate Difficult to manage.
Steps in each iteration of Spiral lifecycle model Determine objectives, Alternatives and constraints Identify and resolve risks Evaluate Alternatives Develop deliverables verify That they are correct Plan the next iteration Commit to an approach for the next iteration
Spiral model
capture the formal descriptions of the complete system from customers. document these needs as written definitions and descriptions.
Important to consider both the system to be designed and the environment in which it is to operate.
System
The initial focus should be on the world or environment in which system operates Next one follows with an increasingly detailed description of the role played by the system in that environment. Go on refining the requirements. Environment point:
specification for the containing environment, a description/ definition of the inputs and outputs to and from that environment How the system will be used. Who is the target audience.
Environment
System
System point:
Starts with high-level of abstraction (imagination/ conception). through progressive refinement one moves to lower levels of the abstraction and more detailed understanding and definition.
The environment
It is a heterogeneous collection of entities. All physical devices to which the system is interconnected Physical attributes that can effect the system. The environmental specification should contain the following for each entity.
Name & description of the entity. Responsibilities/activities. Relationships between entity & responsibilities. safety and reliability. identify all the hazards/ flaws. Identify any regulating agency.
The system
Define inputs and outputs.
Inputs to the system are outputs of the environment. Outputs from the system are inputs to the environment. Each I/O variable should have the following:
Name of the signal. Whether the signal is used a Input or Output. Nature of the signal- event/ data/ state variable etc. Validity of the signal. Structure/characteristics of the signal Technical constraints (if any) associated with the signal.
Responsibilities/ activities
Define the function performed by the system. Identify the effects of the environment on the system. How the system should be used. Make use of UML tools, Data and control flow diagrams, to indicate the activities of the system.
Temporal constraints
Internal/ external system delays Propagation delays
Geographical constraints
Single room/ factory/ Network topologies( LAN/ MAN/ WAN/ WWW) Limited/ unlimited access (firewall) Cost of installation
Problem statement
Consider yourself as a senior development engineer in some MNC. Suppose a new project is assigned to you by some client in which a counter has to be designed that can be used in avionics. They also specify that the budget is moderate. They should be able to employ the same counter on several other segments also. These counters should have the capability to operate remotely from a PC (in future) in order to reduce manpower. The main job of the counter is to track the no. of navigation radios coming down the production line per hour. Each radio arrival breaks the IR beam, which generates a 1 microsecond wide negative going 5 V pulse (on the newer lines) Each radio arrival breaks the IR beam, which generates a 1 microsecond wide positive going 5 V pulse (on the older lines) Frequency measuring range is from 100 Hz- 50 KHz -150MHz with 0.001 Hz resolution. There are 3 production lines that can measure
time duration 1 ms with 0.0001sec resolution. time duration 10 ms with 0.001sec resolution. time duration 1s with 0.001sec resolution.
Navigation Radio
Factory
Counter
User
User
Counter
Remote Computer
Factory
Test Line
Nav Radio
System description
User interface of the counter should have provision to measure the following: POWER ON/ OFF RESET Frequency of the signal time period of the signal Time interval between 2 events Range of the signal (low/ mid/ high) occurrence of events (slow/ fast) Triggering edge (rising/ falling) LCD/ Seven segment 6 digit display
System inputs
Voltage range
time interval
High resolution = 1 ms Mid resolution = 10 ms Low resolution = 1 s (excluding resolution)
Time Period
High resolution = 1 ms Mid resolution = 10 ms Low resolution = 1 s
Time Period
High resolution = 2 ms Mid resolution = 20 ms Low resolution = 2 s (excluding resolution)
time interval
High resolution = 1 ms Mid resolution = 10 ms Low resolution = 1 s
Frequency range
High range = 200 MHz Mid range = 200 KHz Low range = 200 Hz. (excluding resolution)
Frequency range
High range = 150 MHz Mid range = 50 KHz Low range = 100 Hz.
Measure frequency
Select Frequency mode If the frequency exceeds the max. limit, display shows full scale reading and flashes. If the frequency is below the min. limit, display shows 0 reading. Range of the frequency can be changed by the range select button. The user may start/ stop measuring the frequency by pressing the start trigger edge/ stop trigger edge button to select positive/negative edge triggering.
Measure period
Select period mode If the period exceeds the max. limit, display shows full scale reading and flashes. If the period is below the min. limit, display shows 0 reading. Range of the period can be changed by the range select button. The user may start/ stop measuring the period by pressing the start trigger edge/ stop trigger edge button to select positive/negative edge triggering.
Measure interval
Select interval mode. If the period exceeds the max. limit, display shows full scale reading and flashes. If the period is below the min. limit, display shows 0 reading. Range of the period can be changed by the range select button. The user may start/ stop measuring the interval by pressing the start trigger edge/ stop trigger edge button to select positive/negative edge triggering
Measure events
Select events mode. Range of the counting of events can be changed by the range select button. If the no. of counts exceeds the max. limit, display shows full scale reading and flashes. The user may start/ stop incrementing the count by pressing the start trigger edge/ stop trigger edge button to select positive/negative edge triggering The accumulated count will be reset to 0 at the end of counting.
Operating specifications
The system should operate in a standard commercial/ industrial environment
Temperature range 0-85C Humidity upto 90% Power AC 230V ,50 Hz with 10 % tolerance, 5V DC@10 mA,15V DC@500 mA system shall operate for min 8 hrs on a fully charged battery. Net weight of the counter: 2.75 kgs Dimensions: 90mm x 200mm x 300 mm MTBF min. of 10000 hrs The counter shall comply with the standards like IEC-1010, CSA-1010.1, UL-3111.1, CISPR-11
System requirements
Describes WHAT a system must do. Describes HOW WELL it has to do. Set of needed properties. Come from the mktg/sales deptt. indirectly customer representation Not concerned with the internal organization of the system. Informal, random language.
system specifications
Describes HOW the system must implement the requirements. It translates the description of needs to a more formal structure & model. Hardware/ software detailing with the respective constraints,& tolerances. Needs regular quantification of the state variables. Defines the internal organization of the system. Formal, complete, consistent, unambiguous, modifiable language.
How to do partitioning??
Capture the behavior at high level. Map the functionality to the hardware & software. Each module should solve one well-defined piece of problem. Functionalities of various modules should not be mixed. Functionalities should be easily understandable. Ensure that Connections between the modules are independent. Try to keep like things together thereby reducing errors. Aim is to develop loosely coupled, highly cohesive modules
Coupling
Indicates how interdependent the modules are. Main objective is to make modules as independent as possible. (loosely coupled) Care should be taken at the time of partitioning to lower the coupling. Tightly coupled modules utilize shared data or interchange control information. therefore:
Debugging becomes difficult. Troubleshooting becomes difficult. Modifying becomes difficult. Maintaining becomes difficult.
Cohesion
Opposite of coupling. Measure of strength of the functional interdependence of the elements in the modules of a system. Objective is to create highly cohesive modules whose elements are tightly related to each other. Types of cohesion:
Functional cohesion all elements contribute to execution of a single task. Sequential cohesion all elements are involved in one of the steps of the sequence. Communicational cohesion all elements work on procedures involving the same input data like image processing task. Temporal cohesion elements contribute to a no. of unrelated procedures that ordered sequentially. Logical cohesion elements contribute to procedures that are possible alternative methods of doing the same task. Procedural cohesion elements contribute to procedures that are not linked to each other.
Functional design
Formulate an appropriate internal functional architecture for the system. It formalizes the intended behavior of the system. Should be written by the engineer who develops the hardware/ software of the system. Should be easy to read and understand. First functional decomposition is done on the basis of essential internal variables & events. Go on refining the functions till leaf functions are obtained functional model of the system. It gives an estimate of the expected performance of the system ( internal behavior of the system.) It is written by using design tools like UML,Verilog etc.. Analyse & identify the signals flowing between the user & system. Analyse & identify the signals flowing within the various functional blocks of the system.
Architectural design
Mapping each functional module onto the appropriate physical hardware/ software blocks. It should be done keeping in mind the future enhancements/add-ons. Constraints imposed by technology/hardware/software are taken into consideration in deciding which portions of the system should be implemented in hardware or software. Types of constraints that have to be optimized:
Geographical distribution. Timing constraints development time & cost. Power consumption Implementation Cost involved. Performance & dependability constraints etc
Functional model
Located between system specifications and architectural model. Represents a system through a set of interacting functional elements. High level design model. Coarse-grain partitioning of the system. Freedom to explore & be creative.
architectural model
Located between functional model and prototype. Represents a system through its physical components like microprocessors, PLDs, ADC, DAC, buses etc. Fine -grain partitioning of the system. Refined form of the functional model.
prototyping
Tool for Confirming the system design. Its a proof of the concept/ idea. Launching a trial model. Hardware & software implementations are developed simultaneously by experts thereby reducing implementation time. It is a bottom-up process. i.e it must be checked for compliance with the specifications at each level in the top-down design. A prototype implementation includes:
Detailed design Debugging Validation Testing
Static analysis
Complexity
Behavioral complexity
Less no of inputs & outputs. Minimal no of state variables. Minimize the description through words.
Dynamic analysis
Behavior verification
System Environment Boundary conditions
Functional complexity:
Less no of functions less no of interconnections
Performance analysis
Specific values of input & outputs for:
System environment
Cohesiveness
Measure of functional homogeneity of elements that comprise the modules. tight
Trade-off analysis
Coupling
Measure of interrelationships between modules. Loose
Other considerations
Capitalization
Proper & efficient exploitation of Intellectual Properties (IPs) patents that can be sold to another party to develop & sell as a part of their product.
Reuse
Helps the designers shorten the development life cycle. The component should have support any modification in the present as well as future scenarios. To be reused the component needs to be
Well defined Properly modularized In accordance to some interchange standard
Requirements traceability
Ability to follow the life of a requirement in both forward & reverse directions throughout the design process. Identifies which h/w or s/w modules are affected if a requirement changes.
Requirements management
Requirements modifications Changes Improvements Corrections
Why to save??